В моем магазине клиенты могут купить один и тот же товар в нескольких местах.Каждое местоположение имеет свой собственный shop_manager, поэтому я хочу, чтобы каждый shop_manager мог видеть только те заказы, где выбранный вариант соответствует их местоположению (например, "shop_manager_min" из Миннесоты может видеть только заказы, в которых был выбран вариант "min"; "shop_manager_tex",из Техаса, могут видеть только заказы с изменением «tex» и т. д.).
Для этого я попробовал следующий код:
add_filter( 'pre_get_posts', 'orders_by_location' );
function orders_by_location( $query ) {
//check if user role is shop_manager to continue
if(isset(wp_get_current_user()->roles[0]) && wp_get_current_user()->roles[0] == 'shop_manager'){
//gets the 3 character string code for the shop manager location
$location = substr(wp_get_current_user()->user_login, -3);
//query for all the orders where the variation matches the shop manager location
$query->set( 'meta_query', array(
array(
'key' => 'attribute_pa_location',
'value' => $location,
'compare' => '='
) ) );
return $query; }}
Однако я ничего не получил от этогозапрос, заказы не отображаются.Что я делаю не так?
Я пробовал следующий запрос, чтобы упорядочить заказы по местоположению, и он работает просто отлично:
add_filter( 'pre_get_posts', 'orders_by_location' );
function orders_by_location( $query ) {
if(isset(wp_get_current_user()->roles[0]) && wp_get_current_user()->roles[0] == 'shop_manager'){
$query->set('orderby', 'attribute_pa_location' );
$query->set('order', 'DESC' );
return $query; }}
С предыдущим, я вижу, attribute_pa_location существуети это доступно по запросу.Я также повторил значение attribute_pa_location и значение в $ location, и оба они абсолютно одинаковые !!!Однако запрос ничего не возвращает, и на странице заказов администратора shop_manager не отображаются никакие заказы.
Я выполнил тот же первый запрос, используя _customer_user
вместо attribute_pa_sede
, и работал отлично.Если процедура запроса в порядке и мета-ключ также в порядке, почему не работает, когда я использую их вместе ???