概要
woocommerce_edit_account_form
は、WooCommerce プラグインにおけるアクションフックであり、ユーザーアカウントの編集フォームをカスタマイズするために使用されます。このフックを利用することで、アカウント情報の更新フォームに新しいフィールドを追加したり、既存のフィールドを修正したりすることが可能です。通常、以下のような機能を実装する際に使用されます。
- ユーザーに対するオプション情報の入力フィールド追加
- 既存のアカウント情報の形式を変更
- バリデーションエラーメッセージの変更
- ユーザーのデフォルトアカウントプロパティの変更
- 特定の条件に基づくフィールドの条件付き表示
- フォームのローカライズやスタイリングのカスタマイズ
構文
do_action('woocommerce_edit_account_form');
パラメータ
- このアクションにはパラメータはありません。
戻り値
- このアクション自身には戻り値はありません。
WooCommerce および WordPress のバージョン
- WooCommerce: 3.0 以上
- WordPress: 4.0 以上
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
-
ユーザー情報に電話番号フィールドを追加する
このコードは、アカウント編集フォームに電話番号を入力するためのフィールドを追加します。
add_action('woocommerce_edit_account_form', 'add_phone_field_to_account_form'); function add_phone_field_to_account_form() { ?> <p class="woocommerce-InputWrapper"> <label for="account_phone"><?php esc_html_e('Phone', 'woocommerce'); ?></label> <input type="tel" class="woocommerce-Input woocommerce-Input--text" name="account_phone" id="account_phone" /> </p> <?php }
出典: https://woocommerce.com/
-
アカウント情報のバリデーションを行う
このコードは、ユーザーが電話番号を入力した場合その形式をチェックし、不正な場合はエラーメッセージを表示します。
add_action('woocommerce_save_account_details', 'validate_account_phone'); function validate_account_phone() { if (isset($_POST['account_phone']) && !preg_match('/^d{10}$/', $_POST['account_phone'])) { wc_add_notice(__('Please enter a valid phone number.', 'woocommerce'), 'error'); } }
出典: https://woocommerce.com/
-
電話番号フィールドをユーザーのメタデータに保存する
このコードは、入力された電話番号をユーザーのメタデータに保存します。
add_action('woocommerce_save_account_details', 'save_account_phone'); function save_account_phone($user_id) { if (isset($_POST['account_phone'])) { update_user_meta($user_id, 'account_phone', sanitize_text_field($_POST['account_phone'])); } }
出典: https://woocommerce.com/
-
ユーザーのアカウントに電話番号の既存の値を表示する
このコードは、ユーザーがすでに電話番号を入力している場合、その値をアカウント編集フォームに表示します。
add_action('woocommerce_edit_account_form', 'display_existing_phone_field'); function display_existing_phone_field() { $user_phone = get_user_meta(get_current_user_id(), 'account_phone', true); ?> <p class="woocommerce-InputWrapper"> <label for="account_phone"><?php esc_html_e('Phone', 'woocommerce'); ?></label> <input type="tel" class="woocommerce-Input woocommerce-Input--text" name="account_phone" id="account_phone" value="<?php echo esc_attr($user_phone); ?>" /> </p> <?php }
出典: https://woocommerce.com/
-
カスタムスタイルをアカウント編集フォームに適用する
このコードは、アカウント編集フォームにカスタムCSSを追加します。
add_action('woocommerce_edit_account_form', 'add_custom_css_to_account_form'); function add_custom_css_to_account_form() { ?> <style> .woocommerce-InputWrapper { margin-bottom: 15px; } </style> <?php }
出典: https://woocommerce.com/