WooFrance Dépannage et support WordPress WooCommerce Forums Forum de Support WooCommerce affichage des modes de paiements conditionnels selon les roles

Étiqueté : 

  • Ce sujet contient 3 réponses, 2 participants et a été mis à jour pour la dernière fois par Anonyme, le il y a 2 années et 8 mois.
4 sujets de 1 à 4 (sur un total de 4)
  • Auteur
    Messages
  • #257743
    Guins
    Participant
    Points: 21 pts
    Membre 2 étoiles

    bonjour,

    je souhaite proposer seulement le mode de paiement par chèque pour les clients ayant le role “clients_commerciaux”. Pour les autres clients je souhaite proposer les modes de paiements par CB (plegd dans mon cas) mais pas le chèque. Je veux éviter de devoir prendre une extension payante ( je sais que Booster qui fait cela)

    j’ai trouvé un script php à afficher sur le fichier config.php qui permet un affichage des modes de paiement conditionnel selon le role. Le problème est qu’ il ne répond pas pleinement à mon besoin (il affiche quand même le mode de paiement CB pour les clients ayant le role “clients-commerciaux”. or je ne veux pas

    je ne suis pas assez à l’aise avec php pour l’adapter à mes besoins. Est ce qu’un ame charitable peut me donner un coup de main soit en m’indiquant une extension gratuite qui répond à mes besoins ou en modifiant le script php que j’ai trouvé ?

    le script :

    add_filter(‘woocommerce_available_payment_gateways’, ‘dmkt_filter_gateways’);
    function dmkt_filter_gateways($gateway_list){
    global $woocommerce;

    if (!current_user_can(‘clients_commerciaux’)  ){
    unset($gateway_list[‘cheque’]);
    }
    return $gateway_list;
    }

    En vous remerciant par avance pour votre aide et bienveillance

     

     

     

     

    depanagewp
    #259240
    Anonyme
    Inactif
    Points: 0 pts

    Bonjour,

    Dans ces cas là vous pouvez ajouter à la suite de votre code :

    if (!current_user_can(‘clients_commerciaux’)  ){
    unset($gateway_list[‘cheque’]);
    }

    else{
    unset($gateway_list[‘cb’]);
    }
    return $gateway_list;
    }

    Je ne sait pas si la clé “cb” est reconnu, mais vous pourrez surement le voir dans votre fichier config. En gros le code dit : Si le client actuel n’est pas un client commercial, alors tu enlève l’option paiement par chèque, sinon tu enlève le paiement par CB, et tu affiche le moyen restant.

    si vous voulez plus de précisions dans la condition, vous pouvez remplacer “else” par : “else if (current_user_can(‘clients_commerciaux’)”

     

    depanagewp
    #259845
    Guins
    Participant
    Points: 21 pts
    Membre 2 étoiles

    super, merci beaucoup

    depanagewp
    #260127
    Anonyme
    Inactif
    Points: 0 pts

    Avec plaisir, n’hésitez pas à nous partager la clé avec laquelle vous avez pu cibler le paiement par carte bancaire, ça pourrait servir à d’autres membres de la communauté.

    Excellente continuation à vous

    depanagewp
4 sujets de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.