Как получить пользовательский атрибут клиента на Frontend
-
12-12-2019 - |
Вопрос
Я добавил дополнительный атрибут клиента, используя этот код:
$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);
.