php – 在Woocommerce中Ajaxify标题购物车项目数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 在Woocommerce中Ajaxify标题购物车项目数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2478字,纯文字阅读大概需要4分钟。
内容图文
![php – 在Woocommerce中Ajaxify标题购物车项目数](/upload/InfoBanner/zyjiaocheng/710/7f62045f065c409cbd7edda5307661bd.jpg)
我正在为wordpress创建一个自定义的woocommerce集成主题.
我在顶部有一个blob,显示购物车中的商品总数,我想使用Jquery更新此blob(无需重新加载页面)我可以通过获取当前数字来增加商品数量blob并且每次点击增加1,问题是添加到购物车有一个选项,可以选择要添加到购物车的项目数.因此,如果我选择3个项目并单击按钮,则blob仅增加1.
我可以创建一种方法来获取从前端添加的项目数量,但我认为这是不必要的.我希望能够使用jquery从PHP会话中获取总数,这样每次点击添加项目或删除项目,我都会从服务器动态获取当前数字.
到目前为止我所做的是创建一个reloadCart.php文件,回显购物车总数,这里是代码
<?php
require('../../../wp-blog-header.php');
global $woocommerce;
echo $woocommerce->cart->get_cart_contents_count();
?>
当我访问这个页面时,它回显了当前的项目总数,但是我无法从jquery获取这些数据,自从我上次使用AJAX以来已经有一段时间我也没有在Web项目上工作很长时间,但是我记得,我正在制作的AJAX调用是正确的.
我已经尝试使用jquery的get()和post()函数以及普通的ajax()函数,但似乎没有任何工作.有人可以帮忙吗?
$(".ajax_add_to_cart").click(function () {
/*$("#bag-total").html(function () {
var bagTotal = parseInt($(this).html());
return ++bagTotal;
});*/
alert('clicked');
$.get("<?php echo get_template_directory_uri(); ?>/reloadCart.php", function(data){
alert("Data: " + data);
});
});
评论的行是我之前使用的行,通过从前端获取当前购物车编号来添加购物车总数.
任何帮助,将不胜感激.提前致谢!
解决方法:
您不应该使用任何重新加载来更新购物车内容计数…相反,您应该使用由Ajax驱动的专用woocommerce_add_to_cart_fragments操作挂钩.
1)要刷新的HTML:首先,在主题的header.php文件中,您应该将购物车计数嵌入到具有已定义的唯一ID(或类)的特定html标记中,例如:
?>
<div id="mini-cart-count"></div>
<?php
要么:
echo '<div id="mini-cart-count"></div>';
2)代码:
add_filter( 'woocommerce_add_to_cart_fragments', 'wc_refresh_mini_cart_count');
function wc_refresh_mini_cart_count($fragments){
ob_start();
?>
<div id="mini-cart-count">
<?php echo WC()->cart->get_cart_contents_count(); ?>
</div>
<?php
$fragments['#mini-cart-count'] = ob_get_clean();
return $fragments;
}
如果你在html标签中使用了一个类,你将用[‘.mini-cart-count’]替换[‘#mini-cart-count’].此挂钩还用于刷新迷你购物车内容.
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中.
Since few years
global $woocommerce;
+$woocommerce->cart
is outdated and replaced byWC()->cart
to access WooCommerce cart object.
如果您需要jQuery强制刷新该计数,您可以尝试wc_fragment_refresh或wc_fragments_refreshed委托事件,例如:
$(document.body).trigger('wc_fragment_refresh');
要么:
$(document.body).trigger('wc_fragments_refreshed');
内容总结
以上是互联网集市为您收集整理的php – 在Woocommerce中Ajaxify标题购物车项目数全部内容,希望文章能够帮你解决php – 在Woocommerce中Ajaxify标题购物车项目数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。