$fusion_settings->get( 'recaptcha_color_scheme' ), 'badge_position' => $fusion_settings->get( 'recaptcha_badge_position' ), 'tab_index' => '', 'counter' => 1, 'element' => 'form', 'wrapper_class' => 'form-creator-recaptcha', ]; $args = wp_parse_args( $args, $defaults ); ?> get( 'recaptcha_public' ) && $fusion_settings->get( 'recaptcha_private' ) ) : ?> get( 'recaptcha_version' ) ) : ?>
false, 'message' => '', ]; // For old PHP versions. if ( version_compare( PHP_VERSION, '5.3' ) >= 0 && ! class_exists( 'ReCaptcha' ) ) { require_once FUSION_LIBRARY_PATH . '/inc/recaptcha/src/autoload.php'; // We use a wrapper class to avoid fatal errors due to syntax differences on PHP 5.2. require_once FUSION_LIBRARY_PATH . '/inc/recaptcha/class-fusion-recaptcha.php'; } // Instantiate recaptcha. $re_captcha_wrapper = new Fusion_ReCaptcha( $fusion_settings->get( 'recaptcha_private' ) ); $re_captcha = $re_captcha_wrapper->recaptcha; if ( $re_captcha && isset( $_POST['g-recaptcha-response'] ) && ! empty( $_POST['g-recaptcha-response'] ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput, WordPress.Security.NonceVerification $re_captcha_response = null; // Was there a reCAPTCHA response. $post_recaptcha_response = ( isset( $_POST['g-recaptcha-response'] ) ) ? trim( wp_unslash( $_POST['g-recaptcha-response'] ) ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput, WordPress.Security.NonceVerification $server_remote_addr = ( isset( $_SERVER['REMOTE_ADDR'] ) ) ? trim( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput, WordPress.Security.NonceVerification if ( 'v2' === $fusion_settings->get( 'recaptcha_version' ) ) { $re_captcha_response = $re_captcha->verify( $post_recaptcha_response, $server_remote_addr ); } else { $site_url = get_option( 'siteurl' ); $url_parts = wp_parse_url( $site_url ); $site_url = isset( $url_parts['host'] ) ? $url_parts['host'] : $site_url; $re_captcha_response = $re_captcha->setExpectedHostname( apply_filters( 'avada_recaptcha_hostname', $site_url ) )->setExpectedAction( 'contact_form' )->setScoreThreshold( $fusion_settings->get( 'recaptcha_score' ) )->verify( $post_recaptcha_response, $server_remote_addr ); } // Check the reCAPTCHA response. if ( null === $re_captcha_response || ! $re_captcha_response->isSuccess() ) { $response = [ 'has_error' => true, 'message' => __( 'Sorry, ReCaptcha could not verify that you are a human. Please try again.', 'fusion-builder' ), ]; $error_codes = []; if ( null !== $re_captcha_response ) { $error_codes = $re_captcha_response->getErrorCodes(); } if ( empty( $error_codes ) || in_array( 'score-threshold-not-met', $error_codes, true ) ) { $response = [ 'has_error' => true, 'message' => __( 'Sorry, ReCaptcha could not verify that you are a human. Please try again.', 'fusion-builder' ), ]; } } } else { $response = [ 'has_error' => true, 'message' => __( 'Sorry, ReCaptcha could not verify that you are a human. Please try again.', 'fusion-builder' ), ]; } return $response; } /** * Sets the necessary scripts. * * @access public * @since 3.10 */ public static function enqueue_scripts() { // Add reCAPTCHA script. $fusion_settings = awb_get_fusion_settings(); if ( $fusion_settings->get( 'recaptcha_public' ) && $fusion_settings->get( 'recaptcha_private' ) && ! function_exists( 'recaptcha_get_html' ) && ! class_exists( 'ReCaptcha' ) ) { $recaptcha_script_uri = 'https://www.google.com/recaptcha/api.js?render=explicit&hl=' . get_locale() . '&onload=fusionOnloadCallback'; if ( 'v2' === $fusion_settings->get( 'recaptcha_version' ) ) { $recaptcha_script_uri = 'https://www.google.com/recaptcha/api.js?hl=' . get_locale(); } wp_enqueue_script( 'recaptcha-api', $recaptcha_script_uri, [], FUSION_BUILDER_VERSION, false ); // Inline JS to render reCaptcha. add_action( 'wp_footer', [ self::get_instance(), 'recaptcha_callback' ], 99 ); } } /** * Generate reCaptcha callback * * @access public * @since 3.10 */ public static function recaptcha_callback() { $fusion_settings = awb_get_fusion_settings(); ?>