【问题标题】:Checkout Only One Product Woocommerce [closed]仅结帐一种产品 Woocommerce [关闭]
【发布时间】:2021-01-24 19:48:09
【问题描述】:

我是重定向到的商店页面上的“立即购买”按钮:

checkout/?add-to-cart={product_id}

它运作良好,但问题是用户结账时结帐他购物车上的所有产品,而不是他只选择的那个,所以我怎样才能将产品添加到购物车,并将用户重定向到付款/结帐一个 他点击“立即购买”的产品。

【问题讨论】:

    标签: php wordpress woocommerce checkout


    【解决方案1】:

    基本思路是先清除购物车,然后加入购物车并结帐。

    使用明确的cart code 并稍作修改会对您有所帮助:

    添加到您的 function.php 文件功能以在任何 url 上启用参数 ?clear-cart 以清除购物车,现在我们可以稍微修改代码以使用 product-id 读取下一个自定义参数 ?my-add-to-cart 并添加到购物车。

    add_action( 'init', 'woocommerce_clear_cart_url' );
    function woocommerce_clear_cart_url() {
        if ( isset( $_GET['clear-cart'] ) ) {
            global $woocommerce;
            $woocommerce->cart->empty_cart();
        }
       if ( isset( $_GET['my-add-to-cart'] ) ) {
            wp_redirect(home_url('/checkout?add-to-cart='.$_GET['my-add-to-cart']));
        }
    }
    

    您现在可以将“立即购买”按钮上的链接设置为checkout/?clear-cart&add-to-cart={product_id}

    我使用自定义 my-add-to-cart 参数而不是默认参数的原因是让我们的代码首先清除购物车然后去结帐,而不是遇到可能同时触发空购物车和添加到购物车的动作问题.

    【讨论】:

    • 感谢您的回答,但是这样客户将失去他之前在购物车中的所有产品,对吗?
    • 是的,绝对......
    • 你可以做一些事情,比如暂时将购物车内容保存在数据库中并清除购物车和结帐......然后在订单完成后将物品添加回购物车......但这会稍微复杂...或者,如果购物车在清空之前有物品,您可以将物品从购物车移动到愿望清单(使用 YITH 愿望清单插件)。
    猜你喜欢
    • 2017-03-12
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2015-12-30
    • 2013-02-22
    相关资源
    最近更新 更多