Come rendere il cognome opzionale in Magento 1.8
-
16-10-2019 - |
Domanda
??Ho aggiornato direttamente per fare is_required sul cognome = 0.
Rimosso il validatore js per cognome nel nocciolo.
campo obbligatorio Rimosso in frontend nel widget di / name.phtml.
"campo Cognome è richiesto" Tuttavia, il messaggio ancora popup in 3 posti:
During onepage checkout
When creating an order in admin for billing/shipping address
When inputing billing/shipping address for a customer in admin
Potrebbe qualcuno aiutarmi per favore? Stiamo facendo all'ingrosso e utilizzare solo ordine di acquisto e COD. Così, i clienti di solito mette solo in loro nome sbocco nel campo Nome. Cognome è solo facoltativa per loro.
Soluzione
Per rendere campo Cognome nessuna richiesta per la modifica del cliente in admin creare script di aggiornamento sql
/* @var $this Mage_Customer_Model_Resource_Setup */
$this->updateAttribute('customer_address','lastname','is_required','false');
Altri suggerimenti
ero alla ricerca di una risposta a questo problema me stesso e ho fuse entrambe le risposte, come si deve fare tutti questi passaggi - così sto undigging argomento morto per futuri utenti.
1. In primo luogo è bello per eseguire una query SQL (vale a dire in phpMyAdmin):
UPDATE eav_attribute SET is_required = 0 WHERE attribute_code = 'lastname'
2. Sbarazzarsi di classi per la validazione JS
class = "necessaria" e class = "richiesta-entry" ovunque collegati al campo 'cognome' dove ci sono forme per salvare (cioè cliente / indirizzo / edit.phtml, persistente / cassa / billing.phtml)
3. Copiare i file core da:
/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
in:
/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
e commentare fuori tutto ciò che riguarda la convalida Zend del cognome.
/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
si deve cercare di:
<lastname>
<billing>1</billing>
<shipping>1</shipping>
**<required>0</required>** // change from 1 to 0
<mapped>1</mapped>
</lastname>
1. Rimuovere le classi per la convalida JS dai tuoi modelli.
customer/widget/name.phtml
Rimuovere class="required"
dall'etichetta relativo al campo lastname
alla riga 80
Rimuovere <?php echo $this->helper('customer/address')
->getAttributeValidationClass('lastname') ?>
dall'ingresso relativa ad lastname
alla riga 82
2. Copiare i file core da:
/app/code/core/Mage/customer/Model/Address/Abstract.php /app/code/core/Mage/customer/Model/Customer.php
in:
/app/code/local/Mage/customer/Model/Address/Abstract.php /app/code/local/Mage/customer/Model/Customer.php
e commentare fuori tutto ciò che riguarda la convalida Zend del cognome.
/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
codice php
/*
if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
$errors[] = Mage::helper('customer')->__('The last name cannot be empty.');
}
*/
3. Aggiornare il file config.xml per il cliente
/app/code/core/Mage/customer/etc/config.xml
Copia su file
/app/code/local/Mage/customer/etc/config.xml
Per il campo last_name
,
impostare il valore richiesto "1" a "0"
4. Finalmente aggiornamento utilizzando query di fila nel database
UPDATE eav_attribute SET is_required = 0 WHERE attribute_code = 'lastname'
Per me, tutto quello che ho fatto per risolvere questo era questo:
update eav_attribute set is_required=0 where attribute_code like 'firstname';
update eav_attribute set is_required=0 where attribute_code like 'lastname';