Hi folk,
I had the quite similar issue. I needed also to grant a full access to “editor” & “administrator”.
Here is the code inserted in the functions.php
file
function modify_field( $args, $field,$post) {
if( !check_user_role(array('editor','administrator')) ){
$args['author'] = get_current_user_id();
}
return $args;
}
add_filter( 'acf/fields/post_object/query/key=field_XXX..XXX', 'modify_field', 10, 3 );
/* @src & @credits https://wp-mix.com/wordpress-check-user-roles/ */
function check_user_role($roles, $user_id = null) {
if ($user_id) $user = get_userdata($user_id);
else $user = wp_get_current_user();
if (empty($user)) return false;
foreach ($user->roles as $role) {
if (in_array($role, $roles)) {
return true;
}
}
return false;
}
I temporary solved the issues by changing % by AAA
function my_posts_where( $where ){
$where = str_replace("meta_key = 'courses_AAA_week_day'", "meta_key LIKE 'courses_%_week_day'", $where);
return $where;
}
add_filter('posts_where', 'my_posts_where');
/* my query args */
$args['meta_query']=array(array(
'key' => 'courses_AAA_week_day',
'value' => $day,
'compare' => '=',
'type' => 'NUMERIC'
));
/* ... */