Update 2 (для простых и переменных продуктов + решена ошибка по тем же ценам вариации)
, когда продукты на продажу, вы можете добавить пользовательские метки так же, как вы хотите использовать пользовательскую функцию зацепили в woocommerce_sale_price_html
и woocommerce_variation_sale_price_html
фильтры крючками (для простых и переменных продуктов.
для мин/макс цен в переменных продукты, нам нужна другая функция, подключенная в woocommerce_variation_sale_price_html
фильтр-крючок.
Вот этот код:
add_filter('woocommerce_variation_sale_price_html','sale_prices_custom_labels', 10, 2);
add_filter('woocommerce_sale_price_html','sale_prices_custom_labels', 10, 2);
function sale_prices_custom_labels($price, $product){
if (isset($product->sale_price)) {
$price = '<del class="strike">' . __('Old Price: ', 'woocommerce') . woocommerce_price($product->regular_price). '</del>
<ins class="highlight">' . __('New Price: ', 'woocommerce') . woocommerce_price($product->sale_price) . '</ins>';
}
else
{
$price = '<ins class="highlight">'.woocommerce_price($product->regular_price).'</ins>';
}
return $price;
}
add_filter('woocommerce_variable_sale_price_html', 'sale_prices_custom_labels_min_max', 20, 2);
function sale_prices_custom_labels_min_max($price, $product) {
$variation_min_reg_price = $product->get_variation_regular_price('min', true);
$variation_max_reg_price = $product->get_variation_regular_price('max', true);
$variation_min_sale_price = $product->get_variation_sale_price('min', true);
$variation_max_sale_price = $product->get_variation_sale_price('max', true);
if ($variation_min_reg_price != $variation_min_sale_price || $variation_max_reg_price != $variation_max_sale_price)
{
if($variation_min_reg_price == $variation_max_reg_price && $variation_min_sale_price == $variation_max_sale_price){
$price = '<del class="strike">' . __('Old Price: ', 'woocommerce') . woocommerce_price($variation_max_reg_price) . '</del>
<ins class="highlight">' . __('New Price: ', 'woocommerce') . woocommerce_price($variation_max_sale_price) . '</ins>';
}
elseif($variation_min_reg_price != $variation_max_reg_price && $variation_min_sale_price == $variation_max_sale_price)
{
$price = '<del class="strike">' . __('Old Price: ', 'woocommerce') . woocommerce_price($variation_min_reg_price) . '-' . woocommerce_price($variation_max_reg_price) . '</del>
<ins class="highlight">' . __('New Price: ', 'woocommerce') . woocommerce_price($variation_max_sale_price) . '</ins>';
}
elseif($variation_min_reg_price == $variation_max_reg_price && $variation_min_sale_price != $variation_max_sale_price)
{
$price = '<del class="strike">' . __('Old Price: ', 'woocommerce') . woocommerce_price($variation_max_reg_price) . '</del>
<ins class="highlight">' . __('New Price: ', 'woocommerce') . woocommerce_price($variation_min_sale_price) . '-' . woocommerce_price($variation_max_sale_price) . '</ins>';
}
else
{
$price = '<del class="strike">' . __('Old Price: ', 'woocommerce') . woocommerce_price($variation_min_reg_price) . '-' . woocommerce_price($variation_max_reg_price) . '</del>
<ins class="highlight">' . __('New Price: ', 'woocommerce') . woocommerce_price($variation_min_sale_price) . '-' . woocommerce_price($variation_max_sale_price) . '</ins>';
}
}
return $price;
}
Вы можете также заменить обычные <ins>
и <del>
HTML-теги от чего-то еще и добавить или изменить некоторые классы тоже (если это более удобно для вас). В этот момент возможно бесконечное.
код идет в function.php файле Вашего активного ребенка темы (или темы), или также в любой файл плагина.
Этот код проверен и работает.
Похожие ответы: Conditional custom output around products sale price and regular price
может быть этот ответ может помочь вам. http://stackoverflow.com/a/41410818/5019802. и у вас есть только простой продукт? –