投稿のステータスが変化するときに呼び出されるアクションがあるので、メール送信の関数を作ってフックできると思います。
日本語Codex > 投稿ステータスの遷移
>gblsm様
ご教示いただき誠にありがとうございます。
教えていただきました日本語codexと、いろいろなサイトを参考にfanction.phpに記述してみたのですが、どうしてもエラーが出てしまいます。
function reviewok_mail( $post_ID ) {
$status = get_post_status( $post_ID );
if( $status == 'publish' ) {
$to = '<?php $user_email = get_the_author_meta('user_email'); ?>';
if (mail($to , "ただいま", $the_title , "が公開されました")) {
}
}
}
add_action('edit_post', 'reviewok_mail');
phpに関する知識が乏しいため、見よう見まねでやってみたのですが、どうしてもエラーが出てしまいます。
reviewokは自分で決めたコードです。
おそらく「$to =〜」以降から間違っているのでは?と睨んでいます。
誠に恐縮ではございますが、どこが間違っているのかご指摘いただけますしょうか?
何卒宜しくお願い申し上げます。
おそらく「$to =〜」以降から間違っているのでは?と睨んでいます。
fanctions.phpに記述したということはすでに<?php ?>
の中なので、さらに<?php ?>
で囲むのがまずおかしいですね。
また、mail()
関数を自力でやると文字化けしやすいので、wp_mail()
関数を使いましょう。
関数リファレンス/wp mail – WordPress Codex 日本語版
※取り敢えずメール部分への指摘だけで、フックの使い方が正しいかまでは見てません。
どんなエラーが表示されるか教えてください。
それから、edit_post アクションを選んだ理由も教えてください。Codexの「投稿ステータスの遷移」に書かれていたアクションを使えばよいと思ったので。
おそらく「$to =〜」以降から間違っているのでは?と睨んでいます。
- $to = … というコード自体、すでにphpのコードなので、'<?php … ?>’ のように書くとエラーになります。
- get_the_author_meta 関数にパラメータを一つだけ指定する書き方は、今回のような「投稿のステータスを変更する時に呼び出されるアクション」の中では、その投稿の作成者を取得することはできません。
- mail 関数のパラメーターがおかしいと思います。
saikichi さんが今やりたいことは応用編なので、見よう見まねだけでは難しいと思いますよ。get_the_author_meta や mail 関数には説明ページがあるので、それを手始めに、使い方を調べましょう。
関数リファレンス/get_the_author_meta
関数リファレンス/wp_mail
gblsm様、Ayustar様
ご教示いただき誠にありがとうございます。
色々と調べながら試していたところ、
奇跡的に「Post Status Notifier Lite」というプラグインを発見いたしました。
こちらのプラグインでしたら、関数のわからない私でも操作できそうですし、
念願だった「寄稿者に記事承認完了メール」と「投稿されたことをメール通知」を実装できそうです。
しかしながら、これで満足せずに、
gblsm様、Ayustar様にご教示いただきました事をきっかけに、
今後色々なカスタマイズを自作してみようと思います。
この度は私の様なチンプンカンプンな初心者に、
優しく教えていただきまことにありがとうございました。
今後とも何卒よろしくお願いいたします。
ありがとうございました。
saikichiさん、プラグインが見つかってよかったです。便利そうなので覚えておこうと思います。