วิธีเพิ่มค่าธรรมเนียมหรือส่วนลดสำหรับวิธีการชำระเงินแบบต่างๆ ใน WooCommerce
เผยแพร่แล้ว: 2019-03-26เราเห็นในเว็บไซต์อีคอมเมิร์ซว่าด้วยวิธีการชำระเงินแต่ละแบบที่คุณเลือกขณะชำระเงิน มักจะมีค่าบริการหรือแม้แต่ส่วนลดที่เกี่ยวข้อง เป็นที่น่าสังเกตว่าค่าบริการสำหรับเงินสดเมื่อส่งมอบนั้นสูงกว่าวิธีการชำระเงินแบบอื่น เพื่อเพิ่มโอกาสในการชำระเงินล่วงหน้า การชำระเงินล่วงหน้าไม่เพียงช่วยลดความเสี่ยงที่จะไม่ได้รับเงินจากลูกค้าเท่านั้น แต่ยังช่วยรับประกันกระแสเงินสดในธุรกิจอีกด้วย ในกรณีที่ไม่มีค่าบริการที่เกี่ยวข้องกับวิธีการชำระเงิน อาจมีส่วนลดให้เมื่อคุณเลือกชำระเงินด้วยวิธีอื่นนอกเหนือจากการเก็บเงินปลายทาง
คุณยังอาจต้องการเพิ่มส่วนลดสำหรับวิธีการชำระเงินบางวิธี ทั้งนี้ขึ้นอยู่กับรูปแบบหรือโปรโมชั่นที่คุณอาจต้องการดำเนินการ ส่วนลดเป็นสิ่งที่ดึงดูดใจลูกค้าโดยทั่วไป และช่วยในการเพิ่มยอดขาย ในโพสต์นี้ เราจะแสดงให้คุณเห็นถึงวิธีต่างๆ ที่คุณสามารถเพิ่มค่าธรรมเนียมหรือส่วนลดสำหรับวิธีการชำระเงินต่างๆ ใน WooCommerce และทำให้ได้รับประโยชน์เช่นเดียวกัน
การเพิ่มส่วนลดเป็นเปอร์เซ็นต์สำหรับวิธีการชำระเงินต่างๆ ผ่านข้อมูลโค้ด
คุณสามารถทำได้โดยการเพิ่มข้อมูลโค้ดในไฟล์ functions.php ของธีมย่อยของคุณ
รหัสด้านล่างจะเพิ่มส่วนลดให้กับยอดรวมเมื่อเลือก PayPal เป็นวิธีการชำระเงินในหน้าชำระเงินของ WooCommerce โดยการกำหนดค่าเป็น $percent คุณสามารถระบุเปอร์เซ็นต์ของส่วนลดที่คุณต้องการใช้กับวิธีการชำระเงินที่ต้องการได้ วิธีการชำระเงินเริ่มต้นใน WooCommerce คือการโอนเงินผ่านธนาคารโดยตรง (bacs) การชำระเงินด้วยเช็ค (เช็ค) เงินสดในการจัดส่ง (cod) และ PayPal (paypal) โดยมีรหัสระบุไว้ในวงเล็บ
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); ฟังก์ชัน ts_add_discount ( $cart_object ) { ถ้า ( is_admin() && ! กำหนด ( 'DOING_AJAX' ) ) ส่งคืน; // ระบุวิธีการชำระเงิน เช่น cod, bacs, เช็ค หรือ paypal $payment_method = 'เพย์พาล'; // เปอร์เซ็นต์การสมัคร เปอร์เซ็นต์ $% = 2; // 2% $cart_total = $cart_object->ผลรวมย่อย_ex_tax; $chosen_payment_method = WC()->session->get('chosen_payment_method'); //รับวิธีการชำระเงินที่เลือก ถ้า( $payment_method == $chosen_payment_method ){ $label_text = __( "ส่วนลดเพย์พาล" ); // กำลังคำนวณเปอร์เซ็นต์ $ส่วนลด = number_format(($cart_total / 100) * $percent, 2); // เพิ่มส่วนลด $cart_object->add_fee( $label_text, -$ส่วนลด, เท็จ ); } } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' ); ฟังก์ชัน ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (ฟังก์ชัน($){ $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }
คุณจะต้องมีฟังก์ชันสองอย่างในที่นี้ ฟังก์ชันแรกเพื่อเพิ่มส่วนลดหรือค่าธรรมเนียมที่เหมาะสม และอีกฟังก์ชันหนึ่งเพื่อคอยดูการเปลี่ยนแปลงในการเลือกวิธีการชำระเงินโดยผู้ใช้ ซึ่งเราใช้จาวาสคริปต์ woocommerce_cart_calculate_fees และ woocommerce_review_order_before_payment hooks ถูกใช้เพื่อเพิ่มฟังก์ชันทั้งสองนี้ตามลำดับ
มูลค่าที่วิธีการชำระเงินมีสำหรับการโอนเงินผ่านธนาคารโดยตรง เช็ค เงินสดเมื่อจัดส่ง และ PayPal คือ bacs , เช็ค , cod และ paypal ตามลำดับ ฟังก์ชัน add_fee() เป็นวิธีการที่สร้างขึ้นในคลาส WC_Cart ใน WooCommerce
ซึ่งจะส่งผลให้ยอดส่วนลดถูกหักออกจากยอดรวมย่อย และยอดรวมจะแสดงดังนี้:
ด้วยการปรับเปลี่ยนเพียงเล็กน้อย คุณสามารถพูดถึงส่วนลดสำหรับวิธีการชำระเงินหลายวิธีในข้อมูลโค้ดเดียวกันได้:
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); ฟังก์ชัน ts_add_discount ( $cart_object ) { ถ้า ( is_admin() && ! กำหนด ( 'DOING_AJAX' ) ) ส่งคืน; $label_text=__(""); $เปอร์เซ็นต์=0; // ระบุวิธีการชำระเงิน เช่น cod, bacs, เช็ค หรือ paypal $cart_total = $cart_object->ผลรวมย่อย_ex_tax; $chosen_payment_method = WC()->session->get('chosen_payment_method'); //รับวิธีการชำระเงินที่เลือก ถ้า( $chosen_payment_method == "paypal" ){ $label_text = __( "ส่วนลดเพย์พาล" ); // เปอร์เซ็นต์การสมัคร เปอร์เซ็นต์ $% = 2; // 2% } อื่น if( $chosen_payment_method == "bacs"){ $label_text = __( "ส่วนลดการโอนเงินผ่านธนาคารโดยตรง" ); // เปอร์เซ็นต์การสมัคร เปอร์เซ็นต์ $% = 3; // 3% } อื่น if( $chosen_payment_method == "cheque"){ $label_text = __( "ส่วนลดการชำระเงินด้วยเช็ค" ); // เปอร์เซ็นต์การสมัคร เปอร์เซ็นต์ $% = 2; // 2% } อื่น { $label_text = __( "ส่วนลดเงินสดเมื่อจัดส่ง" ); // เปอร์เซ็นต์การสมัคร เปอร์เซ็นต์ $% = 0; // 0% } // กำลังคำนวณเปอร์เซ็นต์ $ส่วนลด = number_format(($cart_total / 100) * $percent, 2); // เพิ่มส่วนลด $cart_object->add_fee( $label_text, -$ส่วนลด, เท็จ ); } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' ); ฟังก์ชัน ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (ฟังก์ชัน($){ $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }
การเพิ่มจำนวนส่วนลดคงที่สำหรับวิธีการชำระเงินต่างๆ ผ่าน Code Snippets
สมมติว่าคุณต้องการพูดถึงจำนวนเงินแทนที่จะเป็นเปอร์เซ็นต์ คุณสามารถทำได้โดยใช้ข้อมูลโค้ดเดียวกันอีกครั้ง โดยกำจัดขั้นตอนที่คุณคำนวณเปอร์เซ็นต์และยอมรับจำนวนเงินส่วนลดเป็นข้อมูลเข้าตามวิธีการชำระเงินแต่ละวิธี:
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); ฟังก์ชัน ts_add_discount ( $cart_object ) { ถ้า ( is_admin() && ! กำหนด ( 'DOING_AJAX' ) ) ส่งคืน; $label_text=__(""); $discount_amount=0; // ระบุวิธีการชำระเงิน เช่น cod, bacs, เช็ค หรือ paypal $cart_total = $cart_object->ผลรวมย่อย_ex_tax; $chosen_payment_method = WC()->session->get('chosen_payment_method'); //รับวิธีการชำระเงินที่เลือก ถ้า( $chosen_payment_method == "paypal" ){ $label_text = __( "ส่วนลดเพย์พาล" ); // จำนวนส่วนลดที่จะใช้ $discount_amount = 200; } อื่น if( $chosen_payment_method == "bacs"){ $label_text = __( "ส่วนลดการโอนเงินผ่านธนาคารโดยตรง" ); // จำนวนส่วนลดที่จะใช้ $discount_amount = 150; } อื่น if( $chosen_payment_method == "cheque"){ $label_text = __( "ส่วนลดการชำระเงินด้วยเช็ค" ); // จำนวนส่วนลดที่จะใช้ $discount_amount = 100; } อื่น { $label_text = __( "ส่วนลดเงินสดเมื่อจัดส่ง" ); // จำนวนส่วนลดที่จะใช้ $discount_amount = 0; } // เพิ่มส่วนลด $cart_object->add_fee( $label_text, -$discount_amount, false ); } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' ); ฟังก์ชัน ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (ฟังก์ชัน($){ $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }

ในการเพิ่มค่าบริการ คุณเพียงแค่เปลี่ยนเครื่องหมายของหนึ่งในอาร์กิวเมนต์ในฟังก์ชัน add_fee จาก "-" เป็น "+" หรือไม่มีเครื่องหมายใด ๆ ที่แสดงถึงค่าบวก
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); ฟังก์ชัน ts_add_discount ( $cart_object ) { ถ้า ( is_admin() && ! กำหนด ( 'DOING_AJAX' ) ) ส่งคืน; $label_text=__(""); $service_charge=0; // ระบุวิธีการชำระเงิน เช่น cod, bacs, เช็ค หรือ paypal $cart_total = $cart_object->ผลรวมย่อย_ex_tax; $chosen_payment_method = WC()->session->get('chosen_payment_method'); //รับวิธีการชำระเงินที่เลือก ถ้า( $chosen_payment_method == "paypal" ){ $label_text = __( "ค่าบริการเพย์พาล" ); // ค่าบริการในการสมัคร $service_charge=200; } อื่น if( $chosen_payment_method == "bacs"){ $label_text = __( "ค่าบริการโอนเงินผ่านธนาคารโดยตรง" ); // ค่าบริการในการสมัคร $service_charge=100; } อื่น if( $chosen_payment_method == "cheque"){ $label_text = __( "ค่าบริการชำระเงินด้วยเช็ค" ); // ค่าบริการในการสมัคร $service_charge=150; } อื่น { $label_text = __( "ค่าบริการเก็บเงินปลายทาง" ); // ค่าบริการในการสมัคร $service_charge=250; } // เพิ่มค่าบริการ $cart_object->add_fee( $label_text, $service_charge, เท็จ ); } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' ); ฟังก์ชัน ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (ฟังก์ชัน($){ $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }
ด้วยวิธีนี้ จะคิดค่าบริการตามวิธีการชำระเงินที่เลือก:
การเพิ่มส่วนลดสำหรับวิธีการชำระเงินต่างๆ สำหรับผู้ใช้ที่เข้าสู่ระบบเท่านั้น (ผ่าน Code Snippets)
หากคุณต้องการเสนอส่วนลดเหล่านี้สำหรับผู้ใช้ที่เข้าสู่ระบบเท่านั้น (ตามที่ร้องขอผ่านความคิดเห็นในโพสต์นี้) คุณต้องเพิ่มเงื่อนไขที่ตรวจสอบว่าผู้ใช้เข้าสู่ระบบหรือไม่ ซึ่งสามารถทำได้โดยฟังก์ชัน is_user_logged_in() ข้อมูลโค้ดด้านล่างแสดงวิธีที่คุณสามารถเพิ่มส่วนลดเป็นเปอร์เซ็นต์สำหรับวิธีการชำระเงินเฉพาะสำหรับผู้ใช้ที่เข้าสู่ระบบเท่านั้น
add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 ); ฟังก์ชัน ts_add_discount ( $cart_object ) { ถ้า ( is_admin() && ! กำหนด ( 'DOING_AJAX' ) ) ส่งคืน; ถ้า (is_user_logged_in()){ // ระบุวิธีการชำระเงิน เช่น cod, bacs, เช็ค หรือ paypal $payment_method = 'เพย์พาล'; // เปอร์เซ็นต์การสมัคร เปอร์เซ็นต์ $% = 2; // 2% $cart_total = $cart_object->ผลรวมย่อย_ex_tax; $chosen_payment_method = WC()->session->get('chosen_payment_method'); //รับวิธีการชำระเงินที่เลือก ถ้า( $payment_method == $chosen_payment_method ){ $label_text = __( "ส่วนลดเพย์พาล" ); // กำลังคำนวณเปอร์เซ็นต์ $ส่วนลด = number_format(($cart_total / 100) * $percent, 2); // เพิ่มส่วนลด $cart_object->add_fee( $label_text, -$ส่วนลด, เท็จ ); } } } add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' ); ฟังก์ชัน ts_refresh_payment_method(){ // jQuery ?> <script type="text/javascript"> (ฟังก์ชัน($){ $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() { $('body').trigger('update_checkout'); $('body').trigger('update_checkout'); }); })(jQuery); </script> <?php }
คุณสามารถใช้ข้อมูลโค้ดใดก็ได้ในโพสต์นี้โดยขึ้นอยู่กับความต้องการของคุณ คุณต้องเพียงแค่เพิ่มเงื่อนไข - if (is_user_logged_in()) ภายในข้อมูลโค้ดนั้นหากคุณต้องการจำกัดสิ่งนี้ไว้สำหรับผู้ใช้ที่เข้าสู่ระบบเพียงอย่างเดียว
การเพิ่มค่าธรรมเนียมหรือส่วนลดสำหรับวิธีการชำระเงินต่างๆ ผ่านปลั๊กอิน
หากคุณไม่ต้องการเพิ่มข้อมูลโค้ด มีวิธีที่ง่ายในการบรรลุสิ่งเดียวกัน – ปลั๊กอิน! มีทั้งปลั๊กอินฟรีและจ่ายเงินที่มีคุณสมบัติต่างกัน
ค่าธรรมเนียมตามเกตเวย์การชำระเงินและส่วนลดสำหรับ WooCommerce
นี่เป็นปลั๊กอินฟรีของเราที่ให้คุณเพิ่มค่าธรรมเนียม ส่วนลด ภาษี ฯลฯ และแม้กระทั่งกำหนดจำนวนรถเข็นขั้นต่ำและสูงสุดเป็นเกณฑ์สำหรับสิ่งเดียวกัน คุณสามารถปัดเศษค่าธรรมเนียมได้หลังจากใช้ส่วนลด และคุณสามารถทำสิ่งนี้ได้ด้วยอินเทอร์เฟซที่ใช้งานง่ายซึ่งสามารถเข้าถึงได้ผ่านแดชบอร์ด:- ส่วนลดต่อวิธีการชำระเงินสำหรับ WooCommerce (ฟรี)
นี่เป็นปลั๊กอินฟรีโดย WPColibrary ที่มีอินเทอร์เฟซที่เรียบง่ายภายในแดชบอร์ด WordPress ของคุณเพื่อกำหนดส่วนลดสำหรับวิธีการชำระเงินเริ่มต้นที่ WooCommerce ให้ไว้ อย่างไรก็ตามไม่มีคุณสมบัติในการเพิ่มค่าบริการหรือค่าธรรมเนียม
- ค่าธรรมเนียมตามเกตเวย์การชำระเงินและส่วนลดสำหรับ WooCommerce ($39)
ปลั๊กอินพรีเมียมนี้ของเรามาพร้อมกับคุณสมบัติครบชุด ซึ่งคุณสามารถเพิ่มค่าธรรมเนียมรวมถึงส่วนลดสำหรับวิธีการชำระเงินที่แตกต่างกันตามประเทศ รัฐ หมวดหมู่ผลิตภัณฑ์ ฯลฯ นอกจากนี้ คุณยังสามารถคิดภาษีกับค่าธรรมเนียม (ไม่รวมค่าจัดส่ง) ) โดยใช้ปลั๊กอิน อินเทอร์เฟซเรียบง่ายและเป็นมิตรกับผู้ใช้ นอกจากนี้ คุณยังสามารถใช้ส่วนลดและค่าธรรมเนียมต่างๆ สำหรับแต่ละผลิตภัณฑ์ได้