【问题标题】:WooCommerce Setting Quantity in Checkout Using AJAXWooCommerce 使用 AJAX 在结帐时设置数量
【发布时间】:2016-11-23 13:36:20
【问题描述】:

我正在尝试获取一个我正在开发的网站,以使用 AJAX 更新购物车,而不必使用 WooCommerce 中的“更新购物车”按钮,但我遇到了一个问题,我不知道为什么?

基本上我有以下功能:

function kino_update_quantity() {
    $cart = WC()->cart;
    $value = $_POST['quantity'];
    $product = $_POST['product'];
    $cart->set_quantity($product, $value, true);
    echo json_encode($cart->total);
    wp_die();
}

我希望这个函数从 $_POST 变量中获取产品和数量,设置数量,然后返回一个新的总价。

但是它返回的总数为 0,这显然是不正确的。如果我刷新页面,但总数已全部正确更新。此外,如果我在 set_quantity 调用上将布尔值设置为 false,它会按预期返回原始总数。

我对此感到困惑,对此问题的任何帮助都会很有用。

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    2.6.0 之前。 WooCommerce 于 2016 年 6 月发布,更新购物车总数比 Original Poster 提供的要复杂得多,并且需要创建自定义 Ajax 调用。

    现在 WooCommerce 购物车页面在单击更新购物车按钮后使用 Ajax 更新购物车总数,您无需担心后端,只需隐藏更新购物车按钮,然后使用模板将触发此事件的脚本加入队列重定向钩子,与 jQuery 的依赖关系,并确保此脚本仅在购物车页面上加载。为此,您可以使用我的免费插件,它还有一些方便的附加选项:

    Ajax Cart AutoUpdate for WooCommerce

    要使用 CSS 隐藏按钮,请使用 .button 类而不是标签,以使其与所有 WooCommerce 版本兼容:

    .button[name='update_cart'] {
        display: none!important;
    }
    

    或者隐藏带有 PHP 头部样式的按钮:

    add_action('wp_head', 'hide_update_cart_button', 20);
    function hide_update_cart_button() {
        echo "<style>.button[name='update_cart']{ display: none!important;}</style>";
    }
    

    在这个答案中,我展示了排队文件中的 js 代码应该是什么:

    How to update cart page product quantity automatically through AJAX

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2018-12-20
      • 2015-09-09
      • 2021-11-11
      • 2018-01-18
      • 2017-04-15
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多