is_activated() ) { return false; } // Problem: REST_REQUEST constant is false during Store API requests, so we check the rest_route parameter instead. $request_uri = defender_get_data_from_request( 'REQUEST_URI', 's' ); if ( '' !== $request_uri && strpos( $request_uri, 'rest_route=/wc/store/v1/checkout' ) !== false ) { return true; } $post_data = defender_get_data_from_request( null, 'p' ); if ( 0 === count( $post_data ) ) { return false; } if ( isset( $post_data['woocommerce-login-nonce'] ) || isset( $post_data['woocommerce-register-nonce'] ) || isset( $post_data['woocommerce_checkout_login'] ) || ( isset( $post_data['login'] ) && is_checkout() ) || ( isset( $post_data['register'] ) && isset( $post_data['email'] ) ) || isset( $post_data['wc_reset_password'] ) ) { return true; } $referer = wp_get_referer(); if ( $referer && function_exists( 'wc_get_page_id' ) ) { $my_account_page_id = wc_get_page_id( 'myaccount' ); if ( $my_account_page_id > 0 ) { $my_account_url = get_permalink( $my_account_page_id ); return strpos( $referer, $my_account_url ) === 0; } } return false; } /** * Retrieves an array of WooCommerce forms with their respective translations. * * @return array An associative array where the keys are the form identifiers and the values are the translated * form names. */ public static function get_forms(): array { return array( self::WOO_LOGIN_FORM => esc_html__( 'Login', 'defender-security' ), self::WOO_REGISTER_FORM => esc_html__( 'Registration', 'defender-security' ), self::WOO_LOST_PASSWORD_FORM => esc_html__( 'Lost Password', 'defender-security' ), self::WOO_CHECKOUT_FORM => esc_html__( 'Checkout', 'defender-security' ), ); } }