Вопрос

Я уже ответил на этот вопрос для внешней проверки PostCode: Проверка почтового индекса не работает должным образом

Как я могу добавить проверку на стороне сервера?Спасибо.

Это было полезно?

Решение

Вы можете использовать мероприятие customer_address_validation_after. Это событие уволено во время функции подтверждения по адресу модели и передал рассматриваемый адрес.

Mage::dispatchEvent('customer_address_validation_after', array('address' => $this));
.

Что вы можете сделать здесь, проверьте, является ли атрибут почтового индекса NUMIC, с помощью того, что когда-либо означает, что вы хотите, а затем использовать функцию Add Erruction, доступную в классе GeneracodicCode.

Во-первых, вам понадобится модуль, который имеет определение моделей и определение событий в этом config.xml.

Тогда вам нужно будет создать модель наблюдателя. В настоящее время у нас будет только одна функция. Один определен для использования событием в вашем config.xml.

Ваш код может выглядеть что-то вроде следующего.

$address = $observer->getAddress();
if (postcode is not valid) {
    $address->addError(Mage::helper('customer')->__('Please enter a valid postcode'));
}
.

Несколько хороших ссылок для понимания событий:

  1. http://www.magentocommerce.com/wiki/ 5 _-_ modules_and_development / 0 _-_ module_development_in_magento / custommance_magento_using_event-sounter_method
  2. http://inchoo.net/ecommerce/magento / Magento-Event-Engine-Programming-Tips-Ticks /
  3. http://www.pierrefay.com/event-observers- Magento-Turorial - Howto-105

Другие советы

Я могу придумать хотя бы одно место, где можно проверить это на стороне сервера.Вы можете сделать это в контроллере, чтобы перенаправить клиента обратно на страницу с мигающим сообщением о том, что поле формы неверно.

В Mage_Customer_AddressController::formPostAction(), вы можете проверить значение почтового индекса и проверить, является ли это числом.Если нет, перенаправьте клиенту флэш-сообщение.

// Pseudocode

// After validating the form key...
$postcode = $this->getRequest()->getParam('code');
if (!is_numeric($postcode)) {
    // redirect to form/where user came from
}

// continue as usual

Вы можете заполнить код.Вам также необходимо будет указать любые другие формы, в которых вводятся почтовые индексы.Поскольку вы не сказали конкретно, это один из них, который вы можете изменить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top