Як видалити середню початкову / назву клієнтів зі сторінки оформлення замовлення?


19

Після оновлення до останньої версії Magento я помітив, що на сторінці оформлення замовлення з’явився новий запис із запитом серед прізвища / початкової назви клієнтів.

Як видалити запис "Прізвище / початкове" зі сторінки оформлення замовлення?

Відповіді:


46

Як оновлення Magento 1.9.2.1 впливає на прізвище

По-перше, рішення

У мене був той самий випадок, коли я оновлювався до Magento CE 1.9.2.1 від Magento CE 1.9.2.0 . Оновлення призвело до відображення середнього імені, але коли я перевірив адміністратора, System > Configuration > Customers > Customer Configuration > Name and Address Optionsпараметр "Показати ім'я середнього ім'я (початкове)" вже відображав "Ні" - чого я хотів. Я змінив налаштування на "Так", а потім повернувся до "Ні", перш ніж натиснути "Зберегти конфігурацію", і це негайно видалило середнє ім'я / початкове з Checkout, коли я оновив сторінку.

База даних

У моєму випадку я працюю над оновленням магазину від Magento 1.8.x до Magento 1.9.x. Саме в моєму середовищі розробки я оновив з 1.9.2.0 до 1.9.2.1. Щоб оновити веб-сайт в реальному часі, коли ми запускаємо оновлення з 1.8.x до 1.9.x, нам потрібно буде оновити багато параметрів адміністратора, які ми плануємо робити безпосередньо в базі даних із запитом. У базі даних ви можете побачити, як Magento змінює налаштування Прізвища.

Вибране налаштування адміністратора може ввести в оману

Таблиця `core_config_data` обробляє параметр адміністратора для" Показати ім'я середнього (початкового) запису з записом де `core_config_data`.`path`='customer/address/middlename_show'.

Цей запис містить налаштування у полі `value '(0 =" Ні ", 1 =" Так "). Це поле не змінюється, коли середнє ім’я з’являється, перейшовши на Magento CE 1.9.2.1 . Якщо ви збережете зміни до "Показати середнє ім'я (початкове)" в налаштуваннях адміністратора після того, як Magento вносить зміни під час оновлення до 1.9.2.1, тут буде змінено значення `core_config_data`.

Оновлення до 1.9.2.1 не змінило запис на `core_config_data`, а отже, що відображається в налаштуваннях адміністратора. Але оновлення змінює інший запис іншої таблиці.

Фактична видимість середнього імені вказана у `customer_eav_attribute '

У багатьох моїх розробниках Magento в таблиці `eav_attribute` є 2" середнього імені "` attribute_code` (s), `attribute_id` (s) - 6 і 21 . Таблиця `customer_eav_attribute` встановлює видимість атрибута з полем 'is_visible'.

  • У моєму живому середовищі 1.8.x, `attribute_id` (s) 6 та 21 мали `is_visible` = 0.
  • Після оновлення розробника до Magento CE 1.9.2.1 від Magento CE 1.9.2.0 це стало `is_visible` = 1.
  • Після переключення та збереження адміністратора "Показати ім'я середнього (початкового)" на "Ні", `is_visible`=0знову ж таки поле "Середнє ім'я / Початкове" зникло з Checkout.

Підсумок

1.9.2.1 Magento CE оновлення перекинув установку ОТЧЕСТВО в `customer_eav_attribute` таблиці , не зачіпаючи то , що відображається в адмін Magento під« (початкова) Показати ОТЧЕСТВО »настройки. Ви можете виправити це так, як зазвичай налаштовано налаштування в адміністраторі, не здійснюючи далекосяжних коригувань шаблону, ввімкнувши налаштування "Показати ім'я середнього (початкового)".

Бічна примітка

Якщо з якоїсь причини вам потрібно перенести це налаштування адміністратора через кілька копій магазину або в пакеті оновлень адміністратора, наприклад, під час оновлення магазину, щоб відповідати середовищу розробників ... Ви можете використовувати наступний оператор SQL для цього налаштування ( за умови, що ви знаєте, що "середнє ім'я" - це "attribute_id` 6 і 21. у вашому магазині. Це стандартно для Magento, але щоб бути безпечним, спочатку перевірте таблицю` eav_attribute`.).

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


Виправлення на Magento 1.9.2.1 працює відмінно для мене
Від

5

Технічна відповідь

Опція конфігурації системи має модель бекенда ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer), _afterSaveметод якої вносить ті ж зміни в атрибут клієнта EAV (таблиця:) customer_eav_attribute.

Значення параметра налаштування системи та значення атрибута EAV is_visibleне обов'язково синхронізуються (або через оновлення Magento, або якщо параметр config було змінено програмно, або з будь-якої іншої причини).

Перемістивши перемикач кілька разів, це виправить, або, якщо ви такі, як я, і використовуйте сценарії встановлення / оновлення для всього, ви можете зробити наступне:

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;
}

1
Дякую, чудово працюю. Ви також повинні додати код для атрибута адреси клієнта:$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Андреас фон Студніц

2

Найпростіший спосіб:

Magento ver. 1.9.2.1

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

Show Middle Name (initial) = No

введіть тут опис зображення


Це вже було встановлено.
SR_Magento

Просто виберіть Так -> зберегти. знову виберіть Ні-> зберегти. оновити кеш і побачити.
Пратік Камані

0

Видалення, {{depend middlename}}{{var middlename}}як @sr_magento пропонує у своїй відповіді насправді не видаляти видалитиShow Middle Name (initial) поле зі самої сторінки оформлення каси. Він видаляє його лише з областей, де інформація про клієнта надається / друкується, як, наприклад, в області адміністратора, шаблонах PDF та електронної пошти.

Не потрібно видаляти поле з шаблонів електронної пошти. Це надмірно, і вам доведеться знову додати ці записи до шаблонів електронної пошти, якщо ви вирішите включитиShow Middle Name(initial) в майбутньому.

Я також помітив цей глюк після оновлення з Magento CE 1.9.2.0 до Magento CE 1.9.2.1 за допомогою завантажувача Magento. Оновлення, здається, коригує налаштування Show Middle Name (initial)під

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

від "Ні" до "Так" . Це трапилося зі мною в декількох магазинах на різних серверах.

Щоб скасувати це, просто встановіть його на "Ні" та збережіть конфігурацію. Чи не Show Middle Name (initial)поле більше не буде відображатися на сторінці оформлення замовлення.


@sr_magento Ваш метод може працювати (хоча я не впевнений, чому, я підозрюю, що просто збереження конфігурації робить трюк), але ваші міркування невірні. Зміна Address Templatesзапропонованого вами варіанту не змінює поля введення сторінки Checkout у передній частині магазину. Це впливає лише на шаблони для друку адрес. Прочитайте наступну документацію . Ви маєте рацію щодо областей клієнтів на панелі адміністратора. Я перефразую цю частину своєї відповіді.
ForMat

0

Якщо ви хочете видалити безпосередньо з файлу, тоді

Відкрийте наступний файл

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

пошук if ($this->showMiddlename()) коментарів або видалення цього завершеного, якщо твердження

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.