You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce触发jQuery代码实现特定分类商品加购后弹窗的故障排查

问题原因
  • 核心语法错误:PHP代码块内直接嵌套<script>标签没有使用输出语句,PHP会将未被包裹的HTML内容识别为无效PHP语法,直接触发致命错误导致站点无法访问。
  • 潜在执行异常:未做目标元素存在性判断,若页面不存在ID为pop-up的元素,JS逻辑会无效执行,弹窗无法正常触发。
修复方案

将原有代码替换为以下内容即可:

add_action( 'woocommerce_before_checkout_form', 'check_category_in_cart' );
     
function check_category_in_cart() {
   $cat_in_cart = false;

   foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
      // 此处将test替换为你需要匹配的产品分类别名
      if ( has_term( 'test', 'product_cat', $cart_item['product_id'] ) ) {
         $cat_in_cart = true;
         break;
      }
   }

   if ( $cat_in_cart ) {
      // 闭合PHP标签后输出JS代码,避免语法错误
?>
<script>
    jQuery(document).ready(function($) { 
        // 先判断目标按钮是否存在,避免无效执行
        if ($('#pop-up').length) {
            $('#pop-up').trigger('click');
        }
    });
</script>
<?php
   }
}
使用说明
  • 替换代码中test参数为你实际需要判断的产品分类别名
  • 确认站点内触发弹窗的按钮ID为pop-up,若ID不同需同步修改JS代码中的选择器

内容的提问来源于stack exchange,提问作者bytris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:39:00