woocommerce_available_payment_gateways

FILTER woocommerce\includes\class-wc-payment-gateways.php (ligne 376) github
Get available gateways for checkout. This should be used when displaying the available gateways/payment methods to the user, not in the WP admin or REST API contexts where there is no WC session. This is because the logic that hooks into the available gateways filter may try to rely on the existence of a WC session - a valid thing to do, and cause fatal errors when the session is not available.
traduction française
Récupère les passerelles disponibles pour le paiement. Ceci doit être utilisé pour afficher les passerelles/méthodes de paiement disponibles à l'utilisateur, et non dans le contexte de l'administration WP ou de l'API REST où il n'y a pas de session WC. En effet, la logique qui s'accroche au filtre des passerelles disponibles peut essayer de s'appuyer sur l'existence d'une session WC - une chose valide à faire, et provoquer des erreurs fatales lorsque la session n'est pas disponible.

Paramètres

Entrée :
$_available_gateways
Sortie :
@return array The available payment gateways.

Utilisation

Filtrer les moyens de paiement disponibles

Masquer certains moyens de paiement selon des conditions

order-flow
// Filtrer les moyens de paiement
add_filter('woocommerce_available_payment_gateways', 'filtrer_moyens_paiement', 10, 1);

function filtrer_moyens_paiement($gateways) {
    if (is_checkout()) {
        $cart_total = WC()->cart->get_total('');
        
        // Désactiver le paiement à la livraison si > 500€
        if ($cart_total > 500 && isset($gateways['cod'])) {
            unset($gateways['cod']);
        }
        
        // Forcer PayPal pour certains pays
        $country = WC()->customer->get_shipping_country();
        if ($country === 'US' && isset($gateways['bacs'])) {
            unset($gateways['bacs']);
        }
    }
    
    return $gateways;
}

Actualités

Chargement des actualités...