【メモ】bbpressでトピック作成・返信時にメール通知を受け取る

この記事は、本サイトにbbpressを設置した際に行ったカスタマイズ内容のメモです。

bbPress

カスタマイズ経緯

bbpressでユーザーがトピック作成や返信をした際、メールで通知が欲しい。
bbpressは標準で、メール通知があるらしい。
だが、やり方がわからなかった( ;∀;)

そこで通知が来るようにカスタマイズした。

送信されてくるメール

投稿されたことがわかればいいので、次の3点のみにしました。

  • トピックか返信か
  • ページのurl
  • 日時

実際に送信されてくるメール:

  • bbpress[トピック]が投稿されました
  • https://affi-sapo.com/?p=353
  • 日時:2019/05/03 12:17:33
AFFS Simple Code Viewer
Copy

カスタマイズ前の準備

次の記事の方法で、カスタマイズの準備を行います。

WordPressカスタマイズの準備|自作したコードはテーマをバージョンアップしたら消えてしまう?

WordPressカスタマイズの準備|自作したコードはテーマをバージョンアップしたら消えてしまう?

質問 ネットで調べてみると、functions.phpを書き換えるように指示されていることが多いですね。 質問者様も、こちらを書き換える予定だと思います。 テーマのバージョンアップで配布されるファイルには、新しいfunc […]

続きを読む

カスタマイズ用コード

準備した自作プラグインに次のコードを貼りつけます。

  • add_action('bbp_new_topic','my_bbp_new_topic', 100, 1);
  • add_action('bbp_new_reply','my_bbp_new_reply', 100, 2);
  • function my_bbp_new_reply($reply_id, $topic_id){
  • $r_type="返信";
  • $r_id= $topic_id."#post-".$reply_id;
  • my_bbp_mail($r_id,$r_type);
  • }
  • function my_bbp_new_topic($topic_id){
  • $r_type="トピック";
  • $r_id= $topic_id;
  • my_bbp_mail($r_id,$r_type);
  • }
  • function my_bbp_mail($post_id,$typ) {
  • $mymail = 'xxx@xxxx.com';
  • $sub='bbpress['.$typ.']が投稿されました';
  • $hu=esc_url( home_url( '/' ) ).'?p='.$post_id;
  • $msg=$sub.PHP_EOL.$hu.PHP_EOL
  • .'日時:'.date("Y/m/d H:i:s").PHP_EOL;
  • mb_send_mail($mymail,$sub,$msg);
  • }
AFFS Simple Code Viewer
Copy

【1,2行】トピック・返信の新規登録後に呼び出されるアクションに関数を登録

【4,5行】返信用のメッセージと投稿IDを設定

【9,11行】トピック用のメッセージと投稿IDを設定

【16行】送信先メールを設定

【17行】件名を設定

【19行】ページのURLを設定

【21,22行】メッセージ本文を設定

【24行】メール送信