web-dev-qa-db-fra.com

Afficher le nombre de commentaires invisibles sur une page depuis la dernière visite de l'utilisateur

La communauté est privée et comporte plusieurs pages/wordpress/design/etc. Lorsque les utilisateurs consultent ces pages, ils ne peuvent que commenter.

Maintenant, ce que j'essaie de faire, Idk si possible, mais si c'est le cas, j'ai besoin d'indications/d'indices sur ce que vous souhaitez également rechercher.

http://jsfiddle.net/melbourne/uPqBe/4/

Au lieu de ces chiffres, je veux les afficher comme le titre le dit, le nombre des derniers commentaires depuis que l'utilisateur actuel a visité ces pages.

J'ai pensé à utiliser localStorage/cookies, mais si l'utilisateur décide de se connecter ailleurs, cela ne fera pas l'affaire. Autrement dit, je ne sais pas où aller à partir de maintenant.

Toute suggestion serait vraiment appréciée.

1
Strasbourg

Vous pouvez stocker les données dans la méta de l'utilisateur en tant que tableau de post-id -> nombre de commentaires lors de la dernière visite, puis simplement compter les commentaires depuis cette date, par exemple

function get_user_comment_count_since_last_visit($user_id ,$post_id){
    //only do this for logged in users
    if ($user_id <= 0 ){
        return 0;
    }

    /**
     * get last comment count for a post id from user meta if set
     * and if not set then we define zero
     */
    $user_last_visit = get_user_meta( $user_id,'_last_visit_',true);
    if (!isset($user_last_visit[$post_id]) || $user_last_visit[$post_id] < 0)
        $user_last_visit[$post_id] = 0;

    /**
     * get current comment count of the post
     */
    $comments_count = wp_count_comments( $post_id);

    /**
     * get the amount of added comment since last visit
     * and update the user meta for next visit
     */
    $user_last_visit[$post_id] = $comments_count->approved -  $user_last_visit[$post_id];
    update_user_meta( $user_id, '_last_visit_',  $user_last_visit);
    return $user_last_visit[$post_id];
}

et pour l'utiliser, vous l'appelez avec l'ID de page et l'ID d'utilisateur de l'utilisateur actuellement connecté.

2
Bainternet