Tengo un problema con un código. Así que tengo cinco métodos de pago diferentes en mi sitio. Cuando un cliente selecciona "Contra reembolso" como método de envío, todos los métodos de pago, excepto el pago contra reembolso, se ocultan. Para hacer eso, uso el siguiente código:
/** * Remove payment methods when select "pagamento in contrassegno" */ function my_custom_available_payment_gateways( $gateways ) { $chosen_shipping_rates = WC()->session->get( 'chosen_shipping_methods' ); // When 'Pagamento in contrassegno' has been chosen as shipping rate if ( in_array( 'flat_rate:5', $chosen_shipping_rates ) ) : // Remove the follow payments unset( $gateways['woocommerce_payments'] ); unset( $gateways['paypal'] ); unset( $gateways['bacs'] ); unset( $gateways['klarna_payments_pay_later'] ); endif; return $gateways; } add_filter( 'woocommerce_available_payment_gateways', 'my_custom_available_payment_gateways' );El código funciona con todos los pagos, excepto los pagos de Klarna que quedan si selecciono "Pagamento in contrassegno" (contra reembolso), ¿cómo puedo solucionar eso?
El sitio es: https://www.modacapellishop.it/
Prueba con
unset( $gateways['klarna_payments'] );esto funciona para mi