Frais si paiement par PayPal (Créer un compte)

  • WordPress :5.5
  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 15)
  • Auteur
    Messages
  • #2362235
    mary47
    Participant
    Initié WordPress
    48 contributions

    Bonjour,

    J’aimerais ajouter des frais de paiement au client si celui ci souhaite payer via PayPal, est-ce possible et comment faire ?

    Par exemple si le total de la commande s’élève à 30€, si le client souhaite payer par PayPal il paiera 30,50€.

    Merci !

    #2362240
    momofr@free.fr
    Modérateur
    Maître WordPress
    5265 contributions

    Salut, ce sont des frais fixes ou en % ?

    #2362268
    mary47
    Participant
    Initié WordPress
    48 contributions

    Des frais en pourcentage de préférence

    Sinon des frais fixes si ce n’est pas possible

    #2362404
    momofr@free.fr
    Modérateur
    Maître WordPress
    5265 contributions

    Salut, j’ai finalement trouvé une solution en gratuit pour avoir des frais en % avec ce snippet (à adapter selon tes besoins) :

    // AJOUT DE FRAIS EN % SUR LE PAIMENT PAYPAL
    add_action( 'woocommerce_cart_calculate_fees', 'bbloomer_add_checkout_fee_for_gateway' );
      
    function bbloomer_add_checkout_fee_for_gateway() {
        $amount = WC()->cart->cart_contents_total;
     
        $chosen_gateway = WC()->session->get( 'chosen_payment_method' );
         if ( $chosen_gateway == 'paypal' ) {
          WC()->cart->add_fee( 'Frais Paypal', $amount * 0.05 );
       }
    }
      
    // Part 2: reload checkout on payment gateway change
      
    add_action( 'woocommerce_review_order_before_payment', 'bbloomer_refresh_checkout_on_payment_methods_change' );
      
    function bbloomer_refresh_checkout_on_payment_methods_change(){
        ?>
        <script type="text/javascript">
            (function($){
                $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() {
                    $('body').trigger('update_checkout');
                });
            })(jQuery);
        </script>
        <?php
    }

    Tu peux adapter le % et modifier le texte qui s’affiche dans la commande.

    Ce snippet est à mettre dans le fichier functions.php de ton thème enfant.

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2363488
    mary47
    Participant
    Initié WordPress
    48 contributions

    Merci !

    Du coup pour ce faire je vais dans le cPanel > gestionnaire de fichiers > public_html > wp_content > themes > theme_child > je sélectionne le fichier functions.php > modifier > et je colle le snippet ci-dessus, c’est bien ça ?

    #2363510
    Li-An
    Modérateur
    Maître WordPress
    26957 contributions

    Bonjour, si vous devez faire des modifications de votre thème, je vous conseille fortement de passer par le FTP. En effet, en éditant le fichier avec un éditeur de code genre Notepad++, vous pouvez revenir en arrière en annulant vos modifications dans Notepad++ et renvoyant le fichier avant modification si vous rencontrez un problème. Dans tous les cas, vous devriez avoir une sauvegarde de votre thème sur votre disque dur.

    • Cette réponse a été modifiée le il y a 1 année et 11 mois par Li-An.
    #2363558
    mary47
    Participant
    Initié WordPress
    48 contributions

    Merci de votre réponse

    Je suis chez o2switch et ils effectuent très régulièrement des sauvegardes, de plus j’ai l’extension UpdraftPlus qui permet de faire des sauvegardes, je viens d’en effectuer une que je pourrais restaurer par la suite. Vous pensez que ça suffit en cas d’erreur pour restaurer mon site tel qu’il était avant la modification ?

    Merci.

    #2363559
    Li-An
    Modérateur
    Maître WordPress
    26957 contributions

    Si vous avez la base de données, le thème et les fichiers médias, vous avez tout le site. Il faut juste la liste des extensions en plus pour les réinstaller.

    #2363580
    momofr@free.fr
    Modérateur
    Maître WordPress
    5265 contributions

    Salut, tu peux faire la manip depuis WP dans Apparence -> Modifier le thème.

    Vérifie quand même que le contenu du fichier functions.php remonte bien dans l’éditeur (si c’est vide il faut passer par le FTP ou une extension WordPress comme File manager).

    J’ai testé ce snippet, il ne pose pas de souci, ça ne manipule que la partie souhaité. Pas de problème pour moi.

    #2366168
    Aloooa
    Participant
    Initié WordPress
    2 contributions

    Bonjour 🙂

     

    Ca, c’est génial. C’est exactement ce que je cherche 😀 Ca fonctionne d’ailleurs mieux que l’extention payante que j’ai testé il y a quelques jours…

    J’ai 2 questions, parceque je suis une quiche en php…

    1 : est-il possible de rendre ces frais taxables (en l’occurence, à une TVA à 20%) ?

    2 : est-il possible d’ajouter un lien sur le texte « Frais Paypal » ? J’ai naivement tenté le code html <a href… mais cela l’affiche comme si c’était du texte. L’idée est d’envoyer sur une page qui explique la raison de ces frais.

     

    Par avance, un énorme merci 🙂

    #2396724
    Arcanya
    Participant
    Initié WordPress
    2 contributions

    Bonjour,

    J’avais ajouté le bout de code comme indiqué dans le thème enfant et cela fonctionnait parfaitement, merci beaucoup à vous !! Mais depuis quelques jours, les frais additionnels ne s’ajoutent plus. Ils ne sont plus pris en compte, c’est peut-être dû à une mise à jour de Woocommerce ou autre… Suis-je le seul à avoir ce soucis ?
    Si c’est effectivement lié à cela, je veux bien une petite adaptation si c’est possible… 🙂

    Par avance merci !

    • Cette réponse a été modifiée le il y a 9 mois et 1 semaine par Arcanya.
    #2404786
    Infratek34
    Participant
    Initié WordPress
    2 contributions

    Bonjour

    J’ai également utilisé ce bout de code mais je l’ai adapté de sorte qu’il fonctionne avec woocommerce subscriptions. En outre, quand un client paie avec paypal son abonnement, les renouvellements doivent également comporter des frais.

    // AJOUT DE FRAIS SUR LE PAIEMENT PAYPAL
      // Part 1: assign fee
      add_action( 'woocommerce_cart_calculate_fees', 'bbloomer_add_checkout_fee_for_gateway' );
      // Part 2: reload checkout on payment gateway change
      add_action( 'woocommerce_review_order_before_payment', 'bbloomer_refresh_checkout_on_payment_methods_change' );
      // Part 3: fore subscription renwal
      add_filter( 'woocommerce_subscriptions_is_recurring_fee', '__return_true' );
      
      function bbloomer_add_checkout_fee_for_gateway() {
        $amount = WC()->cart->cart_contents_total;
        
        $chosen_gateway = WC()->session->get( 'chosen_payment_method' );
        if ( $chosen_gateway == 'paypal' ) {
          WC()->cart->add_fee( 'Frais Paypal', 1.50 );
        }
      }
      
    // Part 2: reload checkout on payment gateway change
      
    add_action( 'woocommerce_review_order_before_payment', 'bbloomer_refresh_checkout_on_payment_methods_change' );
      
    function bbloomer_refresh_checkout_on_payment_methods_change(){
        ?>
        <script type="text/javascript">
            (function($){
                $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() {
                    $('body').trigger('update_checkout');
                });
            })(jQuery);
        </script>
        <?php
    }

    J’aimerais cependant que l’ajout de frais récurrent (part 3) ne s’applique pas à certaines catégories de produit.

    Une idée d’adaptation du code ?

    Merci

    • Cette réponse a été modifiée le il y a 6 mois et 1 semaine par Infratek34.
    #2404884
    Rock4Temps
    Participant
    Maître WordPress
    623 contributions

    Bonjour,

    1 : est-il possible de rendre ces frais taxables (en l’occurence, à une TVA à 20%) ?

    Oui  c’est possible, seule la fonction: bbloomer_add_checkout_fee_for_gateway() est a modifier.
    Les explications sont dans le code ci-dessous:

    /* AJOUT DE FRAIS EN % SUR LE PAIMENT PAYPAL
    add_fee() accepte quatre paramètres 
    add_fee($fee_name, $amount, $taxable, $tax_class_string)
    $fee_name: le nom donnée a ce frais supplémentaire du panier
    $amount: le montant de ce frais supplémentaire de type flottant
    $taxable: frais imposé a une taxe de type boolean: true ou false (par défaut false)
    $tax_class: le nom de la taxe de type string définit dans le menu:
    Woocommerce/réglages/ onglet TVA
    */
     
    add_action( 'woocommerce_cart_calculate_fees', 'bbloomer_add_checkout_fee_for_gateway' );
      
    function bbloomer_add_checkout_fee_for_gateway() {
        $amount = WC()->cart->cart_contents_total;
    	$taxable = true;
    	// voici un exemple pour le nom de la taxe a remplacer par celui 
    	// que vous avez définit pour une TVA a 20%
    	$tax_class = 'TVA 20%';
    	
     
        $chosen_gateway = WC()->session->get( 'chosen_payment_method' );
    	
         if ( $chosen_gateway == 'paypal' ) {
          WC()->cart->add_fee( 'Frais Paypal', $amount * 0.05,$taxable,$tax_class );
       }
    }
    
    
    // Part 2: reload checkout on payment gateway change
      
    add_action( 'woocommerce_review_order_before_payment', 'bbloomer_refresh_checkout_on_payment_methods_change' );
      
    function bbloomer_refresh_checkout_on_payment_methods_change(){
        ?>
        <script type="text/javascript">
            (function($){
                $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() {
                    $('body').trigger('update_checkout');
                });
            })(jQuery);
        </script>
        <?php
    }

     

    #2404890
    Rock4Temps
    Participant
    Maître WordPress
    623 contributions

    Remarque si vous souhaitez aussi tenir compte pour le montant
    total du panier des frais de livraisons:

    //si on veut aussi tenir compte des frais de livraisons:
    $amount = ( WC()->cart->cart_contents_total +  WC()->cart->shipping_total);

    #2405017
    Arcanya
    Participant
    Initié WordPress
    2 contributions

    Bonjour,

    Pardonnez-moi mais je ne suis pas sûr d’avoir compris pourquoi le code de momofr@free.fr donné tout en haut de cette page ne fonctionne plus chez moi. Placé comme indiqué dans le thème enfant, il a fonctionné sans soucis depuis 2 ans…
    Pourriez-vous me dire précisément ce que je dois ajouter/modifier pour qu’il refonctionne, et dans quel fichier ? Car depuis quelques semaines, les gens qui payent via Paypal n’ont plus les 3% de frais que j’avais paramétrés alors que le code reste pourtant inchangé.
    En vous remerciant beaucoup par avance !

    Cordialement.

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