如何从 WooCommerce 中删除数量参数 URL
How to remove quantity parameter from WooCommerce URL
我有一个 WooCommerce 网站,通常通过单击按钮或 link 将产品添加到购物车,其中 URL 指向 /cart/
URL 加上查询字符串 ?add-to-cart=7&quantity=1
。像这样:
http://example.com/cart/?add-to-cart=7&quantity=7
数字 add-to-cart=7
是产品的 ID,显然,quantity=1
是要添加到购物车的产品数量。
一切正常。
问题是用户在购物车屏幕中可能会决定增加或减少数量。当他们单击 "Update Cart" 时,无论数量 URL 参数设置的值如何,数量都会增加或减少。
所以如果 URL 参数中的 quantity=7
并且用户将购物车中的数量增加 1 UI 并点击 "Update Cart",突然数量变成 15 而不是比 8。那是因为它采用购物车 UI 中显示的原始数量值 7,为购物车 UI 更新添加 1,然后添加 quantity
[=39] 中的 7 =] 参数.
防止这种情况发生的最佳方法是什么?当用户第一次访问该页面时,我是否需要从会话中删除 URL 参数?我什至从哪里开始这样做?我开始写一个过滤器,但我显然不知道我在做什么。
// Correct the updated quantity by subtracting out the URL parameter already passed from the product page
function filter_woocommerce_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ) {
if(isset($_REQUEST['quantity']) && ($_REQUEST['quantity'] != "")) {
$product_url_param_qty = $_REQUEST['quantity']
$product_quantity = $product_quantity - $product_url_param_qty
}
return $product_quantity;
};
// add the filter
add_filter( 'woocommerce_cart_item_quantity', 'filter_woocommerce_cart_item_quantity', 10, 3 );
这是我为此工作的代码:
// Correct the updated quantity by subtracting out the URL parameter already passed from the product page
function filter_woocommerce_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ) {
if(isset($_REQUEST['quantity']) && ($_REQUEST['quantity'] != "")) {
$product_url_param_qty = $_REQUEST['quantity'];
$product_quantity = abs($product_quantity - $product_url_param_qty);
}
return $product_quantity;
};
// add the filter
add_filter( 'woocommerce_cart_item_quantity', 'filter_woocommerce_cart_item_quantity', 10, 3 );
我有一个 WooCommerce 网站,通常通过单击按钮或 link 将产品添加到购物车,其中 URL 指向 /cart/
URL 加上查询字符串 ?add-to-cart=7&quantity=1
。像这样:
http://example.com/cart/?add-to-cart=7&quantity=7
数字 add-to-cart=7
是产品的 ID,显然,quantity=1
是要添加到购物车的产品数量。
一切正常。
问题是用户在购物车屏幕中可能会决定增加或减少数量。当他们单击 "Update Cart" 时,无论数量 URL 参数设置的值如何,数量都会增加或减少。
所以如果 URL 参数中的 quantity=7
并且用户将购物车中的数量增加 1 UI 并点击 "Update Cart",突然数量变成 15 而不是比 8。那是因为它采用购物车 UI 中显示的原始数量值 7,为购物车 UI 更新添加 1,然后添加 quantity
[=39] 中的 7 =] 参数.
防止这种情况发生的最佳方法是什么?当用户第一次访问该页面时,我是否需要从会话中删除 URL 参数?我什至从哪里开始这样做?我开始写一个过滤器,但我显然不知道我在做什么。
// Correct the updated quantity by subtracting out the URL parameter already passed from the product page
function filter_woocommerce_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ) {
if(isset($_REQUEST['quantity']) && ($_REQUEST['quantity'] != "")) {
$product_url_param_qty = $_REQUEST['quantity']
$product_quantity = $product_quantity - $product_url_param_qty
}
return $product_quantity;
};
// add the filter
add_filter( 'woocommerce_cart_item_quantity', 'filter_woocommerce_cart_item_quantity', 10, 3 );
这是我为此工作的代码:
// Correct the updated quantity by subtracting out the URL parameter already passed from the product page
function filter_woocommerce_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ) {
if(isset($_REQUEST['quantity']) && ($_REQUEST['quantity'] != "")) {
$product_url_param_qty = $_REQUEST['quantity'];
$product_quantity = abs($product_quantity - $product_url_param_qty);
}
return $product_quantity;
};
// add the filter
add_filter( 'woocommerce_cart_item_quantity', 'filter_woocommerce_cart_item_quantity', 10, 3 );