Wie entferne ich die mittlere Initiale / den mittleren Namen des Kunden von der Checkout-Seite?

19

Seit dem Upgrade auf die neueste Version von Magento ist mir aufgefallen, dass auf der Checkout-Seite ein neuer Eintrag mit der Frage nach dem Zweitnamen / der Initiale des Kunden angezeigt wurde.

Wie entferne ich den Eintrag "Zweiter Vorname / Initiale" von der Checkout-Seite?

SR_Magento
quelle

Antworten:

46

Wie sich das Update auf Magento 1.9.2.1 auf Middle Name auswirkt

Erstens die Lösung

Ich hatte das gleiche Problem beim Update auf Magento CE 1.9.2.1 von Magento CE 1.9.2.0 . Das Update verursachte, dass Middle Name angezeigt wurde, aber als ich den Administrator überprüfte, zeigte die System > Configuration > Customers > Customer Configuration > Name and Address OptionsEinstellung "Show Middle Name (initial)" bereits "No" an - was ich wollte. Ich habe die Einstellung in "Ja" und dann wieder in "Nein" geändert, bevor ich auf "Konfiguration speichern" geklickt habe. Dadurch wurde Middle Name / Initial beim Aktualisieren der Seite sofort aus der Kasse entfernt.

Die Datenbank

In meinem Fall arbeite ich daran, einen Store von Magento 1.8.x auf Magento 1.9.x zu aktualisieren. In meiner Entwicklungsumgebung habe ich ein Update von 1.9.2.0 auf 1.9.2.1 durchgeführt. Um die Live-Site auf den neuesten Stand zu bringen, wenn wir das Upgrade von 1.8.x auf 1.9.x starten, müssen wir viele der Administratoreinstellungen aktualisieren, die wir mit einer Abfrage direkt in der Datenbank vornehmen möchten. In der Datenbank können Sie sehen, wie Magento die Middle Name-Einstellung ändert.

Die angezeigte Admin-Einstellung kann irreführend sein

Die Tabelle "core_config_data" behandelt die Administratoreinstellung für "Show Middle Name (initial)" mit dem Datensatz where `core_config_data`.`path`='customer/address/middlename_show'.

Dieser Datensatz enthält die Einstellung im Feld "Wert" (0 = "Nein", 1 = "Ja"). Dieses Feld wird nicht geändert, wenn der zweite Vorname beim Upgrade auf Magento CE 1.9.2.1 angezeigt wird . Wenn Sie eine Änderung an "Show Middle Name (initial)" in den Admin-Einstellungen speichern, nachdem Magento während des Updates auf 1.9.2.1 Änderungen vorgenommen hat, wird hier der Wert "core_config_data" geändert.

Das Update auf 1.9.2.1 hat den Eintrag in "core_config_data" und damit auch die Anzeige in den Admin-Einstellungen nicht verändert. Das Update ändert jedoch einen anderen Datensatz einer anderen Tabelle.

Die tatsächliche Sichtbarkeit des Zweitnamens befindet sich in "customer_eav_attribute"

In meinen vielen Dev-Instanzen von Magento hat die Tabelle "eav_attribute" 2 "Middle Name" "attribute_code" (s), die "attribute_id" (s) sind 6 und 21 . Die Tabelle "customer_eav_attribute" legt die Sichtbarkeit des Attributs mit einem Feld "is_visible" fest.

  • In meiner Live 1.8.x Umgebung hatten `attribute_id` (s) 6 und 21 `is_visible` = 0.
  • Nach dem Update des Entwicklers auf Magento CE 1.9.2.1 von Magento CE 1.9.2.0 wurde es `is_visible` = 1.
  • Nachdem ich umgeschaltet und den Administrator "Show Middle Name (initial)" auf "No" gespeichert hatte, `is_visible`=0verschwand das Feld " Middle Name / Initial" wieder aus Checkout.

Zusammenfassung

Das Update von Magento CE 1.9.2.1 hat die Einstellung " Zweiter Vorname" in der Tabelle "customer_eav_attribute" umgedreht, ohne dass dies Auswirkungen auf die Anzeige im Magento-Administrator unter der Einstellung " Zweiter Vorname (Anfänglich) anzeigen" hat. Sie können die Einstellung so ändern, wie sie normalerweise im Administrator vorgenommen wird, ohne weitreichende Vorlagenanpassungen vornehmen zu müssen, indem Sie die Einstellung "Show Middle Name (Initial)" aktivieren.

Randnotiz

