Pregunta

He estado buscando en algunos tutoriales pero ninguno de ellos funciona, por ejemplo, primero me dijeron que los archivos xxx abiertos y editar algo, pero lo que he encontrado en mis archivos es sólo una clase con un método único en su interior.

register.phtml Actualmente tengo (/ plantilla / / cliente / forma persistente) para mostrar el campo personalizado denominado Sitio Web, pero no sé cómo conseguir que funcione con todas las funciones del sitio.

Mi versión es Magento 1.7.0.2

Por favor consejo.

¿Fue útil?

Solución

Para utilizar un atributo en la interfaz que tiene que hacer dos cosas.

  1. añadir el atributo al EAV
  2. Magento dicen que el atributo se debe utilizar y se le permite ser salvado por el cliente. Hay un montón de atributos que no desea ser salvado por el cliente, por ejemplo created_at, updated_at o cualquier saldo de la cuenta no debe ser modificable por el cliente.

    Todos los atributos se guardan en las diferentes formas a través de

    $customerForm = Mage::getModel('customer/form');
        $customerForm->setFormCode('customer_account_create')
            ->setEntity($customer);
    

    Eche un vistazo en los códigos de formulario. Son importantes para cambiar los atributos. hay unos pocos, como customer_account_edit, customer_account_create. Sólo tienes que comprobar el código si las formas no guarda su atributo, lo que se necesita y cómo la forma se nombra.

Añadir el atributo

<?php
/* @var $installer Mage_Catalog_Model_Resource_Setup */
$installer = $this;

$vCustomerEntityType = $installer->getEntityTypeId('customer');
$vCustAttributeSetId = $installer->getDefaultAttributeSetId($vCustomerEntityType);
$vCustAttributeGroupId = $installer->getDefaultAttributeGroupId($vCustomerEntityType, $vCustAttributeSetId);

$installer->startSetup();

$attributes = array(
    'website' => 'Website',
);

foreach ($attributes as $name => $attribute) {
    $installer->addAttribute(
        'customer',
        $name,
        array(
             'label'        => $attribute,
             'input'        => 'text',
             'type'         => 'varchar',
             'required'     => 0,
             'user_defined' => 1,
        )
    );

    $installer->addAttributeToGroup($vCustomerEntityType, $vCustAttributeSetId, $vCustAttributeGroupId, $name, 0);

Hacer utilizable atributo en formas

    $oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', $name);
    $oAttribute->setData(
        'used_in_forms',
        array('customer_account_edit', 'customer_account_create', 'adminhtml_customer')
    );
    $oAttribute->save();
}

$installer->endSetup();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top