То, что я пытаюсь сделать, - это поиск по позиции заказа SKU или ID на странице администрирования заказов Woocommerce. То, что я нашел/сделал до сих пор, но без успеха, выглядит следующим образом в файле functions.php.Поиск по заказу SKU или ID в Woocommerce Orders Административная страница
add_filter('woocommerce_shop_order_search_fields', 'woocommerce_shop_order_search_sku');
function woocommerce_shop_order_search_sku($search_fields) {
$args = array(
'post_type' => 'shop_order'
);
$orders = new WP_Query($args);
if($orders->have_posts()) {
while($orders->have_posts()) {
$post = $orders->the_post();
$order_id = get_the_ID();
$order = new WC_Order($order_id);
$items = $order->get_items();
foreach($items as $item) {
$search_order_item_sku = wp_get_post_terms($item['product_id'], 'search_sku');
foreach($search_order_item_sku as $search_sku) {
add_post_meta($order_id, "_search_sku", $search_sku->sku);
}
}
}
};
$search_fields[] = '_search_sku';
return $search_fields;
}
Я полагаю, что вопрос является значение $ search_sku в соответствии с «add_post_meta». Я также попробовал его с get_sku(), $ item ['sku'] без везения.
Любые предложения?
Я не понимаю. Похоже, вы не уверены, что $ search_sku-> sku или другие варианты даже имеют значение. Почему бы вам просто не запустить print_r ($ search_sku); умереть(); в вашем цикле foreach и посмотреть на него, чтобы определить, какое свойство объекта или массив необходимо использовать для ссылки? –
Посмотрите на функцию _shop_order_search_custom_fields() _ в /woocommerce/includes/admin/class-wc-admin-post-types.php (строка ~ 1284).Из того, что я могу сказать, инструкция SELECT там только ищет таблицы wp_posts и wp_postmeta. SKU являются специфичными для продукта. Таким образом, вам нужно каким-то образом создать свой собственный запрос для UNION в (и поиске) данных о продуктах. – Jibran
Уточнение: ... ищет только таблицы wp_posts и wp_postmeta для типов post _shop_order_. – Jibran