nenes25 / eicaptcha

Captcha module for prestashop
299 stars 85 forks source link

Captcha box not appear in contact form #28

Closed jafraco closed 5 years ago

jafraco commented 6 years ago

Your prestashop version

1.6.1.4

Eicaptcha Version

0.4.12

Do you use a specific theme

theme1209 version 1.0

Issue description

The module is installed and configured but captcha box not appear.

In account creation if work correctly.

jafraco commented 6 years ago

image

jafraco commented 6 years ago

image

nenes25 commented 6 years ago

Hello,

Do you have a js error in the console ? ( F12 / console tab )

Regards,

jafraco commented 6 years ago

No, I don't have errors image

mspann commented 6 years ago

I am experiencing the same Issue. Captcha appears in Login widget but not in the contact form. There is a div id="captcha-box" under the contact form, but its empty. There's also a div id="captcha-box" further up on the page in the login widget and its being displayed correctly.

nenes25 commented 6 years ago

Hello,

Thanks for your feebacks, can you send me url of the concerned website ?

@mspann i guess you have found what is the problem, because the captcha-box is added before element with "submit" class. If there is more than on element an issue can appear.

https://github.com/nenes25/eicaptcha/blob/master/eicaptcha.php#L362

If it's linked with that, the next release will avoid this by giving you the possibility to define the selector in the administration.

Regards,

mspann commented 6 years ago

I have changed line 362 to $(".contact-form-box .submit").before and it was displayed correctly at the contact form page. However, even after validating the captcha I got a error message saying that the contact message could not be sent. grafik

nenes25 commented 6 years ago

Can you send me an url, Are the captcha information being send through POST values of the form ?

MarMolillo commented 6 years ago

Same issue. I make the change that @mspann comment. Same result, captcha appears but same error and message don't send. ¿any suggestion?

kazuyevon commented 6 years ago

Même soucis de départ, div captcha présent mais vide. j'ai alors aussi changé la ligne 362 en $(".contact-form-box .submit").before pour tester, et c'est bon, le captcha s'affiche et envoie bien le message, ça ne change en rien la position, juste que le code avait peut être besoin de plus de précision, hypothèse. Thx to @mspann et merci à vous @nenes25.

nenes25 commented 6 years ago

Hello, Could you please update to the last release ? https://github.com/nenes25/eicaptcha/releases/tag/0.4.14 It add a tools which check if the module is well installed ( for backend code )

Regards,

thomark1 commented 6 years ago

Hello, Well, the same problem here (custom templete) - not displaying captcha in contact form while visiting the site as a guest (but demans it). The captcha appears and works correctly when the user is logged in though.

I guess that captcha is not needed anymore when the user is logged in already.

I'm was using module version 0.4.13. Update to 0.4.14 didn't help.

Regards,

nenes25 commented 6 years ago

Hello @thomark1 , The version 0.4.14 only add a tool in administration which check if the module is well installed . Can you check if everything is ok on your website. ( if it is a frontend problem it will not change anything )

Regards,

thomark1 commented 6 years ago

Well,

It seems to be fine - no errors in the FO console. I checked with your checking tool and the installation is OK either.

<div id="captcha-box"> is just empty when I'm not logged in. When I'm logged in I can see the captcha, but I cound not send the message. I used zodit's solution (adding 2 hidden fields before the submit button):

<input type="text" name="url" value="" class="hidden" /> <input type="hidden" name="contactKey" value="{$contactKey}" />

and it solved the problem with sending, but after email is being sent the console returns error:

Uncaught Error: reCAPTCHA placeholder element must be an element or id at Object.Dr [as render] (recaptchapl.js:398) at onloadCallback (kontakt:1) at recaptchapl.js:404 at or (recaptchapl.js:389) at recaptchapl.js:404 at recaptcha__pl.js:415

Regards,

nenes25 commented 6 years ago

Can you try @kazuyevon solution, i guess you have several item with class "submit" when the customer is not loggued on your site.

nenes25 commented 6 years ago

just a few comments before ^^

thomark1 commented 6 years ago

I don't know how to insert this js query to get it working. I tried for a couple of ways, but always getting 500 ERROR in FO. Tried something like this:

$eicaptcha = '<script type="text/javascript"> $(".contact-form-box .submit").before("<div id=\"captcha-box\"></div>"); </script>';
return $eicaptcha;

Regards,

kazuyevon commented 6 years ago

admin-site capture-script Installer la version 0.4.14, ne s'affiche pas, il est bien présent puisque l'erreur "Merci de valider le captcha" apparait, j'espère que les screens vous aideront.

thomark1 commented 6 years ago

Thank you, I have version 0.4.14 installed already and I understand what you mean, but I was not able to apply this :
$(".contact-form-box .submit").before (I can't create a proper syntax) line in eicaptcha.php file - the site crashed and returns 500 ERROR in FO.

Nonetheless I was able to resolve the problem by changing the selector class name (submit -> submit2) in proper template files and set the same class in captcha module configuration.

tomgug commented 6 years ago

Hi, I have same problem on my site:

https://www.scontolo.net/it/contattaci

catpha-box is empty under inspection

image image

zodit commented 6 years ago

Hello, I had to update another Prestashop, and I installed the latest module 0.4.14 (tested also 0.4.13), i found that the particular theme was breaking the javascripts (LeoTheme Fashion, i guess very old one, it was not loading JQuery and i had to fix the header.tpl). I really don't know the cause, but i solved switching off the "performance" parameters about Javascript, so: Smart Cache, compression, and move to the end of page. After this the eicaptcha is working fine, no loop that breaks Githubissues.

  • Githubissues is a development platform for aggregating issues.