Configuration des moyens de paiement WooCommerce

Dans cet article, je montre comment autoriser le paiement à la livraison seulement pour les abonnés connectés, de manière programmatique.

Pour rappel, les moyens de paiements WooCommerce peuvent être configurés à partir de son sous-menu Réglages, dans l’onglet Paiements.

Sukellos WordPress CSS

Je me contente d’activer les moyens n’impliquant aucun système tiers :

  • Virement bancaire,
  • Paiements par chèque,
  • Paiement à la livraison

Filtrage des moyens de paiement

Le hook woocommerce_available_payment_gateways permet de filtrer les moyens de paiement disponibles, en les récupérant dans le paramètre $gateways :

apply_filters( 'woocommerce_available_payment_gateways', $gateways )

Dans cet exemple, voici un aperçu du contenu du paramètre $gateways :

Copier

Il suffit donc de supprimer l’entrée WC_Gateway_COD possédant la clef cod dans ce tableau pour désactiver le moyen de paiement à la livraison.

Le code intégral

Le code complet de l’exemple, à placer das le fichier functions.php du thème enfant utilisé par WordPress :

Copier

Dans ce code, aucun filtrage n’est appliqué si la navigation se trouve côté administration WordPress, afin de ne pas en altérer le fonctionnement. Cette condition est vérifiée à l’aide de is_admin() au début de l’exécution du filtre.

Le contrôle de connexion est effectuée grâce à la fonction is_user_logged_in() de WordPress.

La fonction get_currentuserinfo() permet de récupérer les informations sur l’utilisateur courant, et notamment ses roles. Afin de vérifier qu’il ait un rôle abonné, il faut vérifier si la chaîne subscriber est présente dans le tableau de ses rôles.

Le moyen de paiement est supprimé cette instruction : unset( $gateways['cod'] );

Quelques liens pour approfondir

Besoin d’une assistance technique par un expert WordPress ?
Optez pour un crédit temps de quelques heures

Laisser un commentaire