Требовать поле «Псевдоним» при вводе первого адреса / добавлении его в процессе оформления заказа. (ПС 1.7)

Я уже изучил FormField.php и CustomerAddressFormatter.php и не совсем понял.

Чего я пытаюсь достичь, так это:

Чтобы отображать поле «псевдоним», когда покупатель добавляет свой первый (или следующий) адрес через оформление заказа. На данный момент это поле видно только при редактировании адреса на странице «Ваша учетная запись». Сделайте поле «псевдоним» обязательным. Учитывая, что разница в полях между добавлением адреса за пределами страницы «ваша учетная запись» и адресом на странице учетной записи равна 10 против 11, я решил, что должно быть два разных файла .php и что настройка должна быть относительно быстрой. и простой. Однако, потратив на это 7 часов, я решил попросить помощи в поиске соответствующих файлов.

После некоторого дальнейшего поиска я обнаружил, что address-form.tpl содержит соответствующий раздел. Теперь я получил псевдоним для отображения в нужном месте. То, с чем я сейчас борюсь, заставляет это требоваться. Я подозреваю, что CustomerAddressFormatter.php является соответствующим файлом.


person John Doe    schedule 19.01.2019    source источник


Ответы (1)


Как я уже сказал в комментарии к вашему другому вопросу, поле псевдонима уже является обязательным по умолчанию.

Причина, по которой может показаться, что это не так, я полагаю, что этот маленький фрагмент кода в CustomerAddressForm.php:

if (empty($address->alias)) {
    $address->alias = $this->translator->trans('My Address', [], 'Shop.Theme.Checkout');
}

Который заполняет поле переводом «Мой адрес». Итак, в качестве простого способа принудительного ввода в это поле просто удалите эту строку (конечно, с переопределением!). Вероятно, вам следует добавить настоящую проверку и соответствующие сообщения об ошибках (не уверен, что их еще нет).

Чтобы добавить немного контекста: поле псевдонима отображалось по умолчанию в версии PS ‹ 1.7. Это вызвало большое раздражение, поскольку это поле в значительной степени уникально для интернет-магазинов prestashop, и клиенты часто не знали, для чего оно предназначено.

person defuzed    schedule 23.01.2019