Расширить поиск в списке заказов администратора WooCommerce из метаданных, когда HPOS включен

Мы создали настраиваемые поля, которые клиенты должны заполнить, чтобы получить свой заказ, поскольку они отправляются кому-то другому, а не тому, кто его заказал. Когда кто-то другой, кроме заказавшего его, запрашивает обновления, он всегда знает получателя, к сожалению, мы не можем найти эту информацию, поскольку это поля клиента, а WooCommerce по умолчанию не выполняет поиск метаданных. Мне нужен код, чтобы создать возможность поиска этих данных. Я знаю, что он находится в папке Order_meta, а не в пост-мета.

Нашел еще один пост, в котором использовались следующие коды:

add_filter( 'woocommerce_shop_order_search_fields', 
return $search_fields; 

(Тогда у меня было больше кода, но, поскольку я не знаю, как писать код, я не смог заставить его принять его, надеюсь, этого достаточно, чтобы показать, какая ключевая функция использовалась в другом сообщении.)

Я не уверен, как это связано с post_meta, но, возможно, поле поиска уже связано с мета-постом, проблема в том, что мои данные находятся в папке Orders_Meta. Это фрагмент кода, который позволит мне расширить этот поиск?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обновлено

Используйте следующее, которое будет работать с устаревшими заказами (тип публикации 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.

davidgleibs 27.05.2024 22:26

Другие вопросы по теме

Отображение общей цены и размеров продукта в зависимости от количества и категории продукта в WooCommerce
Автоматическое обновление корзины WooCommerce при изменении количества товаров в корзине
Замените кнопку «Добавить в корзину» в цикле кнопкой, связанной с продуктом, и другим текстом в зависимости от категорий
Динамическое отображение определенного варианта оплаты на основе адреса электронной почты или телефона для выставления счета при оформлении заказа Woocommerce
Исключить налоги на продукты в зависимости от категорий продуктов и страны в WooCommerce
Отображение значения пользовательского поля оформления заказа в заказах WooCommerce и уведомлениях по электронной почте
Добавьте настраиваемые поля в форму сброса пароля WooCommerce и сохраните данные
Создайте задание cron для обновления состояния запасов продуктов Woocommerce на основе настраиваемых полей
Как очистить нулевую цену продажи продуктов WooCommerce?
Изменить ссылку администратора продукта заказа товаров WooCommerce на постоянную ссылку продукта (интерфейс)