안읽은 알림이 없는데 [cosmosfarm_members_unread_notifications_count]을 이용한 메뉴에서는 안읽은 알림이 있다고 합니다.
분명 다 읽었는데 이유가 뭘까요...
https://i.imgur.com/owJQXw8.png
일단 현재 위의 이미지처럼 자꾸 표시됩니다.
안녕하세요~^^
코스모스팜 회원관리 플러그인 알림 목록은
워드프레스 커스텀 포스트 타입(Custom Post Type)에 저장된 값으로 표시됩니다.
알림 카운트는 사용자 메타(User Meta) 정보의 값으로 표시됩니다.
알림이 발생하거나 읽음 표시, 안읽음 표시를 하게 되면 업데이트 됩니다.
카운트 표시와 실제 표시되는 목록이 일치하지 않는 건
올려주신 내용만으로는 원인을 파악하기 어렵습니다.
무언가 에러가 있거나 기존 데이터가 삭제되었을 수도 있습니다.
임시방편으로,
아래의 코드를 추가해서 실제 목록에 표시되는 알림의 수와
카운트에 표시되는 카운트 수가 일치되게 적용해보시겠어요?
add_action('init', 'init_20200810');
function init_20200810(){
$user_id = get_current_user_id();
if($user_id){
$notification = new Cosmosfarm_Members_Notification();
$meta_query[] = array(
'key' => 'item_status',
'value' => 'unread',
'compare' => '=',
);
$args = array(
'post_type' => $notification->post_type,
'author' => $user_id,
'order' => 'DESC',
'orderby' => 'ID',
'posts_per_page' => -1,
'meta_query' => $meta_query
);
$query = new WP_Query($args);
update_user_meta($user_id, 'cosmosfarm_members_unread_notifications_count', $query->post_count);
}
}
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
목록에 표시되는 값과 카운트의 값이 일치되는 것을 확인하셨다면 해당 코드는 지워주세요.
만약, 이후에도 같은 문제가 발생한다면
어느 상황에 이러한 문제가 발생하는지 알려주시겠어요?
워드프레스에서 에러 혹은 알 수 없는 문제가 있을 때 대응 방법을 참고하시면
에러 메시지를 확인하거나 충돌이 있는지 점검해보실 수 있습니다.
고맙습니다.
오! 해결되었습니다.
감사합니다!
앞으로 같은 문제가 발생시 원인을 알수있다면 알려드리겠습니다.
그외에도 혹시 괜찮다면 앞으로도 비슷한 증상이 있다면 위 소스를 다시써도 괜찮겠습니까?
이후에도 알림 카운트 개수와 실제 표시되면 알림 목록의 개수가 다르다면
해당 코드를 적용해주시면 됩니다.
추후에 어떠한 경우에 이러한 상황이 발생하는지 알려주시면
저희도 내부적으로 테스트해보고 개선해야 할 부분이 있다면 개선해서 업데이트하도록 하겠습니다.
고맙습니다.