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

如何在特定产品分类中输出短代码生成的按钮?

解决WooCommerce特定产品分类显示自定义按钮的问题

你的代码崩溃是因为语法错误加上用错了分类判断函数,以下是修复后的完整方案:

错误分析

  1. 函数quote()没有用{}包裹代码逻辑,属于语法错误
  2. 错误使用in_category():这个函数仅适用于WordPress默认文章分类,WooCommerce产品分类是自定义分类法product_cat,需用has_term()判断
  3. in_category( $cat 'category-slug' )参数格式错误,缺少逗号且未定义变量$cat

修复后的代码

<?php
add_action('woocommerce_after_add_to_cart_button', 'quote');

function quote() {
    // 替换为你需要的产品分类别名(slug),多个分类用数组:['slug1', 'slug2']
    $target_cats = 'category-slug';
    
    // 获取当前产品对象
    global $product;
    $product_id = $product->get_id();
    
    // 判断产品是否属于目标分类
    if (has_term($target_cats, 'product_cat', $product_id)) {
        echo do_shortcode('[wpb-quote-button id="14"]');
    }
}
?>

代码说明

  • global $product:获取当前产品页面的产品对象,用于获取产品ID
  • has_term():WooCommerce官方推荐的产品分类判断函数,参数依次为:
    • 目标分类的别名(slug)、ID或名称,支持数组传入多个分类
    • 产品分类的分类法标识:product_cat
    • 当前产品ID
  • 仅当产品属于指定分类时,才会渲染短代码按钮

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:55:18