Function Reference: geodir_recaptcha_check

Summary

verify captcha.

Package

GeoDirectory_ReCaptcha

Parameters

$form
(string) (required) The form name.

Default: None
$errors
(string) (required) Form errors.

Default: None

Change Log

Since: 1.0.0

Source File

geodir_recaptcha_check() is located in geodir_recaptcha/includes/gdcaptcha_functions.php [Line: 849]

Source Code

function geodir_recaptcha_check( $form = '', $errors='' ) {
	$site_key = get_option( 'geodir_recaptcha_site_key' );
	$secret_key = get_option( 'geodir_recaptcha_secret_key' );
		
	if ( !( strlen( $site_key ) > 10 && strlen( $secret_key ) > 10 ) ) {
		return;
	}
	
	if ( !class_exists( 'ReCaptcha' ) ) {
		require_once( GEODIR_RECAPTCHA_PLUGIN_PATH . '/lib/recaptchalib.php' );
	}
	
	$reCaptcha = new ReCaptcha( $secret_key );
	
	$recaptcha_value = isset( $_POST['g-recaptcha-response'] ) ? $_POST['g-recaptcha-response'] : '';
	$response = $reCaptcha->verifyResponse( $_SERVER['REMOTE_ADDR'], $recaptcha_value );

	$invalid_captcha = !empty( $response ) && isset( $response->success ) && $response->success ? false : true;
	
	if ( !$invalid_captcha ) {
		return;
	} else {
		if ( $form == 'bp_registration' ) {
			global $bp;
			$bp->signup->errors['gd_recaptcha_field'] = __( 'You have entered an incorrect CAPTCHA value.', GDCAPTCHA_TEXTDOMAIN );
			return;
		} else {
			if ( !empty( $errors ) && is_object( $errors ) ) {
				$errors->add( 'invalid_captcha', __( 'ERROR: You have entered an incorrect CAPTCHA value.', GDCAPTCHA_TEXTDOMAIN ) );
			} else {
				wp_die( __( 'ERROR: You have entered an incorrect CAPTCHA value. Click the BACK button on your browser, and try again.', GDCAPTCHA_TEXTDOMAIN ) );
			}
		}
	}
}