[Résolu] Comment puis-je restreindre la méthode de paiement contre remboursement à des catégories de produits spécifiques dans WooCommerce ?

  

4
Début du sujet

J'ai une boutique en ligne WooCommerce et pour une catégorie particulière (livres électroniques), je souhaite supprimer le mode de paiement par contre-remboursement.

Comment puis-je le faire avec un code en functions.php ?

Merci, Sam !

2 Réponses
3

Voici le code mon ami (mettez-le dans functions.php dans votre Child Theme) :

function custom_payment_gateway_for_product_category($available_gateways) {
    if (is_admin()) return $available_gateways;

    // Define the product category or tag ID
    $target_category = 'example-category'; // Replace with your category slug

    // Get the items in the cart
    foreach (WC()->cart->get_cart() as $cart_item) {
        $product_id = $cart_item['product_id'];

        // Check if the product belongs to the target category
        if (has_term($target_category, 'product_cat', $product_id)) {
            // Allow only specific payment gateway(s) and disable others
            unset($available_gateways['cod']); // Disable Cash on Delivery (COD)
            // You can unset other gateways similarly, if needed
        }
    }

    return $available_gateways;
}

add_filter('woocommerce_available_payment_gateways', 'custom_payment_gateway_for_product_category');
1

Dans WooCommerce >> Paramètres >> Paiements >> Contre remboursement >> Décocher Accepter le paiement à la livraison si la commande est virtuelle

réglages du cabillaud
Partager :