Я пытаюсь удалить 3 статуса заказа из woocommerce: wc-pending, wc-refunded и wc-fail.
Я пытался удалить их из /wc-order-functions.php
, но когда я сделал, я не мог больше размещать заказ. Вместо этого возвращается ошибка 400, что означает, что он не может вставить заказ в базу данных.
У кого-нибудь есть решение для этого? Как статусы заказа могут быть удалены или отключены?
Пожалуйста, проверьте FAQ в расширении Woo здесь:
http://docs.woothemes.com/document/woocommerce-order-status-manager/
В: Почему я не могу удалить статусы основного заказа, как я могу с пользовательскими статусами?
A: Все основные статусы заказов, даже те, которые вы обычно не используете в своем рабочем процессе, используются плагинами. Поскольку эти плагины ожидают наличия основных статусов заказов, мы не можем их удалить, чтобы не нарушать плагины, такие как платежные шлюзы, которые зависят от них.
При желании вы можете отредактировать имена для этих статусов, но не можете удалить эти статусы или изменить слагов.
Старый вопрос, но решил, что я отвечу на него за вас!
Чтобы просто скрыть параметры выбора, используйте эту CSS:
select option[value="wc-pending"],
select option[value="wc-refunded"],
select option[value="wc-failed"]
{
display: none !important;
}
Возможно, вам не удастся удалить статусы основных заказов по очень веским причинам, объясненным @SweetCoder, однако вы можете скрыть их. Ваша функция будет выглядеть примерно так:
function hide_wc_order_statuses( $order_statuses ) {
// Hide core statuses
unset( $order_statuses['wc-refunded'] );
unset( $order_statuses['wc-failed'] );
unset( $order_statuses['wc-on-hold'] );
unset( $order_statuses['wc-cancelled'] );
unset( $order_statuses['wc-pending'] );
unset( $order_statuses['wc-processing'] );
unset( $order_statuses['wc-completed'] );
return $order_statuses;
}
add_filter( 'wc_order_statuses', 'hide_wc_order_statuses' );