I'm using " simple like system " Plugin, I have this function to check when users get post liked by the other users, How can i send an email to post author when his posts got liked by the others?
Something like " Hey {Post Author name}, {username of who likes the post} liked your post {post title}" { Post permalink}, visit {username} Profile at {author url}.
/**
* Utility to test if the post is already liked
* @since 0.5
*/
function already_liked( $post_id, $is_comment ) {
$post_users = NULL;
$user_id = NULL;
if ( is_user_logged_in() ) { // user is logged in
$user_id = get_current_user_id();
$post_meta_users = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_user_comment_liked" ) : get_post_meta( $post_id, "_user_liked" );
if ( count( $post_meta_users ) != 0 ) {
$post_users = $post_meta_users[0];
}
} else { // user is anonymous
$user_id = sl_get_ip();
$post_meta_users = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_user_comment_IP" ) : get_post_meta( $post_id, "_user_IP" );
if ( count( $post_meta_users ) != 0 ) { // meta exists, set up values
$post_users = $post_meta_users[0];
}
}
if ( is_array( $post_users ) && in_array( $user_id, $post_users ) ) {
return true;
} else {
return false;
}
} // already_liked()
this one for post user likes
/**
* Utility retrieves post meta user likes (user id array),
* then adds new user id to retrieved array
* @since 0.5
*/
function post_user_likes( $user_id, $post_id, $is_comment ) {
$post_users = '';
$post_meta_users = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_user_comment_liked" ) : get_post_meta( $post_id, "_user_liked" );
if ( count( $post_meta_users ) != 0 ) {
$post_users = $post_meta_users[0];
}
if ( !is_array( $post_users ) ) {
$post_users = array();
}
if ( !in_array( $user_id, $post_users ) ) {
$post_users['user-' . $user_id] = $user_id;
}
return $post_users;
} // post_user_likes()
Here is what i tried to do but the whole function stopped working and email not sent.
I added do_action and add_action, I don't know why but i saw another snippet did that.
Original function above!!
function already_liked( $post_id, $is_comment ) {
$post_users = NULL;
$user_id = NULL;
if ( is_user_logged_in() ) { // user is logged in
$user_id = get_current_user_id();
$post_meta_users = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_user_comment_liked" ) : get_post_meta( $post_id, "_user_liked" );
if ( count( $post_meta_users ) != 0 ) {
$post_users = $post_meta_users[0];
}
} else { // user is anonymous
$user_id = sl_get_ip();
$post_meta_users = ( $is_comment == 1 ) ? get_comment_meta( $post_id, "_user_comment_IP" ) : get_post_meta( $post_id, "_user_IP" );
if ( count( $post_meta_users ) != 0 ) { // meta exists, set up values
$post_users = $post_meta_users[0];
}
}
$user = get_userdata($user_id);
$user_url = get_author_posts_url( $user_id );
$recipient = get_userdata($post_users);
$recipient_email = $recipient->user_email;
$body = sprintf('%s Liked your post!'. "
", $user->display_name );
$body .= sprintf( 'Visit Artist Page: %s', $user_url );
wp_mail( $recipient_email , 'New Likes!', $body );
add_action('post_like_user', $user_id, $post_users );
if ( is_array( $post_users ) && in_array( $user_id, $post_users ) ) {
do_action( 'post_like_user', $user_id, $post_users );
return true;
} else {
return false;
}
} // already_liked()