Подключение Google ReCapcha в PS 1.7 без модуля

Тема в разделе "PrestaShop", создана пользователем sche, 16 фев 2018.

Информация :
Приветствую гость, обрати внимание! Темы которые закреплены в разделах, в скором времени будут откреплены. Правила раздела PrestaShop

(Не актуальные темы) Каталоги:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
(Не актуальные темы) Поиск / Запросы:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
Полезная информация:Поддержка и помощь c PrestaShopУбираем ПрестаТраст, стучалки и прочую рекламуСовместные покупки модулей и шаблоновПеревод Prestashop и модулей
Модераторы: trace
  1. sche

    sche

    Регистр.:
    16 ноя 2017
    Сообщения:
    161
    Симпатии:
    66
    Аналогично. Та же тема, та же Преста.
     
  2. salbar

    salbar

    Регистр.:
    22 май 2012
    Сообщения:
    228
    Симпатии:
    132
    • https://www.nulled.cc/pages/forum-rules/ П.2.15
    У кого косяк с сообщением, делаем следующее:
    Из пункта номер четыре (4:(
    Код:
    parent::initContent();
          
            $this->setTemplate('contact');
            function SiteVerify($url){
                    $curl = curl_init();
                    curl_setopt($curl, CURLOPT_URL, $url);
                    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
                    $curlData = curl_exec($curl);
                    curl_close($curl);
                    return $curlData;
                }
    
                $recaptcha = Tools::getValue('g-recaptcha-response');
    
                if(!empty($recaptcha)){
                    $google_url="https://www.google.com/recaptcha/api/siteverify";
                    $secret='Ваш Секретный ключ с сайта капчи (который справа)';
                    $ip=$_SERVER['REMOTE_ADDR'];
                    $url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
                    $res=SiteVerify($url);
                    $res= json_decode($res, true);
            
                    if(!$res['success']){
                      exit();
                    }
                }
                else{
                  $this->errors[] = Tools::displayError('Отметьте галочкой, что Вы не робот, пожалуйста');
                }
    убираем (стираем или коментируем)
    Код:
    else{
                  $this->errors[] = Tools::displayError('Отметьте галочкой, что Вы не робот, пожалуйста');
                }
    В последнем пункте, где добавляли код:
    Код:
    if (Tools::isSubmit('submitMessage')) {
              
                if (($gcaptcha = (int)(Tools::getValue('g-recaptcha-response'))) == 0) {
                            $this->errors[] = $this->trans('Please complete reCaptcha', array(), 'Admin.Login.Notification');
                            }
              
                else {$this->sendMessage();}
    Дописываем еще одну строку, после чего он будет выглядеть так:
    Код:
    if (Tools::isSubmit('submitMessage')) {
              
                if (($gcaptcha = (int)(Tools::getValue('g-recaptcha-response'))) == 0) {
                            $this->errors[] = $this->trans('Please complete reCaptcha', array(), 'Admin.Login.Notification');
                            }
                echo '<div class="alert alert-danger">Отметьте галочкой, что Вы не робот, пожалуйста</div>';
                else {$this->sendMessage();}
    У кого получилось, ставим лайки))
     
  3. sche

    sche

    Регистр.:
    16 ноя 2017
    Сообщения:
    161
    Симпатии:
    66
    После добавления строчки с echo (последний пункт в сообщении выше) контактная форма вообще пропала.
    UPD. Сейчас убрал изменения, контактная форма почему-то перестала пропускать письма. Хотя 16 числа слали что-то (спам), а с тех пор я ничего не ковырял. Этого ещё не хватало...
     
    Последнее редактирование: 21 мар 2018
    _sashok нравится это.
  4. nebikoff

    nebikoff

    Регистр.:
    5 авг 2013
    Сообщения:
    378
    Симпатии:
    145
    Попробуй вернуть родной ContactController.php и установить эту капчу https://www.nulled.cc/threads/288371/page-36#post-2801260 у меня вроде на одном сайте пропал спам.
     
    _sashok и sche нравится это.
  5. sche

    sche

    Регистр.:
    16 ноя 2017
    Сообщения:
    161
    Симпатии:
    66
    Спасибо, так гораздо лучше! Странно, что до сих пор сам на этот модуль наткнулся. С ним два неудобства, правда, возникло, но маленькие: поменялся язык в форме (сам справлюсь), и ещё когда сообщение проходит, он говорит, мол, сообщение отправлено, а когда не ставишь галочку на рекапче, просто обновляется страница. Но я готов с этим жить, если исправления не придумаем.
     
    _sashok нравится это.
  6. nebikoff

    nebikoff

    Регистр.:
    5 авг 2013
    Сообщения:
    378
    Симпатии:
    145
    Как и многие модули ручками придется язык править, у него своя страница контактов, и язык правится в модуле
     
  7. sche

    sche

    Регистр.:
    16 ноя 2017
    Сообщения:
    161
    Симпатии:
    66
    Кнопка "Прикрепить файл", кстати, не переводится из админки (соответствующее поле есть, но на него модуль не реагирует), пришлось при помощи CSS замену делать. А ещё форма скукожилась от модуля, раскукожил при помощи того же CSS, потом решил проверить в IE 11. Выглядит так:
    [​IMG]
    Без моего кода, впрочем, примерно то же самое. Самое печальное, что ЦА сайта - всякие госслужащие в возрасте с низкой компьютерной грамотностью, которые с того же IE и сидят.
     
    _sashok нравится это.
  8. canabislt

    canabislt Создатель

    Регистр.:
    29 мар 2017
    Сообщения:
    28
    Симпатии:
    62
    Block worked :) but slide not working. Would be great way to avoid spam. Any fix?

    pasted to contact form module before button

    </section>

    {include file="../../../../../../../modules/slidecaptcha/views/templates/front/slidecaptcha.tpl"}

    <footer class="form-footer">


    <input class="btn btn-primary" type="submit" name="submitMessage" value="{l s='Send' d='Shop.Theme.Actions'}">

    </footer>



    </form>
     

    Вложения:

    • slide.png
      slide.png
      Размер файла:
      3,8 КБ
      Просмотров:
      6
  9. sche

    sche

    Регистр.:
    16 ноя 2017
    Сообщения:
    161
    Симпатии:
    66
    I changed everything back to default and used this module nebikoff suggested earlier since no fix worked for me (had the same issue that you have right now w/ this 'SlideCaptcha') :
     
    canabislt и _sashok нравится это.
  10. canabislt

    canabislt Создатель

    Регистр.:
    29 мар 2017
    Сообщения:
    28
    Симпатии:
    62
    fixed, spam stopped:) Solution for official reCaptcha. Working on 1.7.3 official and custom theme

    1) Setup your Google reCAPTCHA Account @ https://www.google.com/recaptcha/intro/index.html

    2) Download attached file below and install. (You must have official contactform module installed and disabled)

    3) Configure your EICAPTCHA Module and enter your public and secret keys.

    Enjoy:)
     

    Вложения:

    • eicaptcha.zip
      Размер файла:
      60,2 КБ
      Просмотров:
      17
    _sashok нравится это.