为 WooCommerce 存档循环项目上的特定产品 ID 自定义徽章
P粉087074897
P粉087074897 2024-02-17 13:54:07
0
1
382

我正在尝试在商店页面或类别存档中或每当显示此特定产品循环项目时向特定产品显示带有“独家”文本的徽章。

但是我尝试在_shop_loop_item之前添加_action,但问题是$product变量不包含该对象。我正在考虑 $product->get_id() ,如果它与产品 id 匹配,则将一些 HTML 应用于该特定产品循环项目。

add_action('woocommerce_before_shop_loop_item', 'add_custom_badge', 1);

function add_custom_badge( $product ) {
    if ( $product->get_id() === 123 ) {
        echo '<script>console.log("add_custom_badge")</script>';
    }
} 

顺便说一句,get_id() 无法执行,因为 $product 看起来是空的。这就是我堆叠的地方。

是的,我想要打印 HTML 的位置是 woocommerce_before_shop_loop_item - 就在销售徽章之前。

关于如何过滤循环项有什么建议吗?

P粉087074897
P粉087074897

全部回复(1)
P粉718165540

默认情况下,

$product 不会传递到 woocommerce_before_shop_loop_item 挂钩处的回调函数。这就是为什么它不起作用

改用global $product

所以你得到:

function action_woocommerce_before_shop_loop_item() {
    global $product;

    // Is a WC product
    if ( is_a( $product, 'WC_Product' ) ) {
        if ( $product->get_id() == 123 ) {
            echo 'sssccc';
        }
    }
}
add_action( 'woocommerce_before_shop_loop_item', 'action_woocommerce_before_shop_loop_item', 10 );
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板