est_to_stripe_api( $headers, $body ) { $response = $this->stripe_handler->post( $headers, $body, self::STRIPE_CHECKOUT_URL_EXT ); wp_send_json( $response ); } /** * Add secret_keys to Elementor integrations section * * @since 3.7.0 * * @param Settings $settings */ public function register_admin_fields( Settings $settings ) { $settings->add_section( Settings::TAB_INTEGRATIONS, 'stripe_api_keys', [ 'callback' => function () { echo '

' . esc_html__( 'Stripe', 'elementor-pro' ) . '

'; echo '

' . esc_html__( 'Insert the API keys provided in the stripe admin dashboard to start collecting payments on your website using Stripe.', 'elementor-pro' ) . '
'; echo esc_html__( 'These keys will serve as your default API key for all stripe implementations on your site.', 'elementor-pro' ) . '

'; }, 'fields' => [ self::STRIPE_TEST_SECRET_KEY => [ 'label' => esc_html__( 'Test Secret key', 'elementor-pro' ), 'field_args' => [ 'type' => 'text', 'desc' => sprintf( /* translators: 1: Link to stripe api key explanation, 2: Link closing tag. */ esc_html__( 'Enter your test secret key %1$slink%2$s.', 'elementor-pro' ), '', '' ), ], ], 'validate_stripe_api_test_secret_key_button' => [ 'field_args' => [ 'type' => 'raw_html', 'html' => sprintf( '', self::STRIPE_TEST_SECRET_KEY . '_validate', wp_create_nonce( self::STRIPE_TEST_SECRET_KEY ), esc_html__( 'Validate Test API Key', 'elementor-pro' ) ), ], ], self::STRIPE_LIVE_SECRET_KEY => [ 'label' => esc_html__( 'Live Secret key', 'elementor-pro' ), 'field_args' => [ 'type' => 'text', 'desc' => sprintf( /* translators: 1: Link to stripe api key explanation, 2: Link closing tag. */ esc_html__( 'Enter your Live secret key %1$slink%2$s.', 'elementor-pro' ), '', '' ), ], ], 'validate_stripe_api_live_secret_key_button' => [ 'field_args' => [ 'type' => 'raw_html', 'html' => sprintf( '', self::STRIPE_TEST_SECRET_KEY . '_validate', wp_create_nonce( self::STRIPE_TEST_SECRET_KEY ), esc_html__( 'Validate Live API Key', 'elementor-pro' ) ), ], ], 'stripe_legal_disclaimer' => [ 'field_args' => [ 'type' => 'raw_html', 'html' => sprintf( /* translators: %s:
. */ esc_html__( 'Please note: The Stripe name and logos are trademarks or service marks of Stripe, Inc. or its affiliates in the U.S. and other countries. %s Other names may be trademarks of their respective owners.', 'elementor-pro' ), '
' ), ], ], ], ] ); } /** * Get the base URL for assets. * * @return string */ public function get_assets_base_url(): string { return ELEMENTOR_PRO_URL; } public function __construct() { parent::__construct(); $this->stripe_handler = new Stripe_Handler(); add_action( 'wp_ajax_submit_stripe_form', [ $this, 'submit_stripe_form' ] ); add_action( 'wp_ajax_nopriv_submit_stripe_form', [ $this, 'submit_stripe_form' ] ); add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] ); if ( current_user_can( 'administrator' ) && API::is_licence_has_feature( static::STRIPE_LICENCE_FEATURE_NAME, API::BC_VALIDATION_CALLBACK ) ) { add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 999 ); } add_action( 'wp_ajax_' . self::STRIPE_TEST_SECRET_KEY . '_validate', [ $this, 'ajax_validate_secret_key' ] ); add_action( 'wp_ajax_' . self::STRIPE_LIVE_SECRET_KEY . '_validate', [ $this, 'ajax_validate_secret_key' ] ); } }