识别需求
在 WooCommerce 集成 WordPress 主题中,更新标头购物车在不重新加载页面的情况下计算项目数是一个常见的挑战。 jQuery 提供了一个解决方案,但当可以添加多个数量的商品时就会出现问题。
利用 AJAX 检索总计数
从 PHP 动态检索购物车总数使用 jQuery 进行会话时,会创建一个 reloadCart.php 文件来回显值:
cart->get_cart_contents_count();
?>
AJAX 实现
但是,尝试使用 jQuery 的 get()、post() 或 ajax() 函数对此文件进行 AJAX 调用并不成功.
改进的方法
WooCommerce 提供了一个支持 Ajax 的专用 woocommerce_add_to_cart_fragments 操作挂钩,而不是依赖重新加载。
HTML 集成
使用唯一 ID 或类将购物车计数嵌入标头中:
$items_count = WC()->cart->get_cart_contents_count();
?>
PHP代码
在主题的function.php文件或插件中实现以下代码:
add_filter( 'woocommerce_add_to_cart_fragments', 'wc_refresh_mini_cart_count');
function wc_refresh_mini_cart_count($fragments){
ob_start();
$items_count = WC()->cart->get_cart_contents_count();
?>
如果使用类,请将 #mini-cart-count 替换为 .mini-cart-count。
jQuery 刷新
如果附加 jQuery 刷新为必填项:
$(document.body).trigger('wc_fragment_refresh');
或
$(document.body).trigger('wc_fragments_refreshed');
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3