После обновления до последней версии 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 »(ы) - 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 под«(начальная) Показать ОТЧЕСТВО»настройки. Вы можете исправить это, как обычно настраивая настройку в администраторе, не внося далеко идущих корректировок шаблона, переключив настройку «Показать отчество (начальное)».
Если по какой-либо причине вам необходимо перенести этот параметр администратора в несколько копий хранилища или в пакет обновлений администратора, например, при обновлении хранилища для соответствия среде dev ... Вы можете использовать следующий оператор SQL для этого параметра ( при условии, что вы знаете, что «второе имя» в вашем магазине - «attribute_id» 6 и 21. Это стандартно для Magento, но для большей безопасности сначала дважды проверьте таблицу `eav_attribute`.).
UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);
Параметр конфигурации системы имеет backend model ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer
), _afterSave
метод которого делает то же самое изменение в атрибуте EAV клиента (table:) customer_eav_attribute
.
Значение параметра конфигурации системы и значение атрибута EAV is_visible
не обязательно должны быть синхронизированы (либо из-за обновления Magento, либо из-за того, что параметр конфигурации был изменен программно, либо по любой другой причине).
Несколько раз щелкнув переключателем, вы исправите его, или, если вы похожи на меня и используете сценарии установки / обновления для всего, вы можете сделать следующее:
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 вер. 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
как вы предлагаете, не меняет поля ввода страницы оформления заказа во внешнем интерфейсе магазина. Это влияет только на шаблоны для печати адресов. Пожалуйста, прочитайте следующую документацию . Вы правы насчет клиентских областей в админ-панели. Я перефразирую эту часть моего ответа.