วิธีเพิ่มค่าธรรมเนียมหรือส่วนลดสำหรับวิธีการชำระเงินแบบต่างๆ ใน 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)
ปลั๊กอินพรีเมียมนี้ของเรามาพร้อมกับคุณสมบัติครบชุด ซึ่งคุณสามารถเพิ่มค่าธรรมเนียมรวมถึงส่วนลดสำหรับวิธีการชำระเงินที่แตกต่างกันตามประเทศ รัฐ หมวดหมู่ผลิตภัณฑ์ ฯลฯ นอกจากนี้ คุณยังสามารถคิดภาษีกับค่าธรรมเนียม (ไม่รวมค่าจัดส่ง) ) โดยใช้ปลั๊กอิน อินเทอร์เฟซเรียบง่ายและเป็นมิตรกับผู้ใช้ นอกจากนี้ คุณยังสามารถใช้ส่วนลดและค่าธรรมเนียมต่างๆ สำหรับแต่ละผลิตภัณฑ์ได้
