ようこそのお運びで、厚く御礼申し上げます。
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」ディレクトリに入れ、管理画面で有効にして完了です。
今回のまとめ
作るか作らないか悩みましたが、とりあえず作ってしまいました。
細かい条件分岐を書き足せば、削除したとき等もメールが送信できると思います。
ご自由にどうぞ。