繁体   English   中英

自定义woocommerce购物车AJAX更新

[英]Custom woocommerce Cart AJAX Update

我正在尝试AJAX化我的Woocommerce购物车,但我很难,我真的找不到任何帮助或文档(我搜索了几天)。 所以任何帮助都是非常感激的。

我尝试了两种方法:

  1. 自定义AJAX函数更改数量时(在购物车页面上),会触发一个AJAX调用( - > admin-ajax.php),它会触发我的functions.php中的一个函数:

     function setQty() { global $woocommerce; WC()->cart->set_quantity( $_POST['itemKey'], $_POST['quantity'], true); echo json_encode(array('totalCount'=>WC()->cart->get_cart_contents_count(), 'total'=>$woocommerce->cart->total)); } 

回显的JSON字符串包含购物车中正确数量的商品,但总金额为0.当我重新加载页面时,不会保存更改的数量。 与...相同

WC()->cart->add_to_cart($product_id, $quantity) or adding WC()->cart->calculate_totals()

我试过这种方式,所以我可以格式化我需要更新我的购物车我想要的值。 为了让购物车更新保存,我在这里缺少什么?

  1. woocommerce内置AJAX更新功能不会触发,因为我有一个自定义设计,我认为它需要一个特定的HTML结构才能正常工作,但我找不到任何文档或示例。 另外,我需要以自定义格式更新的值(总金额,总计数等)。 到目前为止,它只是将“更新的片段”作为预定义的html代码传递给我。 我如何构建我的cart.php的HTML代码,ajax更新将起作用? 我如何改变返回值?

非常感谢你提前。

它是您试图创建的迷你购物车/柜台还是整页以查看/删除产品?

如果你想要一个小型车/车柜台,我创建了一个回购协议https://github.com/samisonline/ajax_cart为您在烤的基本功能。这可能不是你确切的格式”重新寻找,但它显示了工作中的woocommerce功能,以及AJAX工作所需的标记!

我不确定你想要更新什么,但我想你想更新一揽子产品的总数量。

此示例替换并更新HTML

假设您有一个div,您的总金额在:

<div class="cart-totals"><?php echo WC()->cart->get_cart_contents_count(); ?></div>

将其添加到您的functions.php:

// Mini Cart update with AJAX
add_filter( 'woocommerce_add_to_cart_fragments', 'custom_cart_count_fragments', 10, 1 );
function custom_cart_count_fragments( $fragments ) {
    $fragments['div.cart-totals'] = '<div class="cart-totals">' . WC()->cart->get_cart_contents_count() . '</div>';
    return $fragments;
}

注意:您正在替换而不是添加

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM