Условный пользовательский выход по цене продажи продуктов и обычной цене

Я пытаюсь работать с пользовательским условным выходом, где, когда цикл продукта найден с продажной ценой, он добавляет класс в торговую цену. Если есть только обычная цена, он добавляет этот класс в обычную цену.

Кажется, я не могу заставить это работать после того, как посмотрел и снялся с разных документов:

add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 ); function custom_price_html( $price, $product ){ ob_start(); global $product; if (isset($product->sale_price)) { return str_replace( '</del>', '<span class="amount">text</span></del>', $price ); return str_replace( '</ins>', '<span class="highlight amount">highlight here</span></del>', $price ); } else { return str_replace( '</ins>', '<span class="highlight amount">highlight here</span>text</del>', $price ); } } 

Я использую обычный фильтр цен и пытаюсь изменить тег span class = "amount" на int span class = "amount", однако я все равно получаю тот же результат.
Есть идеи?

 add_filter( 'woocommerce_price_html', 'price_custom_class', 10, 2 ); function price_custom_class( $price, $product ){ return str_replace( '<span class="amount"></span>', '<ins><span class="amount">'.woocommerce_price( $product->regular_price ).'</span></ins>', $price ); } 

Этот крючок представляет собой фильтр с 2 переменными ( $price и $instance ), и вы return $price вместо echo $price ). Вы можете попытаться использовать его так:

 add_filter('woocommerce_sale_price_html','price_custom_class', 10, 2 ); function price_custom_class( $price, $product ){ if (isset($product->sale_price)) { $price = '<del class="strike">'.woocommerce_price( $product->regular_price ).'</del> <ins class="highlight">'.woocommerce_price( $product->sale_price ).'</ins>'; } else { $price = '<ins class="highlight">'.woocommerce_price( $product->regular_price ).'</ins>'; } return $price; } 

Этот крюк обычно продается.

Ссылка: woocommerce_sale_price_html

Для обычной цены у вас есть woocommerce_price_html фильтр-крючок:

 add_filter( 'woocommerce_price_html', 'price_custom_class', 10, 2 ); function price_custom_class( $price, $product ){ // your code return $price; } 

Ссылка: woocommerce_price_html

Вам нужен фильтр-крючок, а не крюк действия, чтобы привязать функцию или метод к конкретному действию фильтра. изменить на

 add_filter('woocommerce_sale_price_html','price_custom_class');