網站架設 | 電商購物網站 | SEO | WordPress - 獨角獸網站工坊
  • 關於我們
  • 作品集
  • 網站服務
    • 快速網站套版
    • 電商購物網站
    • 形象網站架設
    • 客製化網站
  • 實用文章
  • 聯絡我們
搜尋
0 items NT$0
與我聯絡
網站架設 | 電商購物網站 | SEO | WordPress - 獨角獸網站工坊
選單

實用文章

首頁 » 實用文章 » WooCommerce » Woocommerce 會員中心 My Account 會員資料編輯加入電話號碼
WooCommerce

Woocommerce 會員中心 My Account 會員資料編輯加入電話號碼

發佈作者: author-avatar edwinlin
On 2021-12-27
在〈Woocommerce 會員中心 My Account 會員資料編輯加入電話號碼〉中留言功能已關閉
Woocommerce 會員中心 My Account 會員資料編輯加入電話號碼

開發時遇到的一個很奇怪的需求,但想想這需求也很合情合理,在 Woocommerce 的會員後台中,其實有這個欄位編輯,是在收件地址資料那邊設定的,既然處理了就順便筆記分享下來

很可能以後都是標配(?)

首先要進到你的佈景主題中,找到 functions.php 記得備份一下,接著新增以下程式碼

 

//會員資料編輯新增手機


add_action( 'woocommerce_edit_account_form', 'add_billing_mobile_phone_to_edit_account_form' ); 
function add_billing_mobile_phone_to_edit_account_form() {
    $user = wp_get_current_user();
    ?>
     <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
        <label for="billing_mobile_phone"><?php _e( '手機號碼驗證(再輸入一次)', 'woocommerce' ); ?> <span class="required">*</span></label>
        <input type="text" class="woocommerce-Input woocommerce-Input--phone input-text" name="billing_mobile_phone" id="billing_mobile_phone" value="<?php echo esc_attr( $user->billing_mobile_phone ); ?>" />
    </p>
    <?php
}

// 檢查驗證電話欄位
add_action( 'woocommerce_save_account_details_errors','billing_mobile_phone_field_validation', 20, 1 );
function billing_mobile_phone_field_validation( $args ){
    if ( isset($_POST['billing_mobile_phone']) && empty($_POST['billing_mobile_phone']) )
        $args->add( 'error', __( '手機號碼有所不同,請檢查下方確認再次填寫', 'woocommerce' ),'');
}

// 儲存電話號碼欄位進會員資料
add_action( 'woocommerce_save_account_details', 'my_account_saving_billing_mobile_phone', 20, 1 );
function my_account_saving_billing_mobile_phone( $user_id ) {
    if( isset($_POST['billing_mobile_phone']) && ! empty($_POST['billing_mobile_phone']) )
        update_user_meta( $user_id, 'billing_mobile_phone', sanitize_text_field($_POST['billing_mobile_phone']) );
}

上面完成之後,請進到 Woocommerce 外掛資料夾內,找到 templates/myaccount/form-edit-account.php 先COPY一個備份,再打開編輯

