Pregunta

He actualizado la base de datos directamente para hacer IS_RQUIRADO en lastName = 0.

Eliminó el validador JS para lastName en el núcleo.

Eliminado el campo requerido en frontend en widget/name.phtml.

Sin embargo, el mensaje de "Campo requerido de apellido" sigue siendo ventanas emergentes en 3 lugares:

During onepage checkout
When creating an order in admin for billing/shipping address
When inputing billing/shipping address for a customer in admin

¿Podría alguien ayudarme por favor? Estamos haciendo al por mayor y usamos solo orden de compra y bacalao. Por lo tanto, el cliente normalmente solo pone su nombre de salida en el campo de primer nombre. El apellido es simplemente opcional para ellos.

¿Fue útil?

Solución

Para hacer el apellido de campo, ninguno requerido para la edición del cliente en Admin Crear script de actualización SQL

/* @var $this Mage_Customer_Model_Resource_Setup */
$this->updateAttribute('customer_address','lastname','is_required','false');

Otros consejos

Yo mismo estaba buscando una respuesta a ese problema y he fusionado ambas respuestas, ya que tienes que hacer todos estos pasos, así que estoy digiendo un tema muerto para futuros usuarios.

1. Primero es bueno ejecutar una consulta SQL (es decir, en phpmyadmin):

UPDATE eav_attribute SET is_required = 0 WHERE attribute_code = 'lastname'

2. Deshágase de las clases para la validación de JS

class = "requerido" y class = "requerido-entry" en cualquier lugar relacionado con el campo 'lastName' donde hay formularios para guardar (es decir, cliente/dirección/edit.phtml, persistente/checkout/billing.phtml)

3. Copie sus archivos principales de:

/app/code/core/Mage/customer/Model/Address/Abstract.php
/app/code/core/Mage/customer/Model/Customer.php
/app/code/core/Mage/customer/etc/config.xml

dentro:

/app/code/local/Mage/customer/Model/Address/Abstract.php
/app/code/local/Mage/customer/Model/Customer.php
/app/code/local/Mage/customer/etc/config.xml

Y comente todo lo relacionado con la validación de Zend de LastName.

/app/code/local/mage/customer/model/address/abstract.php:

   /* if (!Zend_Validate::is($this->getLastname(), 'NotEmpty')) {
         $this->addError(Mage::helper('customer')->__('Please enter the last name.'));
     }
*/

/app/code/local/mage/customer/model/customer.php

/*        if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
        $errors[] = Mage::helper('customer')->__('The last name cannot be empty.');
    }
*/

/app/code/local/mage/customer/etc/config.xml

Tienes que buscar:

 <lastname>
                <billing>1</billing>
                <shipping>1</shipping>
                **<required>0</required>** // change from 1 to 0
                <mapped>1</mapped>
 </lastname>

1. Elimine las clases para la validación de JS de sus plantillas.

customer/widget/name.phtml

Remover class="required" de la etiqueta relacionada con el lastname campo en la línea 80

Remover <?php echo $this->helper('customer/address') ->getAttributeValidationClass('lastname') ?> desde la entrada relacionada con lastname en la línea 82

2. Copie sus archivos principales de:

/app/code/core/mage/customer/model/address/abstract.php /app/code/core/mage/customer/model/customer.php

dentro:

/app/code/local/mage/customer/model/address/abstract.php /app/code/local/mage/customer/model/customer.php

Y comente todo lo relacionado con la validación de Zend de LastName.

/app/code/local/mage/customer/model/address/abstract.php:

    /*
    if (!Zend_Validate::is($this->getLastname(), 'NotEmpty')) {
        $this->addError(Mage::helper('customer')->__('Please enter the last name.'));
    }
*/

/app/code/local/mage/customer/model/customer.php

código PHP

   /*
    if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
        $errors[] = Mage::helper('customer')->__('The last name cannot be empty.');
    }
*/

3. Actualice el archivo config.xml para el cliente

/app/code/core/mage/customer/etc/config.xml

Copiar en el archivo

/app/code/local/mage/customer/etc/config.xml

Para last_name campo, establecer el valor requerido "1" a "0"

4. En la última actualización utilizando la consulta de filas en la base de datos

UPDATE eav_attribute SET is_required = 0 WHERE attribute_code = 'lastname'

Para mí, todo lo que hice para resolver esto fue esto:

update eav_attribute set is_required=0 where attribute_code like 'firstname'; update eav_attribute set is_required=0 where attribute_code like 'lastname';

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top