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…