Heim  >  Fragen und Antworten  >  Hauptteil

Passen Sie Abzeichen für bestimmte Produkt-IDs in WooCommerce-Archivschleifenelementen an

Ich versuche, ein Abzeichen mit dem Text „EXKLUSIV“ für ein bestimmtes Produkt auf der Store-Seite oder im Kategoriearchiv oder immer dann anzuzeigen, wenn dieses bestimmte Produktzykluselement angezeigt wird.

Aber ich habe versucht, _action vor _shop_loop_item hinzuzufügen, aber das Problem ist $product变量不包含该对象。我正在考虑 $product->get_id(), dass, wenn es mit der Produkt-ID übereinstimmt, etwas HTML auf dieses bestimmte Produktschleifenelement angewendet wird.

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>';
    }
} 

Übrigens sieht get_id() 无法执行,因为 $product leer aus. Hier stapele ich mich.

Ja, die Stelle, an der ich den HTML-Code drucken möchte, ist woocommerce_before_shop_loop_item – direkt vor dem Verkaufsabzeichen.

Irgendwelche Vorschläge zum Filtern von Schleifenelementen?

P粉087074897P粉087074897219 Tage vor298

Antworte allen(1)Ich werde antworten

  • P粉718165540

    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 '';
            }
        }
    }
    add_action( 'woocommerce_before_shop_loop_item', 'action_woocommerce_before_shop_loop_item', 10 );
    

    Antwort
    0
  • StornierenAntwort