Anda perlu membuat ekstensi baru untuk membuatnya bersih.
Mari kita sebut ekstensi StackExchange_Customer
.
Anda membutuhkan file-file berikut:
app/etc/modules/StackExchange_Customer.xml
- file deklarasi
<?xml version="1.0"?>
<config>
<modules>
<StackExchange_Customer>
<active>true</active>
<codePool>local</codePool>
<depends><Mage_Customer/></depends>
</StackExchange_Customer>
</modules>
</config>
app/code/local/StackExchange/Customer/etc/config.xml
- file konfigurasi
<?xml version="1.0"?>
<config>
<modules>
<StackExchange_Customer>
<version>1.0.0</version>
</StackExchange_Customer>
</modules>
<global>
<helpers>
<stackexchange_customer>
<class>StackExchange_Customer_Helper</class>
</stackexchange_customer>
</helpers>
<resources>
<stackexchange_customer_setup>
<setup>
<module>StackExchange_Customer</module>
<class>Mage_Customer_Model_Resource_Setup</class>
</setup>
</stackexchange_customer_setup>
</resources>
</global>
<frontend>
<layout>
<updates>
<stackexchange_customer>
<file>stackexchange_customer.xml</file>
</stackexchange_customer>
</updates>
</layout>
<translate>
<modules>
<StackExchange_Customer>
<files>
<default>StackExchange_Customer.csv</default>
</files>
</StackExchange_Customer>
</modules>
</translate>
</frontend>
</config>
app/code/local/StackExchange/Customer/sql/stackexchange_customer_setup/install-1.0.0.php
- file instal. Akan menambah atribut baru.
<?php
$this->addAttribute('customer', 'license_number', array(
'type' => 'varchar',
'label' => 'License Number',
'input' => 'text',
'position' => 120,
'required' => false,//or true
'is_system' => 0,
));
$attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'license_number');
$attribute->setData('used_in_forms', array(
'adminhtml_customer',
'checkout_register',
'customer_account_create',
'customer_account_edit',
));
$attribute->setData('is_user_defined', 0);
$attribute->save();
app/code/local/StackExchange/Customer/Helper/Data.php
- pembantu utama modul
<?php
class StackExchange_Customer_Helper_Data extends Mage_Core_Helper_Abstract
{
}
Ini akan menambahkan atribut Anda untuk pelanggan.
Ini harus bekerja dengan baik di backend.
Sayangnya Anda harus mengedit templat frontend secara manual sekarang karena Magento tidak memiliki acara atau blok kosong tempat Anda dapat meletakkan bidang Anda.
Untuk ini, Anda perlu yang berikut ini.
app/design/frontend/base/default/layout/stackexchange_customer.xml
<?xml version="1.0"?>
<layout>
<customer_account_edit>
<reference name="customer_edit">
<action method="setTemplate">
<template>stackexchange_customer/form/edit.phtml</template>
</action>
</reference>
</customer_account_edit>
<customer_account_create>
<reference name="customer_form_register">
<action method="setTemplate">
<template>stackexchange_customer/register.phtml</template>
</action>
</reference>
</customer_account_create>
</layout>
Dan sekarang templatnya.
app/design/frontend/base/default/template/stackexchange_customer/register.phtml
- templat pendaftaran.
Untuk yang satu ini buat klon /app/design/frontend/{package}/{theme}/template/persistent/customer/form/register.phtml
dan masukkan saja di suatu tempat di dalam formulir. Saya tidak perlu memposting file lengkap di sini. Aturlah sesukamu
<li>
<label for="license_number"><?php echo $this->__('License Number') ?></label>
<div class="input-box">
<input type="text" name="license_number" id="license_number" value="<?php echo $this->escapeHtml($this->getFormData()->getLicenseNumber()) ?>" title="<?php echo $this->__('License Number') ?>" class="input-text" />
</div>
</li>
/app/design/frontend/base/default/template/stackexchange_customer/form/edit.phtml
Untuk klon yang satu ini /app/design/frontend/{package}/{theme}/template/customer/form/edit.phtml
dan masukkan di suatu tempat di dalam formulir ini:
<li>
<label for="license_number"><?php echo $this->__('License Number') ?></label>
<div class="input-box">
<input type="text" name="license_number" id="license_number" value="<?php echo $this->htmlEscape($this->getCustomer()->getLicenseNumber()) ?>" title="<?php echo $this->__('License Number') ?>" class="input-text" />
</div>
</li>
Anda juga dapat membuat file terjemahan. Tidak wajib tetapi itu menyenangkan untuk dimiliki
app/locale/en_US/StackExchange_Customer.csv
"License Number","License Number"
Bersihkan cache dan Anda harus mengatur.