Вопрос

Я добавил дополнительный атрибут клиента, используя этот код:




$installer->startSetup();

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

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

$installer->addAttribute("customer", "province", array( "type" => "varchar", "backend" => "", "label" => "province", "input" => "multiselect", "source" => 'eav/entity_attribute_source_table', "visible" => true, "required" => false, "default" => "", "frontend" => "", "unique" => false, "note" => "province", 'option' => array ( 'values' => array ( 0 => 'Rome', 1 => 'Milan', 2 => 'Florence', 3 => 'Naples', ), ),

));

$attribute = Mage::getSingleton("eav/config")->getAttribute("customer", "province");

$setup->addAttributeToGroup( $entityTypeId, $attributeSetId, $attributeGroupId, 'province', '999' //sort_order );

$used_in_forms=array();

$used_in_forms[]="adminhtml_customer"; $used_in_forms[]="checkout_register"; $used_in_forms[]="customer_account_create"; $used_in_forms[]="customer_account_edit"; $used_in_forms[]="adminhtml_checkout"; $attribute->setData("used_in_forms", $used_in_forms) ->setData("is_used_for_customer_segment", true) ->setData("is_system", 0) ->setData("is_user_defined", 1) ->setData("is_visible", 1) ->setData("sort_order", 100) ; $attribute->save();

$installer->endSetup();

Работает нормально на бэкере.Как показать это на приборной панели Frontend Customer? спасибо

Это было полезно?

Решение

Это требует некоторой шаблонной работы.

Страница приборной панели учетной записи клиента отображается следующим файлом: '/ap/design/frontend/base/default/template/customer/account/dashboard/info.phtml'

Когда вы хотите получить пользовательский атрибут клиента здесь, вам нужно позвонить в это код

 <?php echo $this->escapeHtml($this->getCustomer()->getProvince()) ?>
.

PS: Никогда не отредактируйте файлы базовых шаблонов непосредственно.Сделайте отдельной темой внутри пакета темы по умолчанию или сделать свой собственный пакет тема :)

Другие советы

Скопируйте код ниже, чтобы получить значение параметров атрибута клиента:

//Get current customer
$customer = Mage::getSingleton('customer/session')->getCustomer();

//Get attribute id          
$attrId = $customer->getData('customer_attribute_code');
$attr = $customer->getResource()->getAttribute('customer_attribute_code');

//Get attribute option value
echo $attrValue = $attr->getSource()->getOptionText($attrId);
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top