WordPress — отправляйте электронные письма пользователям, когда они получают новых подписчиков

Я использую простой плагинпользователь следит за системой«И все, что мне нужно сделать, это отправить электронное письмо после того, как пользователи получат новых подписчиков.

Я думаю, что это важная часть кода плагина:

function pwuf_follow_user( $user_id, $user_to_follow ) {

$following = pwuf_get_following( $user_id );

if ( $following && is_array( $following ) ) {
$following[] = $user_to_follow;
} else {
$following = array();
$following[] = $user_to_follow;
}

// retrieve the IDs of all users who are following $user_to_follow
$followers = pwuf_get_followers( $user_to_follow );

if ( $followers && is_array( $followers ) ) {
$followers[] = $user_id;
} else {
$followers = array();
$followers[] = $user_id;
}

do_action( 'pwuf_pre_follow_user', $user_id, $user_to_follow );

// update the IDs that this user is following
$followed = update_user_meta( $user_id, '_pwuf_following', $following );

// update the IDs that follow $user_id
$followers = update_user_meta( $user_to_follow, '_pwuf_followers', $followers );

// increase the followers count
$followed_count = pwuf_increase_followed_by_count( $user_to_follow ) ;

if ( $followed ) {

do_action( 'pwuf_post_follow_user', $user_id, $user_to_follow );

return true;
}
return false;
}

и здесь, чтобы проверить, следует ли пользователь за другим:

function pwuf_is_following( $user_id, $followed_user ) {

$following = pwuf_get_following( $user_id );

$ret = false; // is not following by default

if ( is_array( $following ) && in_array( $followed_user, $following ) ) {
$ret = true; // is following
}

return $ret;
}

Я пытался добавить этот код после обновления пользовательской мета, но ничего не произошло!

   $subscribers = explode(",", $user_to_follow );
$emails      = array ();

foreach ( $subscribers as $subscriber ) {
$user_info = get_userdata($subscriber);
$emails[] = $user_info ->user_email;
}
$body = sprintf( $user_to_follow->display_name, 'followed your work! See <%s>' );

wp_mail( $emails, 'New followers!', $body );

0

Решение

Я полагаю, что вы хотите отправить пользователю электронное письмо, когда за ним следит другой пользователь. Учитывая этот сценарий, в плагине есть доступная ловушка действий, которая выполняется, когда следующий процесс успешен:

do_action( 'pwuf_post_follow_user', $user_id, $user_to_follow );

Вы можете подключить свой собственный код к этому действию

add_action('pwuf_post_follow_user', $user_id, $user_to_follow) {

$follower = get_userdata($user_id);
$recipient = get_userdata($user_to_follow);
$recipient_email = $recipient->user_email;
$body = sprintf('%s followed your work!', $follower->display_name );
wp_mail( $recipient_email , 'New follower!', $body );

}

Эталонный: https://codex.wordpress.org/Function_Reference/get_userdata

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector