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

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