Проверить настройки Skip to content

Google reCAPTCHA для Magento

Отзывы о товаре, помогают как покупателям — определится с выбором. Так и владельцу интернет-магазина — «раскрутить» сайт.

Но часто отзывы о товарах — «засыпают» спамом. Для защиты от спама — используют Captcha (капча, каптча).

Есть хорошее решение от Google — reCAPTCHA (ре-капча)

 

Как интегрировать reCAPTCHA в Magento?

Добавить reCAPTCHA к форме отзывов о товаре?

 

Добавим правки в файл-шаблон 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, где  будет «отрисовыватся» 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 — для обработки проверки reCAPTCHA:

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.*