在ajax上显示甜蜜警报添加到购物车以获取特定的Woocommerce购物车项目计数

问题:

我正在尝试在调用AJAX时显示JavaScript警报。 但是,当我刷新页面时,警报才会成功触发。

这是触发javascript IF购物车项> 2的函数的开始:

因此,如果Woocommerce购物车中有超过2个项目,请运行Javascript警报…

add_action( 'wp_footer', 'trigger_popup' ); function trigger_popup() { global $woocommerce; $maximum_num_products = 2; $cart_num_products = WC()->cart->get_cart_contents_count(); if( $cart_num_products > $maximum_num_products ) { 

然后我试图在调用ajax时显示javascript警报:

我研究了全局Ajax事件处理程序 ,我认为$ .ajaxComplete是什么需要,但它不会触发javascript。 我也试图设置URL Ajax JS Handler以试图触发警报……

  ?>   //EXECUTE FOR AJAX? $( document ).ajaxComplete(function(){ //URL NEEDED FOR AJAX TO WORK? url: '/?wc-ajax=add_to_cart', // ALERT CODE HERE swal( 'You added all the items!', 'Proceed to checkout?', 'success') //END OF ALERT CODE })(jQuery);  <?php } } 

作为FYI,这是Javascript的工作版本触发警报ON PAGE REFRESH,但不是AJAX:

如果购物车中有超过2个商品,我会刷新页面。 这成功触发了javascript警报。

  ?>   swal( 'You added all the items!', 'Proceed to checkout?', 'success')  <?php } } 

如何在Ajax上触发Javascript警报或在每次调用Ajax时检查是否满足IF条件?

谢谢!

尝试以下代码,其中jQuery代码将在“added_to_cart”委托事件上发送ajax请求。 在该请求上,php将获得购物车项目计数并将其返回给jQuery。 如果该计数满足某些条件,它将显示您的甜蜜警报消息:

 // WordPress Ajax: Get different cart items count add_action( 'wp_ajax_nopriv_checking_cart_items', 'checking_cart_items' ); add_action( 'wp_ajax_checking_cart_items', 'checking_cart_items' ); function checking_cart_items() { if( isset($_POST['added']) ){ // For 2 different cart items echo json_encode( sizeof( WC()->cart->get_cart() ) ); } die(); // To avoid server error 500 } // The Jquery script add_action( 'wp_footer', 'custom_popup_script' ); function custom_popup_script() { ?>    

代码位于活动子主题(或活动主题)的function.php文件中。 经过测试和工作。

在此处输入图像描述