Pregunta

Añadido un atributo de cliente extra usando este código:




$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();

Funciona bien en el backend.¿Cómo mostrarlo en el tablero de paquetes de autos del cliente? gracias

¿Fue útil?

Solución

Esto requiere algún trabajo de plantilla.

La página del panel de la cuenta del cliente es renderizada por el siguiente archivo: '/app/design/frontend/base/default/template/customer/account/dashboard/info.phtml'

Cuando desea obtener un atributo de cliente personalizado aquí, tiene que llamarlo por su código

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

PS: nunca Edite los archivos de plantilla de base directamente.Haga un tema separado dentro del paquete de tema predeterminado, o haga su propio paquete de tema :)

Otros consejos

Copie a continuación Código para obtener el valor de la opción de atributo del 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 bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top