Làm cách nào để thêm trạng thái đơn hàng trong WooC Commerce?

Mặc dù WooC Commerce bao gồm một số trạng thái đơn hàng khác nhau, nhưng những trạng thái này có thể không phù hợp với quy trình cho cửa hàng của bạn. Với lõi WooC Commerce, bạn có thể đánh dấu đơn hàng bằng một trong các trạng thái sau

  • Hoàn thành
  • Xử lý
  • Trong khi chờ thanh toán
  • giữ
  • hoàn lại tiền
  • Đã hủy
  • Thất bại

Tuy nhiên, một số cửa hàng cần thêm trạng thái đơn hàng, chẳng hạn như “Đang chờ giao hàng”, “Đang xây dựng” hoặc các trạng thái khác để phù hợp với nhu cầu thực hiện của họ. Bạn có thể dễ dàng tự thêm những thứ này bằng một chút mã tùy chỉnh

Hãy cùng tìm hiểu cách thêm trạng thái đơn hàng tùy chỉnh WooC Commerce và xóa trạng thái đơn hàng

Thêm trạng thái đơn hàng tùy chỉnh WooC Commerce

Bạn không muốn thêm mã tùy chỉnh cho việc này?

Trong WooC Commerce 2. 1 hoặc sớm hơn, trạng thái đơn đặt hàng được lưu trữ dưới dạng phân loại cho loại bài đăng "Đặt hàng". Phân loại WordPress là phân loại, chẳng hạn như danh mục bài đăng và thẻ. Tuy nhiên, WooC Commerce 2. 2 yêu cầu thay đổi cấu trúc đơn đặt hàng để hỗ trợ hoàn tiền một phần và tự động từ quản trị viên WooC Commerce. Trạng thái đơn đặt hàng hiện được lưu dưới dạng trạng thái bài đăng tùy chỉnh, giống như bản nháp, đã lên lịch hoặc đã xuất bản cho bài đăng

Việc thêm trạng thái bài đăng tùy chỉnh hiện cần thêm một chút mã, nhưng điều này thực sự đơn giản hơn một chút từ góc độ phát triển [bạn không phải chạy mã một lần rồi xóa mã đó]. Đảm bảo thêm đúng mã này vào trang web của bạn—Tôi khuyên bạn nên tạo một plugin hoặc sử dụng plugin Đoạn mã

Hãy bắt đầu với đoạn trích đầy đủ dành cho những người thiếu kiên nhẫn. smile  Điều này sẽ thêm trạng thái đơn hàng "Đang chờ giao hàng" cho cửa hàng của bạn. Sau đó tôi sẽ chia nhỏ nó ra để giải thích từng phần của đoạn mã này làm gì.

Giải trình. mã này làm gì?

Hãy bắt đầu với chức năng đầu tiên trong mã này

// Register new status
function register_awaiting_shipment_order_status[] {
    register_post_status[ 'wc-awaiting-shipment', array[
        'label'                     => 'Awaiting shipment',
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop[ 'Awaiting shipment [%s]', 'Awaiting shipment [%s]' ]
    ] ];
}
add_action[ 'init', 'register_awaiting_shipment_order_status' ];

Chức năng này đang đăng ký trạng thái tùy chỉnh của chúng tôi dưới dạng trạng thái bài đăng trong WordPress. Bạn có thể đổi tên chức năng cho phù hợp với nhu cầu của mình, nhưng chúng tôi sẽ tạo trạng thái đơn hàng "Đang chờ giao hàng", vì vậy chúng tôi đã gọi nó là register_awaiting_shipment_order_status[] để phản ánh điều này

Sau đó, chúng tôi tạo trạng thái bài đăng bằng chức năng register_post_status[] của WordPress. Lưu ý rằng điều đầu tiên trong chức năng này là sên cho trạng thái đơn hàng của chúng tôi, có tiền tố là “wc-” cho “WooC Commerce”. Nếu muốn một tên khác cho trạng thái đơn đặt hàng của mình, bạn sẽ muốn thay đổi tên này thành một con sên có dấu gạch nối, tất cả đều viết thường, chẳng hạn như wc-building hoặc wc-packing-order

Sên trạng thái tùy chỉnh của bạn chỉ có thể có tối đa 20 ký tự, bao gồm cả dấu gạch ngang [theo ], vì vậy bạn cần lưu ý điều này khi tạo sên của riêng mình

Sau đó, chúng tôi tạo một mảng, là một tập hợp dữ liệu xác định trạng thái bài đăng tùy chỉnh của chúng tôi. Nhãn là nội dung sẽ được hiển thị, vì vậy bạn có thể thay đổi nhãn đó thành tên chính xác của trạng thái đơn hàng của mình. Sau đó, bạn cũng sẽ muốn chèn phần này vào label_count thay vì "Đang chờ giao hàng", nhưng không thay đổi phần còn lại của mảng này

