Bạn cần tạo một phần mở rộng mới để làm cho nó sạch sẽ.
Hãy gọi phần mở rộng StackExchange_Customer
.
Bạn sẽ cần các tệp sau:
app/etc/modules/StackExchange_Customer.xml
- hồ sơ khai
<?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
- tập tin cấu hình
<?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
- tập tin cài đặt. Sẽ thêm thuộc tính mới.
<?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
- người trợ giúp chính của mô-đun
<?php
class StackExchange_Customer_Helper_Data extends Mage_Core_Helper_Abstract
{
}
Điều này sẽ thêm thuộc tính của bạn cho khách hàng.
Nó sẽ hoạt động độc đáo trên phụ trợ.
Thật không may, bạn phải chỉnh sửa các mẫu frontend ngay bây giờ vì Magento không có bất kỳ sự kiện hoặc khối trống nào nơi bạn có thể đặt các trường của mình.
Đối với điều này, bạn cần những điều sau đây.
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>
Và bây giờ là các mẫu.
app/design/frontend/base/default/template/stackexchange_customer/register.phtml
- mẫu đăng ký.
Đối với cái này, tạo một bản sao của /app/design/frontend/{package}/{theme}/template/persistent/customer/form/register.phtml
và chỉ cần chèn cái này vào đâu đó bên trong biểu mẫu. Tôi không cần phải đăng toàn bộ hồ sơ ở đây. Sắp xếp nó như bạn muốn
<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
Đối với cái này, một bản sao /app/design/frontend/{package}/{theme}/template/customer/form/edit.phtml
và chèn vào đâu đó bên trong mẫu này:
<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>
Bạn cũng có thể tạo tập tin dịch. Không bắt buộc nhưng thật tuyệt khi có
app/locale/en_US/StackExchange_Customer.csv
"License Number","License Number"
Xóa bộ nhớ cache và bạn sẽ được đặt.