Как "на лету" менять поля формы при оформлении заказа в WooCommerce?

Я хочу сделать проверку телефона при помощи СМС во время оформления заказа (/checkout/). В настройках WooCommerce у меня стоит галка "Разрешить регистрацию пользователям при оформлении заказа".

Проверку я хочу реализовать так:

  1. Пользователь заполняет форму /checkout/ (она же форма регистрации).
  2. Я перехвачиваю эту форму, отсылаю СМС на полученный в форме номер телефона. Вывожу "ошибку" с просьбой ввести проверочный код, полученный по СМС.
  3. Задаю $_SESSION ['sms_sent'] = true
  4. Если $_SESSION ['sms_sent'] == true, то меняю поле телефона на поле СМС (или добавляю поле СМС в форму).
  5. Проверяю отосланную пользователем форму еще раз. Если СМС совпали - пропускаю регистрацию дальше.

Вопрос - как менять поля формы после первоначального отправления данных? Проблема в том, что форма /checkout/ отсылается аяксом, я могу посмотреть отосланные в форме данные хуком "woocommerce_checkout_process" и проверить их правильность-неправильность, но поменять поля формы я не знаю как. Хуки типа "woocommerce_before_checkout_registration_form" в этот момент уже не работают.

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


Ответы (0 шт):