【发布时间】:2021-01-24 19:48:09
【问题描述】:
我是重定向到的商店页面上的“立即购买”按钮:
checkout/?add-to-cart={product_id}
它运作良好,但问题是用户结账时结帐他购物车上的所有产品,而不是他只选择的那个,所以我怎样才能将产品添加到购物车,并将用户重定向到付款/结帐一个 他点击“立即购买”的产品。
【问题讨论】:
标签: php wordpress woocommerce checkout
我是重定向到的商店页面上的“立即购买”按钮:
checkout/?add-to-cart={product_id}
它运作良好,但问题是用户结账时结帐他购物车上的所有产品,而不是他只选择的那个,所以我怎样才能将产品添加到购物车,并将用户重定向到付款/结帐一个 他点击“立即购买”的产品。
【问题讨论】:
标签: php wordpress woocommerce checkout
基本思路是先清除购物车,然后加入购物车并结帐。
使用明确的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 参数而不是默认参数的原因是让我们的代码首先清除购物车然后去结帐,而不是遇到可能同时触发空购物车和添加到购物车的动作问题.
【讨论】: