php - 如何检查 WooCommerce 产品是否属于特定类别并在特定 Hook 处回显图像?

标签 php wordpress woocommerce

我创建了一个 do_action('after_product_tabs) Hook ,我希望以编程方式回显特定产品类别下的图像,但我遇到了一个错误。我能够回显 div 作为操作 Hook 的测试,但我的条件逻辑被破坏了。任何帮助将非常感激:

这是函数:


function after_product_tabs() {
    do_action('after_product_tabs'); //creates the action hook
};

function display_prewired_image() {
    
    echo '<div class="test" style="clear: both;">'.$home_url.'</div>'; // This prints!
    
    if( has_term( 'strat_pickups', 'product_cat' ) ) {
        echo' <p>DEBUG ME</p>'; // This breaks
    }
}

add_action('after_product_tabs', 'display_prewired_image');

我也尝试过:

1.) 传入全局变量:

function display_prewired_image() {
    global $product;
    $prod_id = $product->get_id();

    if( has_term( 'strat_pickups', 'product_cat', $prod_id ) ) {
        echo' <p>DEBUG ME</p>';
    }
}

2.) 将条件逻辑从产品类别更改为 is_single(),这有效,所以我知道我的问题出在 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' );

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

最佳答案

试试这个,全局 $product 丢失

function display_prewired_image() {
    global $product;
    
    if ( is_a( $product, 'WC_Product' ) ) {
        // Get product ID
        $prod_id = $product->get_id();
        
        if ( has_term( 'strat_pickups', 'product_cat', $prod_id ) ) {
            echo 'DEBUG ME';
        } else {
            echo 'Category not found!';
        }
    } else {
        echo 'No product found!';
    }
}
//add_action( 'after_product_tabs', 'display_prewired_image' );
add_action( 'woocommerce_before_add_to_cart_form', 'display_prewired_image' );
add_action( 'woocommerce_after_single_product', 'display_prewired_image' );

关于php - 如何检查 WooCommerce 产品是否属于特定类别并在特定 Hook 处回显图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63900301/

相关文章:

php - 存档产品的 `<ul>` 的 Woocommerce 位置

php - Woocommerce Hook 函数的第二个参数返回 NULL 而不是对象

javascript - 是否可以将脚本 src 放入 function.php wordpress 上?

wordpress - 当我在桌面上打开 Google Adsense 时,它​​没有显示在我的网站上,但在智能手机上显示良好,因为我使用的是 "sahifa v4.0"wordpress 主题

php - Woocommerce 通过 ajax 更新结帐时的运输方式

woocommerce - 错误: An error occurred in the request and at the time were unable to send the consumer data

php - 解析非英语字符时出错

phpinfo() 显示已启用 cURL,但我仍然无法使用它

php - SQL:动态扩展搜索条件

php - 在 Phpseclib 中恢复下载