概要
woocommerce_register_form
アクションは、WooCommerceのユーザー登録フォームにカスタムフィールドを追加したり、既存のフィールドを変更したりする際に使用されます。このフックは、ユーザー登録機能を拡張するために便利であり、特に以下のような機能を実装する際に用いられます:
- ユーザー登録フォームに追加情報を求めるカスタムフィールドの作成
- 登録時にデフォルトのフィールドにカスタムバリデーションを追加
- ユーザー登録確認メールのテンプレートをカスタマイズ
- ユーザー登録時に特定の条件を確認する
- オプションでユーザーの役割を変更する
- 他のプラグインとの連携による登録データの保存
構文
add_action('woocommerce_register_form', 'custom_register_form');
パラメータ
このアクションには、特定のパラメータはありません。フックが呼び出されると、実行されるカスタム関数が定義されたコードが実行されます。
戻り値
このアクションは値を返しません。
使用可能なバージョン
- WooCommerce バージョン:2.0+
- WordPress バージョン:4.0+
サンプルコード
サンプルコード1
add_action('woocommerce_register_form', 'add_custom_field_to_registration');
function add_custom_field_to_registration() {
echo '<p class="form-row form-row-wide">
<label for="reg_custom_field">' . __('Custom Field', 'woocommerce') . ' <span class="required">*</span></label>
<input type="text" class="input-text" name="custom_field" id="reg_custom_field" value="<?php if (!empty($_POST['custom_field'])) echo esc_attr($_POST['custom_field']); ?>" />
</p>';
}
このコードは、WooCommerceのユーザー登録フォームに「Custom Field」というテキストボックスを追加します。
引用元:WooCommerce Docs
サンプルコード2
add_action('woocommerce_register_form', 'add_phone_field_to_registration');
function add_phone_field_to_registration() {
echo '<p class="form-row form-row-wide">
<label for="reg_phone">' . __('Phone Number', 'woocommerce') . ' <span class="required">*</span></label>
<input type="text" class="input-text" name="phone_number" id="reg_phone" value="' . (isset($_POST['phone_number']) ? esc_attr($_POST['phone_number']) : '') . '" />
</p>';
}
このコードは、ユーザー登録フォームに「Phone Number」フィールドを追加します。
引用元:WooCommerce Docs
サンプルコード3
add_action('woocommerce_register_form', 'custom_checkbox_on_registration');
function custom_checkbox_on_registration() {
echo '<p class="form-row form-row-wide">
<input type="checkbox" class="input-checkbox" name="newsletter" id="reg_newsletter" />
<label for="reg_newsletter">' . __('Subscribe to newsletter', 'woocommerce') . '</label>
</p>';
}
このコードは、ユーザー登録時に「Subscribe to newsletter」というチェックボックスを表示します。
引用元:WooCommerce Docs
サンプルコード4
add_action('woocommerce_register_form', 'add_bio_field_to_registration');
function add_bio_field_to_registration() {
echo '<p class="form-row form-row-wide">
<label for="reg_bio">' . __('Bio', 'woocommerce') . '</label>
<textarea class="input-text" name="bio" id="reg_bio">' . (isset($_POST['bio']) ? esc_textarea($_POST['bio']) : '') . '</textarea>
</p>';
}
このコードは、ユーザー登録フォームに「Bio」というテキストエリアを追加します。
引用元:WooCommerce Docs
サンプルコード5
add_action('woocommerce_register_form', 'add_account_type_selector');
function add_account_type_selector() {
echo '<p class="form-row form-row-wide">
<label for="reg_account_type">' . __('Account Type', 'woocommerce') . ' <span class="required">*</span></label>
<select name="account_type" id="reg_account_type">
<option value="personal">' . __('Personal', 'woocommerce') . '</option>
<option value="business">' . __('Business', 'woocommerce') . '</option>
</select>
</p>';
}
このコードは、ユーザー登録フォームに「Account Type」というセレクトボックスを追加します。
引用元:WooCommerce Docs
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |