我正在嘗試在商店頁面或類別存檔中或每當顯示此特定產品循環項目時向特定產品顯示帶有「獨家」文字的徽章。
但是我嘗試在_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粉7181655402024-02-18 11:58:24
預設情況下,
$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 );