2016-08-31 4 views
1

Я хотел бы изменить функцию, содержащуюся в woocommerce. Это моя отредактирован функция (woocommerce/includes/wc-order-functions.php):Как удалить статус заказа WooCommerce?

function wc_get_order_statuses() { 
    $order_statuses = array(
     'wc-pending' => _x('Pending Payment', 'Order status', 'woocommerce'), 
     /*'wc-processing' => _x('Processing', 'Order status', 'woocommerce'),*/ 
     'wc-on-hold' => _x('On Hold', 'Order status', 'woocommerce'), 
     'wc-completed' => _x('Completed', 'Order status', 'woocommerce'), 
     'wc-cancelled' => _x('Cancelled', 'Order status', 'woocommerce'), 
     'wc-refunded' => _x('Refunded', 'Order status', 'woocommerce'), 
     'wc-failed'  => _x('Failed', 'Order status', 'woocommerce'), 
    ); 
    return apply_filters('wc_order_statuses', $order_statuses); 
} 

Я пытался загрузить новую функцию в function.php файл в детской теме, но не похоже на работу.

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

select option[value="wc-processing"] {display: none !important;} 
+0

Фильтр 'wc_order_statuses' существует, чтобы вы могли модифицировать массив' $ order_status' с вашими собственными значениями. Что вы добавляете к 'functions.php'? – helgatheviking

+0

hi edit code right this 'if (! Function_exists (' wc_get_order_statuses ')): function wc_get_order_statuses() {' – user3004586

+0

Можете ли вы изменить свой вопрос, чтобы объяснить, что вы пытаетесь добавить в 'wc_get_order_statuses()'? Это * не * подключаемая функция, поэтому вы не можете ее переопределить, вы должны отфильтровать результат. Я могу что-то предложить, когда узнаю, что вы пытаетесь. – helgatheviking

ответ

1

Вам необходимо использовать фильтры. Однажды, я написал то, что я думаю, что это хороший учебник объяснить WordPress filters

В этом случае конечный результат будет:

function so_39252649_remove_processing_status($statuses){ 
    if(isset($statuses['wc-processing'])){ 
     unset($statuses['wc-processing']); 
    } 
    return $statuses; 
} 
add_filter('wc_order_statuses', 'so_39252649_remove_processing_status'); 

Имейте в виду, что статус обработки по умолчанию состояние, когда создается заказ, поэтому вам придется внести другие изменения, чтобы компенсировать его удаление.

+0

Я люблю тебя! вы также можете заказать штаты? Я хочу, чтобы в первый раз в меню не появилось первое окно. Тем временем я изучаю вашу статью! – user3004586

+0

Если это ответ, отметьте зеленую галочку, чтобы «принять» ее. Вы можете делать любые манипуляции с массивами в массив '$ statuses', который вам нужен. Вы также можете полностью определить свой собственный массив. – helgatheviking

+0

Как я могу настроить заказ? @helgatheviking – user3004586