无法添加第二个reCAPTCHA。请联系表格7 w / reCAPTCHA

时间:2016-08-23 21:43:11

标签: wordpress contact-form-7 recaptcha

我有一个Wordpress网站,它使用Contact Form 7插件和随附的reCAPTCHA功能,效果很好。我把这部分放到位,一切都是自动的。但是现在我正在尝试将reCAPTCHA添加到另一个未使用Contact Form 7设置的表单(在页面form1.php上)。这是在一个基本上包含Wordpress页眉和页脚的PHP页面上,但是它自己做了在中间的事情。一个关键点是页脚包含联系表7中的一个表单,因此它位于网站的每个页面上。

我跟着Google's instructions,忘了我有页脚形式。然后我在Firebug Error: ReCAPTCHA placeholder element must be empty

中看到了一个错误

这让我感到this StackOverflow topic here。用户随和的唯一答案是,当他们意识到他们已经两次导入库时,他们遇到了同样的错误。

好的,这也是我所做的,我意识到了。因此,我可以删除代码中包含https://www.google.com/recaptcha/api.js的脚本,因为它已经包含在Contact Form 7中(我在源代码中看到它)。我注意到Google有渲染多个小部件的说明,我检查了一下。但问题是脚本include行指定了onload回调函数。大问题。我无法改变这一点,因为Contact Form 7将其放入,并且我不能使用相同名称的回调函数,因为它已经被使用了。当然,我不想搞乱联系表格7所做的任何事情。但结果是,我不知道如何让它在form1.php中调用我的回调函数,这是指定我的HTML元素来呈现验证码的地方。

您是否看到了解决此问题的方法?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

以下是决议:

  1. 联系表单7支持多个reCaptcha,只需要正确的HTML标记即可使用它。
  2. 正如您在wp-content \ plugins \ contact-form-7 \ modules \ recaptcha.php以及HTML中看到的那样,诀窍是:

    • 您的非CF7 reCaptcha必须位于表单元素中,如下所示:
  3. 
    
    >>> instance = MyClass()
    >>> instance.foo
    Prop(value='bar', instance=<__main__.MyClass object at 0x10effbcd0>)
    >>> instance.foo.value
    'bar'
    >>> instance.foo.instance
    <__main__.MyClass object at 0x10effbcd0>
    
    &#13;
    var verifyCallbackY = function(response) {
        /** your stuff... */
        alert(response);
    };
    &#13;
    &#13;
    &#13;