วิธีเปลี่ยนสถานะคำสั่งซื้อโดยอัตโนมัติใน WooCommerce

เผยแพร่แล้ว: 2021-07-31

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

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

เพื่อไม่ให้เป็นการเสียเวลา เรามาเริ่มกันเลยดีกว่า

สถานะการสั่งซื้อใน WooCommerce คืออะไร?

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

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

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

สถานะการสั่งซื้อใน WooCommerce

นี่คือสถานะคำสั่งซื้อทั้งหมดที่มีใน WooCommerce และความหมายของแต่ละรายการ:

  • การชำระเงินที่รอดำเนินการ: ได้รับคำสั่งซื้อแล้วและยังไม่ได้ลงทะเบียนการชำระเงิน เรากำลังรอการชำระเงิน
  • ล้มเหลว: การชำระเงินล้มเหลวด้วยเหตุผลบางประการ ซึ่งหมายความว่าถูกปฏิเสธจากแพลตฟอร์มการชำระเงิน (เช่น PayPal) หรือต้องมีการตรวจสอบสิทธิ์เพิ่มเติม (SCA)
  • การประมวลผล: ร้านค้าได้รับการชำระเงินแล้ว สต็อกสินค้าได้รับการอัปเดตแล้ว และการสั่งซื้อเป็นไปตามกำหนดเวลาสำหรับการจัดส่ง
  • เสร็จสิ้น: คำสั่งซื้อได้รับการเติมเต็มและเสร็จสมบูรณ์แล้ว นี่เป็นสถานะสุดท้ายของคำสั่งที่ทุกอย่างเป็นไปด้วยดี
  • ระงับ : ลูกค้ายังไม่ได้ชำระเงิน จึงต้องขอคำยืนยันจากผู้จัดการร้าน
  • ยกเลิก แล้ว : ผู้ดูแลระบบร้านค้าหรือผู้ใช้ได้ยกเลิกคำสั่งซื้อในบางจุด ไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม แม้ว่าจะแนะนำให้ติดต่อลูกค้าเพื่อทำความเข้าใจว่าเหตุใดจึงยกเลิกคำสั่งซื้อ
  • คืนเงินแล้ว: คำสั่งซื้อได้รับการคืนเงินแล้ว ไม่จำเป็นต้องดำเนินการใดๆ อีกต่อไป

ตอนนี้เราเข้าใจดีขึ้นแล้วว่าสถานะคำสั่งซื้อคืออะไรและฟังก์ชันของมัน มาดูกันว่าทำไมจึงควรอัปเดตคำสั่งซื้อ

เหตุใดจึงต้องเปลี่ยนฟังก์ชันสถานะคำสั่งซื้อเริ่มต้น

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

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

วิธีนี้จะช่วยให้เจ้าของร้านค้าประหยัดเวลาและทำให้พวกเขามุ่งเน้นไปที่สิ่งที่สำคัญกว่าเพื่อปรับปรุงธุรกิจของตน

สถานะการสั่งซื้อเปลี่ยนแปลงอย่างไรใน WooCommerce

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

เพื่อให้เข้าใจมากขึ้นว่าเราจะทำอะไร มาดูกันว่าโฟลว์สถานะคำสั่งซื้อทำงานอย่างไร:

woocommerce-สั่งซื้อสถานะ

จากเอกสาร 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) แม้ว่าฟังก์ชันจะทำงานโดยไม่มีคำนำหน้า แต่ก็เป็นแนวทางปฏิบัติที่แนะนำให้ใช้

woocommerce-order-status-on-hold

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

แก้ไขสถานะคำสั่งซื้อจาก 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-custom-order-สถานะ

วิธีอื่นในการเปลี่ยนสถานะคำสั่งซื้อของ 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

คุณได้อัพเดทสถานะการสั่งซื้อในร้านค้าของคุณหรือไม่? คุณมีปัญหาใด ๆ ในการปฏิบัติตามคู่มือนี้หรือไม่? แจ้งให้เราทราบในความคิดเห็นด้านล่าง!