Cuối cùng, hành động ở cuối chạy chức năng này và thêm trạng thái đơn hàng này vào WordPress làm trạng thái bài đăng tùy chỉnh của chúng tôi

Bây giờ chúng ta hãy nói về phần thứ hai

// Add to list of WC Order statuses
function add_awaiting_shipment_to_order_statuses[ $order_statuses ] {
 
    $new_order_statuses = array[];
 
    // add new order status after processing
    foreach [ $order_statuses as $key => $status ] {
 
        $new_order_statuses[ $key ] = $status;
 
        if [ 'wc-processing' === $key ] {
            $new_order_statuses['wc-awaiting-shipment'] = 'Awaiting shipment';
        }
    }
 
    return $new_order_statuses;
}
add_filter[ 'wc_order_statuses', 'add_awaiting_shipment_to_order_statuses' ];

Hàm add_awaiting_shipment_to_order_statuses[] sẽ thêm trạng thái bài đăng tùy chỉnh mới này vào danh sách các trạng thái đơn đặt hàng có sẵn trong các trang “Đơn đặt hàng” và “Chỉnh sửa đơn đặt hàng” của WooC Commerce để chúng tôi thực sự có thể sử dụng nó. Chúng tôi muốn chuyển các trạng thái đơn hàng hiện tại để chúng tôi có thể xem qua chúng và chèn trạng thái đơn hàng của chúng tôi vào danh sách mà chúng tôi muốn

Trước tiên, chúng tôi tạo một mảng cho các trạng thái đơn hàng mới, đây sẽ là sản phẩm cuối cùng của chúng tôi. Sau đó, chúng tôi sẽ xem qua tất cả các trạng thái đơn đặt hàng và chèn trạng thái của chúng tôi, để khi chúng tôi đưa các trạng thái đơn hàng mới vào danh sách, trạng thái mới của chúng tôi sẽ được đưa vào danh sách

Vòng lặp 

// Add to list of WC Order statuses
function add_awaiting_shipment_to_order_statuses[ $order_statuses ] {
 
    $new_order_statuses = array[];
 
    // add new order status after processing
    foreach [ $order_statuses as $key => $status ] {
 
        $new_order_statuses[ $key ] = $status;
 
        if [ 'wc-processing' === $key ] {
            $new_order_statuses['wc-awaiting-shipment'] = 'Awaiting shipment';
        }
    }
 
    return $new_order_statuses;
}
add_filter[ 'wc_order_statuses', 'add_awaiting_shipment_to_order_statuses' ];
0 ở đây duyệt qua danh sách các trạng thái đơn đặt hàng hiện tại cho đến khi chúng tôi tìm thấy trạng thái mình muốn. Trong trường hợp này, tôi sẽ chèn “Đang chờ giao hàng” sau trạng thái đơn hàng “Đang xử lý”. Đó là những gì mà phần 
// Add to list of WC Order statuses
function add_awaiting_shipment_to_order_statuses[ $order_statuses ] {
 
    $new_order_statuses = array[];
 
    // add new order status after processing
    foreach [ $order_statuses as $key => $status ] {
 
        $new_order_statuses[ $key ] = $status;
 
        if [ 'wc-processing' === $key ] {
            $new_order_statuses['wc-awaiting-shipment'] = 'Awaiting shipment';
        }
    }
 
    return $new_order_statuses;
}
add_filter[ 'wc_order_statuses', 'add_awaiting_shipment_to_order_statuses' ];
0 đang làm ở đây – chúng tôi nói: “Nếu trạng thái đơn hàng là 'đang xử lý', hãy thêm 'Đang chờ giao hàng' tại đây, sau đó tiếp tục chuyển qua các trạng thái đơn hàng. ”

Lưu ý rằng tôi sử dụng sên và nhãn mà tôi đã tạo trong chức năng đầu tiên để thêm trạng thái đơn hàng này. Bây giờ, tôi sẽ thấy "Đang chờ giao hàng" sau khi "Đang xử lý" cho các đơn đặt hàng của tôi

Bạn có thể chèn trạng thái mới của mình sau bất kỳ trạng thái hiện có nào; . Ví dụ: thay vào đó, tôi có thể tìm kiếm 

// Add to list of WC Order statuses
function add_awaiting_shipment_to_order_statuses[ $order_statuses ] {
 
    $new_order_statuses = array[];
 
    // add new order status after processing
    foreach [ $order_statuses as $key => $status ] {
 
        $new_order_statuses[ $key ] = $status;
 
        if [ 'wc-processing' === $key ] {
            $new_order_statuses['wc-awaiting-shipment'] = 'Awaiting shipment';
        }
    }
 
    return $new_order_statuses;
}
add_filter[ 'wc_order_statuses', 'add_awaiting_shipment_to_order_statuses' ];
1 và thêm trạng thái của mình sau đó

