6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Messages
  • #100753
    Pierre
    Participant
    Points: 25 pts
    Membre 2 étoiles

    Bonjour à tous,

    Je cherche à rendre possible les paiements par tout moyen seulement pour créditer le wallet et les produits d’abonnements (mensuel et annuel).

    J’ai ce code qui fonctionne très bien pour le wallet, mais comment inclure dedans cette possibilité également mais uniquement pour les cart qui ne contiennent QUE un produit d’abonnement (catégorie abonnement) et rien d’autre?

    
    if(!function_exists('woocommerce_available_payment_gateways_callback')){
    
      if(!function_exists('woocommerce_available_payment_gateways_callback')){
        function woocommerce_available_payment_gateways_callback($_available_gateways){
            if(!is_admin() && !is_wallet_rechargeable_cart()){
                foreach ($_available_gateways as $id => $gateway){
                    if('wallet' != $id){
                        unset($_available_gateways[$id]);
                    }
                }
            }
            return $_available_gateways;
        }
    }
    add_filter('woocommerce_available_payment_gateways', 'woocommerce_available_payment_gateways_callback'); 
    

    Merci à tous,

    Belle journée,`

    depanagewp
    #101145
    Guy
    Participant
    Points: 5,495 pts
    ModérateurCertifiéFreelance
    Membre 2 étoiles

    Bonjour,

    Peut-être avec l’aide d’un plugin
    https://yithemes.com/themes/plugins/yith-payment-method-restrictions-for-woocommerce/

     

    Content(e) de mon aide ? Vous pouvez m'offrir un café ! 🙂

    Avant d'appeler à l'aide: Dépannage Woocommerce

    Vous manquez de trafic ? Payez le prix d'un seul backlink et obtenez-en beaucoup plus !

    depanagewp
    #101214
    Pierre
    Participant
    Points: 25 pts
    Membre 2 étoiles

    Bonjour,

    Dans la mesure du possible, je préférerais le faire avec du code afin de n’avoir que les fonctionnalités dont j’ai besoin et ne pas avoir 50 modules complémentaires.

    Je débute dans l’apprentissage du code donc je ne suis pas en mesure de le faire moi même mais l’idée est d’apprendre au passage.

    depanagewp
    #101365
    Guy
    Participant
    Points: 5,495 pts
    ModérateurCertifiéFreelance
    Membre 2 étoiles

    Bonjour,

    Alors peut-être que ceci peut aider:
    https://businessbloomer.com/?p=19892

     

    Content(e) de mon aide ? Vous pouvez m'offrir un café ! 🙂

    Avant d'appeler à l'aide: Dépannage Woocommerce

    Vous manquez de trafic ? Payez le prix d'un seul backlink et obtenez-en beaucoup plus !

    depanagewp
    #101563
    Pierre
    Participant
    Points: 25 pts
    Membre 2 étoiles

    Bonjour Guy,

    Effectivement, je me suis rabattu sur cette solution, mais il me reste à un point à régler.
    Dans la première partie du code, le paiement par Stripe est désactivé pour certaines catégories de produits.
    Comment rendre une autre catégorie de produit payable uniquement avec Stripe en plus de la première restriction? Je pense qu’il faut définir une seconde catégorie de variable, pour appliquer une même règle dont on attends un résultat différent mais je n’y arrive pas.

    Je cherche un truc du genre, if category array( 28 ), unset ‘wallet’

    /**
     * @snippet       Disable Payment Method for Specific Category
     * @how-to        Watch tutorial @ https://businessbloomer.com/?p=19055
     * @sourcecode    https://businessbloomer.com/?p=19892
     * @author        Rodolfo Melogli
     * @compatible    WC 3.5.4
     * @donate $9     https://businessbloomer.com/bloomer-armada/
     */
     
    add_filter( 'woocommerce_available_payment_gateways', 'bbloomer_unset_gateway_by_category' );
     
    function bbloomer_unset_gateway_by_category( $available_gateways ) {
    global $woocommerce;
    $unset = false;
    $category_ids = array( 17, 16, 22 );
    /**
     * Les valeurs 17, 16 et 22 correspondent aux ID des catégories
     */  
    foreach ( $woocommerce->cart->cart_contents as $key => $values ) {
        $terms = get_the_terms( $values['product_id'], 'product_cat' );    
        foreach ( $terms as $term ) {        
            if ( in_array( $term->term_id, $category_ids ) ) {
                $unset = true;
                break;
            }
        }
    }    
        if ( $unset == true ) unset( $available_gateways['stripe'] );
        if ( $unset == true ) unset( $available_gateways['bacs'] );
        return $available_gateways;
    }
    depanagewp
    #101754
    Guy
    Participant
    Points: 5,495 pts
    ModérateurCertifiéFreelance
    Membre 2 étoiles

    Salut Pierre,

    Désolé mais je ne vais pas pouvoir t’aider plus. Ca m’arrive aussi de bidouiller un peu dans le code mais ce n’est pas ma passion, ça doit être pour ça que je ne suis pas développeur 😉

    En général ça me demande des plombes pour arriver à un résultat, c’est là que je trouve tout l’intérêt des plugins, un gros gain de temps.

    Content(e) de mon aide ? Vous pouvez m'offrir un café ! 🙂

    Avant d'appeler à l'aide: Dépannage Woocommerce

    Vous manquez de trafic ? Payez le prix d'un seul backlink et obtenez-en beaucoup plus !

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