【问题标题】:Add a button in checkout to empty cart and redirect to shop page in Woocommerce在结帐时添加一个按钮以清空购物车并重定向到 Woocommerce 中的商店页面
【发布时间】:2018-09-09 11:16:56
【问题描述】:

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

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

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

【问题讨论】:

    标签: php wordpress woocommerce cart checkout


    【解决方案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 文件中。经过测试并且可以工作。

    【讨论】:

    • @AndreasGrzybowski 如果这个答案回答了你的问题,你可以请accept回答,谢谢。
    • 感谢@LoicTheAztec!您的解决方案非常完美。
    猜你喜欢
    • 2017-04-20
    • 2014-08-30
    • 2021-04-27
    • 2013-03-13
    • 2018-05-12
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多