お世話になっております。よくわからないのでお教えいただければ幸いです。
WORDPRESSのカスタム投稿タイプ「luserpage」に新規投稿した場合、該当メールアドレスへ通知いく内容を情報を参考にして現在以下のコードをテーマのfunction.phpに記載をしています。
無事にメールへの送信は出来ているのですが、新規投稿を→一旦下書き→公開にしないとメールが飛ばないようです。
これを、いきなり「公開」にした場合、メールを飛ばすようにしたいのですが、分かる方お教えいただきたく存じます。
お手数をおかけしますがどうぞよろしくお願いいたします。
該当ソースコード
add_action('transition_post_status', function ($new_status, $old_status, $post) {
//「新規投稿」、「承認待ち」、「下書き」、「自動保存」、「予約済」のステータスから「公開済」に変化した時に処理が行われる。
if (($old_status == 'new' || $old_status == 'pending' || $old_status == 'draft' || $old_status == 'auto-draft' || $old_status == 'future') && $new_status == 'publish' && $old_status != 'publish' && $post->post_type == 'luserpage') {
$user_select = get_field('user_select', $post->ID); //カスタムフィールド「user_select」を取得(返り値はUser ID)
$user_emaillist = array(); //空の配列を定義
foreach ($user_select as $user_id) {
$user_data = get_userdata($user_id); //ユーザーIDからユーザー情報を取得
$user_email = $user_data->user_email; //ユーザー情報の中からメールアドレスを取得
array_push($user_emaillist, $user_email); //取得したメールアドレスを$user_emaillistに追加していく
}
$mail_to = implode(',', $user_emaillist); //メールアドレスだけの配列をカンマ区切りの文字列にして$mail_toに代入
// 送信先のメールアドレス
$to = $mail_to;
以下メール設定情報