web-dev-qa-db-ja.com

ユーザーが投稿をフォローしてから、その投稿をフォローしたすべてのユーザーに管理者がEメールを送信することを許可するにはどうすればよいですか。

私は次の機能を構築しようとしていますが、私はそれについての助けを見つけるのに苦労しています:

ユーザーが投稿をフォローする>ユーザーの電子メールが管理ページに表示され、その投稿に関連付けられます

私はあなたが持っているどんな洞察にも感謝します!

2
Erica Decker

私はあなたの投稿を支持したすべてのユーザーにEメールを送るのが礼儀正しいとは思いません。ブックマークを付けるためにあなたの投稿を気に入っている人がいます。だからお気に入りとフォローを組み合わせないでください。

だからここに私の提案です:

ブックマークを付けるには、WPのお気に入り投稿プラグインを使用してください。

フォローに関しては、通常のワードプレスインストール用のプラグインはありません。しかし、buddypressに利用可能なプラグインがあります。その呼ばれたbuddypressは私に従います

あなたはbuddypress機能をデフォルトのwordpress機能で置き換える必要があります。

例えば、 この行 は関数bp_loggedin_user_id()を使用します。それを get_current_user_id() に置き換える必要があります。

あなたがワードプレスの経験がない場合は、経験豊富なプログラマーを雇います。彼/彼女は1時間以内にそれを終えることができます。

私は、buddypressプラグインを修正することが、すべてをゼロからコーディングするよりも優れていると思います。

ではごきげんよう

更新

あなたが最初からそれをコーディングしようとしているなら、ここにいくつかのコードがあります

function wpse_follow() {
    if(!is_user_logged_in()) {
    return false;
    }
    global $post;
    $current_user = get_current_user_id();
    $followers = get_post_meta($post->ID, 'followers');
    if(!$followers) {
    $first_follower = array($current_user);
    update_post_meta($post->ID, 'followers', $first_follower);
    } else {
    $pushed_array = array_Push($followers, $current_user);
    update_post_meta($post->ID, 'followers', $pushed_array);
    }
}

後でこのコードを使用してfollowers配列を取得できます。

global $post;
$followers = get_post_meta($post->ID, 'followers');

購読しているユーザーのEメールを検索できます。

$user_emails = array();
foreach ($followers as $follower) {
    $email = get_user_by('id', $follower);
    $user_emails[] = $email;
} 
1
Giri

答えてくれてありがとう、人々!私は http://wordpress.org/extend/plugins/wp-favorite-posts/ によって既に行われた作業を利用することによってこれを実行しました http://yoast.com/wordpress/email-commenters/

私はWP Favorite Postsを編集して、新しいDBテーブルを作成し、投稿を好むたびにユーザーの電子メールを配列に追加します。私はそれから、コメント投稿者ではなく、WPFPに関連した新しい一連のEメールを使うようにEmail Commentersを書き換えました。

結果は非常に簡単で、管理者はメールリンクをクリックして適切なユーザーへのmailtoを開いて重要な変更を知らせることができます。

1
Erica Decker