Automattic\WooCommerce\StoreApi\Utilities
PaymentUtils::get_saved_payment_methods
Returns enabled saved payment methods for a customer and the default method if there are multiple.
Method of the class: PaymentUtils{}
No Hooks.
Returns
Array.
Usage
$result = PaymentUtils::get_saved_payment_methods();
PaymentUtils::get_saved_payment_methods() PaymentUtils::get saved payment methods code WC 10.6.2
public static function get_saved_payment_methods() {
if ( ! is_user_logged_in() ) {
return;
}
add_filter( 'woocommerce_payment_methods_list_item', [ self::class, 'include_token_id_with_payment_methods' ], 10, 2 );
$enabled_payment_gateways = self::get_enabled_payment_gateways();
$saved_payment_methods = wc_get_customer_saved_methods_list( get_current_user_id() );
$payment_methods = [
'enabled' => [],
'default' => null,
];
// Filter out payment methods that are not enabled.
foreach ( $saved_payment_methods as $payment_method_group => $saved_payment_methods ) {
$payment_methods['enabled'][ $payment_method_group ] = array_values(
array_filter(
$saved_payment_methods,
function ( $saved_payment_method ) use ( $enabled_payment_gateways, &$payment_methods ) {
if ( true === $saved_payment_method['is_default'] && null === $payment_methods['default'] ) {
$payment_methods['default'] = $saved_payment_method;
}
return in_array( $saved_payment_method['method']['gateway'], array_keys( $enabled_payment_gateways ), true );
}
)
);
}
remove_filter( 'woocommerce_payment_methods_list_item', [ self::class, 'include_token_id_with_payment_methods' ], 10, 2 );
return $payment_methods;
}