更改帳戶欄位順序

在我的帳號>帳戶詳細資料

裡面的姓氏與名字比較符合國外的習慣

所以要將他的欄位位置調換

先到woocommerce的資料夾

woocommerce > templates > myaccount > form-edit-account.php

將form-edit-account.php複製到主題的資料夾 我們是使用flatsome主題

路徑為 flatsome > woocommerce > myaccount 放入剛剛的php

 

打開form-edit-account.php來做編輯

將前兩行程式碼交換位置 也就是以下兩行

	<p class="woocommerce-form-row woocommerce-form-row--first form-row form-row-first">
		<label for="account_first_name"><?php esc_html_e( 'First name', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
		<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_first_name" id="account_first_name" autocomplete="given-name" value="<?php echo esc_attr( $user->first_name ); ?>" />
	</p>
	<p class="woocommerce-form-row woocommerce-form-row--last form-row form-row-last">
		<label for="account_last_name"><?php esc_html_e( 'Last name', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
		<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_last_name" id="account_last_name" autocomplete="family-name" value="<?php echo esc_attr( $user->last_name ); ?>" />
	</p>

交換後的效果為以下

連在一起的狀況解決 也要修改剛剛的php

在剛剛的兩程程式碼裡面有form-row-last 以及 form-row-first

將兩個的位置交換

這樣就修改完成符合台灣人習慣囉

將姓名欄位調整為一欄

如果覺得兩個欄位太多 只需要修改成一個姓名欄位就好

前面的步驟都相同 將form-edit-account.php放到主題的資料夾裡面

之後直接把last naem的php刪除或註解掉

並且將first name的class從form-row-last改為form-row-wide

這樣才會變成完整的一欄

最後要在function.php添加以下代碼

否則會一直跳出【姓氏為必填】 導致無法修改個人資料

//讓我的帳號 > 帳戶詳細資訊 姓名欄位成為非必填 (姓氏)
add_filter('woocommerce_save_account_details_required_fields', 'remove_required_fields');

function remove_required_fields( $required_fields ) {
  unset($required_fields['account_last_name']);

  return $required_fields;
}
最後修改日期: 2021 年 6 月 17 日

作者