WooCommerce Custom Select Select исчезает после фильтрации на странице заказов администраторовPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 WooCommerce Custom Select Select исчезает после фильтрации на странице заказов администраторов

Сообщение Anonymous »

Я добавил фильтр от продукта на страницу woocommerce Admin Orders, используя: < /p>

Код: Выделить всё

function add_my_product_filter_to_orders() {
global $typenow;

if ($typenow !== 'shop_order') return;

if (!current_user_can('administrator')) { return; }

$args = array(
'post_type'      => 'product',
'posts_per_page' => -1,
'tax_query'      => array(
array(
'taxonomy' => 'product_cat',
'field'    => 'slug',
'terms'    => 'test',
),
),
);

$products = get_posts($args);
if (!$products) return;

$selected_product = isset($_GET['my_product_filter']) ? esc_attr($_GET['my_product_filter']) : '';

echo '';
echo 'filter by product';

foreach ($products as $product) {
echo '' . get_the_title($product->ID) . '';
}

echo '';
}
add_action('restrict_manage_posts', 'add_my_product_filter_to_orders', 25);
Мы использовали pre_get_posts крючок для фильтрации.

Код: Выделить всё

function filter_orders_by_my_product($query) {
global $pagenow, $typenow, $wpdb;

if ($pagenow !== 'edit.php' || $typenow !== 'shop_order' || empty($_GET['my_product_filter'])) {
return;
}

$product_id = intval($_GET['my_product_filter']);

$order_ids = $wpdb->get_col($wpdb->prepare("
SELECT order_id FROM {$wpdb->prefix}woocommerce_order_items oi
JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim ON oi.order_item_id = oim.order_item_id
WHERE oim.meta_key = '_product_id' AND oim.meta_value = %d
", $product_id));

if (!empty($order_ids)) {
$query->query_vars['post__in'] = $order_ids;
} else {
$query->query_vars['post__in'] = array(0);
}
}
add_action('pre_get_posts', 'filter_orders_by_my_product');
При запуске отображается выпадающая часть, и все в порядке, но после фильтрации он исчезает, и $ products = get_posts ($ args) возвращает пустой массив после фильтрации. Как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/794 ... rders-page
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»