問題
仕事でWordPressを使っています。
コメントの通知メールについて質問です。
functions.phpに以下のサイトの内容を元に自分でカスタマイズし、最初は上手くいってました。
http://wpcj.net/1154
しかし、とある理由で「cbnet Multi Author Comment Notification」というプラグインをインストールし、有効化したところ、上記の記述内容が反映されなくなってしまいました。
wp-includes/pluggable.phpに先ほどのサイトと似た内容があり、ここに記述するとパッと見は直ったように見えますが、実はコメントの入力欄に、「名前」、「メールアドレス」、そして「会社名」を追加しなくてはなりません。
この「会社名」がどこをいじればメール文に表示されるのか知りたいです。
下記がfunctions.phpに記述した内容です。
/** * コメント確認メールの件名を変更します。 */ function custom_comment_moderation_subject( $subject, $comment_id ) { // ブログ名(サイト名) $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); // コメント $comment = get_comment($comment_id); // 投稿 $post = get_post($comment->comment_post_ID); // トラックバック、ピンバック、コメントそれぞれで件名を変更 switch ( $comment->comment_type ) { default: // コメント return "投稿「{$post->post_title}」に新しいコメントがありました"; } } add_filter( 'comment_moderation_subject', 'custom_comment_moderation_subject', 10, 2 ); /** * コメント確認メールの本文を変更します。 */ function custom_comment_moderation_text( $notify_message, $comment_id ) { global $wpdb; // コメント $comment = get_comment($comment_id); // コメントのあった投稿 $post = get_post($comment->comment_post_ID); // 投稿元のドメイン名 $comment_author_domain = @gethostbyaddr($comment->comment_author_IP); // 未承認の数を取得 $comments_waiting = $wpdb->get_var("SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'"); // ブログ名(サイト名) $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); // コメント $comment_content = wp_specialchars_decode( $comment->comment_content ); // 会社名 $comment_company = get_comment_meta( get_comment_ID(), 'yourcompany',true); if ( $yourcompany ) { $author .= ' (' .$yourcompany . ')'; } return $author; //コメント者の後に続けて出力。 // トラックバック、ピンバック、コメントそれぞれで本文を変更 switch ( $comment->comment_type ) { default: // コメント $notify_message = "投稿「{$post->post_title}」に新しいコメントがありました。\r\n"; $notify_message .= "コメント者: {$comment->comment_author}\r\n"; $notify_message .= "会社名: {$comment->comment_company}\r\n"; $notify_message .= "コメント: {$comment_content}\r\n"; $notify_message .= "この投稿へのすべてのコメントはこちら:" .get_permalink($comment->comment_post_ID) . "\r\n"; $notify_message .= "\r\n"; break; } return $notify_message; } add_filter( 'comment_moderation_text', 'custom_comment_moderation_text', 10, 2 );
現状のメール文
(ここから)
投稿「投稿タイトル」に新しいコメントがありました。
コメント者: 〇〇〇
会社名:
コメント: あああああ
この投稿へのすべてのコメントはこちら:
https://example.co.jp/aaaaa
(ここまで)
「会社名: 」の部分が空欄になっていますが、ここに会社名入力欄で入力した内容が出力されるようにしたいです。
質問のまとめ
初投稿なためどのように質問すべきかわかりませんが、要するに、
1上記メール文の「会社名: 」が空欄になっているが、ここに入力欄で入力した内容が出力されるようにしたい
2pluggable.phpに上記functions.phpと同じことを記述してメール文が表示されているがそれでいいのか
3そもそも何故「cbnet Multi Author Comment Notification」というプラグインを使うと上記functions.phpに入力した内容が反映されなくなるのか
4何か他にコメントした際に送られる通知メール文を変更、編集する良い方法があるか
以上の内容をご教示いただきたいです。
参考になるかわかりませんが、
WordPressのバージョンは4.9.12です。
仕事で使っているためバージョンの変更は原則できません。
長文になってしまいましたが、どうぞよろしくお願いいたします。