วิธีอนุมัติคำสั่งซื้ออัตโนมัติใน WooCommerce

เผยแพร่แล้ว: 2020-09-25

อนุมัติคำสั่งซื้ออัตโนมัติ WooCommerce หากคุณกำลังเปิดร้านอีคอมเมิร์ซ คุณทราบดีว่าไซต์นั้นต้องการการติดตามและจัดการคำสั่งซื้อ อย่างไรก็ตาม นี่อาจเป็นงานที่ต้องใช้กำลังมากสำหรับผู้ดูแลระบบ โดยเฉพาะอย่างยิ่งหากร้านค้าออนไลน์ของคุณมีการเข้าชมสูง ซึ่งส่งผลให้มีคำสั่งซื้อจำนวนมากในหนึ่งวัน

นอกจากนี้ คุณทราบดีว่ามีการสร้างคำสั่งซื้อทันทีที่กระบวนการชำระเงินเสร็จสิ้น ใบสั่งถูกกำหนดสถานะตามตำแหน่งที่ใบสั่งอยู่ในห่วงโซ่การชำระเงินเพื่อจัดส่ง

นอกจากนี้ สถานะจะถูกตั้งค่าหรือเปลี่ยนแปลงโดย WooCommerce, Payment Gateway และผู้ดูแลระบบร้านค้า ขึ้นอยู่กับว่าคำสั่งซื้อเริ่มต้นจากที่ใด

หลังจากการชำระเงินสำหรับการสั่งซื้อเสร็จสมบูรณ์แล้ว หากผู้ใช้ไม่ได้เลือกตัวเลือกเงินสดเมื่อส่งมอบ เมื่อคำสั่งซื้อเสร็จสมบูรณ์ สถานะจะถูกตั้งค่าเป็น "กำลังดำเนินการ" จนกว่าเจ้าของร้านค้าจะเปลี่ยนเป็น "เสร็จสิ้น" ด้วยตนเอง นี่จะเป็นงานที่น่ากลัวสำหรับเจ้าของร้านหรือผู้ดูแลระบบ

อนุมัติคำสั่งซื้ออัตโนมัติ WooCommerce

ในบทช่วยสอนสั้น ๆ นี้ ฉันจะแบ่งปันรหัส PHP แบบกำหนดเองกับคุณ ซึ่งจะช่วยให้คุณตั้งค่าสถานะของคำสั่งซื้อเป็นเสร็จสิ้นโดยอัตโนมัติทุกครั้งที่ชำระเงินสำเร็จ ซึ่งหมายความว่าแม้ว่าผู้ใช้จะเลือกตัวเลือกเงินสดเมื่อส่งมอบ สถานะคำสั่งซื้อจะเปลี่ยนเป็นเสร็จสมบูรณ์โดยอัตโนมัติ

นอกจากนี้ ฉันจะแบ่งปันโซลูชันที่จะตั้งค่าสถานะคำสั่งซื้อของ WooCommerce โดยอัตโนมัติว่าเสร็จสิ้นแล้วสำหรับผลิตภัณฑ์เสมือน ผลิตภัณฑ์เหล่านี้ไม่สามารถจับต้องได้หรือดาวน์โหลดได้

เนื่องจากการสมัครเป็นสมาชิกอาจไม่มีรูปแบบที่จับต้องได้ แต่มีวันหมดอายุแทน หากคุณจัดการกับผลิตภัณฑ์ที่ดาวน์โหลดได้ ไม่ควรรวมตัวเลือกเงินสดเมื่อจัดส่ง แต่ควรเพิ่มเฉพาะเงื่อนไขเพื่อตรวจสอบว่าผลิตภัณฑ์ทั้งหมดในคำสั่งซื้อเป็นเสมือนหรือไม่

เมื่อคุณทราบวิธีตั้งค่าสถานะคำสั่งซื้อแล้ว ต่อไปนี้คือคำแนะนำโดยละเอียดเกี่ยวกับวิธีการ:

  • ตั้งค่าสถานะคำสั่งซื้อของ WooCommerce เป็นเสร็จสมบูรณ์โดยอัตโนมัติตามวิธีการชำระเงิน
  • ตั้งค่าสถานะคำสั่งซื้อของ WooCommerce โดยอัตโนมัติว่าเสร็จสิ้นแล้วสำหรับผลิตภัณฑ์เสมือน

