Добавьте кнопку в кассе, чтобы очистить корзину и перенаправить на страницу магазина в Woocommerce. - PullRequest
0 голосов
/ 09 сентября 2018

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

Я попробовал несколько вещей в шаблоне с woocommerce_cancelled_order в шаблоне form-checkout.php.

Но я не могу понять это. Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 09 сентября 2018

При оформлении заказа объект заказа не существует до тех пор, пока клиент не нажмет "Разместить заказ", поэтому вы не можете использовать хук woocommerce_cancelled_order, расположенный в методе cancel_order() ,

На странице оформления заказа вам нужно очистить корзину, используя вместо этого пользовательскую кнопку, и следующий код очистит корзину и перенаправит в магазин при нажатии «Отменить заказ»:

add_action( 'woocommerce_review_order_after_submit', 'checkout_reset_button', 10 );
function checkout_reset_button(){
    echo '<br><br>
    <a class="button alt" style="text-align:center;" href="?cancel=1">'.__("Cancel order", "woocommerce").'</a>';
}

add_action( 'template_redirect', 'checkout_reset_cart' );
function checkout_reset_cart() {
    if( ! is_admin() && isset($_GET['cancel']) ) {
        WC()->cart->empty_cart();
        wp_redirect( get_permalink( wc_get_page_id( 'shop' ) ) );
        exit();
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...