當(dāng)前位置:首頁>WordPress建站>WordPress開發(fā)>WooCommerce訂單狀態(tài):刪除核心訂單狀態(tài)并添加自定義訂單狀態(tài)

WooCommerce訂單狀態(tài):刪除核心訂單狀態(tài)并添加自定義訂單狀態(tài)

在本文中,我們將主要使用wc_order_statuses過濾器掛鉤,該掛鉤可添加、刪除或更改WooCommerce訂單狀態(tài)的順序。

刪除核心訂單狀態(tài)

首先要說的就是——小心細(xì)致地操作

刪除核心訂單狀態(tài)時,請確保沒有具有該狀態(tài)的產(chǎn)品,并且您的WooCommerce商店不在任何地方使用該狀態(tài),否則可能導(dǎo)致錯誤。例如,如果您不打算通過網(wǎng)站退款,則可以毫無問題地關(guān)閉“退款( Refunded )”狀態(tài)。

您可以將本文中的所有代碼插入到當(dāng)前主題functions.php文件中。

/*
 * 刪除核心訂單狀態(tài)
 * @param array $wc_statuses_arr 網(wǎng)站上所有訂單狀態(tài)的數(shù)組
 */
function misha_remove_order_statuses( $wc_statuses_arr ){
	// 處理中
	if( isset( $wc_statuses_arr['wc-processing'] ) ) { // 如果存在
		unset( $wc_statuses_arr['wc-processing'] ); // 從數(shù)組中刪除
	}
	// 已退款
	if( isset( $wc_statuses_arr['wc-refunded'] ) ){
		unset( $wc_statuses_arr['wc-refunded'] );
	}
	// 保留
	if( isset( $wc_statuses_arr['wc-on-hold'] ) ){
		unset( $wc_statuses_arr['wc-on-hold'] );
	}
	// 失敗
	if( isset( $wc_statuses_arr['wc-failed'] ) ){
		unset( $wc_statuses_arr['wc-failed'] );
	}
	// 待付款
	if( isset( $wc_statuses_arr['wc-pending'] ) ){
		unset( $wc_statuses_arr['wc-pending'] );
	}
	// 已完成
	//if( isset( $wc_statuses_arr['wc-completed'] ) ){
	//    unset( $wc_statuses_arr['wc-completed'] );
	//}
	// 已取消
	//if( isset( $wc_statuses_arr['wc-cancelled'] ) ){
	//    unset( $wc_statuses_arr['wc-cancelled'] );
	//}
	return $wc_statuses_arr; // 返回結(jié)果狀態(tài)
}
add_filter( 'wc_order_statuses', 'misha_remove_order_statuses' );

使用此訂單狀態(tài)操作掛鉤后,您可能會在管理區(qū)域的訂單編輯頁面上看到結(jié)果:

已移除多個核心訂單狀態(tài)

但是,正如我之前所說,在大多數(shù)情況下都會導(dǎo)致問題。所以要小心。

自定義訂單狀態(tài)

/** 
 * 注冊一個新的訂單狀態(tài) ID為 "wc-misha-shipment" ,名稱為 "Awaiting shipment"
 */
function misha_register_awaiting_shipment_status() {
 
	register_post_status( 'wc-misha-shipment', array(
		'label'		=> 'Awaiting shipment',
		'public'	=> true,
		'show_in_admin_status_list' => true, // show count All (12) , Completed (9) , Awaiting shipment (2) ...
		'label_count'	=> _n_noop( 'Awaiting shipment <span class="count">(%s)</span>', 'Awaiting shipment <span class="count">(%s)</span>' )
	) );
 
}
add_action( 'init', 'misha_register_awaiting_shipment_status' );
 
/*
 * 將自定義狀態(tài)添加到WC訂單狀態(tài)列表中
 * @param array $wc_statuses_arr 網(wǎng)站上所有訂單狀態(tài)的數(shù)組
 */
