Jak usunąć środkową inicjał / nazwę klienta ze strony kasy?

19

Od czasu aktualizacji do najnowszej wersji Magento zauważyłem, że na stronie kasy pojawił się nowy wpis z prośbą o drugie imię / inicjał klienta.

Jak usunąć wpis „Drugie imię / inicjał” ze strony kasy?

SR_Magento
źródło

Odpowiedzi:

46

Jak aktualizacja Magento 1.9.2.1 wpływa na drugie imię

Po pierwsze rozwiązanie

Miałem ten sam problem podczas aktualizacji do Magento CE 1.9.2.1 z Magento CE 1.9.2.0 . Aktualizacja spowodowała wyświetlenie Drugiego imienia, ale kiedy sprawdziłem administratora, System > Configuration > Customers > Customer Configuration > Name and Address Optionsustawienie „Pokaż drugie imię (początkowe)” wyświetlało już „Nie” - tego właśnie chciałem. Zmieniłem ustawienie na „Tak”, a następnie z powrotem na „Nie”, zanim kliknąłem „Zapisz konfigurację”, a to natychmiast usunęło drugie imię / inicjał z kasy, kiedy odświeżyłem stronę.

Baza danych

W moim przypadku pracuję nad aktualizacją sklepu z Magento 1.8.x do Magento 1.9.x. W moim środowisku programistycznym zaktualizowałem wersję z 1.9.2.0 do 1.9.2.1. Aby zaktualizować witrynę na żywo, kiedy uruchomimy aktualizację z wersji 1.8.x do 1.9.x, będziemy musieli zaktualizować wiele ustawień administratora, co planujemy wykonać bezpośrednio w bazie danych za pomocą zapytania. W bazie danych możesz zobaczyć, jak Magento zmienia ustawienie Drugiego imienia.

Wyświetlane ustawienie administratora może wprowadzać w błąd

Tabela „core_config_data` obsługuje ustawienie administratora dla„ Pokaż drugie imię (początkowe) z zapisem gdzie `core_config_data`.`path`='customer/address/middlename_show'.

Ten rekord zawiera ustawienie w polu „wartość” (0 = „Nie”, 1 = „Tak”). To pole nie ulega zmianie, gdy pojawia się drugie imię po aktualizacji do Magento CE 1.9.2.1 . Jeśli zapiszesz zmianę „Pokaż drugie imię (początkowe)” w ustawieniach administratora po tym, jak Magento dokona zmian podczas aktualizacji do 1.9.2.1, zmieni tutaj wartość „core_config_data`.

Aktualizacja do 1.9.2.1 nie zmieniła rekordu w `core_config_data`, a zatem co jest wyświetlane w ustawieniach administratora. Ale aktualizacja zmienia inny zapis innej tabeli.

Rzeczywista widoczność drugiego imienia znajduje się w `customer_eav_attribute`

