プラグインWooCommerceのwoocommerce_register_form_endアクションの使用方法・解説

概要

woocommerce_register_form_end アクションは、WooCommerce のカスタムユーザーレジストレーションフォームの終了部分にフックし、追加のフィールドやHTMLを挿入するために使用されます。これにより、標準の登録フォームに対してカスタマイズや拡張を行うことができます。具体的には、次のような機能が求められるシナリオで用いられます。

  1. ユーザーに特別な情報を収集するためのカスタムフィールドを追加
  2. ユーザー登録時に特定の条件を追加するためのチェックボックスやラジオボタンを搭載
  3. プライバシーポリシーへの同意を確認するためのチェックボックスを設置
  4. ユーザーが登録時にニュースレターの購読を選択できるようにする
  5. ユーザーが自己紹介やメモを記入するためのテキストエリアを追加
  6. ソーシャルメディアアカウントのリンクを登録するためのフィールドを設置

構文

do_action('woocommerce_register_form_end');

パラメータ

このアクションには特定のパラメータはなく、追加するHTMLやPHPをそのまま挿入することができます。

戻り値

このアクションは戻り値を持ちません。

使用可能なプラグインWooCommerceのバージョン

WooCommerce 2.0以降

使用可能なWordPressのバージョン

WordPress 4.0以降

サンプルコード

サンプルコード1

add_action('woocommerce_register_form_end', 'add_custom_field');
function add_custom_field() {
    echo '<p class="form-row form-row-wide">';
    echo '<label for="reg_custom_field">' . __('Custom Field', 'your-text-domain') . '</label>';
    echo '<input class="input-text" type="text" name="custom_field" id="reg_custom_field" value="' . ( ! empty( $_POST['custom_field'] ) ? esc_attr( $_POST['custom_field']) : '' ) . '" />';
    echo '</p>';
}

このコードは、ユーザー登録フォームの最後にカスタムフィールドを追加します。

サンプルコード2

add_action('woocommerce_register_form_end', 'add_newsletter_checkbox');
function add_newsletter_checkbox() {
    echo '<p class="form-row form-row-wide">';
    echo '<input type="checkbox" name="newsletter" id="reg_newsletter" /> <label for="reg_newsletter">' . __('Subscribe to our newsletter', 'your-text-domain') . '</label>';
    echo '</p>';
}

このコードは、ユーザー登録時にニュースレター購読のためのチェックボックスを追加します。

サンプルコード3

add_action('woocommerce_register_form_end', 'add_terms_checkbox');
function add_terms_checkbox() {
    echo '<p class="form-row form-row-wide">';
    echo '<input type="checkbox" name="terms" id="reg_terms" required /> <label for="reg_terms">' . __('I accept the terms and conditions', 'your-text-domain') . '</label>';
    echo '</p>';
}

このコードは、ユーザーが利用規約に同意するためのチェックボックスを追加します。

サンプルコード4

add_action('woocommerce_register_form_end', 'add_intro_textarea');
function add_intro_textarea() {
    echo '<p class="form-row form-row-wide">';
    echo '<label for="reg_intro">' . __('Tell us about yourself', 'your-text-domain') . '</label>';
    echo '<textarea class="input-text" name="intro" id="reg_intro"></textarea>';
    echo '</p>';
}

このコードは、自己紹介を記入するためのテキストエリアを追加します。

サンプルコード5

add_action('woocommerce_register_form_end', 'add_social_links');
function add_social_links() {
    echo '<p class="form-row form-row-wide">';
    echo '<label for="reg_facebook">' . __('Facebook Profile URL', 'your-text-domain') . '</label>';
    echo '<input class="input-text" type="url" name="facebook" id="reg_facebook" />';
    echo '</p>';
}

このコードは、ユーザーがFacebookプロフィールのURLを登録できるフィールドを追加します。

この関数のアクションでの使用可能性

アクション 使用例
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

この関数について質問する


上の計算式の答えを入力してください