В завершение проделанной работы нам остаётся отправить SMS и записать успешную верификацию.

Для начала проверяем ,что это действительно номер телефона, а не пустое поле:

if (!empty(Tools::getValue(‘phone’)) && Validate::isPhoneNumber(Tools::getValue(‘phone’)))

Затем проведём проверку на существование в базе данных телефонного номера:

Db::getInstance()->getValue(‘SELECT EXISTS
(SELECT phone FROM ‘.DB_PREFIX.’customer
WHERE phone = ‘.(int)Tools::getValue(‘phone’).’)’)

Как только все условия были выполнены, мы отправляем SMS и записываем сгенерированный код в cookie для дальнейшего сравнения:

Не важно каким именно Вы пользуетесь сервисом — как только отправили SMS, вводите код в поле verification_number и отправляйте на адрес /login?action=compare_code. Для этого, соответственно, нужно в методе phoneVerification() добавить проверку параметра
action=compare_code:

if (Tools::getValue(‘action’) == ‘compare_code’) {

и написать нашу функцию отправки кода подтверждения:

$.ajax({
type: «POST»,
headers: {«cache-control»: «no-cache»},
async: true,
cache: false,
url: ‘/login?action=compare_code’,
data:’code_verification=’+$(‘input[name=»verification_number»]’).val(),
dataType: «json»,

Осталось проверить код и записать, что телефон подтверждён, где именно это сделать показано ниже, на screenshot:

Записать о удачном сравнении можно, создав в таблице customer поле под названием is_verification и добавив в файл переопределения Customer.php строчку кода :

‘is_verification’ => array(‘type’ => self::TYPE_BOOL, ‘validate’ => ‘isBool’, ‘copy_post’ => false),

После чего нам останется добавить в файл переопределения дополнительное поле:

$format[‘is_verification’] = (new FormField)
->setName(‘is_verification’)
->setType(‘hidden’)
->setValue(0)
;


В случае удачной верификации оно запишет к данному пользователю флаг об успешном подтверждении номера телефона.

Если у Вас возникли проблемы и требуется помощь, то Вы всегда сможете обратиться за ней к команде Presta-Shop24.

На этом у нас всё. Хорошего Вам дня и успехов в работе!

Скачать исходные материалы