/** * * 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); } }