+1, I just noticed that it doesn’t always work, resulting in the form not being sent, but without real indication (also no JavaScript errors in console). This is really a big issue with this plugin and has to be fixed as soon as possible.
Same issue for me.
I use reCaptcha V2 and sometimes the checkkox doesn’t appear on field.
temporarily, i modified plugin file : /cf-anti-spam/fields/recaptcha/field.php
In this file, i commented the followed lines :
/*$script_url = "https://www.google.com/recaptcha/api.js?onload=cf_recaptcha_is_ready&render=explicit&hl=" . $language;
if (!empty($field['config']['recapv']) && $field['config']['recapv'] === 1 ) {
$script_url = "https://www.google.com/recaptcha/api.js?onload=cf_recaptcha_is_ready&render=" . trim($field['config']['public_key']) . "&hl=" . $language;
}
wp_enqueue_script('cf-anti-spam-recapthca-lib', $script_url);*/
and
/*
function init_recaptcha_<?php echo $field_id; ?>(){
var captch = $('#cap<?php echo $field_id; ?>');
<?php if (!empty($field['config']['recapv']) && $field['config']['recapv'] === 1 ) { ?>
grecaptcha.ready(function() {
var captch = $('#cap<?php echo $field_id; ?>');
grecaptcha.execute("<?php echo trim( $field['config']['public_key'] ); ?>", {action: 'homepage'}).then(function(token) {
$('<input type="hidden" name="cf-recapv-token" value="' + token + '">').insertAfter(captch[0]);
});
});
<?php } else { ?>
captch.empty();
grecaptcha.render( captch[0], { "sitekey" : "<?php echo trim( $field['config']['public_key'] ); ?>", "theme" : "<?php echo isset( $field['config']['theme'] ) ? $field['config']['theme'] : "light"; ?>" } );
// Only load grecaptcha.execute if it's set to invisible mode.
<?php if ( !empty( $field['config']['invis']) && $field['config']['invis'] === 1 ) { ?> grecaptcha.execute(); <?php } ?>
<?php } ?>
}
jQuery(document).on('click', '.reset_<?php echo $field_id; ?>', function(e){
e.preventDefault();
init_recaptcha_<?php echo $field_id; ?>();
});
//refresh it every 2 minutes.
setInterval(function () { init_recaptcha_<?php echo $field_id; ?>(); }, 2 * 60 * 1000);
init_recaptcha_<?php echo $field_id; ?>(); */
then i added to my page :
<script src="https://www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit"
async defer></script>
<script defer>
var CaptchaCallback = function(){
grecaptcha.render('XXXX', {'sitekey' : 'YYYY'});
};
</script>
XXXX is the ID of field div (g-recaptcha, ex: capfld_5265992_1 for me) and YYYY is the site key.
It’s works like that, however i hope plugin author fix the issue later…
With this plugin on my site, forms do not get sent and when the site visitor clicks the submit button there is no indication that the submission has gone through or not. I can’t use this plugin at all.