Buat Status Pesanan Tersuai WooCommerce Untuk WordPress


WooCommerce ialah pemalam WordPress yang hebat untuk menjual produk dalam talian. Dan hari ini saya ingin menunjukkan kepada anda cara membuat pemalam untuk membolehkan anda membuat status pesanan tersuai. Secara lalai WooCommerce menyediakan status pesanan ini:

  • dibatalkan
  • selesai
  • gagal
  • ditahan
  • yang belum selesai
  • pemprosesan
  • dikembalikan

Tetapi bagaimana jika anda ingin menambah status baharu, atau mungkin mengubah suai status sedia ada? Di bawah ialah contoh yang menunjukkan kepada anda betapa mudahnya untuk menambah status pesanan baharu pada pesanan WooCommerce anda.

Secara visual berikut ialah hasil akhir:

Daftar Status Pesanan WooCommerce Baharu

Sebelum ini WooCommerce menggunakan taksonomiĀ ā€œshop_order_statusā€ jadi menambah status pesanan baharu agak sukar, namun, kini ia lebih mudah daripada sebelumnya! Sila lihat kod di bawah untuk contoh.

// Register New Order Statuses
function wpex_wc_register_post_statuses() {
	register_post_status( 'wc-custom-order-status', array(
		'label'						=> _x( 'Custom Order Status Name', 'WooCommerce Order status', 'text_domain' ),
		'public'					=> true,
		'exclude_from_search'		=> false,
		'show_in_admin_all_list'	=> true,
		'show_in_admin_status_list'	=> true,
		'label_count'				=> _n_noop( 'Approved (%s)', 'Approved (%s)', 'text_domain' )
	) );
}
add_filter( 'init', 'wpex_wc_register_post_statuses' );

// Add New Order Statuses to WooCommerce
function wpex_wc_add_order_statuses( $order_statuses ) {
	$order_statuses['wc-custom-order-status'] = _x( 'Custom Order Status Name', 'WooCommerce Order status', 'text_domain' );
	return $order_statuses;
}
add_filter( 'wc_order_statuses', 'wpex_wc_add_order_statuses' );

Jika anda ingin menambah berbilang status pesanan baharu, salin sahaja fungsi register_post_status di dalam fungsi wpex_wc_register_post_statuses seberapa kerap yang anda mahu pastikan untuk mengubah ID dan label dengan sewajarnya. Kemudian tambahkan status pesanan baharu pada tatasusunan $order_statuses dalam fungsi wpex_wc_add_order_statuses.