Після оновлення до останньої версії Magento я помітив, що на сторінці оформлення замовлення з’явився новий запис із запитом серед прізвища / початкової назви клієнтів.
Як видалити запис "Прізвище / початкове" зі сторінки оформлення замовлення?
Після оновлення до останньої версії Magento я помітив, що на сторінці оформлення замовлення з’явився новий запис із запитом серед прізвища / початкової назви клієнтів.
Як видалити запис "Прізвище / початкове" зі сторінки оформлення замовлення?
Відповіді:
У мене був той самий випадок, коли я оновлювався до 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`, а отже, що відображається в налаштуваннях адміністратора. Але оновлення змінює інший запис іншої таблиці.
У багатьох моїх розробниках Magento в таблиці `eav_attribute` є 2" середнього імені "` attribute_code` (s), `attribute_id` (s) - 6 і 21 . Таблиця `customer_eav_attribute` встановлює видимість атрибута з полем 'is_visible'.
`is_visible` = 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);
Опція конфігурації системи має модель бекенда ( 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;
}
$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Найпростіший спосіб:
Magento ver. 1.9.2.1
System > Configuration > Customers > Customer configuration > Name and Address Options
Show Middle Name (initial)
= No
Видалення, {{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)
поле більше не буде відображатися на сторінці оформлення замовлення.
Address Templates
запропонованого вами варіанту не змінює поля введення сторінки Checkout у передній частині магазину. Це впливає лише на шаблони для друку адрес. Прочитайте наступну документацію . Ви маєте рацію щодо областей клієнтів на панелі адміністратора. Я перефразую цю частину своєї відповіді.