• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Как добавить новый мультиязычный статус заказа

VadimS

Новичок
Здравствуйте , подскажите пожалуйста как добавить новый мультиязычный статус заказа и как спрятать статус заказа woocommerce? Спасибо
 

searchingman

Гуру
Местный
Переименовать один статус в другой или один убрать и новый добавить?
Если полностью новый статус, то кем он будет устанавливаться и в каком случае?
Какой статус нужно удалить?
 

VadimS

Новичок
Переименовать (но с переводом на разные языки), один просто убрать, и добавить новый (но с переводом на разные языки). Сайт мультиязычный.
 

VadimS

Новичок
Новый статус "ожидает проверки" будет выбирать администратор
 

VadimS

Новичок
В них нет возможности удалить или переименовать woocommerce статусов, они не поддерживают мультиязычность новых статусов
 

todo

Новичок
Я так понимаю, статусы должны соответствовать выбранному языку на сайте ?
 

artemkomarov

Специалист
Местный
Если хотите геморроя с совместимостью и дальнейшими обновлениями используйте фильтры
http://stackoverflow.com/questions/39252649/how-to-remove-woocommerce-order-status

Если просто вам по какой то причине мозолят глаза строчки в селекте просто скройте их!
HTML:
select option[value="wc-pending"] {
      display: none !important;
}
 

VadimS

Новичок
супер спасибо большое artemkomarov, целый день искал в интернете....

PHP:
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' );apply_filters( 'wc_order_statuses', $order_statuses );
 
Последнее редактирование:

VadimS

Новичок
с помощью этой функции можно добавить статус:
PHP:
<?php
 
// My new order statuses.
function register_my_new_order_statuses() {
    register_post_status( 'wc-status-name', array(
        'label'                     => _x( 'Status Name', 'Order status', 'textdomain' ),
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop( 'Status name <span class="count">(%s)</span>', 'Status names <span class="count">(%s)</span>', 'textdomain' )
    ) );
}
 
add_action( 'init', 'register_my_new_order_statuses' );
 
// Register in wc_order_statuses.
function my_new_wc_order_statuses( $order_statuses ) {
    $order_statuses['wc-status-name'] = _x( 'Status Name', 'Order status', 'textdomain' );
 
    return $order_statuses;
}
 
add_filter( 'wc_order_statuses', 'my_new_wc_order_statuses' );

а как имя статуса сделать мультиязычным, может есть идеи?
 
Сверху Снизу