При создании сайта на CMS Magento (Мадженто), или когда делаем интернет магазин Magento, очень часто бывают требования к регистрации новых клиентов/покупателей. Добавить новые поля в форму регистрации пользователей Magento, или просто добавить поле для ввода мобильного телефона при покупке.
К сожалению Magento плохо работает с атрибутами пользователя. Нет возможности добавить или удалить поля в формах регистрации покупателей.
Но, если есть задача добавить новый атрибут пользователя Magento, то можно сделать используя ниже приведенный пример.
Код PHP файла, через который можно с легкостью добавить новый пользовательский атрибут Magento.
<h1>Customer Attribute Creator for Magento</h1> <h2>by <a href="http://www.magefast.com">magefast.com</a></h2> <br /><br /> <form method="post" action="http://<?php echo $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>" > <h2>Add new Attribute for customer.</h2> <br /> Input name for Attribute <br /> <input type="text" name="name" value="test" /> <br /> Input code for Attribute <br /> <input type="text" name="code" value="test" /> <br /> Position for Attribute (1, 2, etc) <br /> <input type="text" name="sort" value="0" /> <br /><br /> <input type="submit" value="Submit" /> </form> <?php require 'app/Mage.php'; Mage::app('default'); if($_POST['name'] && $_POST['code']): $installer = new Mage_Core_Model_Resource_Setup; $installer->startSetup(); $setup = Mage::getModel('customer/entity_setup', 'core_setup'); $setup->addAttribute('customer', $_POST['code'], array( 'type' => 'varchar', 'label' => $_POST['name'], 'input' => 'text', 'global' => 1, 'visible' => 1, 'required' => 0, 'user_defined' => 1, 'default' => '', 'visible_on_front' => 1, 'sort_order' => $_POST['sort'], 'system' => false )); if (version_compare(Mage::getVersion(), '1.6.0', '<=')) { $customer = Mage::getModel('customer/customer'); $attrSetId = $customer->getResource()->getEntityType()->getDefaultAttributeSetId(); $setup->addAttributeToSet('customer', $attrSetId, 'General', $_POST['code']); } if (version_compare(Mage::getVersion(), '1.4.2', '>=')) { Mage::getSingleton('eav/config') ->getAttribute('customer', $_POST['code']) ->setData('used_in_forms', array('adminhtml_customer','customer_account_create','customer_account_edit','checkout_register')) ->save(); } $installer->endSetup(); ?> <hr /> Added new customer attribute for Magento <br /> attribute code: <b><?php echo $_POST['code']; ?></b>, name: <b><?php echo $_POST['code']; ?></b> <br /> Please check... <?php endif; ?>
После того как добавим атрибут для пользователя, можно проверить в админ панели Magento на странице редактирования/добавления нового пользователя/покупателя магазина.
Скачать готовый скрипт для добавления нового атрибута пользователя Magento
[share-locker locker_id=»ad7f2be3aa5e20fae» theme=»blue» message=»Для получения ссылки на скачивание нажмите любую кнопку. Спасибо.» facebook=»true» likeurl=»CURRENT» google=»true» googleurl=»CURRENT» tweet=»true» tweettext=»» tweeturl=»CURRENT» follow=»false» linkedin=»false»]magento_customer_attribute[/share-locker]