Pergunta

Adicionei um atributo extra de cliente usando este código:




$instalador->startSetup();

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

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

$ instalador-> addattribute ("cliente", "província", array ("tipo" => "varchar", "back-end" => "", "etiqueta" => "província", "entrada" => "multisselect" , "fonte" => 'eav/entity_attribute_source_table', "visível" => true, "requerir" => false, "padrão" => "", "frontend" => "," exclusivo "=> false," Nota "=>" Província ", 'Option' => Array ('valores' => Array (0 => 'Roma', 1 => 'Milan', 2 => 'Florence', 3 = '' Nápoles ', ),),,

));

$attribute = Mage::getSingleton("eav/config")->getAttribute("cliente", "província");

$ setup-> addattributETogroup ($ entityTypeid, $ attrituteSetId, $ attributeGroupId, 'província', '999' // sort_order);

$usado_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 ("usada_in_forms", $ usada_in_forms) -> setData ("is_used_for_customer_segment", true) -> setData ("is_system", 0) -> setData ("is_user_defined", 1) -> setdata " , 1) -> SetData ("Sort_order", 100);$atributo->salvar();

$instalador->endSetup();

Funciona bem no back-end.Como mostrá-lo no painel de front-end do cliente?obrigado

Foi útil?

Solução

Isso requer algum trabalho de modelagem.

A página do painel da conta do cliente é renderizada pelo seguinte arquivo:'/app/design/frontend/base/default/template/customer/account/dashboard/info.phtml'

Quando você deseja obter um atributo de cliente personalizado aqui, você deve chamá-lo pelo código

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

obs: Nunca edite os arquivos do modelo base diretamente.Crie um tema separado dentro do pacote de temas padrão ou crie seu próprio pacote de temas :)

Outras dicas

Copie o código abaixo para obter o valor da opção do atributo do cliente:

//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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top