Как я могу получить свой пользовательский бэкэнд Magento Customer Checkbox Attribute, чтобы сохранить свой выбор? - PullRequest
0 голосов
/ 19 августа 2011

Magento CE 1.5.1.0

Я пытаюсь создать новый атрибут клиента в установочном файле для модуля Magento.У меня он работает нормально для ввода текста, но я бы хотел добавить флажок в раздел «Информация об учетной записи» клиента на странице «Информация о клиенте» в административной части.Он не должен быть виден на внешнем интерфейсе или редактироваться пользователем.Я просто хочу, чтобы это было логическое значение.

У меня есть атрибут, появляющийся на бэкэнде, в правильном месте, и по умолчанию он не выбран, что хорошо, но когда я нажимаю «Сохранить и продолжить редактирование»Кнопка (или «Сохранить клиента»), я перенаправлен на главную панель администратора.Когда я снова управляю клиентом, я вижу, что мой флажок не был сохранен, и он снова используется по умолчанию.

Код, который у меня есть (взят из ответа Джонатана Дея на этот вопрос: Добавление атрибутов ксущность клиента ) такова:

$installer = $this;
$installer->startSetup();

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$entityTypeId     = $setup->getEntityTypeId('customer');
$attributeSetId   = $setup->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);

$setup->addAttribute('customer', 'ignore_ip_notifications', array(
    'input'         => 'checkbox',
    'type'          => 'int',
    'label'         => 'Ignore IP Notifications',
    'visible'       => 1,
    'user_defined'  => 0,
    'required'      => 0,
    'source'        => 'eav/entity_attribute_source_boolean'
));

$setup->addAttributeToGroup(
$entityTypeId,
$attributeSetId,
$attributeGroupId,
'ignore_ip_notifications',
'998'  //overwritten sort_order
);

$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'ignore_ip_notifications');
$oAttribute->setData('used_in_forms', array('adminhtml_customer'));
$oAttribute->setData('sort_order', 998);
$oAttribute->save();

$installer->endSetup();

Как уже упоминалось, атрибут отображается так, как должен, но перенаправляет его на панель мониторинга, а не сохраняет.

Любая помощь будет принята с благодарностью.

IB

1 Ответ

0 голосов
/ 19 августа 2011

Я не уверен на 100%, но вам также могут понадобиться наборы полей, определенные для бэкэнда, например:

<fieldsets>
             <customer_account>
                 <attribute_code>
                    <create>1</create>
                    <update>1</update>
                </attribute_code>
             <customer_account>
</fieldsets>
...