WC_Form_Handler::set_default_payment_method_action()public staticWC 1.0

Process the delete payment method form.

Method of the class: WC_Form_Handler{}

No Hooks.

Return

null. Nothing (null).

Usage

$result = WC_Form_Handler::set_default_payment_method_action();

WC_Form_Handler::set_default_payment_method_action() code WC 9.4.2

public static function set_default_payment_method_action() {
	global $wp;

	if ( isset( $wp->query_vars['set-default-payment-method'] ) ) {
		wc_nocache_headers();

		$token_id = absint( $wp->query_vars['set-default-payment-method'] );
		$token    = WC_Payment_Tokens::get( $token_id );

		if ( is_null( $token ) || get_current_user_id() !== $token->get_user_id() || ! isset( $_REQUEST['_wpnonce'] ) || false === wp_verify_nonce( wp_unslash( $_REQUEST['_wpnonce'] ), 'set-default-payment-method-' . $token_id ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
			wc_add_notice( __( 'Invalid payment method.', 'woocommerce' ), 'error' );
		} else {
			WC_Payment_Tokens::set_users_default( $token->get_user_id(), intval( $token_id ) );
			wc_add_notice( __( 'This payment method was successfully set as your default.', 'woocommerce' ) );
		}

		wp_safe_redirect( wc_get_account_endpoint_url( 'payment-methods' ) );
		exit();
	}
}