Php 如何检查WooCommerce产品是否属于特定类别,并在特定挂钩处回显图像?

Php 如何检查WooCommerce产品是否属于特定类别,并在特定挂钩处回显图像?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我已经创建了一个do\u action('after\u product\u tabs)hook,我希望通过编程来响应特定产品类别下的图像,但我遇到了一个bug。我能够呼出一个div作为对动作挂钩的测试,但是我的条件逻辑被破坏了。如有任何帮助,我们将不胜感激: 下面是函数: 产品标签()后的函数{ do_action('after_product_tabs');//创建动作挂钩 }; 功能显示\u预连线\u图像(){ echo'.$home\u url.';//这是打印出来的! 如果(有术语(

我已经创建了一个
do\u action('after\u product\u tabs)
hook,我希望通过编程来响应特定产品类别下的图像,但我遇到了一个bug。我能够呼出一个
div
作为对动作挂钩的测试,但是我的条件逻辑被破坏了。如有任何帮助,我们将不胜感激:

下面是函数:

产品标签()后的函数{
do_action('after_product_tabs');//创建动作挂钩
};
功能显示\u预连线\u图像(){
echo'.$home\u url.';//这是打印出来的!
如果(有术语('strat\u pickups','product\u cat')){
echo“调试我”

;//这会中断 } } 添加动作(“在产品选项卡之后”、“显示预连线图像”);
我也试过: 1.)传入全局变量:

功能显示\u预连线\u图像(){
全球$产品;
$prod_id=$product->get_id();
if(具有术语('strat_pickups'、'product_cat'、$prod_id)){
回显“调试我”

; } }
2.)将条件逻辑从product categories(产品类别)更改为
是一个单一的(
),这是可行的,因此我知道我的问题在
strat_pickups
的逻辑中:

function display_prewired_image() {
    global $product;
    
    if ( is_a( $product, 'WC_Product' ) ) {
        // Get product ID
        $prod_id = $product->get_id();
        
        if( is_single('354') ) {
            echo '<h1 style="red!important; clear: both;">DEBUG ME</h1>';
        }
    } else {
        echo 'No product found!';
    }
}
add_action( 'after_product_tabs', 'display_prewired_image' );
功能显示\u预连线\u图像(){
全球$产品;
如果(是($product,'WC\U product')){
//获取产品ID
$prod_id=$product->get_id();
如果(是单个('354')){
回声“调试我”;
}
}否则{
回显“未找到产品!”;
}
}
添加操作(“在产品选项卡之后”、“显示预连线图像”);


有关更多信息,我正在Woocommerce中自定义tabs.php模板。是否无法访问$product变量?

请尝试此操作,因为缺少全局
$product

功能显示\u预连线\u图像(){
全球$产品;
如果(是($product,'WC\U product')){
//获取产品ID
$prod_id=$product->get_id();
if(具有术语('strat_pickups'、'product_cat'、$prod_id)){
回声“调试我”;
}否则{
回显“未找到类别!”;
}
}否则{
回显“未找到产品!”;
}
}
//添加操作(“在产品选项卡之后”、“显示预连线图像”);
添加操作(“添加到购物车表单之前的woocommerce”、“显示预连线图像”);
添加动作('woocommerce'u在单个产品之后,'display'u prewired'u image');

谢谢您的帮助。这是你头撞墙的一瞬间。产品类别不是strat_皮卡,而是strat皮卡。。。那也没用。我没有提到我尝试使用
$product
变量。作为测试,我只是在单个产品之后将操作挂钩更改为
woocommerce\u,但仍然没有任何结果-这很奇怪。body类中的产品类别是
product\u cat\u strat-pickups
,如果这对任何人都有帮助的话。在添加到购物车表单之前,我使用
woocommerce\u修改了代码(单个产品页面),它可以正常工作,因此如果仍然不能工作,问题就出在其他地方,有什么方法可以将错误打印到控制台上,比如在jsforphp中?我很想了解更多幕后发生的事情。是的,在stackoverflow上有这样的例子,你的问题是关于你的代码不工作,根据我目前的回答,你应该能够找到问题所在。我有一个定制的tabs.php模板,正在使用一个定制的动作挂钩。