Function Reference: geodir_recaptcha_ajax_check

Summary

check captcha for send to friend, claim listing, send enquiry.

Package

GeoDirectory_ReCaptcha

Change Log

Since: 1.0.0

Source File

geodir_recaptcha_ajax_check() is located in geodir_recaptcha/includes/gdcaptcha_functions.php [Line: 891]

Source Code

function geodir_recaptcha_ajax_check() {
	$gdc_form = isset( $_POST['gdc_form'] ) ? $_POST['gdc_form'] : '';

	$return = array();
	$return['success'] = false;
	$return['error'] = __( 'ERROR: You have entered an incorrect CAPTCHA value.', GDCAPTCHA_TEXTDOMAIN );
	if ( $gdc_form ) {
		switch( $gdc_form ) {
			case 'add_listing':
			case 'send_enquery':
			case 'send_to_friend':
			case 'claim_listing':
				$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['success'] = true;
					$return['error'] = NULL;
				}
			break;
		}
	}
	echo json_encode( $return );
	exit;
}