วิธีเปลี่ยนสถานะคำสั่งซื้อโดยอัตโนมัติใน WooCommerce
เผยแพร่แล้ว: 2021-07-31คุณต้องการอัปเดตสถานะการสั่งซื้อในร้านค้าของคุณหรือไม่? คุณมาถูกที่แล้ว ในคู่มือนี้ เราจะแสดง วิธีเปลี่ยนสถานะคำสั่งซื้อใน WooCommerce โดยอัตโนมัติโดยใช้สคริปต์ PHP บางตัว ไม่ต้องกังวลหากคุณไม่มีทักษะการเขียนโค้ดขั้นสูง เราจะอธิบายแต่ละสคริปต์อย่างละเอียด
WooCommerce นำเสนอคุณสมบัติมากมายสำหรับนักพัฒนา ดังนั้นหากคุณมีทักษะในการเขียนโค้ด คุณสามารถปรับแต่งได้ทุกประเภทและปรับปรุงร้านอีคอมเมิร์ซของคุณ ในบทช่วยสอนต่อไปนี้ คุณจะได้เรียนรู้ทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับสถานะคำสั่งซื้อ นี่เป็นคุณลักษณะ WooCommerce ที่มีประโยชน์มากเมื่อจัดการคำสั่งซื้อจำนวนมาก จะมีประโยชน์อย่างยิ่งในรายการคำสั่งซื้อแบ็กเอนด์ ซึ่งผู้จัดการร้านสามารถค้นหาและดำเนินการบางอย่างกับคำสั่งซื้อที่มีสถานะเฉพาะได้อย่างง่ายดาย
เพื่อไม่ให้เป็นการเสียเวลา เรามาเริ่มกันเลยดีกว่า
สถานะการสั่งซื้อใน WooCommerce คืออะไร?
สถานะคำสั่งซื้อเป็นเพียงแท็กที่คำสั่งซื้อมีซึ่งแสดงถึงสถานะปัจจุบันของคำสั่งซื้อ คล้ายกับอนุกรมวิธานที่แนบมากับโพสต์ที่อธิบายข้อมูลเฉพาะเกี่ยวกับสถานะปัจจุบันของโพสต์นั้น ตัวอย่างเช่น เมื่อลูกค้ากดปุ่ม "สั่งซื้อสินค้า" พวกเขาจะสั่งซื้อสินค้าในร้านของเรา โดยค่าเริ่มต้น สถานะคำสั่งซื้อจะถูกตั้งค่าเป็น "รอการชำระเงิน"
หากร้านค้าถูกรวมเข้ากับเกตเวย์การชำระเงิน เช่น PayPal หรือ Stripe สถานะเริ่มต้นก่อนหน้า (รอดำเนินการ) จะถูกตรวจสอบและจะเปลี่ยนเป็น " ถูก ระงับ " หรือ " ล้มเหลว " ขึ้นอยู่กับผลการตรวจสอบเกตเวย์การชำระเงิน จากนั้น หากการชำระเงินเสร็จสมบูรณ์ สถานะคำสั่งซื้อจะเปลี่ยนเป็น " กำลังดำเนิน การ " โดยอัตโนมัติ ในขณะที่หากการชำระเงินล้มเหลว สถานะจะเป็น " ล้มเหลว "
อย่างที่คุณเห็น แต่ละสถานะเหล่านี้จะให้ข้อมูลที่เกี่ยวข้องเกี่ยวกับคำสั่งซื้อแก่เรา ระบบอัตโนมัตินี้ช่วยให้เราทราบว่าการชำระเงินสำหรับการสั่งซื้อเสร็จสมบูรณ์หรือไม่เพื่อส่งมอบผลิตภัณฑ์ของเราให้กับลูกค้า
สถานะการสั่งซื้อใน WooCommerce
นี่คือสถานะคำสั่งซื้อทั้งหมดที่มีใน WooCommerce และความหมายของแต่ละรายการ:
- การชำระเงินที่รอดำเนินการ: ได้รับคำสั่งซื้อแล้วและยังไม่ได้ลงทะเบียนการชำระเงิน เรากำลังรอการชำระเงิน
- ล้มเหลว: การชำระเงินล้มเหลวด้วยเหตุผลบางประการ ซึ่งหมายความว่าถูกปฏิเสธจากแพลตฟอร์มการชำระเงิน (เช่น PayPal) หรือต้องมีการตรวจสอบสิทธิ์เพิ่มเติม (SCA)
- การประมวลผล: ร้านค้าได้รับการชำระเงินแล้ว สต็อกสินค้าได้รับการอัปเดตแล้ว และการสั่งซื้อเป็นไปตามกำหนดเวลาสำหรับการจัดส่ง
- เสร็จสิ้น: คำสั่งซื้อได้รับการเติมเต็มและเสร็จสมบูรณ์แล้ว นี่เป็นสถานะสุดท้ายของคำสั่งที่ทุกอย่างเป็นไปด้วยดี
- ระงับ : ลูกค้ายังไม่ได้ชำระเงิน จึงต้องขอคำยืนยันจากผู้จัดการร้าน
- ยกเลิก แล้ว : ผู้ดูแลระบบร้านค้าหรือผู้ใช้ได้ยกเลิกคำสั่งซื้อในบางจุด ไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม แม้ว่าจะแนะนำให้ติดต่อลูกค้าเพื่อทำความเข้าใจว่าเหตุใดจึงยกเลิกคำสั่งซื้อ
- คืนเงินแล้ว: คำสั่งซื้อได้รับการคืนเงินแล้ว ไม่จำเป็นต้องดำเนินการใดๆ อีกต่อไป
ตอนนี้เราเข้าใจดีขึ้นแล้วว่าสถานะคำสั่งซื้อคืออะไรและฟังก์ชันของมัน มาดูกันว่าทำไมจึงควรอัปเดตคำสั่งซื้อ
เหตุใดจึงต้องเปลี่ยนฟังก์ชันสถานะคำสั่งซื้อเริ่มต้น
ร้านค้าอีคอมเมิร์ซแต่ละแห่งมีความแตกต่างกันและมีข้อกำหนดเฉพาะ ร้านค้าออนไลน์บางแห่งอาจไม่ใช้สถานะคำสั่งซื้อเลยหรืออาจใช้ไม่ครบทั้งหมด ตัวอย่างเช่น หากผู้ซื้อไม่สามารถคืนสินค้าได้ ร้านค้าอาจไม่ใช้สถานะการ คืนเงิน
นอกจากนี้ อาจมีบางกรณีที่ฟีเจอร์สถานะคำสั่งซื้อเริ่มต้นไม่เพียงพอและ ร้านค้าต้องการสถานะที่กำหนดเองหรือโซลูชันอัตโนมัติ สำหรับการจัดการสถานะคำสั่งซื้อ ในกรณีเหล่านี้ การปรับแต่งพฤติกรรมของสถานะคำสั่งซื้อเป็นทางออกที่ดีในการปรับปรุงการจัดการร้านค้า ด้วยวิธีนี้ ร้านค้าอีคอมเมิร์ซจะไม่จำเป็นต้องอัปเดตสถานะคำสั่งซื้อด้วยตนเองในทุกกรณี
วิธีนี้จะช่วยให้เจ้าของร้านค้าประหยัดเวลาและทำให้พวกเขามุ่งเน้นไปที่สิ่งที่สำคัญกว่าเพื่อปรับปรุงธุรกิจของตน
สถานะการสั่งซื้อเปลี่ยนแปลงอย่างไรใน WooCommerce
ณ จุดนี้ สิ่งสำคัญคือต้องเข้าใจว่าสถานะคำสั่งซื้อเปลี่ยนแปลงแบบไดนามิกเมื่อ WooCommerce ถูกรวมเข้ากับเกตเวย์การชำระเงิน เช่น PayPal, Payoneer, Stripe และอื่นๆ โปรดทราบว่าหากคุณอัปเดตสถานะด้วยตนเองเมื่อไม่เป็นไปตามที่คาดไว้ คุณสามารถทำลายวิธีการชำระเงินที่แสดงในร้านค้าของคุณได้ และลูกค้าจะไม่สามารถปฏิบัติตามกระบวนการซื้อได้
เพื่อให้เข้าใจมากขึ้นว่าเราจะทำอะไร มาดูกันว่าโฟลว์สถานะคำสั่งซื้อทำงานอย่างไร:
จากเอกสาร WooCommerce
ดังที่คุณเห็นในภาพด้านบน ขั้นตอนแรกของสถานะคำสั่งซื้อคือ " รอดำเนิน การ " หลังจากนั้น เกตเวย์การชำระเงินจะตรวจสอบว่าผู้ใช้สามารถชำระเงินให้เสร็จสิ้นได้หรือไม่ และเปลี่ยนสถานะเป็น " ถูก ระงับ " จากนั้นเป็น " กำลังดำเนิน การ " เมื่อการชำระเงินเสร็จสมบูรณ์ มิฉะนั้นจะเปลี่ยนเป็น " Failed "
หลังจากนี้ WooCommerce จะไม่ดำเนินการใดๆ อีก ผู้จัดการร้านควรทำเครื่องหมายคำสั่งซื้อว่า " เสร็จสิ้น " หรือ " ยกเลิก " ณ จุดนี้ การเปลี่ยนสถานะคำสั่งซื้อโดยอัตโนมัติ (โดยทางโปรแกรม) ทำได้อย่างปลอดภัย แม้ว่าจะมีเกตเวย์การชำระเงินรวมอยู่ด้วยก็ตาม
นอกจากนี้ สิ่งสำคัญคือต้องรู้ว่าเมื่อสถานะเปลี่ยนเป็น " กำลังดำเนิน การ " หรือ " คืนเงิน " สต็อคของผลิตภัณฑ์ที่เกี่ยวข้องในคำสั่งซื้อจะถูกคำนวณใหม่ เช่นเดียวกันจะเกิดขึ้นกับสถิติทั้งหมดของร้านค้าออนไลน์ที่เกี่ยวข้องกับคำสั่งซื้อนั้น
ตอนนี้เรามีแนวคิดที่ชัดเจนว่าสถานะคำสั่งซื้อเปลี่ยนไปอย่างไร เรามาดูวิธี อัปเดตสถานะคำสั่งซื้อใน WooCommerce กัน
วิธีเปลี่ยนสถานะคำสั่งซื้อโดยอัตโนมัติใน WooCommerce
มาดูตัวอย่างสคริปต์เพื่อ เปลี่ยนสถานะคำสั่งซื้อโดยทางโปรแกรมใน WooCommerce
หมายเหตุ : เราจะแก้ไขไฟล์หลักบางไฟล์ ดังนั้นก่อนที่คุณจะเริ่ม ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลไซต์ของคุณอย่างครบถ้วน นอกจากนี้ ให้สร้างธีมลูกหรือใช้ปลั๊กอินใดๆ เหล่านี้ หากคุณยังไม่มี ดังนั้นคุณจึงคงการปรับแต่งของคุณไว้แม้หลังจากอัปเดตธีมของคุณแล้ว
เปลี่ยนสถานะคำสั่งซื้อทั้งหมดหลังการซื้อ
หากร้านค้าอีคอมเมิร์ซของคุณไม่ได้รวมเข้ากับเกตเวย์การชำระเงินใดๆ ที่ใช้สถานะคำสั่งซื้อ คุณสามารถระงับคำสั่งซื้อทั้งหมดได้ทันทีหลังจากที่ลูกค้าส่งคำสั่งซื้อ แทนที่จะปล่อยให้เป็น "กำลังดำเนินการ" มาดูสคริปต์นี้กันดีกว่า:
ฟังก์ชัน QuadLayers_change_order_status ($order_id) { ถ้า ( ! $order_id ) {return;} $order = wc_get_order( $order_id ); if( 'กำลังดำเนินการ'== $order->get_status() ) { $order->update_status( 'wc-on-hold' ); } } add_action('woocommerce_thankyou','QuadLayers_change_order_status');
เราใช้ woocommerce_thankyou
hook เพื่อเรียกใช้ฟังก์ชันของเราทันทีหลังจากส่งคำสั่งซื้อแล้ว และเปลี่ยนสถานะโดยใช้ update_status()
อย่างที่คุณเห็น สถานะกระสุนมีคำนำหน้า (WC) แม้ว่าฟังก์ชันจะทำงานโดยไม่มีคำนำหน้า แต่ก็เป็นแนวทางปฏิบัติที่แนะนำให้ใช้
เป็นที่น่าสังเกตว่าคุณสามารถใช้สถานะอื่นและแม้แต่สถานะที่กำหนดเองแทน "ถูกระงับ" ได้โดยการปรับโค้ด
แก้ไขสถานะคำสั่งซื้อจาก ID คำสั่งซื้อ
สคริปต์ต่อไปนี้จะเปลี่ยนสถานะของคำสั่งซื้อเดียว ตัวอย่างเช่น ในการเปลี่ยนสถานะคำสั่งซื้อของคำสั่งซื้อ 115 เราใช้ข้อมูลโค้ดต่อไปนี้:
add_action('init',function(){ $order = ใหม่ WC_Order(115); $order->update_status('wc-กำลังดำเนินการ'); });
นี่เป็นสคริปต์สั้นๆ ดังนั้นเราจึงใช้ฟังก์ชันที่ไม่ระบุตัวตนใน 'init'
WordPress hook
โปรดทราบว่าการดำเนินการนี้จะไม่อนุญาตให้คุณเปลี่ยนแปลงสถานะเพิ่มเติมในขณะที่เปิดใช้งานสคริปต์
อัปเดตสถานะคำสั่งซื้อของ WooCommerce สำหรับลูกค้าที่ส่งคืน
นี่เป็นอีกหนึ่งตัวอย่างที่น่าสนใจในการเปลี่ยนสถานะคำสั่งซื้อโดยอัตโนมัติใน WooCommerce สคริปต์ด้านล่างจะเปลี่ยนสถานะคำสั่งซื้อเป็น "เสร็จสิ้น" เฉพาะเมื่อผู้ใช้มีคำสั่งซื้อก่อนหน้าที่แนบมากับสถานะ "เสร็จสิ้น" หรือ "กำลังดำเนินการ"
ฟังก์ชัน QuadLayers_order_status_returning ($order_id) { // รับออร์เดอร์จากลูกค้ารายนี้ $user_id = wp_get_current_user(); $customer_orders = []; foreach ( wc_get_is_paid_statuses () เป็น $paid_status ) { $customer_orders += wc_get_orders( [ 'type' => 'shop_order', 'จำกัด' => - 1, 'customer_id' => $user_id->ID, 'สถานะ' => $paid_status, ] ); } # มีคำสั่งซื้อก่อนหน้านี้แล้ว ถ้า(นับ($customer_orders)>0){ ถ้า ( ! $order_id ) {return;} $order = wc_get_order( $order_id ); if( 'กำลังดำเนินการ'== $order->get_status() ) { $order->update_status( 'wc-เสร็จสมบูรณ์' ); } } } add_action( 'woocommerce_thankyou', 'QuadLayers_order_status_returning' );
อาจเป็นความคิดที่ดีที่จะเพิ่มระดับการรักษาความปลอดภัยและปรับปรุงประสบการณ์การช็อปปิ้งของลูกค้าที่กลับมาซื้อซ้ำ
เปลี่ยนสถานะคำสั่งซื้อในพารามิเตอร์ URL
สคริปต์ตัวอย่างนี้จะเปลี่ยนเป็นสถานะคำสั่งซื้อเฉพาะเมื่อมีพารามิเตอร์ URL บนเบราว์เซอร์ ในขณะที่เราใช้ init
WordPress hook สคริปต์จะทำงานบนทุกหน้าของร้านค้า
นอกจากนี้ มันจะแก้ไขสถานะการสั่งซื้อสำหรับลำดับล่าสุดของผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน ในตัวอย่างนี้ สถานะคำสั่งซื้อจะเปลี่ยนเป็น "ยกเลิก" เมื่อ URL ใดๆ มีพารามิเตอร์ "เปลี่ยนกลับ" ดังนี้: https://website.com/shop?st=revert
add_action('init',function(){ if(isset($_GET['st'])&&!empty($_GET['st']) ): $get_url = $_GET['st']; ถ้า($get_url=='revert'): $user_id = wp_get_current_user(); $order = wc_get_customer_last_order($user_id->ID); $order->update_status( 'ยกเลิก wc' ); เอนดิฟ; เอนดิฟ; });
สร้างสถานะคำสั่งซื้อที่กำหนดเอง
แทนที่จะเปลี่ยนสถานะของคำสั่งซื้อ ในตัวอย่างนี้ เราจะสร้างสถานะคำสั่งซื้อที่กำหนดเองใหม่ที่เราสามารถใช้ได้อย่างอิสระ นี่เป็นความคิดที่ดีหากสถานะที่มีอยู่ไม่เพียงพอหรือคุณต้องการสร้างสถานะใหม่เพื่อความชัดเจนมากขึ้น เมื่อคุณสร้างสถานะคำสั่งซื้อที่กำหนดเองแล้ว คุณสามารถใช้สถานะนั้นกับสคริปต์ด้านบนใดก็ได้
สคริปต์ต่อไปนี้จะลงทะเบียนและเพิ่มสถานะใหม่ในรายการสถานะคำสั่งซื้อ ในกรณีนี้ เราจะเรียกสถานะคำสั่งซื้อที่กำหนดเองใหม่ว่า “ฉัน กำลังดำเนิน การ ” แต่คุณสามารถใช้ชื่อใดก็ได้ที่คุณต้องการโดยเพียงแค่กำหนดรหัสเอง
// ลงทะเบียนสถานะใหม่ ฟังก์ชัน register_in_progress_order_status () { register_post_status ( 'wc-in-progress', อาร์เรย์ ( 'label' => 'กำลังดำเนินการ', 'สาธารณะ' => จริง 'show_in_admin_status_list' => จริง 'show_in_admin_all_list' => จริง 'exclude_from_search' => เท็จ 'label_count' => _n_noop( 'กำลังดำเนินการ (%s) ', 'กำลังดำเนินการ (%s) ' ) ) ); } // เพิ่มสถานะที่กำหนดเองในรายการสถานะการสั่งซื้อ ฟังก์ชั่น add_in_progress_to_order_statuses ($order_statuses) { $new_order_statuses = อาร์เรย์ (); foreach ( $order_statuses เป็น $key => $status ) { $new_order_statuses[ $key ] = $สถานะ; ถ้า ( 'การประมวลผล wc' === $key ) { $new_order_statuses['wc-in-progress'] = 'กำลังดำเนินการ'; } } ส่งคืน $new_order_statuses; } add_action( 'init', 'register_in_progress_order_status' ); add_filter( 'wc_order_statuses', 'add_in_progress_to_order_statuses' );
วิธีอื่นในการเปลี่ยนสถานะคำสั่งซื้อของ WooCommerce
หากคุณกำลังมองหาวิธีอื่นในการอัปเดตสถานะคำสั่งซื้อเริ่มต้นใน WooCommerce คุณสามารถตรวจสอบปลั๊กอินบางตัวได้ ขออภัย มีเครื่องมือฟรีไม่มากนักสำหรับสิ่งนี้ แต่มีเครื่องมือที่ดีที่สุดบางส่วน:
- YITH Custom Order Status : เครื่องมือที่ยอดเยี่ยมในการจัดการสถานะคำสั่งซื้อและสร้างสถานะที่กำหนดเอง เป็นหนึ่งในเครื่องมือที่ดีที่สุดในตลาด แต่ไม่ถูก มันจะทำให้คุณกลับมา 79.99 €ต่อปี
- WooCommerce Order Status Manager : อีกหนึ่งปลั๊กอินที่ยอดเยี่ยมในการเพิ่ม ลบ และแก้ไขสถานะคำสั่งซื้อ คุณยังสามารถทริกเกอร์อีเมลตามสถานะของคำสั่งซื้อได้ มีค่าใช้จ่าย 49 USD ต่อปี
- สถานะคำสั่งซื้อที่กำหนดเองสำหรับ WooCommerce : หนึ่งในเครื่องมือที่ดีที่สุดในการจัดการสถานะคำสั่งซื้อใน WooCommerce เป็นปลั๊กอินพรีเมียมที่เริ่มต้นที่ 39 USD ต่อปี
- สถานะการสั่งซื้อที่กำหนดเองของ Ni WooCommerce : หนึ่งในปลั๊กอินฟรีไม่กี่ตัวที่เชื่อถือได้ซึ่งช่วยให้คุณจัดการสถานะคำสั่งซื้อของคุณได้อย่างง่ายดาย
วิธีดูสถานะการสั่งซื้อในร้านค้า WooCommerce ของคุณ
วิธีที่ง่ายที่สุดในการดูสถานะคำสั่งซื้อในร้านค้าของคุณคือการเปิดแดชบอร์ด WooCommerce และไปที่ คำสั่งซื้อ จากนั้น เปิดคำสั่งใดๆ และภายใต้ส่วน ทั่วไป ให้กดเมนูสถานะแบบเลื่อนลง คุณจะเห็นคำสั่งซื้อทั้งหมดในร้านของคุณ
บทสรุป
โดยสรุป สถานะคำสั่งซื้อคือแท็กที่แสดงถึงสถานะปัจจุบันของคำสั่งซื้อ แม้ว่า WooCommerce จะมีสถานะเริ่มต้นบางอย่าง แต่การปรับแต่งสถานะเหล่านี้อาจเป็นความคิดที่ดีสำหรับผู้ที่ต้องการลบหรือเพิ่มสถานะใหม่ นอกจากนี้ยังสามารถเป็นโซลูชันที่น่าสนใจสำหรับธุรกิจที่ต้องการโซลูชันอัตโนมัติ สำหรับการจัดการสถานะคำสั่งซื้อ
ในคู่มือนี้ เราได้เห็นสถานะการสั่งซื้อเริ่มต้นทั้งหมดและตัวอย่างต่างๆ เพื่อเปลี่ยนสถานะคำสั่งซื้อโดยอัตโนมัติใน WooCommerce นี่เป็นเพียงแนวคิดบางส่วน แต่ยังมีอะไรอีกมากมายที่คุณสามารถทำได้ เราขอแนะนำให้คุณใช้สคริปต์เหล่านี้เป็นพื้นฐานและลองเล่นเพื่อปรับแต่งให้เหมาะกับร้านค้าของคุณ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการปรับแต่งร้านค้าของคุณ โปรดดูบทแนะนำเหล่านี้:
- วิธีการใช้คูปอง WooCommerce โดยอัตโนมัติ
- แก้ไขหน้าขอบคุณ WooCommerce โดยทางโปรแกรม
- วิธีปรับแต่งแบบฟอร์มลงทะเบียน WooCommerce
- 3 วิธีในการทดสอบคำสั่งซื้อของ WooCommerce
- วิธีเพิ่มตัวกรองผลิตภัณฑ์ WooCommerce AJAX
คุณได้อัพเดทสถานะการสั่งซื้อในร้านค้าของคุณหรือไม่? คุณมีปัญหาใด ๆ ในการปฏิบัติตามคู่มือนี้หรือไม่? แจ้งให้เราทราบในความคิดเห็นด้านล่าง!