php - 在 Woocommerce 中使用 ajax 更新购物车小部件中的详细信息,无需加载页面

标签 php wordpress woocommerce

我正在开发一个 woocommerce 小部件,它将显示购物车小计、购物车总计、购物车商品和运输总计,其工作正常,但我想要做的是每当我在运输方式之间切换时更新运输总计和购物车总计使用ajax。目前它仅在页面重新加载后自行更新。是否有任何钩子(Hook)可用于此目的?

最佳答案

您可以使用 add_to_cart_fragments 过滤器来执行此操作。

我的实现仅更新使用 AJAX 显示的项目数,但它也可用于更新总数等。这是模板中显示购物车详细信息的正常代码:

<a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>">
(<?php echo sprintf(_n('%d item', '%d items', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count); ?>)</a>

这是在functions.php中添加的过滤器:

// Update items in cart via AJAX
add_filter('add_to_cart_fragments', 'woo_add_to_cart_ajax');
function woo_add_to_cart_ajax( $fragments ) {
    global $woocommerce;
    ob_start();
    ?>
        <a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>">(<?php echo sprintf(_n('%d item', '%d items', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count); ?>)</a>
    <?php
    $fragments['a.cart-contents'] = ob_get_clean();
    return $fragments;
}

肯定有一些关于这方面的资源/文档 - 我记得在编写这段代码时使用了一些资源/文档,但它们很难通过谷歌搜索。

关于php - 在 Woocommerce 中使用 ajax 更新购物车小部件中的详细信息,无需加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16337057/

相关文章:

php - 如何显示MySQL中的字段?

javascript - 添加子菜单后,Ubermenu 元素不可点击

php - 总结 Laravel 集合中所有 "amount"字段

wordpress - 修改 woocommerce order.php 列

php - 从 WooCommerce 中的变体产品获取自定义字段值和最高价格

php - 在电子邮件通知上显示自定义结帐账单字段

woocommerce - 更改 woocommerce/产品类别页面的背景

php - 如何在mysql中连接4个表?

javascript - 我的 AJAX URL 安全吗?

php - 在 WooCommerce 中按产品 ID 显示带有短代码的产品价格