Я пытаюсь работать с пользовательским условным выводом, где, когда найден цикл продукта с продажной ценой, он добавляет класс к ценнику продажи. Если есть только обычная цена, он добавляет этот класс к обычному ценнику.
Я не могу заставить это работать после просмотра & выкл из разных документов:
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» на ins 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');