Wordpress 使用AJAX设置结帐数量
我正在尝试创建一个网站,使用AJAX更新购物车,而不是在WooCommerce中使用“更新购物车”按钮,但我遇到了一个问题,我不知道为什么 基本上,我有以下功能:Wordpress 使用AJAX设置结帐数量,wordpress,woocommerce,Wordpress,Woocommerce,我正在尝试创建一个网站,使用AJAX更新购物车,而不是在WooCommerce中使用“更新购物车”按钮,但我遇到了一个问题,我不知道为什么 基本上,我有以下功能: function kino_update_quantity() { $cart = WC()->cart; $value = $_POST['quantity']; $product = $_POST['product']; $cart->set_quantity($product, $va
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,它将按预期返回原始总数
我对此感到困惑,在这个问题上的任何帮助都会非常有用。在2.6.0之前。WooCommerce于2016年6月发布,更新购物车总数比原始海报提供的要复杂得多,需要创建自定义Ajax调用 现在,WooCommerce购物车页面在单击update cart按钮后使用Ajax更新购物车总数,您无需担心后端,只需隐藏update cart按钮,然后使用模板重定向钩子将触发此事件的脚本排入队列,依赖jQuery并确保此脚本仅在购物车页面上加载。为此,您可以使用我的免费插件,它还有一些方便的附加选项: 要使用CSS隐藏按钮,请使用class
。button
而不是tag,以使其与所有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>";
}
add_action('wp_head','hide_update_cart_button',20);
函数隐藏\更新\购物车\按钮(){
echo“.按钮[name='update_cart']{显示:无!重要;}”;
}
在这个回答中,我展示了排队文件中的js代码应该是什么:
2.6.0之前的版本。WooCommerce于2016年6月发布,更新购物车总数比原始海报提供的要复杂得多,需要创建自定义Ajax调用 现在,WooCommerce购物车页面在单击update cart按钮后使用Ajax更新购物车总数,您无需担心后端,只需隐藏update cart按钮,然后使用模板重定向钩子将触发此事件的脚本排入队列,依赖jQuery并确保此脚本仅在购物车页面上加载。为此,您可以使用我的免费插件,它还有一些方便的附加选项: 要使用CSS隐藏按钮,请使用class
。button
而不是tag,以使其与所有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>";
}
add_action('wp_head','hide_update_cart_button',20);
函数隐藏\更新\购物车\按钮(){
echo“.按钮[name='update_cart']{显示:无!重要;}”;
}
在这个回答中,我展示了排队文件中的js代码应该是什么: