WooCommerce重新排序結賬字段

我有一個有關WooCommerce?結賬字段的教程,但是我在有關如何更改結賬字段順序的評論中收到很多問題。因此,我決定為此編寫一個單獨的教程。

如果您沒有閱讀有關WooCommerce結賬字段的完整教程,我強烈建議您先閱讀它,然后再回到這里。

組內排序字段

首先要記住的是,字段被分成幾組,實際上有4個組:

  • billing?- 賬單地址
  • shipping?- 送貨地址
  • account?- 賬號登錄
  • order?- 附加信息

這些組中的每一個都包含字段,我想您知道哪個字段。而且,您可以使用特殊priority參數輕松地對它們重新排序。

示例:我想使郵箱字段成為第一個顯示的字段,我可以使用以下幾行代碼來做到這一點:

add_filter( 'woocommerce_checkout_fields', 'misha_email_first' );
 
function misha_email_first( $checkout_fields ) {
	$checkout_fields['billing']['billing_email']['priority'] = 4;
	return $checkout_fields;
}

結果:

為什么我要設置priority4?讓我解釋一下,每個默認字段都有其自己的優先級,所有這些都在下表中列出。因此,根據該表,要首先設置電子郵件字段,我必須使用小于10的值。

如果您更改了字段順序,并且結果看起來很奇怪(例如,如果您嘗試在半寬字段之間放置全寬字段,例如,姓和名之間的電子郵件),則可以使用此技巧輕松修復它。

woocommerce_default_address_fields

還有一個掛鉤-?woocommerce_default_address_fields允許同時更改訂單的計費和運送字段。因此,我們的示例代碼如下:

add_filter( 'woocommerce_default_address_fields', 'misha_email_first' );
 
function misha_email_first( $address_fields ) {
	// 如你所見,不需要指定字段所屬的組
	$address_fields['email']['priority'] = 4;
	return $address_fields;
}

移動字段到其他字段組

對我來說,這種排序方式似乎有些棘手,并且在100%的情況下將不起作用,例如,您不能將“開票國家/地區”字段移動到“訂單備注”下面。好吧,實際上,您可以,但是(一個很大的“but”),例如,當您嘗試將一個國家更改為美國時,州不會出現在旁邊的字段中。

這是示例,我們將賬單電子郵件字段移到另一個組:

add_filter( 'woocommerce_checkout_fields', 'misha_billing_email_another_group' );
 
function misha_billing_email_another_group( $checkout_fields ){
 
	// 1. 我們分配一個字段數組到新的分組
	$checkout_fields['order']['billing_email'] = $checkout_fields['billing']['billing_email'];
 
	// 2. 從之前的位置移除字段
	unset( $checkout_fields['billing']['billing_email'] );
 
	return $checkout_fields;
 
}

效果不錯:

關于結賬界面的修改,可以看下:

如果您對 WooCommerce 的使用還不太了解,或者想系統學習 WooCommerce 開發,可以學習教程《WooCommerce 開發指南視頻課程(使用詳解/主題開發/支付寶網關開發)》。

聲明:原文出自 https://rudrastyh.com/woocommerce/reorder-checkout-fields.html ,由 WordPress大學 翻譯整理,轉載請保留本聲明!

倡萌

一個文科IT宅男,喜歡折騰WordPress和被它折騰 ^_^

暫無評論

發表評論