在实现新的谷歌Invisible reCATPTCHA时,默认情况下,当你滚动屏幕时,屏幕右下方会弹出一个小的“受reCAPTCHA保护”徽章。

我想把这个藏起来。


当前回答

这不会禁用垃圾邮件检查

div.g-recaptcha > div.grecaptcha-badge {
    width:0 !important;
}

其他回答

我的解决方案是隐藏徽章,然后在用户关注表单输入时显示它——因此仍然遵循谷歌的t&c。

注意:我调整的reCAPTCHA是由WordPress插件生成的,所以你可能需要用<div class="inv-recaptcha-holder">…< / div >自己。

CSS

.inv-recaptcha-holder {
  visibility: hidden;
  opacity: 0;
  transition: linear opacity 1s;
}

.inv-recaptcha-holder.show {
  visibility: visible;
  opacity: 1;
  transition: linear opacity 1s;
}

jQuery

$(document).ready(function () {
  $('form input, form textarea').on( 'focus', function() {
    $('.inv-recaptcha-holder').addClass( 'show' );
  });
});

显然,如果需要,您可以更改jQuery选择器以针对特定的表单。

将数据标记属性设置为内联

<button type="submit" data-sitekey="your_site_key" data-callback="onSubmit" data-badge="inline" />

并添加以下CSS

.grecaptcha-badge {
    display: none;
}

谷歌现在允许隐藏徽章,从常见问题解答:

我想把reCAPTCHA徽章藏起来。什么是允许的? 只要在用户流中可见地包含reCAPTCHA品牌,您就可以隐藏徽章。请包括以下文本: 此站点受reCAPTCHA和谷歌. com保护 <a href="https://policies.google.com/privacy">隐私策略</a> and <a href="https://policies.google.com/terms">服务条款</a>适用。 例如:

所以你可以简单地隐藏它使用下面的CSS:

.grecaptcha-badge { 
    visibility: hidden;
}

不要使用display: none;因为它似乎禁用了垃圾邮件检查(谢谢@Zade)

Recaptcha联系人表单7和Recaptcha v3解决方案。

body:not(.page-id-20) .grecaptcha-badge {
    display: none;
}

有多个联系表单页面?

body:not(.page-id-12):not(.page-id-43) .grecaptcha-badge {
    display: none;
}

如果你有更多的联系表单页面,你可以添加更多的“不”。

body:not(.page-id-45):not(.page-id-78):not(.page-id-98) .grecaptcha-badge {
    display: none;
}

确保你的主体部分是这样的:

<body>

更改它,使它看起来像这样:

 <body <?php body_class(); ?>>

由于隐藏徽章并不是真正合法的根据TOU,现有的放置选项破坏了我的UI和/或UX,我想出了以下自定义,模仿固定定位,但取而代之的是内联渲染:

你只需要在你的徽章容器上应用一些CSS:

.badge-container {
  display: flex;
  justify-content: flex-end;
  overflow: hidden;
  width: 70px;
  height: 60px;
  margin: 0 auto;
  box-shadow: 0 0 4px #ddd;
  transition: linear 100ms width;
}
.badge-container:hover {
    width: 256px;
}

我想这是你合法能做到的极限了。