Новые атрибуты адреса клиента не сохраняются
Я создал 2 новых атрибута клиента. Эти атрибуты отображаются в администраторе в разделе "Клиенты > Атрибуты > Управление атрибутами адресов клиентов".
Я перезаписал регистрационную форму (register.phtml), чтобы отобразить поля формы, соответствующие этим атрибутам. Когда я отлаживаю процесс регистрации, я вижу, что Mage_Customer_Model_Form::getAttributes
не включает мои новые атрибуты.
Из-за этого (я думаю) мои новые атрибуты не сохраняются в базе данных. Какой шаг мне не хватает, чтобы в регистрационной форме сохранялись мои новые атрибуты?
1 answers
Добавьте атрибут в фильтр форм
Чтобы сохранить новые атрибуты в таблице EAV через форму, вам необходимо установить параметр used_on_forms
, например, в файле настройки
$oAttribute = Mage::getSingleton('eav/config')->getAttribute(
'customer', 'agb'
);
$oAttribute->setData('used_in_forms', array('adminhtml_customer', 'customer_account_create'));
Существует гораздо больше форм, таких как customer_account_edit
.
Будьте осторожны, этот пример взят из атрибута клиента, а не из адреса клиента!
Несколько форм коды:
SELECT DISTINCT form_code FROM `customer_form_attribute` WHERE 1
- проверка adminhtml_
- администратор html_customer
- adminhtml_customer_address_адрес
- регистрация регистрации
- пользователь_аккаунт_создать
- пользователь_аккаунт_редит
- адрес_пользователя_редактор
- адрес_регистратора клиента
Я не уверен, получил ли я все, может быть, есть некоторые, которые не используются, но упомянуты в коде.