Настройка защиты от спамботов для PrestaShop
Эта инструкция устарела. Пожалуйста, воспользуйтесь новой инструкцией, чтобы защитить ваш сайт PrestaShop от спама.
1. Загрузите с Github.com CleanTalk API.
2. Распакуйте архив в папку <root directory>/classes/. Вы получите там папку"php-antispam-master". Переименуйте её в "cleantalk".
3. Пройдите в <root directory>/classes/cleantalk и откройте файл CleantalkValidate.php. Найдите строчку:
public static $access_key = 'your access key';
Введите ваш ключ доступа CleanTalk вместо your access key:
public static $access_key = '123456';
4. Для защиты регистраций, откройте файл CustomerForm.php в папке classes/form/.
Вставьте код в начале (после <?php):
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/classes/cleantalk/CleantalkValidate.php';
Вставьте код в разделе валидации (после $this->validateByModules();):
$spamCheckResult = CleantalkValidate::spamCheckUser($customer->firstname.' '.$customer->lastname, $customer->email);
if ($spamCheckResult->allow == 0)
$emailField->addError($this->translator->trans(
$spamCheckResult->comment, array(), 'Shop.Notifications.Error'
));
5. Для проверки используйте тестовый e-mail stop_email@example.com. В результате вы должны получить сообщение о блокировке.
6. Для защиты контактной формы, пройдите в <root directory>/modules/contactform и откройте файл contactform.php
Вставьте код в начале (после <?php):
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/classes/cleantalk/CleantalkValidate.php';
Перед кодом
else {
$customer = $this->context->customer;
вставьте следующий код:
$spamCheck = CleantalkValidate::spamCheckMessage('', trim(Tools::getValue('from')), $message);
if ($spamCheck->allow == 0) {
$this->context->controller->errors[] = $this->trans(
$spamCheck->comment,
[],
'Shop.Notifications.Error'
);
}
Должно получиться что-то вроде этого:
} else {
$spamCheck = CleantalkValidate::spamCheckMessage('', trim(Tools::getValue('from')), $message);
if ($spamCheck->allow == 0) {
$this->context->controller->errors[] = $this->trans(
$spamCheck->comment,
[],
'Shop.Notifications.Error'
);
}
$customer = $this->context->customer;
Для старых версий (старее 1.7.0.0) шаги 1-3 будут аналогичны.
4. Для защиты формы регистрации пройдите в <root directory>/controllers/front и откройте AuthController.php.
Вставьте в начале (после <?php):
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/classes/cleantalk/CleantalkValidate.php';
После этой строки (#442):
if (!count($this->errors)) {
вставьте код:
$spamCheckResult = CleantalkValidate::spamCheckUser($customer->firstname.' '.$customer->lastname, $customer->email);
if ($spamCheckResult->allow == 0)
{
$this->errors[] = Tools::displayError('User forbidden. Reason: '.$spamCheckResult->comment);
}
5. Для защиты комментариев пройдите в <root directory>/modules/productcomments/controllers/front/ и откройте файл default.php.
Вставьте в начале (после <?php):
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/classes/cleantalk/CleantalkValidate.php';
Вставьте код:
$spamCheckResult = CleantalkValidate::spamCheckUser($customer->firstname.' '.$customer->lastname, $customer->email);
if ($spamCheckResult->allow == 0)
{
$this->errors[] = Tools::displayError('User forbidden. Reason: '.$spamCheckResult->comment);
}
После этой строки (#70):
$errors = array();
Примечание: Для защиты комментариев должен быть установлен этот модуль.
6. Для защиты подписки на новости, в папке <root directory>/modules/blocknewsletter/ откройте blocknewsletter.php.
Вставьте в начале (после <?php):
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/classes/cleantalk/CleantalkValidate.php';
Вставьте код вверху функции newsletterRegistration():
$spamCheckResult = CleantalkValidate::spamCheckUser($customer->firstname.' '.$customer->lastname, $customer->email);
if ($spamCheckResult->allow == 0)
{
$this->errors[] = Tools::displayError('User forbidden. Reason: '.$spamCheckResult->comment);
}
Если Вы не нашли ответ на интересующий вас вопрос, то предлагаем вам связаться с нашими специалистами. [ https://cleantalk.org/my/support/open ].
Будет так же интересно
- Описание принципа работы API CleanTalk. Руководство по использованиюОбщая справка по API Проверка регистрации, API метод check_newuser Проверка...
- CleanTalk Анти-Спам. API Метод check_messageОписание API метода CleanTalk Anti-Spam "check_message" Данный метод лучше...
- CleanTalk Анти-Спам. API метод check_newuser Описание метода API CleanTalk Anti-Spam "check_newuser" API метод "check_newuser"...