Je développe woocommerce sur WordPress et je souhaite créer des badges de vente mais ignorer le prix de vente (uniquement le prix régulier).
J'ai essayé plusieurs fois mais le "Badge Promotionnel" n'apparaît que lorsque je mets le numéro sur le prix de vente du produit
J'utilise le code ci-dessous
add_filter('woocommerce_sale_flash', 'woocommerce_custom_sale_text', 10, 3); function woocommerce_custom_sale_text($text, $post, $_product) { global $post,$product; if ( ! $product->is_in_stock() ) return; $sale_price = get_post_meta( $product->id, '_price', true); $regular_price = get_post_meta( $product->id, '_regular_price', true); if (has_term('one', 'product_cat', $product->ID)) { return '<span class="onsale">one</span>'; } elseif (has_term('two', 'product_cat', $product->ID)) { return '<span class="onsale">two</span>'; } elseif (has_term('three', 'product_cat', $product->ID) || empty($sale_price)) { return '<span class="onsale">three</span>'; } return '<span class="onsale">Sale</span>'; }
Le filtre lui-même n'est appliqué que lorsque le produit est promu.
Vous devez couvrir l'action de vente flash qui se produit avant de vérifier si le produit est en vente.
Tout d’abord, retirez le crochet principal de la vente flash.
Ensuite, ajoutez votre fonctionnalité de vente personnalisée.
Alors utilisez
echo
而不是return