Đó là nó. Bây giờ bạn có thể thêm trạng thái của riêng mình và chèn nó vào bất kỳ đâu trong danh sách trạng thái đơn hàng

Xóa trạng thái đơn hàng WooC Commerce

Nếu bạn muốn xóa trạng thái đơn đặt hàng tùy chỉnh của mình, bạn chỉ cần xóa mã này khỏi trang web của mình. Nếu đang sử dụng plugin Đoạn mã, bạn chỉ cần tắt đoạn mã. Nếu bạn làm như vậy, trạng thái đơn hàng của bạn sẽ mặc định là “Đang chờ thanh toán”

Tuy nhiên, các đơn đặt hàng sử dụng trạng thái mới của bạn có thể không xuất hiện trong danh sách đơn đặt hàng của bạn khi mã bị xóa vì chúng đang sử dụng trạng thái bài đăng không được công nhận. Tôi khuyên bạn nên thay đổi trạng thái đơn đặt hàng thành trạng thái cốt lõi trước khi hủy kích hoạt hoặc xóa đoạn mã này. Các đơn đặt hàng sẽ vẫn tồn tại bất kể và bạn có thể điều hướng trực tiếp đến chúng bằng cách sử dụng id bài đăng, nhưng chúng sẽ không được nhận dạng trong danh sách Đơn đặt hàng nếu không có mã này trừ khi chúng sử dụng trạng thái đơn đặt hàng chính

Tôi sẽ không đề cập đến cách xóa bất kỳ trạng thái đơn đặt hàng cốt lõi nào, bởi vì đây là một ý tưởng rất tồi. Ngay cả khi bạn nghĩ rằng bạn có thể không sử dụng bất kỳ plugin nào trong số chúng, thì hầu hết các plugin [đặc biệt là cổng thanh toán hoặc các plugin khác liên quan đến đơn đặt hàng], đều mong đợi chúng ở đó

Ví dụ: bạn có thể không nghĩ rằng mình sẽ cần trạng thái “Đang chờ thanh toán”, nhưng điều này thực sự được hầu hết các cổng sử dụng làm trạng thái đơn đặt hàng mặc định cho đến khi thanh toán hợp lệ được xác nhận. Ví dụ: PayPal hoặc các cổng khác sử dụng IPN để thông báo cho trang web của bạn rằng một khoản thanh toán đã được hoàn tất, hãy sử dụng “Thanh toán đang chờ xử lý”, sau đó trạng thái được cập nhật thành đang xử lý sau khi nhận được khoản thanh toán. Để nhiều tiện ích mở rộng hoạt động chính xác, tất cả các trạng thái cốt lõi này phải có sẵn – ngay cả khi bạn không tích cực sử dụng chúng trong chu kỳ thực hiện của mình

Bài đăng này hữu ích như thế nào?

Bấm vào một ngôi sao để đánh giá nó

Gửi xếp hạng

Như bạn thấy bài viết này hữu ích

tại sao không chia sẻ nó?

#webpros #ecommerce #woocommerce

gạo Béka

Gạo Beka là một Sr. Giám đốc quản lý sản phẩm tại GoDaddy, nơi cô ấy tập trung vào việc xây dựng trải nghiệm WooC Commerce tuyệt vời. Cô ấy đã làm việc với WooC Commerce từ năm 2013 và đã xây dựng hàng tá plugin được hàng trăm nghìn cửa hàng trực tuyến sử dụng

Trạng thái đơn hàng WooC Commerce hoạt động như thế nào?

Đã hoàn thành — Đơn hàng đã được thực hiện và hoàn thành – không cần thực hiện thêm hành động nào. Đang chờ — Đang chờ thanh toán – hàng giảm, nhưng bạn cần xác nhận thanh toán. Đã hủy — Đã hủy bởi quản trị viên hoặc khách hàng – lượng hàng được tăng lên, không cần thực hiện thêm hành động nào. Đã hoàn tiền — Được quản trị viên hoàn tiền – không cần thực hiện thêm hành động nào

Tình trạng đơn hàng là gì?

Trạng thái đơn đặt hàng là một dấu hiệu trực quan, dễ dàng để thông báo cho bạn về các đặt trước cần hành động . Tất cả các trạng thái có thể được đặt thủ công khi tạo đơn đặt hàng nội bộ và một số trạng thái được đặt tự động khi tạo trực tuyến. Chúng cũng tác động đến tính sẵn sàng trực tuyến, lịch và bảng kê khai của bạn theo những cách khác nhau.

Chủ Đề