猿问

避免在 WooCommerce 购物车中单击按钮时仅运行一次的功能

每次单击 update_cart 按钮时,我都尝试运行函数 cart_refresh_update_qty,但它仅在第一次起作用,如果我再次更新购物车,它将不会再次运行,我需要重新加载页面吗?


这是我的 WordPress 子主题函数文件中的一些自定义代码。


<?php

//

// Recommended way to include parent theme styles.

//  (Please see http://codex.wordpress.org/Child_Themes#How_to_Create_a_Child_Theme)

//  

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );

function theme_enqueue_styles() {

    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

    wp_enqueue_style( 'child-style',

    get_stylesheet_directory_uri() . '/style.css',

    array('parent-style')

    );

}

// register add to cart action

    add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_add_to_cart', 10 );

/*

global $product;       

if ( in_category('listone-sample')) {   

    add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_add_to_cart', 10 );

}

*/


add_action( 'woocommerce_before_shipping_calculator', 'cart_refresh_update_qty',10); 

function cart_refresh_update_qty() { 

   if (is_cart()) { 

      ?> 

      <script type="text/javascript"> 

     jQuery("input[name = 'update_cart']").on('click', function(){ 

         alert('Cart Qty Changed, Shipping total will be updated.');

     jQuery("[name='calc_shipping']").trigger("click"); 

    }); 

     </script> 

     <?php 

   } 

}

?>

我没有看到任何错误消息。


慕容3067478
浏览 136回答 1
1回答

阿波罗的战车

而是使用以下作为document.body委托事件:add_action( 'wp_footer', 'cart_refresh_update_qty');function cart_refresh_update_qty() {&nbsp; &nbsp; if (is_cart()) :&nbsp; &nbsp; ?>&nbsp; &nbsp; <script type="text/javascript">&nbsp; &nbsp; jQuery( function($){&nbsp; &nbsp; &nbsp; &nbsp; $(document.body).on('click', 'button[name="update_cart"]', function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log('Cart Qty Changed, Shipping total will be updated.');&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('button[name="calc_shipping"]').trigger('click');&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; });&nbsp; &nbsp; </script>&nbsp; &nbsp; <?php&nbsp; &nbsp; endif;}代码位于活动子主题(或活动主题)的 functions.php 文件中。测试和工作。现在它不仅会第一次运行......
随时随地看视频慕课网APP
我要回答