Как удалить мета-поля со страниц редактирования заказа WooCommerce, когда HPOS включен

Как удалить мета-поля определенных заказов со страниц редактирования заказов.

Следующие действия работают с устаревшими заказами, но не с высокопроизводительным хранилищем заказов (HPOS):

remove_meta_box( 'woocommerce-order-items', 'shop-order', 'normal' ); // Removes products/items meta box for technicians
remove_meta_box( 'woocommerce-order-actions', 'shop-order', 'normal' ); // Removes products/items meta box for technicians
remove_meta_box( 'woocommerce-order-notes', 'shop-order', 'normal' ); // Removes order note meta box for technicians
remove_meta_box( 'order_custom', 'shop-order', 'normal' );

Обновлено:

Я попробовал следующее:

function itsm_add_meta_boxes() {
    echo '<style>
    #woocommerce-order-items, #woocommerce-order-actions, #wpo_wcpdf-data-input-box, #woocommerce-order-notes, #order_custom { 
        display: none !important; 
    }
    </style>';
}
add_action( 'add_meta_boxes', 'itsm_add_meta_boxes', 11 );

Он просто скрывает их, но на самом деле не удаляет.

Есть еще предложения?

Стоит ли изучать 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
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Для удаления метабоксов высокопроизводительного хранилища заказов (также совместимых с устаревшими заказами) вам нужно использовать что-то немного другое, поскольку второй аргумент «shop-order» работает только для устаревших заказов.

Обратите внимание, что по умолчанию в WooCommerce действия заказа и примечания к заказу третий аргумент — «сторона» (но не «обычный»).

Попробуйте следующее:

use Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController;

add_action( 'add_meta_boxes', 'admin_order_custom_metabox', 100 );
function admin_order_custom_metabox() {
    $screen = class_exists( '\Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController' ) && wc_get_container()->get( CustomOrdersTableController::class )->custom_orders_table_usage_is_enabled()
        ? wc_get_page_screen_id( 'shop-order' )
        : 'shop_order';

    remove_meta_box( 'woocommerce-order-items', $screen, 'normal' ); // Removes Order items meta box
    remove_meta_box( 'woocommerce-order-actions', $screen, 'side' ); // Removes products/items meta box
    remove_meta_box( 'woocommerce-order-notes', $screen, 'side' ); // Removes order note meta box
    remove_meta_box( 'order_custom', $screen, 'normal' ); // Removes Custom fields meta box
}

Код находится в файле function.php вашей дочерней темы (или в плагине). Протестировано и работает.

Если вы вручную изменили расположение некоторых метабоксов с помощью перетаскивания, вам нужно будет настроить третий аргумент на «нормальный» или «сторона».

Еще один вопрос по теме: есть ли способ скрыть мета-поле для определенного статуса заказа? У меня есть несколько пользовательских статусов, для которых я хочу скрыть некоторые мета-поля.

atmomin2003 30.08.2024 19:34

@ atmomin2003 Да, это возможно, но на него нельзя ответить в комментарии: поэтому вам следует задать новый вопрос, указав свою собственную попытку кода (даже если это касается устаревших заказов и/или если это не работает).

LoicTheAztec 30.08.2024 20:56

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