В первой части мы работали над добавлением поля для верификации номера телефона.
Продолжим нашу работу и начнём с написания JS функции, позволяющей добавить кнопку отправки сообщения на номер телефона. Для этого в файле скриптов пропишем строчку:

$(‘input[name=»phone_e»]’).parent().parent().find(‘.form-control-comment’).html(‘Кнопка’);

Поздравляем! Кнопка добавлена, теперь стоит перейти к обработчику и отправке SMS. В начале переопределим контролёр, по пути /override/controllers/front/, создадим файл AuthController.php и в нём воспользуемся новым методом protected function phoneVerification().

В принципе, тут нет ничего сложно. В дополнительных материалах выложим этот класс, а сейчас просто кратко опишем методы:

Метод genn($length) генерирует случайное число и принимает одно свойство — длинна кода для отправки по SMS.

Метод showDate($time) принимает время записанное в Cookie в момент первой отправки и служит для определения временного интервала, пройденного с момента первой отправки SMS. Грубо говоря, не позволяет пользователю отправлять SMS постоянно, а ставит ограничение по отправке на определённый интервал времени.

Для обращения к необходимому url нам нужно в методе phoneVerification() сделать проверку на GET параметр phone_verification = 1 и action=phone

if (Tools::getIsset(‘phone_verification’) && Tools::getValue(‘action’) == ‘phone’)

Теперь мы можем обращаться по url /login?phone_verification=1&action=phone и производить действия для отправки SMS и верификации пользователя.

Чтобы не перезагружать нашу страницу, напишем скрипт js для отправки данных, выложим небольшой фрагмент для наглядности:

$.ajax({
type: «POST»,
headers: {«cache-control»: «no-cache»},
async: true,
cache: false,
url: ‘/login?phone_verification=1&action=phone’,
data:’phone=’+$(‘input[name=»phone_e»]’).val(),
dataType: «json»,
success: function(response) {}
});

Принцип такой:
1) Отправляем телефон
2) Блокируем кнопку
3) Показываем поле для ввода кода из SMS
4) Отправляем на сравнение

На этом вторая часть подошла к своему логическому завершению, если у Вас всё получилось, то смеле переходите к третей части. Возникла проблема — обращайтесь!