やりたい事
Wordpressの記事内へコメントされた際の通知メール内に任意のファイルもしくは文言を反映するようにさせたいと思っています。
試した事
campaign.phpと言うファイルを作り、
そこに書き込んだ内容を読み込ませたく
下記のように記載を行いました。
// メール通知カスタマイズ function custom_comment_moderation_text( $notify_message, $comment_id ) { global $wpdb; $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); $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 ); switch ( $comment->comment_type ) { case 'trackback': // トラックバック $notify_message = "「{$post->post_title}」に新しいトラックバックがありました。\r\n"; $notify_message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n"; $notify_message .= "\r\n"; $notify_message .= "トラックバック元: {$comment->comment_author}\r\n"; //$notify_message .= "IP: {$comment->comment_author_IP} ({$comment_author_domain})\r\n"; //$notify_message .= "URL: {$comment->comment_author_url}\r\n"; $notify_message .= "トラックバックの概要: \r\n"; $notify_message .= "{$comment_content}\r\n"; $notify_message .= "\r\n"; break; case 'pingback': // ピンバック $notify_message = "「{$post->post_title}」に新しいピンバックがありました。\r\n"; $notify_message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n"; $notify_message .= "\r\n"; $notify_message .= "ピンバック元: {$comment->comment_author}\r\n"; //$notify_message .= "IP: {$comment->comment_author_IP} ({$comment_author_domain})\r\n"; //$notify_message .= "URL: {$comment->comment_author_url}\r\n"; $notify_message .= "ピンバックの概要: \r\n"; $notify_message .= "{$comment_content}\r\n"; $notify_message .= "\r\n"; break; default: // コメント $notify_message = "「{$post->post_title}」に新しいコメントがありました。\r\n"; $notify_message .= "\r\n"; $notify_message .= "コメントの確認・返信はコチラ\r\n"; $notify_message .= "↓↓↓↓↓↓↓\r\n"; $notify_message .= get_permalink($comment->comment_post_ID) . "#comments\r\n\r\n"; $notify_message .= "\r\n"; //$notify_message .= "投稿者: {$comment->comment_author}\r\n"; //$notify_message .= "IP: {$comment->comment_author_IP} ({$comment_author_domain})\r\n"; //$notify_message .= "メールアドレス: {$comment->comment_author_email}\r\n"; //$notify_message .= "URL: {$comment->comment_author_url}\r\n"; $notify_message .= "【コメント】 \r\n"; $notify_message .= "{$comment_content}\r\n"; $notify_message .= "\r\n"; $notify_message .= "{$blogname}\r\n"; $notify_message .= home_url() . "\r\n"; $notify_message .= "\r\n"; $notify_message .= "-------------- \r\n"; $notify_message .= get_template_part('campaign') . "\r\n"; $notify_message .= "-------------- \r\n"; break; } return $notify_message; } add_filter( 'comment_moderation_text', 'custom_comment_moderation_text', 10, 2 ); add_filter( 'comment_notification_text', 'custom_comment_moderation_text', 10, 2 );
上記でコメントを行うと
実際の記事のコメントの送信ボタンをクリックした際は、
campaign.phpへリダイレクトされてしまい、届いたメール通知にはcampaign.phpで記載された内容は反映されませんでした。
functions.phpで都度、$notify_messageの文言を変えてしまえば良いのですが、
実際に触られる方がPHPはおろか、htmlも分からない方々ですので、
なるべくカスタムメニューでcampaign.phpを変更できるようにするなど、タグを一切使わない方法で…というのが目標となっております。
尚、結果的に通知されたメール文の指定した箇所に任意の文言が反映されていれば良いので、プラグインで解決するのであれば、それでも良いとは思っております。
只、いくら調べても(探しても)理想のプラグインが見つからない為、functions.phpへの記述もしくは解決できそうなプラグインの情報などをご教授頂ければ幸いです。
お手数お掛けし、恐れ入りますが、
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/19 05:48