Отключите обновления статуса заказа в примечаниях к заказу с помощью WooCommerce - PullRequest
1 голос
/ 16 июня 2019

Я хочу отключить все обновления статуса заказа, которые используются по умолчанию в каждом заказе Woocommerce , но все еще можно использовать ручные заметки, которые я добавляю сам, будь то публичные илиличные заметки.

Возможно ли это, возможно, с помощью крючка или чего-то подобного?

Вот так выглядят примечания к заказу в данный момент:

enter image description here

1 Ответ

0 голосов
/ 22 июня 2019

На самом деле нет никаких специфических сообщений для заметок заказа.Вместо этого вы можете использовать woocommerce_order_status_changed ловушку действия, которая запускается сразу после изменения статуса заказа, чтобы получить переведенное значение примечания к заказу.На следующем шаге вы должны использовать woocommerce_new_order_note_data фильтр-хук в функции, которая связана с действием woocommerce_order_status_changed, для сравнения и сброса примечания к заказу в случае изменения статуса.

Окончательный код будеткак то так:

add_action('woocommerce_order_status_changed', 'remove_order_status_change_notes', 10, 3);
function remove_order_status_change_notes($order_id, $status_from, $status_to)
{
    $transition_note = sprintf( __( 'Order status changed from %1$s to %2$s.', 'woocommerce' ), wc_get_order_status_name($status_from), wc_get_order_status_name($status_to) );
    add_filter('woocommerce_new_order_note_data', function ($args) use ($transition_note)
    {
        if ($args['comment_content'] ===  $transition_note) {
            return [];
        } else {
            return $args;
        }
    });
}

Проверено и работает

...