Skip to content

Google reCAPTCHA для Magento

Отзывы о товаре, помогают как покупателям — определится с выбором.

Но часто отзывы о товарах — «засыпают» спамом. Для защиты от спама — обычно используют Captcha (капча, каптча).
Есть хорошее решение от Google — reCAPTCHA (ре-капча).

 

Добавить в Magento — Captcha к форме отзывов о товаре

 

Сделаем правки в файл-шаблон Magento, формы отзывов о товаре:
app/design/frontend/rwd/default/template/review/form.phtml

Перед тегом <form>, вставим JavaScript:

<script type="text/javascript">
    var onloadCallback = function () {
            grecaptcha.render('recaptcha_html_element', {
                'sitekey': 'my_sitekey'
            });
        };
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=ru" async defer></script>


my_sitekey
— это ключ, который необходимо получить на сайте Google reCAPTCHA
recaptcha_html_element — ID блока HTML, где будет «отрисовыватся» Google reCAPTCHA

 

В форме отзывов, вставим HTML:

<div id="recaptcha_html_element"></div>
<input type="hidden" name="validate_recaptcha" class="validate-recaptcha" value="" />

validate_recaptcha — поле для проверки ввода капчи

 

Далее, находим блок кода JavaScript:

var dataForm = new VarienForm('review-form');

 

И вставим чуть ниже JavaScript — для обработки проверки Captcha в формах Magento:

Validation.addAllThese(
    [
        ['validate-recaptcha', '<?php echo $this->__('Please check the Magento CAPTCHA code. It\'s not correct.') ?>', function(v) {
            var error = 1;

            var v = grecaptcha.getResponse();

            if (v.length === 0) {
                error = 1;
            } else {
                // checked
                error = 0;
            }


            if (error == 1) {
                return false;
            } else {
                error = 1;
            }

            return true;
        }]
    ]
);

 

Должно работать :)

Осталось только добавить перевод — Please check the Magento CAPTCHA code

Следует заметить, в некоторых случаях — Капча, может навредить сайту — если посетители сайта старшей или младшей возрастной категории, посетителям иногда может быть трудно «ответить» на вопросы капчи.

 

Magento 1.*