W moich wielu instancjach deweloperskich Magento, tabela `eav_attribute` ma 2„ drugie imię ”„ kod_atrybutu ”, przy czym„ atrybut_id ”to 6 i 21 . `Customer_eav_attribute` tabela widoczności atrybutu z pola` is_visible`.

  • W moim żywym środowisku 1.8.x `atrybuty id (s) 6 i 21 miały `is_visible` = 0.
  • Po aktualizacji dev do Magento CE 1.9.2.1 z Magento CE 1.9.2.0 stało się `is_visible` = 1.
  • Po tym, jak przełączyłem i zapisałem administratora „Pokaż drugie imię (początkowe)” na „Nie”, `is_visible`=0ponownie, a drugie imię i drugie pole zniknęły z kasy.

streszczenie

Magento CE 1.9.2.1 Aktualizacja przerzucony ustawienie drugie imię w tabeli `customer_eav_attribute` bez wpływu na to, co jest wyświetlane w admin Magento pod„Pokaż drugie imię (początkowy)”ustawienie. Możesz to naprawić w taki sposób, że ustawienie jest zwykle dostosowywane przez administratora, bez dokonywania daleko idących dostosowań szablonów, przełączając ustawienie „Pokaż drugie imię (początkowe)”.

Dygresja

Jeśli z jakiegoś powodu musisz przenieść to ustawienie administratora do wielu kopii sklepu lub w pakiecie aktualizacji administratora, na przykład podczas uaktualniania sklepu w celu dopasowania do środowiska programistycznego ... Możesz użyć następującej instrukcji SQL dla tego ustawienia ( pod warunkiem, że wiesz, że „drugie imię” w twoim sklepie to „id_atrybutu” 6 i 21. Jest to standard w Magento, ale dla bezpieczeństwa najpierw sprawdź najpierw tabelę „eav_attribute”).

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

użytkownik31617
źródło
fix na magento 1.9.2.1 działa dobrze dla mnie
Fra
5

Odpowiedź techniczna

Opcja konfiguracji systemu ma model zaplecza ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer), którego _afterSavemetoda dokonuje tej samej zmiany w atrybucie EAV klienta (tabela:) customer_eav_attribute.

Wartość opcji konfiguracji systemu i wartość atrybutu EAV is_visibleniekoniecznie muszą być zsynchronizowane (albo z powodu aktualizacji Magento, albo jeśli opcja konfiguracji została zmieniona programowo lub z innego powodu).

Kilkukrotne naciśnięcie przycisku naprawi go, a jeśli jesteś podobny do mnie i używasz skryptów instalacji / aktualizacji do wszystkiego, możesz wykonać następujące czynności:

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
źródło
1
Dzięki, działa świetnie. Należy również dodać kod atrybutu adresu klienta:$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Andreas von Studnitz
2

Najłatwiejszy sposób:

Magento ver. 1.9.2.1

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

Show Middle Name (initial) = No

wprowadź opis zdjęcia tutaj

Ricardo Meza
źródło
To było już ustawione.
SR_Magento,
Po prostu wybierz Tak -> zapisz. ponownie wybierz Nie-> zapisz. odśwież pamięć podręczną i zobacz.
Pratik Kamani
0

Usunięcie {{depend middlename}}{{var middlename}}sugerowane przez @sr_magento w odpowiedzi nie powoduje usunięcia Show Middle Name (initial)pola z samej strony kasy. Usuwa je tylko z obszarów, w których dane adresowe klienta są renderowane / drukowane, np. W obszarze administracyjnym, plikach PDF i szablonach e-mail.

Nie ma potrzeby usuwania pola z szablonów wiadomości e-mail. Jest to przesada i musisz ponownie dodać te wpisy do szablonów wiadomości e-mail, na wypadek gdybyś zdecydował się włączyć je Show Middle Name(initial)w przyszłości.

Zauważyłem też tę usterkę po aktualizacji z Magento CE 1.9.2.0 do Magento CE 1.9.2.1 za pomocą downloadera Magento. Wydaje się, że aktualizacja dostosowuje ustawienie dla Show Middle Name (initial)under

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

z „Nie” na „Tak” . Zdarzyło mi się to w kilku sklepach na różnych serwerach.

Aby to cofnąć, po prostu ustaw go ponownie na „Nie” i zapisz konfigurację. Show Middle Name (initial)Pola nie będą wyświetlane na stronie transakcji.

Format
źródło
@ sr_magento Twoja metoda może działać (choć nie jestem pewna dlaczego, podejrzewam, że po prostu zapisanie konfiguracji rozwiązuje problem), ale twoje rozumowanie jest nieprawidłowe. Zmiana Address Templatessugerowanego sposobu nie zmienia pól wejściowych Strona kasy w interfejsie sklepu. Wpływa tylko na szablony do drukowania adresów. Proszę przeczytać następującą dokumentację . Masz rację co do obszarów klienta w panelu administracyjnym. Przeformułuję tę część mojej odpowiedzi.
ForMat
0

Jeśli chcesz usunąć bezpośrednio z pliku, to

Otwórz następujący plik

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

wyszukaj if ($this->showMiddlename()) komentarz lub usuń tę kompletną instrukcję if

Alam Zaib
źródło