ワードプレスでレビュー待ちの投稿が投稿者や寄稿者から送信されたときにメールを管理者宛に送るコードをご紹介します。
投稿のステータスがPending以外からPendingに変わったときがレビュー待ちになったときになります
transition_post_statusアクションで投稿のステータスがPending以外からPending変わったときに、編集者と管理者のメールアドレスを取得してメールを送信します。
※下記コードはテーマのFunctions.phpやプラグインに導入されてみてください。
function adminmail_pending( $new_status, $old_status, $post ) { if ( $old_status != 'pending' && $new_status == 'pending' ) { $blogname = get_option('blogname'); $post_title = $post->post_title; $subject = $blogname." にて承認待ちの記事が投稿されています(".$post_title.")"; $message = "記事".$post_title."が承認待ちです。\r\n"; $message .= "\r\n"; $message .= "記事の承認URLは下記となります: \r\n"; $message .= wp_specialchars_decode(get_edit_post_link( $post->ID ), ENT_QUOTES) . "\r\n"; //編集者のメールアドレスを取得し編集者全員にメールを送ります $args= array('role' => 'editor'); $users= get_users($args); $editor_mails=array(); if(sizeof($users)>0){ foreach($users as $user){ $mail= esc_html($user->user_email); array_push($editor_mails,$mail); } } if(sizeof($editor_mails)>0){ for($i=0; $i<sizeof($editor_mails); $i++){ $to = $editor_mails[$i]; $r = wp_mail( $to, $subject, $message ); } } //管理者にメールを送ります $r = wp_mail( get_option('admin_email'), $subject, $message ); } } add_action( 'transition_post_status', 'adminmail_pending', 10, 3 );
wp_mailはワードプレスの標準メール関数です。
wp_mail(送信先、タイトル、メッセージ)のような形で簡単にメールを送信することが可能です。
※編集者にメールを送る必要がない場合は $args= array(‘role’ => ‘editor’); ~ $r = wp_mail( get_option(‘admin_email’), $subject, $message ); の前の行までを削除されてみてください。
WordPress ワードプレスのカスタマイズ、復旧、修復、プラグイン作成導入のご相談・ご依頼はWPドクターまでお気軽にお送りください。