2018.08.02 2018.08.02

[WordPress]ユーザー登録時にカスタムフィールドの値を自動で挿入する方法

こんばんは、ゾノ( @ozonosho )です。

さて、今日のブログではWordPressでユーザー登録時にカスタムフィールドの値を自動で挿入する方法を紹介したいと思います。

それによってどんなことができるかというと、ユーザー登録時に自動でそのユーザー専用のアフィリエイトリンクを発行したり、初期機能では姓・名で分かれてしまっているユーザー名称をフルネームであわせて保存したりすることができます。

今回の実装にはWordpressの「フック」を利用するのですが、これがマジで便利で・・・もっと早く知っておけば良かったなと後悔していますw

ユーザー登録時にカスタムフィールドの値を自動で挿入する方法

実装は簡単で、下記の関数をfunctions.phpに追加してください。

これでユーザー作成ページから新規ユーザーを作成したときに、同時にカスタムフィールドにも値が挿入されます。

ポイントは「user_register」フックを利用すること

user_registerフックは新規ユーザー作成後のタイミングで処理を走らせてくれるため、ここで作成されたユーザーのカスタムフィールドを更新することでユーザー作成と同じタイミングでカスタムフィールドの値も挿入することができます。

フックを利用すればWordpressのコアファイルをいじる必要がないので、頻繁にあるWordpressの更新にも限りなく影響を受けづらいです。
(逆にフックを利用しなければWordpressの更新の度にソースが書き換わる可能性があります)

ここからは実際の使用例を見てみましょう。

使用例①自動でアフィリエイト用のコードを発行する

ユーザー用のカスタムフィールド「user_ref」を用意して、ユーザー登録時に自動でアフィリエイト用のコードを挿入するためのコードを書いてみました。

アフィリエイト用のコードはユーザーごとに重複しないようにする必要があるため、「ユーザーID(ユーザー固有の数字)+ランダムな英数字5桁+ランダムな数字3桁程度」をアフィリエイト用のコードとしてカスタムフィールド「user_ref」に挿入するようにしました。

使用例②ユーザー名称のフルネームを登録する

ユーザー用のカスタムフィールド「user_fullname」を用意して、ユーザー登録時に自動で姓名をあわせた内容を挿入するためのコードを書いてみました。

get_userdataでユーザー情報を取得して、姓名をあわせた内容をカスタムフィールド「user_fullname」に挿入するようにしました。

おわりに

以上、今回の記事ではWordPressでユーザー登録時にカスタムフィールドの値を自動で挿入する方法を紹介させていただきました。

WordPressのフックを利用すれば、このように任意のタイミングで(コアファイルを書き換えずに)処理を加えることができます。

使用できるフックの一覧は「フィルターフック一覧」「アクションフック一覧」にそれぞれ記載されているので、ぜひ活用してみてください。

ゾノについて

絶賛募集中の企画

このブログと一緒によく読まれているブログ