示例#1
0
 /**
  *
  * if user logged in change user meta data
  *
  * @access protected
  *
  * @param int              $post_like_count post like count
  *
  * @global \SilverWpAddons\object $current_user
  */
 protected function userLoggedLike($post_like_count)
 {
     global $current_user;
     $this->user_id = $current_user->ID;
     // current user
     $liked_posts = $this->getUserLikeMeta();
     // post ids from user meta
     $liked_users = $this->getPostMeta('_user_liked');
     // user ids from post meta
     $liked_posts[] = $this->post_id;
     // Add post id to user meta array
     $liked_users[] = $this->user_id;
     // add user id to post meta array
     $liked_posts = UtlArray::array_remove_empty(\array_unique($liked_posts));
     //$liked_users = \array_unique($liked_users);
     $user_likes = \count($liked_posts);
     // count user likes
     if ($this->alreadyLiked()) {
         //unlike the post
         $liked_posts = \array_diff(array($this->_post_id), $liked_posts);
         // find the key
         $liked_users = \array_diff(array($this->_user_id), $liked_users);
         // find the key
         //unset($liked_posts[ $pid_key ]); // remove from array
         //unset($liked_users[ $uid_key ]); // remove from array
         $user_likes = \count($liked_posts);
         // recount user likes
         // Add user ID to post meta
         // +1 count post meta
         $post_like_count = $this->subtractionLikeCount($post_like_count);
         $this->updatePostLikeMeta($liked_users, $post_like_count);
         if (\is_multisite()) {
             // if multisite support
             // Add post ID to user meta
             // +1 count user meta
             $this->updateUserLikeOption($liked_posts, $user_likes);
         } else {
             // Add post ID to user meta
             // +1 count user meta
             $this->updateUserLikeMeta($liked_posts, $user_likes);
             //silverwp_debug_array($liked_users);
             //silverwp_debug_array($liked_posts);
         }
         // update count on front end
         $this->response(0, $post_like_count);
     } else {
         // like the post
         // Add user ID to post meta
         // +1 count post meta
         $this->updatePostLikeMeta($liked_users, ++$post_like_count);
         if (\is_multisite()) {
             // if multisite support
             // Add post ID to user meta
             // +1 count user meta
             $this->updateUserLikeOption($liked_posts, $user_likes);
         } else {
             // Add post ID to user meta
             // +1 count user meta
             $this->updateUserLikeMeta($liked_posts, $user_likes);
         }
         // update count on front end
         $this->response(1, $post_like_count);
     }
 }