我正在 WordPress 上開發 woocommerce,我想製作一些銷售徽章,但忽略銷售價格(只有常規價格)。
我已經嘗試過幾次,但只有當我將數字放在產品的促銷價格上時,「促銷徽章」才會出現
我使用下面的程式碼
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>'; }
P粉7138664252024-01-08 13:15:16
過濾器本身僅在產品促銷時套用。
您需要覆蓋在檢查產品是否在促銷之前發生的閃購作業。
首先,刪除核心的閃購掛鉤。
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10 ); remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 );
然後,新增您的自訂銷售功能。
add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_custom_sale_text', 10 ); add_action( 'woocommerce_before_single_product_summary', 'woocommerce_custom_sale_text', 10 );
然後使用echo
而不是return
function woocommerce_custom_sale_text() { 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)) { echo 'one'; } elseif (has_term('two', 'product_cat', $product->ID)) { echo 'two'; } elseif (has_term('three', 'product_cat', $product->ID) || empty($sale_price)) { echo 'three'; } echo 'Sale'; }