У вас могут возникнуть ситуация, когда ваш покупатель поинтересуется, имеет ли цена со скидкой ограничение по времени? Такое часто случается при каких-либо праздничных распродажах.
В текущем формате на странице товара в WooCommerce все, что демонстрируется скидкой, это зачеркнутая предыдущая цена и цена со скидкой. Больше ничего.
Поэтому в сегодняшней статье мы расскажем вам простой способ как добавить текст «Скидка до (конечная дата)» рядом с ценой со скидкой. Текст вы можете изменять на свое усмотрение.
В статье будут представлены две версии: для русского языка и английского. Код для рус. доработан для вывода даты на русском.
Шаг 1: Открываем файл functions.php вашей темы и добавляем следующий код:
Eng
add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 ); function custom_price_html( $price, $product ){ global $post; $sales_price_to = get_post_meta($post->ID, '_sale_price_dates_to', true); if(is_single() && $sales_price_to != "") { $sales_price_date_to = date("j M y", $sales_price_to); return str_replace( '</ins>', ' </ins> <b>(Offer till '.$sales_price_date_to.')</b>', $price ); } else { return apply_filters( 'woocommerce_get_price', $price ); } }
Rus
function dateToRussian($date) { $month = array("january"=>"января", "february"=>"февраля", "march"=>"марта", "april"=>"апреля", "may"=>"мая", "june"=>"июня", "july"=>"июля", "august"=>"августа", "september"=>"сентября", "october"=>"октября", "november"=>"ноября", "december"=>"декабря"); $days = array("monday"=>"Понедельник", "tuesday"=>"Вторник", "wednesday"=>"Среда", "thursday"=>"Четверг", "friday"=>"Пятница", "saturday"=>"Суббота", "sunday"=>"Воскресенье"); return str_replace(array_merge(array_keys($month), array_keys($days)), array_merge($month, $days), strtolower($date)); } add_filter( 'woocommerce_before_shop_loop_item_title', 'custom_price_html', 100, 2 ); add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 ); function custom_price_html( $price, $product ){ global $post; $sales_price_to = get_post_meta($post->ID, '_sale_price_dates_to', true); if(is_single() && $sales_price_to != "") { $sales_price_date_to = dateToRussian(date("j F y", $sales_price_to)); return str_replace( '</ins>', ' </ins> <b>Скидка до '.$sales_price_date_to.'</b>', $price ); } else { return apply_filters( 'woocommerce_get_price', $price ); } }
Шаг 2: Сохраняем файл. Если необходимо изменить текст, сопровождающий конечную дату скидки, это можно сделать, изменив Скидка до либо Offer till на любой нужный.
Шаг 3: Готово, обновите страницу товара, на которой есть скидка до определенной даты.
Надеемся, что эта статья помогла вам добавить конечную дату распродажи в WooCommerce.
Если вы только начинаете разбираться с WooCommerce, то не забудьте посетить нашу рубрику WooCommerce, где мы публикуем материалы по этой тематике.
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.