Мне нужно было создать два новых атрибута клиента. Я следовал руководству от: http://www.fontis.com.au/blog/magento/know-more-about-your-customers-adding-custom-signup-attributes
создать эти атрибуты. Я проверил таблицу 'eav_attribute' в базе данных и могу подтвердить, что оба атрибута существуют. Единственное, что я не знал, как создать атрибут флажка, поэтому я создал оба атрибута как «Да / Нет».
следуя коду о том, как отобразить поле в регистрационной форме, которую я сделал:
<li class="control">
<div class="input-box">
<label for="publisheroffer"><?php echo $this->__('Publisher Offer') ?><span class="required">*</span></label><br />
<input type="checkbox" name="publisheroffer" id="publisheroffer" value="<?php echo $this->htmlEscape($this->getFormData()->getPublisheroffer()) ?>" title="<?php echo $this->__('Publisher Offer') ?>" class="input-text" />
</div>
</li>
Где идентификатор атрибута является «publisheroffer». Когда учетная запись создается, она создает нормально, но настраиваемые поля атрибутов не меняются.
Как отобразить этот атрибут в виде флажка на странице регистрации и как обработать значения.
Спасибо за всю помощь заранее.
источник
Ответы:
Чтобы разрешить публиковать атрибут в форме регистра и на странице некоторых других форм, вы должны установить, что атрибуты доступны для этих форм.
Для этого ниже приведен пример кода для установки в SQL. Остальную часть кода, который я использовал для моего модуля имени пользователя Magento, вы можете найти в моей учетной записи на github.
источник
input
атрибут,checked
когда значение$this->getFormData()->getPublisheroffer() == 1
. Вы будете иметь,<input ... value="1" <?php echo ($this->getFormData()->getPublisheroffer() == 1): 'checked' : ''; ?>
Вы должны удалитьvalue="<?php echo $this->htmlEscape(...)"
и установитьvalue="1"
(или иначе)Вы можете попробовать следующий код для создания пользовательского атрибута флажка.
Используйте вход «логическое» вместо «флажок».
источник