如何在特定产品分类中输出短代码生成的按钮?
解决WooCommerce特定产品分类显示自定义按钮的问题
你的代码崩溃是因为语法错误加上用错了分类判断函数,以下是修复后的完整方案:
错误分析
- 函数
quote()没有用{}包裹代码逻辑,属于语法错误 - 错误使用
in_category():这个函数仅适用于WordPress默认文章分类,WooCommerce产品分类是自定义分类法product_cat,需用has_term()判断 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:获取当前产品页面的产品对象,用于获取产品IDhas_term():WooCommerce官方推荐的产品分类判断函数,参数依次为:- 目标分类的别名(slug)、ID或名称,支持数组传入多个分类
- 产品分类的分类法标识:
product_cat - 当前产品ID
- 仅当产品属于指定分类时,才会渲染短代码按钮
内容的提问来源于stack exchange,提问作者Tasos Seit
相关产品推荐
相关产品推荐

