#SOLVED#
Issue is solved by defining the meta_query conditions with an if statement. So if current_user_can(‘subscriber’) the meta_query includes the conditions, otherwise the query includes all posts.
This is the code in case this is helpful for anyone else:
<?php
//create variables
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$current_user_id = get_current_user_id();
//check if current user is a subscriber and define meta_query arguments
$args = array(
'post_type' => 'promotions',
'posts_per_page' => 10,
'meta_key' => 'promo_start_date',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'paged' => $paged
);
if (current_user_can( 'subscriber' )) {
// Add meta_query
$args['meta_query'] = array(
'relation' => 'OR',
array(
'key' => 'dedicated_promotion',
'value' => $current_user_id,
'compare' => 'LIKE'
),
array(
'key' => 'dedicated_promotion',
'value' => '',
'compare' => '='
)
);
}
//set up the query
$query = new WP_Query($args);
if ( $query->have_posts() ) : ?>