Новые атрибуты адреса клиента не сохраняются


Я создал 2 новых атрибута клиента. Эти атрибуты отображаются в администраторе в разделе "Клиенты > Атрибуты > Управление атрибутами адресов клиентов".

Я перезаписал регистрационную форму (register.phtml), чтобы отобразить поля формы, соответствующие этим атрибутам. Когда я отлаживаю процесс регистрации, я вижу, что Mage_Customer_Model_Form::getAttributes не включает мои новые атрибуты.

Из-за этого (я думаю) мои новые атрибуты не сохраняются в базе данных. Какой шаг мне не хватает, чтобы в регистрационной форме сохранялись мои новые атрибуты?

Author: Ryre, 2013-02-27

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_адрес
  • регистрация регистрации
  • пользователь_аккаунт_создать
  • пользователь_аккаунт_редит
  • адрес_пользователя_редактор
  • адрес_регистратора клиента

Я не уверен, получил ли я все, может быть, есть некоторые, которые не используются, но упомянуты в коде.

 4
Author: Fabian Blechschmidt, 2013-02-28 17:49:57