Javascript 如何在每次WooCommerce购物车为空时运行脚本?

Javascript 如何在每次WooCommerce购物车为空时运行脚本?,javascript,php,wordpress,woocommerce,Javascript,Php,Wordpress,Woocommerce,在WooCommerce中,在空购物车挂钩上运行以下函数。所以从技术上讲,每次购物车空的时候都会运行。如果我在购物车为空时使用directlinkdotcom/cart/,则脚本可以完美地工作。但是,如果我从购物车中删除项目,使购物车中的内容变为空,则脚本不会按预期执行。我做错了什么 function mdoulos_show_custom_empty_cart() { ?> <script type="text/javascript" defer&g

在WooCommerce中,在空购物车挂钩上运行以下函数。所以从技术上讲,每次购物车空的时候都会运行。如果我在购物车为空时使用directlinkdotcom/cart/,则脚本可以完美地工作。但是,如果我从购物车中删除项目,使购物车中的内容变为空,则脚本不会按预期执行。我做错了什么

function mdoulos_show_custom_empty_cart() {
?>
      <script type="text/javascript" defer>
          let cartTitle = document.querySelector('.entry-title');
          let progressBar = document.querySelector('.pbar-cart');
          let customHeading = document.querySelector('.empty-heading');
          let customDescription = document.querySelector('.empty-description');
          let customTruck = document.querySelector('.empty-truck');
          let cartCategories = customTruck.nextElementSibling;
          let standardNotice = customTruck.nextElementSibling.nextElementSibling;

          cartTitle.style.display = "none";
          progressBar.style.display = "none";
          standardNotice.style.display = "none";
          customHeading.style.display = "block";
          customDescription.style.display = "block";
          customTruck.style.display = "block";
          cartCategories.style.display = "block";
          
      </script>


 <?php
    
}

remove_action( 'woocommerce_cart_is_empty', 'wc_empty_cart_message', 10 );
add_action( 'woocommerce_cart_is_empty', 'mdoulos_show_custom_empty_cart', 10 );
函数mdoulos\u show\u custom\u empty\u cart(){
?>
让cartitle=document.querySelector('.entry title');
让progressBar=document.querySelector('.pbar-cart');
让customHeading=document.querySelector('.empty heading');
让customDescription=document.querySelector('.empty description');
让customTruck=document.querySelector('.empty truck');
让cartCategories=customTruck.nextElementSibling;
让standardNotice=customTruck.nextElementSibling.nextElementSibling;
cartitle.style.display=“无”;
progressBar.style.display=“无”;
standardNotice.style.display=“无”;
customHeading.style.display=“block”;
customDescription.style.display=“块”;
customTruck.style.display=“块”;
cartCategories.style.display=“块”;

我认为您可能缺少在删除项目时在幕后发生的AJAX功能。在页面加载时运行代码与删除某些产品后运行的代码之间存在差异,最终导致出现一个空购物车。这解释了您在页面刷新时注意到的问题

除了您已经在使用的代码之外,您可能还需要以下内容:

功能我的购物车更新($item\u id){
//检查购物车内容是否为空
如果(WC()->cart->get\u cart\u contents\u count()==0){
//在这里你想干什么就干什么
// ...
}
}
//添加操作
添加操作('woocommerce\u cart\u item\u removed'、'my\u cart\u updated');
我认为这样做可能有效:

功能我的购物车更新($item\u id){
//检查购物车内容是否为空
如果(WC()->cart->get\u cart\u contents\u count()==0){
?>
让cartitle=document.querySelector('.entry title');
让progressBar=document.querySelector('.pbar-cart');
让customHeading=document.querySelector('.empty heading');
让customDescription=document.querySelector('.empty description');
让customTruck=document.querySelector('.empty truck');
让cartCategories=customTruck.nextElementSibling;
让standardNotice=customTruck.nextElementSibling.nextElementSibling;
cartitle.style.display=“无”;
progressBar.style.display=“无”;
standardNotice.style.display=“无”;
customHeading.style.display=“block”;
customDescription.style.display=“块”;
customTruck.style.display=“块”;
cartCategories.style.display=“块”;

您是否试图删除购物车的功能并使您的店铺将“添加到购物车”按钮重定向到结帐