2016-08-01 60 views
2

我有一个WordPress网站谷歌的reCAPTCHA改变HL。取决于PHP的if语句

我的网站有5种语言,通过这个变量ICL_LANGUAGE_CODE确定 - 我在我的php文件中使用这个来改变显示的内容取决于用户选择的语言。

该网站有与它捆绑的一个接触的形式,我可以通过一个PHP文件编辑。该表格包含一个v2 Google reCaptcha。 reCaptcha问题的语言是自动的 - 但它不能很好地工作。

例如,如果一个人在西班牙的语言是西班牙语,即使他们是荷兰人,在我的网站的荷兰地区,也没有办法改变这是一个网站的用户。

我已编辑的代码,这样的默认行为通过添加hl=en下面的线是英文。

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

不过,我想这取决于我的网站用户选择阅读该网站用什么语言来更改hl的参数。我知道,我不能简单地把剧本中一个PHP if语句像这样的;

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

因为脚本是由浏览器加载的 - 我该怎么做?

回答

0

你首先需要审查谷歌接受适当langguage代码,然后相应地调整你的代码,这样你就可以发送正确的参数。 https://developers.google.com/recaptcha/docs/language

然后你可以简单的写: <script type="text/javascript" src="https://www.google.com/recaptcha/api.js?hl=<?php $ICL_LANGUAGE_CODE;?>&onload=onloadCallback&render=explicit" async defer></script>

你PHP将呈现页面与地方的“恩”用户选择的语言。但是,你的$ICL_LANGUAGE_CODE变量必须正确地输出谷歌所期望的或者它不起作用的东西。

+0

谢谢colecmc。我尝试过,但没有奏效 - 它恢复为默认的Google行为。这可能是因为$ ICL_LANGUAGE_CODE;工作不正常。 – Jolo

0

此代码的工作一种享受。感谢结构的colecmc。此代码稍微改变了WPML参数的调用方式。现在,Google reCapcha会生成用户选择查看网站的网站的任何语言。

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