在 wordpress 中单击一个后禁用多个 recaptchas

Disabling multiple recaptchas after one is clicked in wordpress

我在客户的 wordpress 站点上为搜索表单启用了两个验证码。每个 recaptcha 都在一个单独的页面上。两者都附加到命中相同 api 的搜索表单。

我想知道如何 disable/hide 如果一个被选中,两个 recaptchas。

我试过使用一个会话,由于缓存的原因,它在暂存中有效但在生产中无效。

我也试过使用 cookie,但我不知道如何让一个页面读取另一个页面的 cookie。

我正在使用标准 google recaptcha 脚本

<script>
                grecReady = function(){
                    grecaptcha.render('grec', {
                        'sitekey' : 'XXXXXXXXXXXXXXXXXXXXXXXX',
                        'callback' : function(g){
                            document.cookie = "grecResponse="+g;
                            jQuery('#grec').addClass('clicked');
                        }
                    });
                }
</script>

为清楚起见编辑:我们使用的是 recaptcha 版本 2。

此外,recaptcha 1 会创建一个与路径“/somepage”关联的 cookie。

Recaptcha 2 创建一个与路径“/somepage/subpage”关联的 cookie。

感谢您的帮助!

2019-10-16 更新:

我们的问题是 WPengine 对我们客户的站点进行了大量缓存。在这些文章的帮助下,我们使用 ajax 调用来创建全局 cookie:

https://wp-time.com/wordpress-ajax-tutorial-and-example/ https://wpshout.com/using-cookies-in-wordpress-part-ii-cache-busting-with-ajax/

我们还必须在 WPengine 客户服务的帮助下从缓存中排除 cookie 和使用 recaptchas 的页面。

这是 90% 的解决方案。如果我们在通过 recaptcha 后单击后退按钮,则会显示 recaptcha 表单,因为页面仍在缓存中。 WPengine 无法提供任何帮助。

这是 90% 的解决方案,但客户很满意。希望这可以帮助别人。