Cum să adăugați taxe sau reduceri pentru diferite metode de plată în WooCommerce
Publicat: 2019-03-26Vedem pe site-urile de comerț electronic că, cu fiecare metodă de plată pe care o alegeți în timpul plății, există adesea o taxă de serviciu sau chiar o reducere asociată. De asemenea, este de remarcat faptul că taxa de serviciu pentru Ramburs la livrare este mai mare decât cea pentru metodele alternative de plată. Acest lucru este pentru a crește șansele de plăți anticipate. Plățile anticipate ajută nu doar la reducerea riscului de a nu fi plătit de către client, ci și la asigurarea fluxului de numerar în afacere. În cazul în care nu există taxe de serviciu asociate cu metodele de plată, pot exista reduceri oferite atunci când alegeți să plătiți cu alte metode decât Ramburs la livrare.
De asemenea, este posibil să doriți să adăugați reduceri pentru anumite metode de plată, în funcție de schemele sau promoțiile pe care doriți să le derulați. Reducerile sunt atractive în general pentru clienți și ajută la creșterea vânzărilor. În această postare, vă vom arăta diferitele moduri în care puteți adăuga taxe sau reduceri pentru diferite metode de plată în WooCommerce și, în consecință, puteți beneficia de acestea.
Adăugarea de reduceri procentuale pentru diferite metode de plată prin intermediul fragmentelor de cod
Puteți realiza acest lucru adăugând fragmente de cod în fișierul functions.php al temei copilului dumneavoastră.
Codul de mai jos adaugă o reducere la suma totală atunci când PayPal este ales ca metodă de plată pe pagina de plată WooCommerce. Atribuind o valoare pentru $percent, puteți specifica procentul de reducere pe care doriți să îl aplicați pentru metoda de plată dorită. Metodele de plată implicite în WooCommerce sunt Transfer bancar direct (bacs), plăți cu cec (cec), Ramburs la livrare (cod) și PayPal (paypal), cu ID-urile menționate între paranteze.
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); funcția ts_add_discount( $cart_object ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; // Menționați metoda de plată de exemplu cod, bacs, cec sau paypal $payment_method = 'paypal'; // Procentul de aplicat $procent = 2; // 2% $cart_total = $cart_object->subtotal_ex_tax; $metoda_de_plată_aleasă = WC()->sesiune->get('metoda_de_plată_aleasă'); //Obțineți metoda de plată selectată if( $metodă_de_plată == $metodă_de_plată_aleasă){ $label_text = __( "Reducere PayPal" ); // Calcularea procentului $reducere = format_număr(($cart_total / 100) * $procent, 2); // Adăugarea reducerii $cart_object->add_fee( $label_text, -$discount, false ); } } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method'); funcția ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (funcție($){ $( 'form.checkout' ).on( 'schimbare', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }
Veți avea nevoie de două funcții aici - una pentru a face treaba de a adăuga reduceri sau taxe adecvate și una pentru a păstra o filă cu privire la modificările în selectarea metodei de plată de către utilizator, pentru care folosim javascript. Cârligele woocommerce_cart_calculate_fees și woocommerce_review_order_before_payment sunt folosite pentru a adăuga aceste două funcții, respectiv.
Valorile pe care metodele de plată le au pentru Transfer Bancar Direct, Cec, Ramburs la Livrare și PayPal sunt bacs , cec , cod și respectiv paypal . Funcția add_fee() este o metodă încorporată a clasei WC_Cart în WooCommerce.
Astfel, suma reducerii va fi dedusă din subtotal, iar totalul va fi afișat astfel:
Cu mici modificări, puteți menționa reduceri pentru mai multe metode de plată în același fragment de cod:
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); funcția ts_add_discount( $cart_object ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $label_text=__(""); $procent=0; // Menționați metoda de plată de exemplu cod, bacs, cec sau paypal $cart_total = $cart_object->subtotal_ex_tax; $metoda_de_plată_aleasă = WC()->sesiune->get('metoda_de_plată_aleasă'); //Obțineți metoda de plată selectată dacă( $metoda_de_plată_aleasă == „paypal” ){ $label_text = __( "Reducere PayPal" ); // Procentul de aplicat $procent = 2; // 2% } else if( $choen_payment_method == "bacs"){ $label_text = __( „Reducere prin transfer bancar direct” ); // Procentul de aplicat $procent = 3; // 3% } else if( $choen_payment_method == „cec”){ $label_text = __( „Reducere la plata cecului” ); // Procentul de aplicat $procent = 2; // 2% } else { $label_text = __( "Reducere la livrare" ); // Procentul de aplicat $procent = 0; // 0% } // Calcularea procentului $reducere = format_număr(($cart_total / 100) * $procent, 2); // Adăugarea reducerii $cart_object->add_fee( $label_text, -$discount, false ); } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method'); funcția ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (funcție($){ $( 'form.checkout' ).on( 'schimbare', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }
Adăugarea unor reduceri fixe pentru diferite metode de plată prin intermediul fragmentelor de cod
Să presupunem că doriți să menționați o sumă în loc de un procent. Puteți face acest lucru folosind din nou același fragment, eliminând pasul în care calculați procentul și acceptând suma reducerii ca intrare în funcție de fiecare metodă de plată:
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); funcția ts_add_discount( $cart_object ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $label_text=__(""); $discount_amount=0; // Menționați metoda de plată de exemplu cod, bacs, cec sau paypal $cart_total = $cart_object->subtotal_ex_tax; $metoda_de_plată_aleasă = WC()->sesiune->get('metoda_de_plată_aleasă'); //Obțineți metoda de plată selectată dacă( $metoda_de_plată_aleasă == „paypal” ){ $label_text = __( "Reducere PayPal" ); // Valoarea reducerii de aplicat $discount_amount = 200; } else if( $choen_payment_method == "bacs"){ $label_text = __( „Reducere prin transfer bancar direct” ); // Valoarea reducerii de aplicat $discount_amount = 150; } else if( $choen_payment_method == „cec”){ $label_text = __( „Reducere la plata cecului” ); // Valoarea reducerii de aplicat $discount_amount = 100; } else { $label_text = __( "Reducere la livrare" ); // Valoarea reducerii de aplicat $discount_amount = 0; } // Adăugarea reducerii $cart_object->add_fee( $label_text, -$discount_amount, false ); } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method'); funcția ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (funcție($){ $( 'form.checkout' ).on( 'schimbare', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }

Pentru a adăuga o taxă de serviciu, trebuie pur și simplu să schimbați semnul unuia dintre argumentele din funcția add_fee de la „-” la „+” sau niciun semn care implică pozitiv.
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); funcția ts_add_discount( $cart_object ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $label_text=__(""); $service_charge=0; // Menționați metoda de plată de exemplu cod, bacs, cec sau paypal $cart_total = $cart_object->subtotal_ex_tax; $metoda_de_plată_aleasă = WC()->sesiune->get('metoda_de_plată_aleasă'); //Obțineți metoda de plată selectată dacă( $metoda_de_plată_aleasă == „paypal” ){ $label_text = __( „Taxa de serviciu PayPal” ); // Taxa de serviciu de aplicat $service_charge=200; } else if( $choen_payment_method == "bacs"){ $label_text = __( „Taxa de serviciu de transfer bancar direct” ); // Taxa de serviciu de aplicat $service_charge=100; } else if( $choen_payment_method == „cec”){ $label_text = __( „Taxa de serviciu de plată cu cec” ); // Taxa de serviciu de aplicat $service_charge=150; } else { $label_text = __( „Taxa de serviciu ramburs la livrare” ); // Taxa de serviciu de aplicat $service_charge=250; } // Adăugarea taxei de serviciu $cart_object->add_fee( $label_text, $service_charge, false); } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method'); funcția ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (funcție($){ $( 'form.checkout' ).on( 'schimbare', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }
În acest fel, se va aplica o taxă de serviciu conform metodei de plată selectate:
Adăugarea de reduceri pentru diferite metode de plată numai pentru utilizatorii conectați (prin fragmente de cod)
Dacă doriți să oferiți aceste reduceri numai pentru utilizatorii autentificați (așa cum se solicită printr-un comentariu la această postare), trebuie să adăugați pur și simplu o condiție care verifică dacă utilizatorul este conectat sau nu. Acest lucru poate fi realizat de funcția is_user_logged_in() . Fragmentul de cod de mai jos arată cum puteți adăuga reduceri procentuale pentru o anumită metodă de plată numai pentru utilizatorii conectați.
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); funcția ts_add_discount( $cart_object ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; dacă (este_user_logged_in()){ // Menționați metoda de plată de exemplu cod, bacs, cec sau paypal $payment_method = 'paypal'; // Procentul de aplicat $procent = 2; // 2% $cart_total = $cart_object->subtotal_ex_tax; $metoda_de_plată_aleasă = WC()->sesiune->get('metoda_de_plată_aleasă'); //Obțineți metoda de plată selectată if( $metodă_de_plată == $metodă_de_plată_aleasă){ $label_text = __( "Reducere PayPal" ); // Calcularea procentului $reducere = format_număr(($cart_total / 100) * $procent, 2); // Adăugarea reducerii $cart_object->add_fee( $label_text, -$discount, false ); } } } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method'); funcția ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (funcție($){ $( 'form.checkout' ).on( 'schimbare', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }
Puteți folosi oricare dintre fragmentele de cod din această postare, în funcție de cerințele dvs. Trebuie să adăugați pur și simplu o condiție - if (is_user_logged_in()) în acel fragment de cod dacă doriți să restricționați acest lucru numai la utilizatorii conectați.
Adăugarea de taxe sau reduceri pentru diferite metode de plată prin pluginuri
Dacă nu doriți să adăugați fragmente de cod, există o modalitate ușoară de a realiza același lucru - pluginuri! Există atât pluginuri gratuite, cât și plătite care oferă diferite funcții.
Taxe și reduceri bazate pe Gateway de plată pentru WooCommerce
Acesta este un plugin gratuit de la noi care vă permite să adăugați taxe, reduceri, taxe etc. și chiar să setați sumele minime și maxime ale coșului ca criterii. Puteți chiar rotunji taxa după aplicarea reducerii. Și puteți face toate acestea cu o interfață ușor de utilizat, accesibilă prin tabloul de bord:- Reduceri pe metodă de plată pentru WooCommerce (gratuit)
Acesta este un plugin gratuit de la WPCodelibrary care oferă o interfață simplă în interiorul tabloului de bord WordPress pentru a seta reduceri pentru metodele de plată prestabilite oferite de WooCommerce. Cu toate acestea, nu are o caracteristică pentru a adăuga taxe sau taxe pentru servicii.
- Taxe și reduceri bazate pe Gateway de plată pentru WooCommerce (39 USD)
Acest plugin premium de la noi vine cu un set întreg de funcții în care puteți adăuga taxe, precum și reduceri pentru diferite metode de plată în funcție de țară, stat, categorie de produs etc. Pe lângă aceasta, puteți aplica și taxe pe taxe (excluzând taxele de transport). ) folosind pluginul. Interfața este simplă și ușor de utilizat și, de asemenea, puteți aplica diferite reduceri și taxe pentru produse individuale.