Как удалить имя и фамилию клиента со страницы оформления заказа?


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 »(ы) - 6 и 21 . Таблица customer_eav_attribute устанавливает видимость атрибута с полем is_visible.

  • В моей среде 1.8.x `attribute_id` 6 и 21 были `is_visible` = 0.
  • После обновления dev до 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 под«(начальная) Показать ОТЧЕСТВО»настройки. Вы можете исправить это, как обычно настраивая настройку в администраторе, не внося далеко идущих корректировок шаблона, переключив настройку «Показать отчество (начальное)».

Примечание

Если по какой-либо причине вам необходимо перенести этот параметр администратора в несколько копий хранилища или в пакет обновлений администратора, например, при обновлении хранилища для соответствия среде dev ... Вы можете использовать следующий оператор 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 прекрасно работает для меня
Fra

5

Технический ответ

Параметр конфигурации системы имеет 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;
}

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

2

Самый простой способ:

Magento вер. 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как вы предлагаете, не меняет поля ввода страницы оформления заказа во внешнем интерфейсе магазина. Это влияет только на шаблоны для печати адресов. Пожалуйста, прочитайте следующую документацию . Вы правы насчет клиентских областей в админ-панели. Я перефразирую эту часть моего ответа.
ForMat

0

Если вы хотите удалить непосредственно из файла, то

Открыть следующий файл

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

искать if ($this->showMiddlename()) комментарий или удалить этот полный оператор if

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.