當(dāng)前位置:首頁(yè)>WordPress建站>WordPress開發(fā)>WooCommerce修改賬單和收貨地址字段

WooCommerce修改賬單和收貨地址字段

WooCommerce有4個(gè)不同的過濾器掛鉤,可以管理地址字段,讓我們弄清楚何時(shí)以及如何使用它們。

在創(chuàng)建教程之前,我嘗試過使用Google進(jìn)行搜索,并在WooCommerce中找到了關(guān)于計(jì)費(fèi)和運(yùn)送字段的太多奇怪信息。現(xiàn)在讓我們對(duì)此有所了解!

WooCommerce中有兩種類型的字段-計(jì)費(fèi)和運(yùn)送字段。在這兩個(gè)類別中都顯示了某些字段,例如名字字段或國(guó)家/地區(qū)字段。

現(xiàn)在仔細(xì)閱讀:

  • 我們可以使用 woocommerce_default_address_fields?鉤子在字段中進(jìn)行更改-在這種情況下,更改將影響所有內(nèi)容-修改“我的賬戶”中的賬單和運(yùn)送字段頁(yè)面以及結(jié)賬頁(yè)面。
  • woocommerce_shipping_fields?–相同,但僅影響運(yùn)送字段
  • woocommerce_billing_fields?–相同,但僅影響計(jì)費(fèi)字段
  • woocommerce_checkout_fields–僅影響界面頁(yè)面,沒有其他影響,此鉤子已在單獨(dú)的教程中詳細(xì)介紹。

刪除默認(rèn)的計(jì)費(fèi)和運(yùn)送字段

一個(gè)簡(jiǎn)單的示例如下:

add_filter( 'woocommerce_default_address_fields', 'misha_remove_fields' );
 
function misha_remove_fields( $fields ) {
 
	unset( $fields[ 'address_2' ] );
	return $fields;
 
}

字段ID為:

  • first_name
  • last_name
  • company
  • address_1
  • address_2
  • state
  • city
  • country
  • postcode

請(qǐng)注意,如果您使用的是woocommerce_shipping_fields?或woocommerce_billing_fields?過濾器掛鉤,則必須在字段ID中添加適當(dāng)?shù)那熬Y(billing_shipping_),例如:

add_filter( 'woocommerce_billing_fields', 'misha_remove_billing_fields' );
 
function misha_remove_billing_fields( $fields ) {
 
	unset( $fields[ 'billing_address_2' ] ); // or shipping_address_2 for woocommerce_shipping_fields hook
	return $fields;
 
}

禁用字段驗(yàn)證

在這種情況下,您不必刪除整個(gè)字段本身,而只需刪除它的某個(gè)屬性(required)。

使運(yùn)送姓氏字段為可選的示例:

add_filter( 'woocommerce_shipping_fields', 'misha_remove_fields' );
 
function misha_remove_fields( $fields ) {
 
	unset( $fields[ 'shipping_last_name' ]['required'] );
	return $fields;
 
}

結(jié)果如下所示:

如果要將“姓氏”字段設(shè)置為“賬單”和“運(yùn)送”字段組都是可選的,也可以使用 woocommerce_default_address_fields

另一方面,如果您想將字段設(shè)置為必填,只需在上面代碼的第5行將required屬性設(shè)置為true,如下所示:

$fields[ 'shipping_company' ]['required'] = true;

如何更改默認(rèn)地址字段?

在前面的示例中,我已經(jīng)說明了如何使任何默認(rèn)字段為可選或必需。但這required不是我們可以更改的唯一字段參數(shù)。以下是其他參數(shù):

  • label?(字符串)
  • placeholder?(字符串)
  • class?(數(shù)組)
  • priority?(整數(shù))

這些參數(shù)均可以更改。作為示例,讓我們嘗試在“賬單”和“運(yùn)送”的“姓氏”字段中進(jìn)行更改:

add_filter( 'woocommerce_default_address_fields' , 'misha_change_fname_field' );
 
function misha_change_fname_field( $fields ) {
 
	$fields['first_name']['label'] = 'Name';
	$fields['first_name']['placeholder'] = 'Your mom calls you';
 
	return $fields;
 
}

結(jié)果如下:

您可以在我的有關(guān)WooCommerce?結(jié)帳字段的教程中找到更多示例。是的,我們?cè)?code>woocommerce_checkout_fields那里使用動(dòng)作掛鉤,但這非常相似。

創(chuàng)建自定義地址字段

創(chuàng)建地址字段比為“編輯帳戶”頁(yè)面或“結(jié)賬”頁(yè)面創(chuàng)建字段容易得多。

您甚至不必使用woocommerce_form_field()函數(shù)!

真的,這就是關(guān)于數(shù)組的全部工作:

add_filter( 'woocommerce_default_address_fields', 'misha_add_field' );
 
function misha_add_field( $fields ) {
 
	$fields['fav_color']   = array(
		'label'        => 'Favorite color',
		'required'     => true,
		'class'        => array( 'form-row-wide', 'my-custom-class' ),
		'priority'     => 20,
		'placeholder'  => 'Is it black or orange or maybe green?',
	);
 
	return $fields;
 
}

請(qǐng)記住以下幾點(diǎn):

如果要使用woocommerce_shipping_fields或使用woocommerce_billing_fields鉤子,請(qǐng)不要忘記在上面代碼的第5行添加字段前綴shipping_billing_。我認(rèn)為即使此處沒有前綴也可以解決問題,但是添加前綴可以更加保險(xiǎn)和精準(zhǔn)。

$fields['billing_fav_color'] = array(

您可能會(huì)猜想,這也是如何將字段存儲(chǔ)在wp_usermeta表的數(shù)據(jù)庫(kù)中的元鍵。

關(guān)于CSS類的幾句話:

  • form-row-wide?–全寬列,
  • form-row-first?– 2列字段,第一列,
  • form-row-last?– 2列字段,第二列;

您可以自己使用 priority參數(shù),例如,我設(shè)置了20,將我的字段放在“名”和“姓”字段下:

很酷的是,它將在WooCommerce結(jié)賬頁(yè)面上顯示并且也將完全起作用!

如何將字段添加到WP后臺(tái)個(gè)人資料編輯頁(yè)面?

好的,我們的字段現(xiàn)在顯示在“我的賬戶”中的“編輯地址”頁(yè)面和“結(jié)賬”頁(yè)面中。但是WordPres后臺(tái)呢?如果該字段也出現(xiàn)在“編輯個(gè)人資料”頁(yè)面中,那就太好了,您不這樣認(rèn)為嗎?這是我的意思:

好消息是,你不必使用show_user_profileedit_user_profile掛鉤!

有一個(gè)特殊的鉤子:

add_filter( 'woocommerce_customer_meta_fields', 'misha_admin_address_field' );
 
function misha_admin_address_field( $admin_fields ) {
 
	$admin_fields['billing']['fields']['billing_fav_color'] = array(
		'label' => 'Fav color',
		'description' => 'Some field description will go here',
	);
 
	// or $admin_fields['shipping']['fields']['shipping_fav_color']
	// or both
 
	return $admin_fields;
 
}

在這里我們需要兩個(gè)參數(shù)-?labeldescription即可。只要確保該字段名稱(第5行)匹配即可。

如果您也想在WordPress后臺(tái)編輯訂單頁(yè)面上添加字段,請(qǐng)閱讀此處的方法。

聲明:原文出自 https://rudrastyh.com/woocommerce/billing-and-shipping-address-fields.html ,由WordPress大學(xué)翻譯整理,轉(zhuǎn)載請(qǐng)保留該聲明!

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

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

在WooCommerce結(jié)賬頁(yè)面上更改“下訂單”按鈕的文本

2019-10-24 11:20:05

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

WooCommerce自定義結(jié)賬字段驗(yàn)證

2019-10-25 10:05:59

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

吐鲁番市| 垣曲县| 萝北县| 崇阳县| 白河县| 登封市| 司法| 海伦市| 邻水| 双柏县| 靖远县| 绥中县| 固镇县| 潜山县| 泰和县| 威海市| 武冈市| 辉县市| 安溪县| 连云港市| 双城市| 肃北| 英超| 嘉定区| 察雅县| 龙山县| 龙岩市| 米脂县| 海门市| 通海县| 昭通市| 淮南市| 谷城县| 十堰市| 定安县| 龙里县| 北碚区| 上虞市| 安义县| 宁晋县| 拉孜县|