WooCommerce: Đặt Trạng thái cho Đơn hàng mới.
Trạng thái Đơn hàng trong WooCommerce. Tất cả các đơn đặt hàng WooCommerce đều chuyển sang trạng thái “đang xử lý”, “đã hoàn thành”, “tạm dừng” và các trạng thái đơn đặt hàng mặc định khác dựa trên phương thức thanh toán và loại sản phẩm.
Đôi khi những trạng thái này là không đủ. Ví dụ: bạn có thể cần đánh dấu các đơn đặt hàng nhất định theo một cách khác để theo dõi, lọc, xuất khẩu. Hoặc bạn có thể muốn tắt các email mặc định bằng cách bỏ qua các thay đổi trạng thái đơn hàng mặc định.
Việc đặt Trạng thái Đơn hàng Tùy chỉnh cho Đơn hàng Mới khá dễ dàng. Và hôm nay chúng ta sẽ xem bạn cần những đoạn mã PHP nào để làm cho nó hoạt động!
Đoạn mã PHP: Đặt Trạng thái Đơn hàng trong Woocommerce.
1. Đăng ký Trạng thái Đơn hàng.
[code]
add_filter( ‘woocommerce_register_shop_order_post_statuses’, ‘bbloomer_register_custom_order_status’ );
function bbloomer_register_custom_order_status( $order_statuses ){
// Status must start with “wc-”
$order_statuses[‘wc-custom-status’] = array(
‘label’ => _x( ‘Custom Status’, ‘Order status’, ‘woocommerce’ ),
‘public’ => false,
‘exclude_from_search’ => false,
‘show_in_admin_all_list’ => true,
‘show_in_admin_status_list’ => true,
‘label_count’ => _n_noop( ‘Custom Status (%s)’, ‘Custom Status (%s)’, ‘woocommerce’ ),
);
return $order_statuses;
}
[/code]
[code]
add_filter( ‘wc_order_statuses’, ‘bbloomer_show_custom_order_status’ );
function bbloomer_show_custom_order_status( $order_statuses ) {
$order_statuses[‘wc-custom-status’] = _x( ‘Custom Status’, ‘Order status’, ‘woocommerce’ );
return $order_statuses;
}
add_filter( ‘bulk_actions-edit-shop_order’, ‘bbloomer_get_custom_order_status_bulk’ );
function bbloomer_get_custom_order_status_bulk( $bulk_actions ) {
// Note: “mark_” must be there instead of “wc”
$bulk_actions[‘mark_custom-status’] = ‘Change status to custom status’;
return $bulk_actions;
}
[/code]
[code]
add_action( ‘woocommerce_thankyou’, ‘bbloomer_thankyou_change_order_status’ );
function bbloomer_thankyou_change_order_status( $order_id ){
if( ! $order_id ) return;
$order = wc_get_order( $order_id );
// Status without the “wc-” prefix
$order->update_status( ‘custom-status’ );
}
[/code]
Thêm đoạn mã này vào đâu?
Bạn có thể đặt các đoạn mã PHP ở cuối tệp functions.php chủ đề con của mình (trước “?>” Nếu bạn có). Mặt khác, CSS có trong tệp style.css chủ đề con của bạn.
Đoạn mã này (vẫn) hoạt động chứ?
Vui lòng cho tôi biết trong phần bình luận nếu mọi thứ hoạt động như mong đợi. Tôi rất sẵn lòng sửa đổi đoạn mã nếu bạn có góp ý phù hợp (vui lòng cung cấp ảnh chụp màn hình).
Dịch vụ thiết kế website chuyên nghiệp tại Web MTP
Liên hệ ngay với chúng tôi nếu bạn đang gặp khó khăn trong việc thiết kế web nhé!
Website: https://webmtp.com/
Hotline: 0931 912 379
Mời bạn xem nhiều bài hấp dẫn khác