Включите кнопку действия «отменить» для определенных статусов заказа в WooCommerce - PullRequest
2 голосов
/ 04 апреля 2019

В Woocommerce My account Orders я использую следующий код, чтобы проверить, находятся ли заказы клиентов в состоянии «обработка» или «отправлено», и, если это так, отобразить кнопку для отмены заказа:

    if ($order_status == 'processing' || $order_status == 'shipped' ){
    echo '<a href="click=1" class="woocommerce-button button return">Return Order</a>';
        $order->update_status('cancelled');
}

С моим кодом заказ автоматически обновляется, чтобы отменить статус, когда статус был "обрабатывается" или "отправлен", и я не могу заставить кнопку работать.Я хочу, чтобы это произошло при нажатии кнопки, чтобы вызвать update_status.Я хочу, чтобы он отображался на странице заказа вида следующим образом enter image description here В данный момент порядок отмены не работает. Как это сделать?без использования Javascript?

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 04 апреля 2019

Следующий код включит кнопку катиона Woocommerce "отмена" в списке заказов в Моем аккаунте, также для processing или shipped статусов заказов (статусы Woocommerce по умолчанию здесь pendingи failed) :

add_filter( 'woocommerce_valid_order_statuses_for_cancel', 'custom_valid_order_statuses_for_cancel', 10, 1 );
function custom_valid_order_statuses_for_cancel( $statuses ){

    // Set HERE the order statuses where you want the cancel button to appear
    return array_merge( $statuses, array('processing', 'shipped'));
}

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

...