[WordPress] KBoard記事にコメントが走ったときに通知メールを送信する

Last Updated: 2017 年 04 月 16 日 4のコメント

KBoard 電子メール通知

はじめ

KBoard(Kboard)は、韓国で多く使用されて WordPress用掲示板プラグインです。 外国では、bbPressのようなフォーラムが主に使用され、韓国では、韓国型掲示板をご希望の場合KBoardのような掲示板のプラグインが使用されます。

必要に応じて次の記事を参照してbbpressフォーラムを掲示板の形で変更することができます。

昨年半ばまでこのブログにbbPressを韓国型掲示板形に改造して使用している途中のテーマを複数回変更する過程で、以前のテーマとの互換性がよくない、それ以上使用せずにいます。

SEO(検索エンジン最適化)を重要視するならbbPressを掲示板の形に変えて使用するのも良い方法です。 ソースは ここからダウンロードすることができます。 テーマに沿ってうまく動作しない場合があり修正が必要な場合があります。

この記事では、次のXNUMXつの状況について説明します。

  1. コメントの作成時に原文の出版社にメール通知を送信したい場合
  2. ユーザーが投稿記事に管理者が回答を取り付ければ、ユーザーに通知メールが送信されるようにしたい場合

コメントの作成時に原文の出版社に電子メール通知を送信

まず、コメント作成時原文出版社に電子メール通知を送りたい場合は、次のコードを使用している WordPress 関数ファイル(functions.php)に追加するようにします。 もちろんチャイルドテーマ(子テーマ;サブテーマ)を作成した状態で作業しなければなら今後の更新時に修正内容が消えない(参照).

add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 2);
function my_kboard_comments_insert($insert_id, $content_uid){
$comment = new KBComment();
$comment->initWithUID($insert_id);
$document = new KBContent();
$document->initWithUID($content_uid);

if($document->member_uid){
$user = new WP_User($document->member_uid);

if($user->user_email && $user->ID != get_current_user_id()){
if(!class_exists('KBMail')){
include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
}

$url = new KBUrl();
$mail = new KBMail();
$mail->to = $user->user_email;
$mail->title = "[댓글알림] {$document->title}";
$mail->content = $comment->content;
$mail->url = $url->getDocumentRedirect($document->uid);
$mail->send();
}
}
}

上記のコードは、原文の作成者が会員である場合、その会員にメール通知を送信するコードであり、スレッド作成者本人がコメントを残せばメールが来ないでしょう。

非会員に対して検討する上記のコードを参考にし、さらにコーディングをやらなくなります。 (例えば、まず非会員である場合は、メールを受けるフィールドから作らべきでしょう。)

詳細については、次のKBoardフォーラム文を参照してみてください。

  • http://www.cosmosfarm.com/threads/document/12558
  • http://www.cosmosfarm.com/threads/document/11766

管理者がコメントに返信を付ける員コメントの作成者にメール通知を送信する

管理者がコメントに返信を付ける員コメント投稿者にメール通知を送信したい場合は、両方の状況を考えてみることができます。

会員のみ掲示板に文を書くことができている場合

コメントを付け、ユーザーが会員であれば、次のようなコードを使用している WordPress テーマの関数ファイル(functions.php)に追加するようにします。

add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 2);
function my_kboard_comments_insert($comment_uid, $content_uid){
$comment = new KBComment();
$comment->initWithUID($insert_id);

if($comment->parent_uid){
$parent = new KBComment();
$parent->initWithUID($comment->parent_uid);

if($parent->user_uid){
$user = new WP_User($parent->user_uid);

if($user->user_email && $user->ID != get_current_user_id()){

$title = '등록하신 댓글에 답변이 등록되었습니다.'; // 알림 이메일 제목
$content = '등록하신 댓글에 대해 답변이 등록 되었습니다.'; // 알림 이메일 본문 내용
wp_mail($user->user_email, $title, $content);
}
}
}
}

非会員がコメントを残す場合

会員でないユーザーが単一のコメントに答えを月に通知メールが送信されるようにする前に、非会員がコメントを残すときに電子メール情報が必要です。

次のコードを使用している WordPress テーマの関数ファイル(functions.php)ファイルに追加すると、おそらくコメント入力ウィンドウに電子メールの入力フィールドが出力されるでしょう。

add_action('kboard_comments_field', 'my_kboard_comments_field', 5, 4);
function my_kboard_comments_field($field_html, $board, $content_uid, $comment_builder){
if(!is_user_logged_in()){
$current_user = wp_get_current_user();
if(!$current_user->user_email){
?>
<div class="comments-field">
<label class="comments-field-label" for="comment_option_email">이메일</label>
<input type="email" id="comment_option_email" name="comment_option_email" value="" placeholder="이메일..." required>
</div>
<?php
}
}
}

その後、次のコードをテーマの関数ファイル(functions.php)に追加すると、会員または入力されたメールアドレスにメールが送信されます。

add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 2);
function my_kboard_comments_insert($comment_uid, $content_uid){
$comment = new KBComment();
$comment->initWithUID($comment_uid);

if($comment->parent_uid){
$parent = new KBComment();
$parent->initWithUID($comment->parent_uid);

if($parent->user_uid){
$user = new WP_User($parent->user_uid);

if($user->user_email && $user->ID != get_current_user_id()){

$title = '등록하신 댓글에 답변이 등록 되었습니다.';  // 알림 이메일 제목
$content = '등록하신 댓글에 대해 답변이 등록 되었습니다.'; // 메일 본문 내용
wp_mail($user->user_email, $title, $content);
}
}
else if($parent->option->email){

$title = '등록하신 댓글에 답변이 등록 되었습니다.'; // 알림 이메일 제목
$content = '등록하신 댓글에 대해 답변이 등록 되었습니다.'; // 메일 본문 내용
wp_mail($parent->option->email, $title, $content);
}
}
}

メモ:


4のコメント

コメント

  1. こんにちは。

    本文の文章やらは、他のコンテンツをお掛けいたします。

    シンプルなサイトを一つ作成して作業中ですが。

    ドメインがハングルである場合 WordPressで正常に動作しない場合もあるのか知りたいです。

    私のテーマのデモをターゲットサイトに持って同じレイアウトで作業をしています。

    複数のページで構成さはされていますが、メインページでは、ページのフォームです。

    デモでは、ヘッダのメニューをクリックすると、その場所に移動します。

    私の作業しているサイトでは、移動せずにいます。

    ドメインがハングルなので移動をアンハヌンか気になります。

    応答