2016-08-01 20 views
2

Ich habe eine Wordpress-Website.Google reCaptcha ändern HL abhängig von PHP, wenn Aussage

Meine Website hat 5 Sprachen, die über diese Variable ICL_LANGUAGE_CODE bestimmt wird - ich verwende diese in meinen PHP-Dateien, um zu ändern, was angezeigt wird, abhängig von der Sprache, die der Benutzer ausgewählt hat.

Die Seite hat ein Kontaktformular, das ich mit einer PHP-Datei bearbeiten kann. Das Formular enthält eine v2 Google reCaptcha. Die Sprache der reCaptcha Frage ist automatisch - aber es funktioniert nicht sehr gut.

Zum Beispiel, wenn eine Person in Spanien ist, ist die Sprache Spanisch, auch wenn sie Niederländisch und in meinem niederländischen Bereich der Website sind und es gibt keine Möglichkeit, dies als Website-Benutzer zu ändern.

Ich habe den Code so bearbeitet, dass das Standardverhalten in Englisch ist, indem Sie hl=en in die Zeile darunter einfügen.

<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?hl=en&onload=onloadCallback&render=explicit" async defer></script> 

Jedoch habe ich den Parameter für die hl je nachdem, welche Sprache Benutzer meiner Website gewählt ändern möchte in der Website zu lesen. Ich weiß, ich kann nicht einfach die Skript if-Anweisung in einer PHP setzen wie diese ;

<?php if (ICL_LANGUAGE_CODE=='en') {  ?> 

weil die Skripte vom Browser geladen werden - wie soll ich das machen?

Antwort

0

Sie müssen zuerst die entsprechenden Sprachcodes, die Google akzeptiert, überprüfen und dann Ihren Code entsprechend anpassen, damit Sie den richtigen Parameter senden können. https://developers.google.com/recaptcha/docs/language

Dann werden Sie einfach schreiben folgendes: <script type="text/javascript" src="https://www.google.com/recaptcha/api.js?hl=<?php $ICL_LANGUAGE_CODE;?>&onload=onloadCallback&render=explicit" async defer></script>

Sie PHP wird die Seite mit dem Benutzer gewählten Sprache anstelle von ‚en‘ machen. Aber wieder muss Ihre $ICL_LANGUAGE_CODE Variable genau das ausgeben, was Google erwartet oder es wird nicht funktionieren.

+0

Danke colecmc. Ich habe das ausprobiert, aber es hat nicht funktioniert - es wurde auf das Standardverhalten von Google zurückgesetzt. Es könnte sein, weil der $ ICL_LANGUAGE_CODE; funktioniert nicht richtig. – Jolo

0

Dieser Code funktioniert ein Vergnügen. Danke colecmc für die Struktur. Dieser Code ändert leicht die Art, wie der WPML-Parameter aufgerufen wird. Jetzt generiert das Google reCapcha in welcher Sprache auch immer ein Webseitenbenutzer sich die Seite angesehen hat.

<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?hl=<?php echo ICL_LANGUAGE_CODE; ?>&onload=onloadCallback&render=explicit" async defer></script>