質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

1730閲覧

WordPress「任意のフィールド」が「特定の文字列」に更新されたときメール送信

退会済みユーザー

退会済みユーザー

総合スコア0

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/10/16 04:44

編集2017/10/16 05:22

度々の質問失礼いたします。
Wordpressで、「任意のフィールド」が「特定の文字列」に更新されたときにメールが送信されるようにしたいです。
恐れ入りますが、functions.phpにどのようなコードを記載すれば実装できますでしょうか?
ご教示いただけたら嬉しいです。
自分なりに関数やフックを調べて見ましたが、どれが適切なのかさっぱりわからず…
お手数ですがよろしくお願いします。
get_currentuserinfo();で取得できるプラグインで作成したフィールド「$current_user->corpcode」ここが更新されたときに、メールが飛ぶようにしたいです。
下記のコードだと、画面が表示される度にメールが送られてしますので…
どうぞよろしくお願いいたしますm(_ _)m

<?php global $current_user; get_currentuserinfo(); if ($current_user->account_type == "サンプル会員ランク" && $current_user->corpcode == "サンプルクーポンコード" ) { $to = Array( 'info@sample.com');// $user_mail = $current_user->user_email; $subject = 'クーポンコードが入力されました。'; $message = <<< EOF 下記会員の割引コードが適用されました。 {$user_mail} 変更してください。 EOF; wp_mail( $to, $subject, $message); } ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/10/16 04:52

「任意のフィールド」とはどの部分の「フィールド」でしょうか。WordPressにはそれなりの数の入力部分がありますが、すべてを同じように取得できるわけでは有りませんので、具体的に記述されたほうが良いと思います。
退会済みユーザー

退会済みユーザー

2017/10/16 05:06 編集

失礼いたしました。get_currentuserinfo();で取得できるユーザー関連のフィールドをさしています。
kei344

2017/10/16 05:07

この「質問への追記・修正の依頼」の部分はデフォルトで表示されませんので、質問本文を編集することをお勧めします。
CHERRY

2017/10/16 05:29

get_currentuserinfo() の項目ということは、ユーザーがプロフィール画面で編集して保存した場合にメールで送信したいということでしょうか?
退会済みユーザー

退会済みユーザー

2017/10/16 05:46

cherryさん、その通りです!
guest

回答2

0

「任意のフィールド」のchangイベントを監視し、「特定の文字列」と合致したら
ajaxでメールを送るページを呼び出す

という流れですかね。

投稿2017/10/16 04:59

yambejp

総合スコア114779

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/16 05:06

ご回答くださり、ありがとうございます。初心者で、わからない単語が多いですが、1つ1つ調べてみます。 恐れ入りますが、サンプルのコードをご教示いただけるとすごく助かるのですがお願いしても良いでしょうか? お手数ですがよろしくお願いいたします。
yambejp

2017/10/16 05:11

> サンプルのコードをご教示 むしろ逆にサンプルのソースを提示いただければそれに対して 補足を入れる形ではないでしょうか? 質問に追記してみて下さい。
退会済みユーザー

退会済みユーザー

2017/10/16 05:20

おっしゃる通り、ですね。失礼いたしました。 追記しましたのでご確認いただければ嬉しいです。
guest

0

「get_currentuserinfo();で取得できるユーザー関連のフィールド」にも複数あるのですが、たぶん update_user_metadata にフックすれば拾えると思います。

もしフックの仕組みやコードの書き方がわからない場合はまずそのあたりの勉強をされてから実装されたほうがよいです。

【Plugin API/Filter Reference/update (meta type) metadata « WordPress Codex】
https://codex.wordpress.org/Plugin_API/Filter_Reference/update_(meta_type)_metadata

PHP

1function myplugin_init() { 2 add_filter( 'update_user_metadata', 'myplugin_update_foo', 10, 5 ); 3} 4 5function myplugin_update_foo( $null, $object_id, $meta_key, $meta_value, $prev_value ) { 6 7 if ( 'foo' == $meta_key && empty( $meta_value ) ) { 8 return true; // this means: stop saving the value into the database 9 } 10 11 return null; // this means: go on with the normal execution in meta.php 12 13} 14 15add_action( 'init', 'myplugin_init' );

投稿2017/10/16 05:21

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問