カスタム投稿タイプ別にレビュー待ちの投稿の投稿者に別の内容のメールを送信する
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 1,295

退会済みユーザー
http://wpcj.net/1190
こちらのコードを投稿者に送信するように変更するコードをご教示いただきましたが、
2種類のフォームがあり、どちらもレビュー待ちで投稿されます。
管理者にくるメールは同じでもいいのですが、投稿者にメールを送信する内容は、それぞれのフォームに合った内容にしたいです。
教えて頂いたコード
function mail_for_pending( $new_status, $old_status, $post ) {
$user_id = $post ->post_author;
$user_info = get_userdata( $user_id );
$user_email = $user_info->user_email;
// 投稿がレビュー待ち以外からレビュー待ちに変わった(新規の場合は$old_statusが'new'、$new_statusが'pending'になります)
if ( $old_status != 'pending' && $new_status == 'pending' ) {
// ブログ名(サイト名)
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
// 投稿名
$post_title = wp_specialchars_decode($post->post_title, ENT_QUOTES);
// 送信先(管理者) ※ここを投稿者に変更
//$to = get_option('admin_email');
$to = $user_email;
// 件名
$subject = "[{$blogname}] 承認待ちの投稿が投稿されました({$post_title})";
// 本文
$message = "承認待ちの投稿「{$post_title}」が投稿されました。確認をお願いします。\r\n";
$message .= "\r\n";
$message .= "編集および公開: \r\n";
$message .= wp_specialchars_decode(get_edit_post_link( $post->ID ), ENT_QUOTES) . "\r\n";
// メールを送信
$r = wp_mail( $to, $subject, $message );
}
}
add_action( 'transition_post_status', 'mail_for_pending', 10, 3 );
変更したコード
//投稿者にメール送信
function mail_for_pending( $new_status, $old_status, $post ) {
$user_id = $post ->post_author;
$user_info = get_userdata( $user_id );
$user_email = $user_info->user_email;
// 投稿がレビュー待ち以外からレビュー待ちに変わった(新規の場合は$old_statusが'new'、$new_statusが'pending'になります)
if ( $old_status != 'pending' && $new_status == 'pending' ) {
// ブログ名(サイト名)
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
// 投稿名
$post_title = wp_specialchars_decode($post->post_title, ENT_QUOTES);
// 送信先(管理者) ※ここを投稿者に変更
//$to = get_option('admin_email');
$to = $user_email;
// 件名
$subject = "[{$blogname}] 求人情報が登録されました({$post_title})";
// 本文
$message = "「{$post_title}」の求人情報が登録されました。\r\n";
$message = " ご入金の確認が取れましたら、公開いたします。\r\n";
$message .= "\r\n";
$message .= "[{$blogname}] \r\n";
$message .= "http://*****.com/ \r\n";
// メールを送信
$r = wp_mail( $to, $subject, $message );
}
}
add_action( 'transition_post_status', 'mail_for_pending', 10, 3 );
投稿者に編集・公開をしてもらわないので、変更しました。
この求人情報の登録とは別にもう一つレビュー待ちになるフォームがあります。
どちらもカスタム投稿タイプです。
よろしくお願いします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
投稿タイプによって内容を変更して分ければ良いだけです。
修正しました。
//投稿者にメール送信
function mail_for_pending( $new_status, $old_status, $post ) {
$user_id = $post ->post_author;
$user_info = get_userdata( $user_id );
$user_email = $user_info->user_email;
// 投稿がレビュー待ち以外からレビュー待ちに変わった(新規の場合は$old_statusが'new'、$new_statusが'pending'になります)
if ( $old_status != 'pending' && $new_status == 'pending' ) {
// ブログ名(サイト名)
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
// 投稿名
$post_title = wp_specialchars_decode($post->post_title, ENT_QUOTES);
// カスタム投稿タイプ1を指定
if ( get_post_type() === 'カスタム投稿タイプ1' ) {
// 件名
$subject = "[{$blogname}] 求人情報が登録されました({$post_title})";
// 本文
$message = "「{$post_title}」の求人情報が登録されました。\r\n";
$message = " ご入金の確認が取れましたら、公開いたします。\r\n";
$message .= "\r\n";
$message .= "[{$blogname}] \r\n";
$message .= "http://*****.com/ \r\n";
// カスタム投稿タイプ2を指定
//} elseif ( get_post_type() === 'カスタム投稿タイプ2' ) {
//カスタム投稿タイプ1以外
} else {
// 件名
$subject = "[{$blogname}] 求人情報が登録されました({$post_title})";
// 本文
$message = "「{$post_title}」の求人情報が登録されました。\r\n";
$message = " ご入金の確認が取れましたら、公開いたします。\r\n";
$message .= "\r\n";
$message .= "[{$blogname}] \r\n";
$message .= "http://*****.com/ \r\n";
}
// メールを送信
$r = wp_mail( $user_email, $subject, $message );
}
}
add_action( 'transition_post_status', 'mail_for_pending', 10, 3 );
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
退会済みユーザー
2017/10/27 11:33
コードは<code>ボタンを押して```で囲ってください。
退会済みユーザー
2017/10/27 11:57 編集
失礼しました。
退会済みユーザー
2017/10/27 14:03 編集
<code>ボタン ``` です