<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="billing_mobile_phone"><?php _e( '手機號碼', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--phone input-text" name="billing_mobile_phone" id="billing_mobile_phone" value="<?php echo esc_attr( $user->billing_mobile_phone ); ?>" />
</p>

找到你要的位置,把這個欄位 HTML 安插進去

他插入位置自己去判斷,我是插入在 Email 後面,會像以下這樣:

<?php
/**
 * Edit account form
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/myaccount/form-edit-account.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see https://docs.woocommerce.com/document/template-structure/
 * @package WooCommerceTemplates
 * @version 3.5.0
 */

defined( 'ABSPATH' ) || exit;

do_action( 'woocommerce_before_edit_account_form' ); ?>

<form class="woocommerce-EditAccountForm edit-account" action="" method="post" <?php do_action( 'woocommerce_edit_account_form_tag' ); ?> >

	<?php do_action( 'woocommerce_edit_account_form_start' ); ?>

	<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>
	
	<div class="clear"></div>

	<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
		<label for="account_display_name"><?php esc_html_e( 'Display name', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
		<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_display_name" id="account_display_name" value="<?php echo esc_attr( $user->display_name ); ?>" /> <span><em><?php esc_html_e( 'This will be how your name will be displayed in the account section and in reviews', 'woocommerce' ); ?></em></span>
	</p>
	<div class="clear"></div>

	<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
		<label for="account_email"><?php esc_html_e( 'Email address', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
		<input type="email" class="woocommerce-Input woocommerce-Input--email input-text" name="account_email" id="account_email" autocomplete="email" value="<?php echo esc_attr( $user->user_email ); ?>" />
	</p>
             <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
    <label for="billing_mobile_phone"><?php _e( '手機號碼', 'woocommerce' ); ?> <span class="required">*</span></label>
    <input type="text" class="woocommerce-Input woocommerce-Input--phone input-text" name="billing_mobile_phone" id="billing_mobile_phone" value="<?php echo esc_attr( $user->billing_mobile_phone ); ?>" />
</p>

	<fieldset>
		<legend><?php esc_html_e( 'Password change', 'woocommerce' ); ?></legend>

		<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
			<label for="password_current"><?php esc_html_e( 'Current password (leave blank to leave unchanged)', 'woocommerce' ); ?></label>
			<input type="password" class="woocommerce-Input woocommerce-Input--password input-text" name="password_current" id="password_current" autocomplete="off" />
		</p>
		<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
			<label for="password_1"><?php esc_html_e( 'New password (leave blank to leave unchanged)', 'woocommerce' ); ?></label>
			<input type="password" class="woocommerce-Input woocommerce-Input--password input-text" name="password_1" id="password_1" autocomplete="off" />
		</p>
		<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
			<label for="password_2"><?php esc_html_e( 'Confirm new password', 'woocommerce' ); ?></label>
			<input type="password" class="woocommerce-Input woocommerce-Input--password input-text" name="password_2" id="password_2" autocomplete="off" />
		</p>
	</fieldset>
	<div class="clear"></div>

	<?php do_action( 'woocommerce_edit_account_form' ); ?>

	<p>
		<?php wp_nonce_field( 'save_account_details', 'save-account-details-nonce' ); ?>
		<button type="submit" class="woocommerce-Button button" name="save_account_details" value="<?php esc_attr_e( 'Save changes', 'woocommerce' ); ?>"><?php esc_html_e( 'Save changes', 'woocommerce' ); ?></button>
		<input type="hidden" name="action" value="save_account_details" />
	</p>

	<?php do_action( 'woocommerce_edit_account_form_end' ); ?>
</form>

<?php do_action( 'woocommerce_after_edit_account_form' ); ?>

儲存後就會看到了

Woocommerce 會員中心 My Account 會員資料編輯加入電話號碼
my accountwoocommerce會員中心
較新 Elementor 製作登入登出偵測按鈕
返回文章列表
較舊 Woocommerce 修改相關商品項目標題屬性

相關文章

如何自訂 WooCommerce 相關產品改為撈取子分類
30 8 月
WooCommerce, 實用技巧

如何自訂 WooCommerce 相關產品改為撈取子分類

  • 2024-08-30
  • 發佈作者: author-avatar edwinlin
會因為您的商品分類特性去調整 在 WooCommerce 中,相關產品(Related Products)功能通常是自...
隱藏 WooCommerce 結帳頁運送到不同的地址選項
07 3 月
WooCommerce, 實用技巧

隱藏 WooCommerce 結帳頁運送到不同的地址選項

  • 2024-03-07
  • 發佈作者: author-avatar edwinlin
以前需要靠 Code 現在不用 在電子商務網站上,提供一個簡潔且直觀的結帳頁面對於提升客戶體驗及增加轉換率至關重要。對...
如何在 WooCommerce 中自訂「相關商品」顯示名稱
24 1 月
WooCommerce, 實用技巧

如何在 WooCommerce 中自訂「相關商品」顯示名稱

  • 2024-01-24
  • 發佈作者: author-avatar edwinlin
相關商品? Related Prodcut 該怎變更名稱? 在 WooCommerce 中,「相關商品」是一個重要的功...
WooCommerce 購物車數量自動更新與刷新
24 1 月
WooCommerce, 實用技巧

WooCommerce 購物車數量自動更新與刷新

  • 2024-01-24
  • 發佈作者: author-avatar edwinlin
我不知道為何沒內建但它真的很重要 在 WooCommerce 的網路商店中,提供顧客流暢的購物體驗是非常重要的。其中一...
如何製作一鍵清空購物車 Empty Cart 的按鈕
11 7 月
WooCommerce, 實用技巧

如何製作一鍵清空購物車 Empty Cart 的按鈕

  • 2023-12-12
  • 發佈作者: author-avatar edwinlin
常常在 DEBUG 時發現,購物車若本身沒有一顆一鍵清空的按鈕是有點惱人的事,如果主機很快那還沒太大感覺,主機若一般般時...
WooCommerce 套用折價券 Coupon 免運費後隱藏原有運費顯示金額
19 6 月
WooCommerce, 實用技巧

WooCommerce 套用折價券 Coupon 免運費後隱藏原有運費顯示金額

  • 2023-12-12
  • 發佈作者: author-avatar edwinlin
在 WooCommerce 設定購物車裡頭,行銷 > 折價券可以新增像是外國常見的免運費折價券,前提是必須要在運送...
無庫存允許下單 Backorder 修改提示
17 5 月
WooCommerce, 實用技巧

無庫存允許下單 Backorder 修改提示

  • 2023-12-12
  • 發佈作者: author-avatar edwinlin
在一個金流 Discord 討論留言板上看到有網友在詢問這個問題,看了看也忽然覺得這個修改應該不至於太難,改一改以後有可...
WooCommerce 修改訂單備註資料日期格式
20 4 月
WooCommerce

WooCommerce 修改訂單備註資料日期格式

  • 2023-12-12
  • 發佈作者: author-avatar edwinlin
今天來分享一個奇怪的小地方,小細節啦,客戶也沒有發現,看到了怎看都覺得很怪,所以就動手修改了 首先要準備 Loco...
WooCommerce 清空購物車返回訊息+網址修改
16 4 月
WooCommerce, 實用技巧

WooCommerce 清空購物車返回訊息+網址修改

  • 2023-12-12
  • 發佈作者: author-avatar edwinlin
隨手筆記,我覺得我不知道民國幾年還會有機會用到這串修改語法。 這次的案例是客戶想修改清空購物車後,會有一顆按鈕「返...
Wordfence 干擾影響登入錯誤題示訊息翻譯
16 4 月
WooCommerce, 實用技巧

Wordfence 干擾影響登入錯誤題示訊息翻譯

  • 2023-12-12
  • 發佈作者: author-avatar edwinlin
對,你沒有看錯,我也沒有寫錯,我今天要說的是「Wordfence」這套安全防火牆外掛影響到了 WooCommerce 的...
翻譯 WooCommerce 移除購物車商品跳出英文提示
30 3 月
WooCommerce, 實用技巧

翻譯 WooCommerce 移除購物車商品跳出英文提示

  • 2023-12-12
  • 發佈作者: author-avatar edwinlin
這個有點奇怪,原本以為 WooCommerce 中文語系應該都有翻譯的,卻沒有在其翻譯檔案裡找到這個字串,只好透過一些語...
WooCommerce 修改忘記密碼為 WordPress 預設版頁面
10 3 月
WooCommerce

WooCommerce 修改忘記密碼為 WordPress 預設版頁面

  • 2023-12-12
  • 發佈作者: author-avatar edwinlin
繼上一篇「WooCommerce 修改預設登入網址頁面」之後,會衍生出一個問題就是當你的客製化頁面看似正常,其實 Woo...
    關閉
    分類
    • AI 相關
    • Elementor 教學
    • JetEngine 教學
    • SEO
    • WooCommerce
    • WordPress
    • 外掛開發
    • 實用技巧
    • 版型修改
    • 課程記事
    最新文章
    • 讓 WooCommerce 搜尋也能搜尋商品分類!混在一起做撒尿牛丸
      讓 WooCommerce 搜尋也能搜尋商品分類!混在一起做撒尿牛丸
    • 如何在 WooCommerce 缺貨時隱藏價格與加入購物車按鈕
      如何在 WooCommerce 缺貨時隱藏價格與加入購物車按鈕
    • 移除 Elementor Notes:精簡 WordPress 網站後台資源
      移除 Elementor Notes:精簡 WordPress 網站後台資源
    UNI workshop LOGO black

    優雅的姿態,細膩而不俗套的網站設計服務

    • LINE LINE@:@502kfjpk
    • FB FB:UnicornWorkShop
    • IG IG:the_unicorn_workshop
    • 關於我們
    • 作品集
    • 網站服務
      • 快速網站套版
      • 電商購物網站
      • 形象網站架設
      • 客製化網站
    • 實用文章
    • 聯絡我們

    Copyright © 2024 韋妤視覺設計有限公司 統編 : 83395182 All rights reserved.

    Start typing to see posts you are looking for.
    關閉
    • 關於我們
    • 作品集
    • 網站服務
      • 快速網站套版
      • 電商購物網站
      • 形象網站架設
      • 客製化網站
    • 實用文章
    • 聯絡我們
    購物車
    關閉
    側欄
    首頁
    picture 作品集
    line LINE 詢問
    • Line
    • Facebook Messenger