a) ขั้นตอนในการตั้งค่าสถานะคำสั่งซื้อของ WooCommerce โดยอัตโนมัติว่าเสร็จสมบูรณ์ตามวิธีการชำระเงิน

นี่คือขั้นตอนง่าย ๆ ที่คุณต้องปฏิบัติตาม:

  1. ลงชื่อเข้าใช้ไซต์ WordPress และเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบ
  2. จากเมนูแดชบอร์ด ให้คลิกที่ เมนูลักษณะที่ปรากฏ > เมนูตัวแก้ไขธีม เมื่อเปิดหน้า Theme Editor ให้มองหาไฟล์ฟังก์ชันของธีมที่เราจะเพิ่มฟังก์ชันที่จะ ตั้งค่าสถานะคำสั่งซื้อ woocommerce ให้เสร็จสมบูรณ์โดยอัตโนมัติตามวิธีการชำระเงิน
  3. เพิ่มรหัสต่อไปนี้ ในไฟล์ php :
 /**

Snippet เพื่อตั้งค่าสถานะคำสั่งซื้อ woocommerce โดยอัตโนมัติว่าเสร็จสิ้นตามวิธีการชำระเงิน

*/

add_action('woocommerce_order_status_changed', 'njengah_auto_complete_by_payment_method');

ฟังก์ชัน njengah_auto_complete_by_payment_method($order_id)

{

ถ้า ( ! $order_id ) {

กลับ;

}

ผลิตภัณฑ์ $ ทั่วโลก;

$order = wc_get_order( $order_id );

if ($order->data['status'] == 'กำลังดำเนินการ') {

$payment_method=$order->get_payment_method(); $payment_method=$order->get_payment_method();

ถ้า ($payment_method!="bacs")

{

$order->update_status( 'เสร็จสิ้น' );

}

}

}
  1. หากต้องการดูผลลัพธ์ ตรงไปที่ WordPress Dashboard และคลิกที่ WooCommerce > Orders คุณจะเห็นว่าคำสั่งถูกตั้งค่าเป็น Completed ตามที่แสดงด้านล่าง: อนุมัติคำสั่งซื้อ

รหัสทำงานอย่างไร

ในโค้ดด้านบนนี้ ฉันได้ใช้ hook ของ woocommerce_order_status_changed เพื่อเรียกใช้ฟังก์ชันเมื่อสถานะของคำสั่งซื้อเปลี่ยนไป จะตรวจสอบว่าคำสั่งซื้อมีสถานะการประมวลผลและเปลี่ยนเป็นเสร็จสมบูรณ์หรือไม่

ตามค่าเริ่มต้น WooCommerce มีวิธีการชำระเงินเริ่มต้นสี่วิธี ได้แก่ การโอนเงินผ่านธนาคารโดยตรง (bacs) การชำระเงินด้วยเช็ค (เช็ค) เงินสดในการจัดส่ง (cod) และ PayPal (PayPal) อย่างไรก็ตาม คุณต้องระบุวิธีการชำระเงินที่คุณต้องการกำหนดเงื่อนไข

b) ขั้นตอนในการตั้งค่าสถานะการสั่งซื้อ WooCommerce โดยอัตโนมัติว่าเสร็จสมบูรณ์สำหรับผลิตภัณฑ์เสมือน

ผลิตภัณฑ์ที่ดาวน์โหลดได้ : อนุมัติคำสั่งซื้ออัตโนมัติ WooCommerce นี่คือขั้นตอนที่คุณต้องปฏิบัติตาม:

  1. ลงชื่อเข้าใช้ไซต์ WordPress และเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบ
  2. จากเมนูแดชบอร์ด ให้คลิกที่ เมนูลักษณะที่ปรากฏ > เมนูตัวแก้ไขธีม เมื่อเปิดหน้า Theme Editor ให้มองหาไฟล์ฟังก์ชันของธีมที่เราจะเพิ่มฟังก์ชันที่จะ ตั้งค่าสถานะคำสั่งซื้อ woocommerce ให้เสร็จสมบูรณ์โดยอัตโนมัติสำหรับผลิตภัณฑ์เสมือน
  3. เพิ่มรหัสต่อไปนี้ ในไฟล์ php :
 /**

Snippet เพื่อตั้งค่าสถานะคำสั่งซื้อ woocommerce โดยอัตโนมัติว่าเสร็จสิ้นแล้วสำหรับผลิตภัณฑ์เสมือน

*/

