So machen Sie den Nachnamen optional in Magento 1.8
-
16-10-2019 - |
Frage
Ich habe die Datenbank direkt aktualisiert, um IS_READE auf LastName = 0 zu erstellen.
Entfernte den JS -Validator für Lastname in Core.
Entfernen Sie das erforderliche Feld in Frontend in Widget/name.phtml.
Die Nachricht "Nachname ist erforderlich" jedoch immer noch an 3 Stellen:
During onepage checkout
When creating an order in admin for billing/shipping address
When inputing billing/shipping address for a customer in admin
Könnte mir bitte jemand helfen? Wir machen einen Großhandel und verwenden nur Bestellung und Kabeljau. Daher steckt der Kunde normalerweise nur seinen Auslassnamen im Feld Vorname ein. Nachname ist für sie einfach optional.
Lösung
Um das Feld Nachname für die Kundenbearbeitung im Administrator SQL -Upgrade -Skript zu erstellen
/* @var $this Mage_Customer_Model_Resource_Setup */
$this->updateAttribute('customer_address','lastname','is_required','false');
Andere Tipps
Ich habe selbst eine Antwort auf dieses Problem gesucht und beide Antworten zusammengefasst, da Sie all diese Schritte ausführen müssen - also spiele ich das tote Thema für zukünftige Benutzer unter.
1. Zuerst ist es schön, eine SQL -Abfrage auszuführen (dh in Phpmyadmin):
UPDATE eav_attribute SET is_required = 0 WHERE attribute_code = 'lastname'
2. Beseitigen Sie den Unterricht für die JS -Validierung
class = "fordert" und class = "forders-ein" überall mit dem Feld 'LastName', in dem es Formulare zum Speichern gibt (dh Kunde/Adresse/edit.phtml, persistent/checkout/billing.phtml)
3. Kopieren Sie Ihre Kerndateien aus:
/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
hinein:
/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
Und kommentieren Sie alles, was mit der Zend -Validierung von LastName zu tun hat.
/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
Sie müssen nach:
<lastname>
<billing>1</billing>
<shipping>1</shipping>
**<required>0</required>** // change from 1 to 0
<mapped>1</mapped>
</lastname>
1. Entfernen Sie die Klassen für die JS -Validierung aus Ihren Vorlagen.
customer/widget/name.phtml
Entfernen class="required"
vom Etikett in Bezug auf die lastname
Feld in Zeile 80
Entfernen <?php echo $this->helper('customer/address')
->getAttributeValidationClass('lastname') ?>
von der Eingabe in Bezug auf lastname
in Zeile 82
2. Kopieren Sie Ihre Kerndateien aus:
/app/code/core/mage/customer/model/address/abstract.php/code/core/mage/customer/model/customer.php
hinein:
/app/code/local/mage/customer/model/address/abstract.php/code/local/mage/customer/model/customer.php
Und kommentieren Sie alles, was mit der Zend -Validierung von LastName zu tun hat.
/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
PHP -Code
/*
if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) {
$errors[] = Mage::helper('customer')->__('The last name cannot be empty.');
}
*/
3. Aktualisieren Sie die Datei config.xml für den Kunden
/app/code/core/mage/customer/etc/config.xml
Kopieren Sie in Datei
/app/code/local/mage/customer/etc/config.xml
Zum last_name
Feld, den erforderlichen Wert "1" auf "0" festlegen
4. Letztes Update mithilfe einer Zeilenabfrage in der Datenbank
UPDATE eav_attribute SET is_required = 0 WHERE attribute_code = 'lastname'
Für mich war alles, was ich getan habe, um dies zu lösen, dies:
update eav_attribute set is_required=0 where attribute_code like 'firstname';
update eav_attribute set is_required=0 where attribute_code like 'lastname';