在结帐中添加按钮以清空购物车,然后重定向到Woocommerce中的商店页面

时间:2018-09-09 11:16:57

标签: php wordpress woocommerce cart checkout

我想在Woocommerce的结帐按钮后面/下方有一个取消订单按钮。然后,在客户单击此按钮之后,购物车将为空,并重定向到商店页面。

我用woocommerce_cancelled_order尝试了模板中的几件事 在模板form-checkout.php中。

但是我无法弄清楚。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在结帐时,只有在客户单击“下订单”后,订单对象才存在,因此不能使用位于cancel_order()方法中的挂钩woocommerce_cancelled_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文件中。经过测试,可以正常工作。