add_action('woocommerce_order_status_changed', 'njengah_auto_complete_virtual');

ฟังก์ชัน njengah_auto_complete_virtual($order_id)

{

ถ้า ( ! $order_id ) {

กลับ;

}

ผลิตภัณฑ์ $ ทั่วโลก;

$order = wc_get_order( $order_id );

if ($order->data['status'] == 'กำลังดำเนินการ') {

$virtual_order = null;

if ( count( $order->get_items() ) > 0 ) {

foreach( $order->get_items() เป็น $item ) {

if ( 'line_item' == $item['type'] ) {

$_product = $order->get_product_from_item( $item );

ถ้า ( ! $_product->is_virtual() ) {

// เมื่อเราพบผลิตภัณฑ์ที่ไม่ใช่เสมือนหนึ่งผลิตภัณฑ์ ให้แยกออกจากลูป

$virtual_order = เท็จ;

หยุดพัก;

}

อื่น {

$virtual_order = จริง;

}

}

}

}




// หากทั้งหมดเป็นผลิตภัณฑ์เสมือน ให้ทำเครื่องหมายว่าเสร็จสิ้น

ถ้า ( $virtual_order ) {

$order->update_status( 'เสร็จสิ้น' );

}

}

}

  1. ผลลัพธ์จะเหมือนกับตัวอย่างแรก เนื่องจากคำสั่งจะถูกตั้งค่าเป็น Completed โดยอัตโนมัติ

รหัสทำงานอย่างไร

ในโค้ดด้านบน ฉันได้ใช้ hook เดียวกันเพื่อเรียกใช้ฟังก์ชัน njengah_auto_complete_virtual หลังจากที่ตรวจสอบแล้วว่าอยู่ในสถานะกำลังดำเนินการหรือไม่ จากนั้นรหัสจะตรวจสอบแต่ละรายการตามลำดับเพื่อดูว่ามีผลิตภัณฑ์เสมือนจริงหรือไม่

line_item หมายถึงผลิตภัณฑ์ และต้องดึงข้อมูลผลิตภัณฑ์ทีละรายการเท่านั้นเพื่อตรวจสอบว่าเป็นผลิตภัณฑ์เสมือนหรือไม่ หากไม่มีผลิตภัณฑ์เสมือน สถานะของคำสั่งซื้อจะไม่ถูกทำเครื่องหมายว่าเสร็จสมบูรณ์

บทสรุป

ในบทช่วยสอนสั้นๆ นี้ ฉันได้แชร์วิธีที่คุณสามารถตั้งค่าสถานะคำสั่งซื้อของ WooCommerce เป็นเสร็จสมบูรณ์โดยอัตโนมัติ ฉันทำตามวิธีการชำระเงินและสำหรับผลิตภัณฑ์เสมือนจริง

อย่างไรก็ตาม ขึ้นอยู่กับข้อกำหนดที่คุณต้องการสำหรับร้านค้าของคุณ โดยใช้ข้อมูลโค้ดแรก คุณสามารถเพิ่มเงื่อนไขเพิ่มเติมเพื่อทำเครื่องหมายสถานะการสั่งซื้อเป็นเสร็จสมบูรณ์ ตัวอย่างเช่น หากมีการชำระเงินแล้ว คุณสามารถทำเครื่องหมายสถานะคำสั่งซื้อว่าเสร็จสิ้น แม้กระทั่งสำหรับผลิตภัณฑ์ที่ไม่ใช่เสมือนโดยเพิ่มเช็คในวิธีการชำระเงินหลังจากที่ตรวจสอบว่าเป็นผลิตภัณฑ์เสมือนจริงหรือไม่

อย่างไรก็ตาม ผ่านข้อมูลโค้ดนี้ สถานะของคำสั่งซื้อจะถูกตั้งค่าเป็น เสร็จสิ้น ต่อเมื่อผลิตภัณฑ์ทั้งหมดในคำสั่งซื้อเป็นผลิตภัณฑ์เสมือน ฉันหวังว่าโพสต์นี้จะให้โซลูชันในการอนุมัติคำสั่งซื้อใน WooCommerce โดยอัตโนมัติ

บทความที่คล้ายกัน