function misha_add_status( $wc_statuses_arr ) {
 
	$new_statuses_arr = array();
 
	// //在“處理中”后面添加新狀態(tài)
	foreach ( $wc_statuses_arr as $id => $label ) {
		$new_statuses_arr[ $id ] = $label;
 
		if ( 'wc-completed' === $id ) { // 在“已完成”狀態(tài)之后
			$new_statuses_arr['wc-misha-shipment'] = 'Awaiting shipment';
		}
	}
 
	return $new_statuses_arr;
 
	// 如果訂單狀態(tài)順序?qū)δ詿o關(guān)緊要,則可以刪除第21-32行并取消注釋以下35-36 
	// $wc_statuses_arr['wc-misha-shipment'] = 'Awaiting shipment';
	// return $wc_statuses_arr;
 
}
add_filter( 'wc_order_statuses', 'misha_add_status' );

最終的效果如下圖所示:

添加了自定義狀態(tài)

更改訂單狀態(tài)順序

/*
 * 更改在下拉列表中狀態(tài)的順序
 * @param array $wc_statuses_arr 網(wǎng)站上所有訂單狀態(tài)的數(shù)組
 */
function misha_change_statuses_order( $wc_statuses_arr ){
 
	$new_statuses_arr = array(
		'wc-processing' => $wc_statuses_arr['wc-processing'], // 1
		'wc-completed' => $wc_statuses_arr['wc-completed'], // 2
		'wc-cancelled' => $wc_statuses_arr['wc-cancelled'], // 3
		'wc-refunded' => $wc_statuses_arr['wc-refunded'], // 4
		'wc-failed' => $wc_statuses_arr['wc-failed'], // 5
		'wc-pending' => $wc_statuses_arr['wc-pending'], // 6
		'wc-on-hold' => $wc_statuses_arr['wc-on-hold'] // 7
	);
 
	return $new_statuses_arr;
}
 
add_filter( 'wc_order_statuses', 'misha_change_statuses_order' );

最終的效果如下圖所示:

更改訂單狀態(tài)順序

訂單狀態(tài)管理器插件

有一個可以對WooCommerce訂單狀態(tài)進行管理的插件:WooCommerce Order Status Manager,如果上面的代碼對您來說有點復(fù)雜,請嘗試使用該插件,但價格為49-149美元。而且,此插件不允許刪除核心訂單狀態(tài)。

如果您還希望可以對產(chǎn)品進行訂單狀態(tài)的批量管理,可以看下教程《WooCommerce批量更改自定義訂單狀態(tài)》。

如果您對 WooCommerce 的使用還不太了解,或者想系統(tǒng)學(xué)習(xí) WooCommerce 開發(fā),可以學(xué)習(xí)教程《WooCommerce 開發(fā)指南視頻課程(使用詳解/主題開發(fā)/支付寶網(wǎng)關(guān)開發(fā))》。

聲明:原文出自 https://rudrastyh.com/woocommerce/order-statuses.html ,由WordPress大學(xué)翻譯整理,轉(zhuǎn)載請保留本聲明。

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號 WPDAXUE
WordPress開發(fā)

WP_Query 通過 meta_query 查詢和排序文章

2019-10-9 8:57:21

WordPress開發(fā)商城相關(guān)

WooCommerce批量更改自定義訂單狀態(tài)

2019-10-22 10:49:14

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

万源市| 施甸县| 敖汉旗| 清涧县| 临夏县| 东丰县| 繁峙县| 景洪市| 南宁市| 张北县| 长葛市| 奉化市| 龙井市| 东乌珠穆沁旗| 宜州市| 黄骅市| 遂宁市| 凌源市| 浦北县| 清水河县| 巴塘县| 香港 | 陆川县| 类乌齐县| 十堰市| 汝城县| 新民市| 怀安县| 达拉特旗| 友谊县| 南阳市| 安远县| 四会市| 体育| 武乡县| 南京市| 犍为县| 徐闻县| 新津县| 龙陵县| 嘉鱼县|