Comment désactiver la méthode de paiement pour une catégorie spécifique

Publié: 2020-09-01

WooCommerce Désactiver la méthode de paiement pour une catégorie spécifique Gérez-vous une boutique WooCommerce et souhaitez-vous savoir comment désactiver le mode de paiement pour une catégorie spécifique ou plusieurs modes de paiement en fonction des catégories de produits présentes dans le panier ? Si vous recherchez une solution axée sur les catégories de produits, mais avec quelques modifications mineures pouvant également être modifiées pour les classes d'expédition, par exemple sur les produits eux-mêmes, cet article vous guidera sur la manière d'y parvenir.

Désactiver le mode de paiement pour une catégorie spécifique

Un bon exemple où cette approche est utile est lorsque les propriétaires de magasins WooCommerce ont une catégorie contenant uniquement des produits à prix élevé et souhaitent que les clients paient par virement bancaire au lieu d'utiliser une carte de crédit. Ceci n'est qu'un exemple des nombreuses situations dans lesquelles vous devrez peut-être désactiver un mode de paiement pour une catégorie.

Si vous n'êtes pas féru de technologie, vous pouvez opter pour un plugin premium pour faire le travail à votre place. Un exemple est le plugin de paiement conditionnel WooCommerce, qui vous aide à créer des conditions dans lesquelles vos méthodes de paiement seront activées ou désactivées. Si vous n'êtes pas doué pour l'utilisation du code, ce sera la meilleure solution premium que vous devriez envisager.

De plus, ce plugin vous permet de créer des conditions illimitées et d'utiliser, par exemple, les totaux du panier, le pays de facturation, le rôle de l'utilisateur et bien plus encore pour définir quelle passerelle de paiement s'affiche et laquelle ne s'affiche pas.

Plugin de paiement conditionnel WooCommerce

Cependant, pour ce bref tutoriel, je vais vous montrer comment désactiver un mode de paiement pour une catégorie spécifique à l'aide d'extraits de code PHP.

Étapes pour désactiver la méthode de paiement pour une catégorie spécifique à l'aide d'un extrait de code PHP

Voici les étapes simples que vous devez suivre :

  1. Connectez-vous à votre site WordPress et accédez au tableau de bord en tant qu'utilisateur administrateur.
  2. Dans le menu Dashboard, cliquez sur Appearance Menu > Theme Editor Menu . Lorsque la page de l' éditeur de thème est ouverte, recherchez le fichier des fonctions du thème où nous ajouterons la fonction qui désactivera le mode de paiement pour une catégorie spécifique.
  3. Ajoutez le code suivant au fichier php :
 /**
 * @snippet Désactiver le mode de paiement pour une catégorie spécifique
*/


add_filter( 'woocommerce_available_payment_gateways', 'njengah_unset_gateway_by_category' );


function njengah_unset_gateway_by_category( $available_gateways ) {

    if ( is_admin() ) return $available_gateways ;

    if ( ! is_checkout() ) return $available_gateways ;

    $unset = faux ;

    $category_ids = array( 8, 37 );

    foreach ( WC()->cart->get_cart_contents() as $key => $values ​​) {

        $terms = get_the_terms( $values['product_id'], 'product_cat' );   

        foreach ( $termes comme $terme ) {       

            if ( in_array( $term->term_id, $category_ids ) ) {

                $unset = vrai ;

                Pause;

            }

        }

    }

    if ( $unset == true ) unset( $available_gateways['check'] );

    renvoie $available_gateways ;

}
  1. Ce seront les résultats désactiver un mode de paiement pour une catégorie spécifique

N'oubliez pas d'ajouter l'ID de catégorie correct qui se trouve dans votre boutique WooCommerce pour que ce code fonctionne.

Si vous n'aimez pas utiliser l'ID de catégorie, vous pouvez également utiliser le slug de catégorie dans votre boutique WooCommerce. Vous pouvez choisir de les utiliser, car ils sont plus faciles à comprendre pour référence future.

Étapes pour désactiver la méthode de paiement pour une catégorie spécifique à l'aide de slugs de catégorie

  1. Connectez-vous à votre site WordPress et accédez au tableau de bord en tant qu'utilisateur administrateur.
  2. Dans le menu Dashboard, cliquez sur Appearance Menu > Theme Editor Menu . Lorsque la page de l' éditeur de thème est ouverte, recherchez le fichier des fonctions du thème où nous ajouterons la fonction qui désactivera le mode de paiement pour une catégorie spécifique.
  3. Ajoutez le code suivant au fichier php :
 /**

 * @snippet Désactiver la passerelle de paiement en fonction de la catégorie.

*/

function njengah_disable_payment_gateway_category( $gateways ) {

// Catégories qui désactiveront la passerelle de paiement

$category_slugs = array( 'accessoires', 'une autre-catégorie' );

$category_ids = get_terms( array( 'taxonomy' => 'product_cat', 'slug' => $category_slugs, 'fields' => 'ids' ) );


// Vérifier chaque article du panier pour une catégorie donnée

foreach ( WC()->cart->get_cart() as $item ) {

$produit = $item['data'] ;

if ( $product && array_intersect( $category_ids, $product->get_category_ids() ) ) {

unset( $gateways['cod'] ); // Désactiver la passerelle de paiement 'cod' lorsque le produit appartient à l'une des catégories

Pause;

}

}

renvoie $passerelles ;

}

add_filter( 'woocommerce_available_payment_gateways', 'njengah_disable_payment_gateway_category' );
  1. Ce sera le résultat désactiver le mode de paiement pour une catégorie spécifique

N'oubliez pas d'ajouter le bon slug de catégorie et vous devez définir la passerelle de paiement que vous souhaitez désactiver. Pour mon exemple, j'ai utilisé 'cod' pour représenter le paiement à la livraison.

Il est important de noter que l'identifiant de la passerelle de paiement doit également être remplacé par celui que vous souhaitez désactiver lorsque la catégorie donnée est présente dans le panier.

  • Virement bancaire (bacs)
  • Chèque (chèque)
  • Paiement à la livraison (cod)
  • PayPal (Pay Pal)

Toutefois, si vous n'utilisez pas l'une des passerelles de paiement par défaut, ne vous inquiétez pas, car il existe toujours un moyen simple de connaître l'ID de la passerelle de paiement. Vous pouvez le faire en vous rendant sur la page des paramètres de la passerelle de paiement et vous y trouverez l'ID.

Par exemple, pour l'option Paiement à la livraison dans la page des paramètres, ce sera l'URL : wp-admin/admin.php?page=wc-settings&tab=checkout&section=cod

Conclusion

Dans cet article, vous avez appris à désactiver la méthode de paiement pour une catégorie spécifique en utilisant deux méthodes. Vous pouvez les définir à l'aide d'ID de catégorie de produit ou de slugs de catégorie pour une référence ultérieure facile. N'oubliez pas d'utiliser l'ID de catégorie ou le slug qui se trouve dans votre boutique WooCommerce pour ajouter cette fonctionnalité.

Articles similaires