I have custom post type umowy
which one have relationship with user. Relationship is adding by acf by editing user. What I want? I want to list in dashboard custom post type umowy
all post which have relations with user logged in. I have code like that. And its showing post only for user login which one is author. Someone have idea for that?
add_action('pre_get_posts', 'filter_posts_list');
function filter_posts_list($query)
{
//$pagenow holds the name of the current page being viewed
global $pagenow, $typenow;
//$current_user uses the get_currentuserinfo() method to get the currently logged in user's data
global $current_user;
get_currentuserinfo();
//Shouldn't happen for the admin, but for any role with the edit_posts capability and only on the posts list page, that is edit.php
if(!current_user_can('administrator') && current_user_can('edit_posts') && ('edit.php' == $pagenow) && $typenow == 'umowy')
{
//global $query's set() method for setting the author as the current user's id
$query->set('author', $current_user->ID);
}
}
I found answer:
if(!current_user_can('administrator') && !current_user_can('obsluga') && ('edit.php' == $pagenow) && $typenow == 'umowy'){
$key = 'użytkownik_sklep';
$single = true;
$shopIds = get_user_meta($current_user->data->ID, $key, $single);
$meta_query = array(
array(
'key' => 'umowa_do_sklepu',
'value' => $shopIds[0],
'compare' => 'LIKE'
)
);
$query->set( 'meta_key', 'umowa_do_sklepu' );
$query->set( 'meta_query', $meta_query );
}