Wenn Sie diese Administratoreinstellung aus irgendeinem Grund auf mehrere Kopien eines Geschäfts oder in einer Reihe von Administratoraktualisierungen übertragen müssen, z. B. während Sie ein Geschäft aktualisieren, um es an eine Entwicklungsumgebung anzupassen, können Sie die folgende SQL-Anweisung für diese Einstellung verwenden ( vorausgesetzt, Sie wissen, dass "zweiter Vorname" in Ihrem Geschäft "attribute_id" 6 und 21 ist. Dies ist in Magento Standard, aber um sicherzugehen, überprüfen Sie zuerst Ihre Tabelle "eav_attribute".).

UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);

user31617
quelle
Fix auf Magento 1.9.2.1 funktioniert gut für mich
Fra
5

Die technische Antwort

Die Systemkonfigurationsoption verfügt über ein Backend-Modell ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer), dessen _afterSaveMethode die gleiche Änderung im Kunden-EAV-Attribut vornimmt (Tabelle:) customer_eav_attribute.

Der Systemkonfigurationsoptionswert und der EAV-Attributwert is_visiblesind möglicherweise nicht unbedingt synchron (entweder aufgrund eines Magento-Upgrades oder wenn die Konfigurationsoption programmgesteuert geändert wurde oder aus einem anderen Grund).

Wenn Sie den Schalter ein paarmal umlegen, wird das Problem behoben. Wenn Sie wie ich sind und für alles Installations- / Upgrade-Skripte verwenden, können Sie Folgendes tun:

Mage::getModel('core/config')
    ->saveConfig('customer/address/middlename_show', 0);    

try {

    $attribute = Mage::getSingleton('eav/config')
        ->getAttribute('customer', 'middlename')
        ->setIsVisible(0)
        ->save();

    $attribute = Mage::getSingleton('eav/config')
        ->getAttribute('customer_address', 'middlename')
        ->setIsVisible(0)
        ->save();

} catch (Exception $e) {
    Mage::logException($e);
    throw $e;
}
Erfan
quelle
1
Danke, funktioniert super. Sie sollten auch den Code für das Kundenadressattribut hinzufügen:$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Andreas von Studnitz
2

Der einfachste Weg:

Magento ver. 1.9.2.1

System > Configuration > Customers > Customer configuration > Name and Address Options

Show Middle Name (initial) = No

Bildbeschreibung hier eingeben

Ricardo Meza
quelle
Dies wurde bereits festgelegt.
SR_Magento
Wählen Sie einfach Ja -> Speichern. Wählen Sie erneut Nein-> Speichern. Cache aktualisieren und sehen.
Pratik Kamani
0

Entfernen, {{depend middlename}}{{var middlename}}wie @sr_magento in seiner Antwort vorschlägt, entfernt das Show Middle Name (initial)Feld nicht von der Checkout-Seite. Es wird nur aus den Bereichen entfernt, in denen die Kundenadressinformationen gerendert / gedruckt werden, z. B. im Administrationsbereich, in PDFs und in E-Mail-Vorlagen.

Das Feld muss nicht aus den E-Mail-Vorlagen entfernt werden. Dies ist zu viel des Guten und Sie müssten diese Einträge erneut zu den E-Mail-Vorlagen hinzufügen, falls Sie sich entscheiden, die Show Middle Name(initial)zu einem späteren Zeitpunkt zu aktivieren .

Ich habe diesen Fehler auch bemerkt, nachdem ich mit dem Magento-Downloader von Magento CE 1.9.2.0 auf Magento CE 1.9.2.1 aktualisiert habe . Das Update scheint die Einstellung für Show Middle Name (initial)unter anzupassen

System > Configuration > Customers > Customer Configuration > Name and Address Options

von "Nein" bis "Ja" . Es ist mir in mehreren Läden auf verschiedenen Servern passiert.

Um dies rückgängig zu machen, setzen Sie es einfach zurück auf "Nein" und speichern Sie die Konfiguration. Das Show Middle Name (initial)Feld wird nicht mehr auf der Checkout-Seite angezeigt.

Format
quelle
@sr_magento Ihre Methode funktioniert möglicherweise (obwohl ich nicht sicher bin, warum, ich vermute, dass das Speichern der Konfiguration den Trick macht), aber Ihre Argumentation ist falsch. Wenn Sie das von Address TemplatesIhnen vorgeschlagene ändern, werden die Eingabefelder für die Checkout-Seite im Frontend des Shops nicht geändert. Es wirkt sich nur auf die Vorlagen zum Drucken von Adressen aus. Bitte lesen Sie die folgende Dokumentation . Sie haben Recht mit den Kundenbereichen im Admin-Bereich. Ich werde diesen Teil meiner Antwort umformulieren.
ForMat
0

Wenn Sie direkt aus der Datei entfernen möchten, dann

Öffnen Sie die folgende Datei

app => design => frontend => base => default => template => customer => widget => name.phtml

Suchen Sie nach dem if ($this->showMiddlename()) Auskommentieren oder entfernen Sie die vollständige if-Anweisung

Alam Zaib
quelle