Мы создали настраиваемые поля, которые клиенты должны заполнить, чтобы получить свой заказ, поскольку они отправляются кому-то другому, а не тому, кто его заказал. Когда кто-то другой, кроме заказавшего его, запрашивает обновления, он всегда знает получателя, к сожалению, мы не можем найти эту информацию, поскольку это поля клиента, а WooCommerce по умолчанию не выполняет поиск метаданных. Мне нужен код, чтобы создать возможность поиска этих данных. Я знаю, что он находится в папке Order_meta, а не в пост-мета.
Нашел еще один пост, в котором использовались следующие коды:
add_filter( 'woocommerce_shop_order_search_fields',
return $search_fields;
(Тогда у меня было больше кода, но, поскольку я не знаю, как писать код, я не смог заставить его принять его, надеюсь, этого достаточно, чтобы показать, какая ключевая функция использовалась в другом сообщении.)
Я не уверен, как это связано с post_meta, но, возможно, поле поиска уже связано с мета-постом, проблема в том, что мои данные находятся в папке Orders_Meta. Это фрагмент кода, который позволит мне расширить этот поиск?






Обновлено
Используйте следующее, которое будет работать с устаревшими заказами (тип публикации WordPress «shop_order») и новым высокопроизводительным хранилищем заказов (HPOS).
Замените _meta_key на желаемый метаключ (чтобы расширить поиск по заказам администратора).
// Make order meta data searchable
add_filter( 'woocommerce_order_table_search_query_meta_keys', 'additional_wc_order_search_meta_keys' ); // HPOS
add_filter( 'woocommerce_shop_order_search_fields', 'additional_wc_order_search_meta_keys' ); // Legacy
function additional_wc_order_search_meta_keys( $meta_keys ){
$meta_keys[] = '_meta_key'; // One line for each meta key (if multiple)
return $meta_keys;
}
Код находится в файле function.php вашей дочерней темы (или в плагине).
Протестировано и работает на последней версии WooCommerce с включенным Высокопроизводительным хранилищем заказов (HPOS) или без него.
Для тех, кто смотрит на это, это ключ, который следует запомнить, когда он гласит: Заменить _meta_key. Мета-ключ не обязательно должен иметь _ перед ним. Для вставки кода мне удалось использовать бесплатную версию расширения Code Snippets.