【wp-membersを使いこなす】カスタムフィールドの値を登録直後に取得する方法

Contents
wordpressプラグインwp-membersを使いこなす
今回はwordpressプラグインであるwp-membersについて書いていきます。
このプラグインの特徴は何と言っても、複雑なコードの編集なしで会員機能がwordpress上で作成できるというところです。
単純な会員機能であれば、このプラグインを扱うことで会員機能が作成できるのですが、少し複雑なことをするとどうしても難しくなります。
基本的にプラグインのカスタマイズは簡単ではないことが多いです。
今回はそんなwp-membersの中でも、データベースと関連付けて操作する際の、アクションフックについてご紹介します。
アクションや、フックについては、このサイトではまだ触れていないのですが、またいつかまとめて書きたいと思います。
簡単にご説明すると、wordpressには、何かをきっかけにアクションを起こしたりすることができる様になっています。例えば会員登録がされた瞬間に、自動的にデータベースに新しい値を登録して、投稿を追加するなど
アクションを扱うとかなり自由にwordpressが操作できる様になります。
データベースについては、こちらの記事などで書いているのでぜひお読みください。
今回は、そんなwp-membersのアクションについてご紹介します。
そのアクションの中でも、カスタムフィールドに関連づいた少し複雑なアクションフックについてご紹介します。
[adsense]
wp-membersではカスタムフィールドが作成できる
wp-membersは、通常のユーザー登録項目(ユーザー名やemail,パスワードなど)の他、独自に項目を追加できるカスタムフィールドというものが設定できる様になっています。
例えば、年齢、出身地、在住、、などユーザーに関連する情報同時に登録したい場合にこれらのカスタムフィールドが有効です。
wp-membersカスタムフィールドの値が保存される場所はuser_metaテーブル
基本的にユーザー情報は、データベースの中でもusersテーブルに登録されていくのですが、それに付随する情報はuser_metaというテーブルに保存されていく様な仕組みになっています。
会員機能を一から自分で構築する場合は、usersテーブルに新たにカラムを追加して、ユーザー名やパスワードと共に保存していけば良いのですが、wp-membersの場合は、初めからuser-metaを使用する様になっています。
なので、もしカスタムフイールドの情報をデータベース内から探そうとして見つからないと思った時は、user_metaもチェックする様にしましょう。
[adsense]
wp-membersの登録のタイミングは少し複雑になっている
初めの段で書いたアクションやフックについてですが、通常のユーザー登録のタイミングでアクションを追加する場合は、
user_register
というアクションを使います。
これは、ユーザー登録が済んだ直後に起こすアクションなのですが、wp-membersで使用すると、カスタムフィールドの値は登録されていない状態でアクションが動いてしまいます。
wp-membersの場合は、カスタムフィールドと通常のユーザー情報の登録のタイミングの兼ね合いが、基本的なユーザー登録と違うところです。
wp-membersには独自のアクションフックがある
実はwp-membersには、独自のアクションフックが存在します。
日本語サイトであまり書かれていないのですが、英語サイトを調べると出てきます。
そこで比較的使用頻度が高そうなものをご紹介します。
ユーザー情報、カスタムフィールド(メタ)どちらも登録された後にアクションをする
ユーザー情報と、カスタムフィールドの項目のデータベースへの登録のタイミングのズレがあると、先ほど書きましたが、wp-membersの独自のアクションにはこの両方ともが登録されたタイミングで動かすことができるアクションがあります。
こちら、
wpmem_post_register_data
と書きます。
例えば、
add_action('wpmem_post_register_data'、'my_reg_hook');
my_reg_hook(){
ここにアクションを記述する
}
この様になります。
このアクションを使えば、登録直後のuser_meta情報も取得することができ、データベース操作もスムーズに行えます。
リダイレクトのアクションもあります。
[adsense]
ユーザー情報、カスタムフィールド(メタ)が更新された後にアクションをする
先ほどの記述は登録のタイミングなのですが、更新はまた若干異なります。
更新の場合はこちら、
wpmem_post_update_data
この様に書きます。
こちらも先ほどと同じ様に、
add_action('wpmem_post_update_data'、'my_reg_hook');
my_reg_hook(){
ここにアクションを記述する
}
この様に書いていきます。
まとめ
wp-membersはとても便利なプラグインですが、他のプラグインと同じくカスタマイズしたり、少し複雑なことをすると急に簡単な操作では思う様に、使えなくなってしまいます。
wordpressプラグインは便利な機能なので使ってみるのもいいですが、もう少し仕組みを深くを知るとさらに自由にサイト制作ができます。
ぜひデータベースなど関連づけてwp-membersを使用している方は、この記事を参考にして頂ければと思います。
プラグインのカスタマイズは、少し複雑かもしれませんが必要であれば、ぜひ挑戦してみましょう。
[adsense]
コメントを残す