ようこそのお運びで、厚く御礼申し上げます。
45日目です。今回は前回の条件分岐やメールアドレスを管理画面で設定できるようにします。
※管理画面が必要ない場合などは、前回のコードを参照してください(機能は前回説明してます)。
メールアドレスやメール送信の設定を管理画面でおこない、記事を更新したときにお知らせメールを送信する。
記事を更新したり、新規に公開したら、指定した複数のメールアドレスにお知らせメールを送信します。今回はのメールアドレス、メールの件名、メール送信時のタイミングを管理画面で設定します。
今回は管理画面・設定>「投稿更新メール」メニューを作成します。

こんな感じで設定画面を作ってみます

大枠の流れは以下の通りです。
- 記事を更新するときをフックする
- 管理画面にメニューを作成する
- 管理画面のページをする
※管理画面のメニュー・ページの作成はこちらの記事等を参照してください。
- 管理画面にメニューを追加して、記事に文字列を追加してみる
- 管理画面にメニュー・サブメニューを追加して、記事に文字列を追加してみる
- 管理画面の「設定」メニュー内にサブメニューを追加する。
- 管理画面からカテゴリを選択して、記事に文字列に追加してみる
- 管理画面からタグを選択して、記事に文字列に追加してみる
- 管理画面で設定したものをもとにメールを送信する
※条件分岐、メール送信はこちらの記事を参照してください。
今回は、あまり流れに関係のない趣味的なコードなので、説明は省略します。
※あと、このようなプラグインはたくさんあるので、初心者の方はコードを書かずに有名プラグインを探しましょう。
プラグインファイルです。
※以下のコードを、function.phpに書いても動作します。
ポイントはどこ?
細かい説明は省略します。でも・・・今回のクラス構成です。
/オブジェクトを生成
new Paka3PostPublishMail;
//クラス定義
//オブジェクトを生成
new Paka3PostMail;
//クラス定義
class Paka3PostMail{
public function __construct(){
//管理メニューアクション「admin_menu」フック
//アクション「transition_post_status」フック
}
//###############################
//管理メニューの設定
//###############################
public function adminAddMenu() {
//管理メニューの設定:設定>「投稿更新メール」メニュー追加
}
//###############################
//管理ページの表示と更新
//###############################
public function paka3_postMail_page() {
//**管理画面「テキスト追加」ページに表示する内容
//1.入力値があった場合処理
//更新処理処理等
//2.値の設定
//各値の初期設定
//3.表示する内容(HTML)
}
//###############################
//メールアドレスの確認
//###############################
public function mailAddressCheck($mail_address){
//正しいメールアドレスなら配列で返す。
//メールアドレスの表記に間違いがあればfalseを返す
}
//###############################
//メールの条件処理
//###############################
public function publish_state($new_status, $old_status, $post){
//管理画面で設定した条件分岐に基づく処理
//条件に合えばメールを送信する。
}
//###############################
//公開時のメール送信
//###############################
public function paka3sendMail($opt,$post,$str){
//メール本文を作成
//メール送信
}
}
※このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。
今回のまとめ
作るか作らないか悩みましたが、とりあえず作ってしまいました。
細かい条件分岐を書き足せば、削除したとき等もメールが送信できると思います。
ご自由にどうぞ。