【WP-Members】カスタマイズ アクション・フィルターフック一覧
目次
- 1. リダイレクト
- 1.1. ログイン後のリダイレクト先指定 wpmem_login_redirect
- 1.2. ログアウト後のリダイレクト先指定 wpmem_logout_redirect
- 1.3. 会員登録完了後のリダイレクト先指定 wpmem_register_redirect
- 2. WP-Membersダイアログとメッセージ
- 2.1. ログアウトURLを変更 wpmem_logout_link
- 2.2. ログインページのメッセージ変更 wpmem_login_links
- 2.3. 会員登録ページでのメッセージ変更 wpmem_register_links
- 2.4. ログインページ表示をカスタマイズ wpmem_login_links_args
- 2.5. 会員登録ページ表示をカスタマイズ wpmem_register_links_args
- 2.6. ログインエラーメッセージをカスタマイズ wpmem_login_failed
- 2.7. ログインエラー表示をカスタマイズ wpmem_login_failed_args
- 2.8. 会員限定ページのメッセージを変更 wpmem_product_restricted_msg
- 3. WP-Membersログインフォーム
- 3.1. ログインフォームのメッセージを変更 wpmem_login_form_args
- 3.2. ログインフォームをカスタマイズ wpmem_inc_login_args
- 4. WP-Membersパスワード変更・リセットフォーム
- 4.1. パスワード変更画面のカスタマイズ
- 4.2. パスワードリセット画面のカスタマイズ wpmem_inc_resetpassword_args
- 4.3. パスワード忘れのリンク先を変更 wpmem_forgot_link
- 5. WP-Members会員登録フォーム
- 5.1. 会員登録フォームの項目をカスタマイズ wpmem_fields
- 6. メール
- 6.1. メールヘッダのカスタマイズ wpmem_email_headers
- 7. WP-Membersアクションフック
リダイレクト
フィルターフック | 解説 |
---|---|
wpmem_login_redirect | ログイン後のリダイレクト先を指定する |
wpmem_logout_redirect | ログアウト後のリダイレクト先を指定する |
アクションフック | 解説 |
---|---|
wpmem_register_redirect | 会員登録完了後のリダイレクト先を指定する |
ログイン後のリダイレクト先指定 wpmem_login_redirect
add_filter( 'wpmem_login_redirect', 'my_login_redirect', 10, 2 ); function my_login_redirect( $redirect_to, $user_id ) { // リダイレクト先のURLを指定 下記のようにwordpressのメソッドを利用することも可能 return home_url( '/your-page/' ); }
ログアウト後のリダイレクト先指定 wpmem_logout_redirect
add_filter( 'wpmem_logout_redirect', 'my_logout_redirect_1' ); function my_logout_redirect_1( $redirect_to ) { // URLを直接記述する例 自ドメインであればhome_urlメソッドを使った方がスマートですね return 'https://yourdomain.com/your-page'; }
会員登録完了後のリダイレクト先指定 wpmem_register_redirect
会員登録完了後だけアクションフックになっております。
fieldsパラメータも渡されているので、会員登録後の処理を追加することもできます。
add_action( 'wpmem_register_redirect', 'my_reg_redirect' ); function my_reg_redirect( $fields ) { wp_redirect( 'http://mydomain.com/my-page/' ); exit(); }
$fieldsパラメータには下記の情報が格納されています。
- ID
- ニックネーム
- 表示名
- 権限
- 登録日時
- 登録時IPアドレス
- 登録URL
WP-Membersダイアログとメッセージ
フィルターフック | 解説 |
---|---|
wpmem_logout_link | ログアウト機能のURLを変更 デフォルト:(ドメイン)/?a=logout |
wpmem_login_links | ログイン状態で「ログインページ」にアクセスした際のメッセージをカスタマイズ デフォルト:You are logged in as {nickname} |
wpmem_register_links | ログイン状態で「会員登録ページ」にアクセスした際のメッセージをカスタマイズ デフォルト:You are logged in as {nickname} |
wpmem_login_links_args | ログインページ表示をカスタマイズ |
wpmem_register_links_args | 会員登録ページ表示をカスタマイズ |
wpmem_login_failed | ログインエラーメッセージを変更 |
wpmem_login_failed_args | ログインエラー表示をカスタマイズ |
wpmem_product_restricted_msg | 会員限定ページのメッセージを変更 |
ログアウトURLを変更 wpmem_logout_link
add_filter( 'wpmem_logout_link', 'my_logout_link' ); function my_logout_link( $string ) { $string = home_url('logout'); return $string; }
各種ログアウトリンクのURLが変更になりますが、ログアウト機能のURLが変わるわけではありません。
上記のコードを使うだけでは404エラーになります。
ワードプレス自体のログアウト機能を利用する場合などに限定的な用途で利用します。
ログインページのメッセージ変更 wpmem_login_links
add_filter( 'wpmem_login_links', 'my_login_links' ); function my_login_links( $string ) { $string = "<p>デフォルトメッセージの上に追加 I put this before the original message</p>" . $string; return $string; }
会員登録ページでのメッセージ変更 wpmem_register_links
add_filter( 'wpmem_register_links', 'my_register_links' ); function my_register_links( $string ) { $string = "<p>デフォルトメッセージの上に追加 I put this before the original links</p>" . $string; return $string; }
ログインページ表示をカスタマイズ wpmem_login_links_args
add_filter( 'wpmem_login_links_args', 'my_login_links_args' ); function my_login_links_args( $args ) { $args['wrapper_before'] = '!!wrapper_before!!'.$args['wrapper_before']; $args['user_login'] = '!!user_login!!'.$args['user_login']; $args['welcome'] = '!!welcome!!'.$args['welcome']; $args['logout_text'] = '!!logout_text!!'.$args['logout_text']; $args['logout_link'] = '!!logout_link!!'.$args['logout_link']; $args['wrapper_after'] = $args['wrapper_after'].'!!wrapper_after!!'; return $args; }
会員登録ページ表示をカスタマイズ wpmem_register_links_args
add_filter( 'wpmem_register_links_args', 'my_register_links_args' ); function my_register_links_args( $args ) { $args['before_wrapper'] = '!!before_wrapper!!'.$args['before_wrapper']; $args['wrapper_before'] = '!!wrapper_before!!'.$args['wrapper_before']; $args['wrapper_after'] = $args['wrapper_after'].'!!wrapper_after!!'; $args['after_wrapper'] = $args['after_wrapper'].'!!after_wrapper!!'; //Change link #2 2行目のリンク先を変更 $args['rows'][1] = '<li><a href=' . home_url( 'my-page' ) . '>Enter the members area</a>'; // Add another link. リンク先を追加 $args['rows'][] = '<li><a href=' . home_url( 'some-page' ) . '>My Extra Link</a>'; return $args; }
ログインエラーメッセージをカスタマイズ wpmem_login_failed
add_filter( 'wpmem_login_failed', 'my_login_failed_msg' ); function my_login_failed_msg( $str ) { $str = 'user not find.ユーザが見つかりません'; return $str; }
ログインエラー表示をカスタマイズ wpmem_login_failed_args
add_filter( 'wpmem_login_failed_args', 'my_login_failed_args' ); function my_login_failed_args() { $args = array( 'heading_before' => '', 'heading' => '', 'heading_after' => '', 'message' => 'You did something wrong.', ); return $args; }
会員限定ページのメッセージを変更 wpmem_product_restricted_msg
add_filter( 'wpmem_product_restricted_msg', 'my_product_restricted_msg', 10, 2 ); function my_product_restricted_msg( $msg, $post_products ) { global $wpmem; if ( count( $post_products ) > 1 ) { // Start with an empty container: $products = ''; // Loop through the products to get their titles: foreach ( $post_products as $key => $post_product ) { // If this is the end of the product array, add ", or". // Note .= adds to the whatever is in the existing string $products end( $post_products ); if ( $key === key( $post_products ) ) { $products .= "or " . $wpmem->membership->products[ $post_product ]['title']; } else { // Otherwise, if this is not the end, add a comma/space: $products .= $wpmem->membership->products[ $post_product ]['title'] . ", "; } } } else { // OR... if $post_products array is just one product: $products = $wpmem->membership->products[ $post_products[0] ]['title']; } $msg = "This is post is restricted.only for : ".$products; $msg .= "<br>"; $msg .= $products."会員限定のページです。会員登録は<a href=\"#\">こちら</a>"; return $msg; }
WP-Membersログインフォーム
フィルターフック | 解説 |
---|---|
wpmem_inc_login_inputs | ログインフォームのメッセージを変更 |
wpmem_login_form_args | ログインフォームをカスタマイズ |
ログインフォームのメッセージを変更 wpmem_login_form_args
add_filter( 'wpmem_inc_login_inputs', 'my_login_inputs' ); function my_login_inputs( $default_inputs ) { $default_inputs[0]['name'] = 'Email メールアドレス'; $default_inputs[1]['name'] = 'Password パスワード'; return $default_inputs; }
$default_inputs = array( array( 'name' => "Username or Email", // From $wpmem->get_text( 'login_username' ) 'type' => 'text', 'tag' => 'log', 'class' => 'username', 'div' => 'div_text', ), array( 'name' => "Password", // From $wpmem->get_text( 'login_password' ) 'type' => 'password', 'tag' => 'pwd', 'class' => 'password', 'div' => 'div_text', ), );
ログインフォームをカスタマイズ wpmem_inc_login_args
add_filter( 'wpmem_login_form_args', function ( $args, $action ) { $args['row_before'] = '<div class="my-row-wrapper">'; $args['row_after'] = '</div>'; return $args; }, 10, 2 );
利用イメージ
パラメータ
$defaults = array( // wrappers 'heading_before' => ' !!heading_before!!<legend>', 'heading_after' => '</legend>!!heading_after!! ', 'fieldset_before' => ' !!fieldset_before<fieldset>', 'fieldset_after' => '</fieldset>fieldset_after!! ', 'main_div_before' => ' !!main_div_before<div id="wpmem_login">', 'main_div_after' => '</div>!!main_div_after!! ', 'txt_before' => '!!txt_before!!', 'txt_after' => '!!txt_after!!', 'row_before' => '!!row_before!!', 'row_after' => '!!row_after!!', 'buttons_before' => ' !!buttons_before!!<div class="button_div">', 'buttons_after' => '</div>!!buttons_after!! ', 'link_before' => ' !!link_before!!<div class="link-text">', 'link_after' => '</div>!!link_after!! ', 'link_span_before' => ' !!link_span_before!!<span class="link-text-%s">', 'link_span_after' => '</span>!!link_span_after!! ', // classes ids 'form_id' => 'wpmem_action_form', 'form_class' => 'form', 'button_id' => '', 'button_class' => 'buttons', // other 'strip_breaks' => true, 'wrap_inputs' => true, 'remember_check' => true, 'n' => "\n", 't' => "\t", 'redirect_to' => '/test', 'login_form_action' => true, );
WP-Membersパスワード変更・リセットフォーム
フィルターフック | 解説 |
---|---|
wpmem_inc_changepassword_args | パスワード変更画面をカスタマイズ |
wpmem_inc_resetpassword_args | パスワードリセット画面をカスタマイズ |
wpmem_forgot_link | パスワード忘れのリンク先を変更 |
パスワード変更画面のカスタマイズ
add_filter( 'wpmem_inc_changepassword_args', 'my_changepassword_args' ); function my_changepassword_args( $args ) { $args = array( 'heading' => "Change Your Password パスワード変更はこちら" ); return $args; }
パスワードリセット画面のカスタマイズ wpmem_inc_resetpassword_args
add_filter( 'wpmem_inc_resetpassword_args', 'my_resetpassword_args' ); function my_resetpassword_args( $args ) { $args = array( 'heading' => "Request New Password 新パスワード", 'button_text' => "Reset My Password" ); return $args; }
パスワード忘れのリンク先を変更 wpmem_forgot_link
add_filter( 'wpmem_forgot_link', 'my_forgot_link', 10, 2 ); function my_forgot_link( $link, $tag ) { // Using home_url() instead makes your filter portable. return 'https://yoursite.com/your-page/'; }
WP-Members会員登録フォーム
フィルターフック | 解説 |
---|---|
wpmem_fields | 会員登録フォームの項目をカスタマイズ |
wpmem_register_form_args | 会員登録ページをカスタマイズ |
wpmem_tos_link_txt | Terms of Service (TOS)の変更 |
wpmem_recaptcha | reCAPTCHAをカスタマイズ |
会員登録フォームの項目をカスタマイズ wpmem_fields
add_filter( 'wpmem_fields', 'my_wpmem_fields_filter', 10, 2 ); function my_wpmem_fields_filter( $fields, $tag ) { if ( 'register' == $tag ) { unset( $fields['first_name'] ); unset( $fields['last_name'] ); } return $fields; }
before
after
会員登録ページをカスタマイズ wpmem_register_form_args
add_filter( 'wpmem_register_form_args', 'my_register_form_row_wrapper', 10, 2 ); function my_register_form_row_wrapper( $args, $tag ) { $args = array( 'row_before' => '<div class="my-row-wrapper">', 'row_after' => '</div>', ); return $args; }
利用イメージ
パラメータ
$defaults = array( // Wrappers. 'heading_before' => '!!heading_before!!<legend>', 'heading_after' => '</legend>!!heading_after!!', 'fieldset_before' => '!!fieldset_before!!<fieldset>', 'fieldset_after' => '</fieldset>!!fieldset_after!!', 'main_div_before' => '!!main_div_before!!<div id="wpmem_reg">', 'main_div_after' => '</div>!!main_div_after!!', 'txt_before' => '!!txt_before!!', 'txt_after' => '!!txt_after!!', 'row_before' => '!!row_before!!', 'row_after' => '!!row_after!!', 'buttons_before' => '!!buttons_before!!<div class="button_div">', 'buttons_after' => '</div>!!buttons_after!!', // Classes ids. 'form_id' => ( 'new' == $tag ) ? 'wpmem_register_form' : 'wpmem_profile_form', 'form_class' => 'form', 'button_id' => '', 'button_class' => 'buttons', // Required field tags and text. 'req_mark' => $wpmem->get_text( 'register_req_mark' ), 'req_label' => $wpmem->get_text( 'register_required' ), 'req_label_before' => '<div class="req-text">', 'req_label_after' => '</div>', // Buttons. 'show_clear_form' => false, 'clear_form' => $wpmem->get_text( 'register_clear' ), 'submit_register' => $wpmem->get_text( 'register_submit' ), 'submit_update' => $wpmem->get_text( 'profile_submit' ), // Other. 'post_to' => get_permalink(), 'strip_breaks' => true, 'use_nonce' => false, 'wrap_inputs' => true, 'n' => "\n", 't' => "\t", 'register_form_action' => true, );
メール
フィルターフック | 解説 |
---|---|
wpmem_email_filter | 送信メールをカスタマイズ |
wpmem_email_newreg | 会員登録メールをカスタマイズ |
wpmem_email_newmod | (仮登録設定を利用時)仮登録メールをカスタマイズ |
wpmem_email_appmod | (仮登録設定を利用時)仮登録承認時のメールをカスタマイズ |
wpmem_email_notify | 会員登録があった際の管理者向け通知メールをカスタマイズ |
wpmem_email_repass | パスワードリセットメールをカスタマイズ |
wpmem_notify_filter | 通知メールをカスタマイズ |
wpmem_notify_addr | 通知メールの送信先メールアドレスをカスタマイズ |
wpmem_email_shortcodes | メール用ショートコードの設定 |
wpmem_email_headers | メールヘッダのカスタマイズ |
メールヘッダのカスタマイズ wpmem_email_headers
add_filter( 'wpmem_email_headers', 'my_wpmem_html_email' ); function my_wpmem_html_email() { return "Content-Type: text/html" . "\r\n"; }
WP-Membersアクションフック
アクションフック | 解説 |
---|---|
wpmem_register_redirect | 会員登録後のリダイレクト先を指定 |
wpmem_pre_register_data | 会員登録時の登録データをフック |
wpmem_post_register_data | 会員登録時の登録処理をフック |
wpmem_pre_update_data | 会員情報更新時の登録データをフック |
wpmem_post_update_data | 会員情報更新時の更新処理をフック |
wpmem_user_activated | 会員有効化時のフック |