【问题标题】:How to remove quantity parameter from WooCommerce URL如何从 WooCommerce URL 中删除数量参数
【发布时间】:2017-07-18 17:11:49
【问题描述】:

我有一个 WooCommerce 网站,通常通过单击一个按钮或带有指向 /cart/ URL 的 URL 的链接将产品添加到购物车,并在其上附加查询字符串 ?add-to-cart=7&quantity=1。像这样:

http://example.com/cart/?add-to-cart=7&quantity=7

数字add-to-cart=7 是产品的ID,显然quantity=1 是要添加到购物车的产品数量。

一切正常。

问题是用户在购物车屏幕中可能决定增加或减少数量。当他们单击“更新购物车”时,无论数量 URL 参数的值设置为多少,数量都会增加或减少。

所以如果 URL 参数中的quantity=7 并且用户在购物车 UI 中将数量增加 1 并单击“更新购物车”,突然数量是 15 而不是 8。那是因为它取了原来的数量值 7显示在购物车 UI 中,为购物车 UI 更新添加 1,然后从 quantity URL 参数中添加 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 );

【问题讨论】:

    标签: wordpress filter woocommerce hook url-parameters


    【解决方案1】:

    这是我为此工作的代码:

    // 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 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 2014-09-08
      • 2014-10-25
      • 1970-01-01
      相关资源
      最近更新 更多