我正在开发一个电子商务网站。 我正在尝试使用ajax请求设置购物车项目数量。
我得到了这个
if (isset($_POST['product_id']) && isset($_POST['new_quantity'])) {
global $woocommerce;
$woocommerce->cart->set_quantity($_POST['product_id'], $_POST['new_quantity']);
}
我也试过
WC()->....
但它不起作用并抛出此错误
在null中调用成员函数needs_shipping() 在 1514
C:\ xampp \ htdocs \ findandcandy \ wp-content \ plugins \ woocommerce \ includes \ class-wc-cart.php
导致这种情况发生的原因是什么?
如果您需要我显示更多代码,请告诉我。 感谢
答案 0 :(得分:0)
我在第1514行添加了if(is_object($_product))
,它解决了我的问题。
答案 1 :(得分:0)
好的,您现在可以更新购物车商品的数量而无需通过AJAX刷新(:
我的functions.php看起来像这样
jQuery( function( $ ) {
$( document ).on( 'change', 'input.qty', function() {
var item_hash = $( this ).attr( 'name' ).replace(/cart\[([\w]+)\]\[qty\]/g, "$1");
var item_quantity = $( this ).val();
var currentVal = parseFloat(item_quantity);
function qty_cart() {
$.ajax({
type: 'POST',
url: cart_qty_ajax.ajax_url,
data: {
action: 'qty_cart',
hash: item_hash,
quantity: currentVal
},
success: function(data) {
$( '.view-cart-popup' ).html(data);
}
});
}
qty_cart();
});
});
我的购物车-qty-ajax.js看起来像这样。
{{1}}