@lobsterdm
although this is not related to the core of WPJM you can do this with this code here.
Just add this to your functions of your childtheme
// Define your keys here
define( 'RECAPTCHA_SITE_KEY', Site Key' );
define( 'RECAPTCHA_SECRET_KEY', 'Secret Key' );
// Enqueue Google reCAPTCHA scripts
add_action( 'wp_enqueue_scripts', 'recaptcha_scripts' );
function recaptcha_scripts() {
wp_enqueue_script( 'recaptcha', 'https://www.google.com/recaptcha/api.js' );
}
// Add reCAPTCHA to the job submission form
// If you disabled company fields, the submit_job_form_end hook can be used instead from version 1.24.1 onwards
add_action( 'job_application_form_fields_end', 'recaptcha_field' );
function recaptcha_field() {
?>
<fieldset>
<label>Bitte best?tigen</label>
<div class="field">
<div class="g-recaptcha" data-sitekey="<?php echo RECAPTCHA_SITE_KEY; ?>"></div>
</div>
</fieldset>
<?php
}
// Validate
add_filter( 'application_form_validate_fields', 'validate_recaptcha_field' );
function validate_recaptcha_field( $success ) {
$response = wp_remote_get( add_query_arg( array(
'secret' => RECAPTCHA_SECRET_KEY,
'response' => isset( $_POST['g-recaptcha-response'] ) ? $_POST['g-recaptcha-response'] : '',
'remoteip' => isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']
), 'https://www.google.com/recaptcha/api/siteverify' ) );
if ( is_wp_error( $response ) || empty( $response['body'] ) || ! ( $json = json_decode( $response['body'] ) ) || ! $json->success ) {
return new WP_Error( 'validation-error', 'Best?tigung fehlgeschlagen. Bitte versuchen Sie es erneut.' );
}
return $success;
}