• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Решено Отображение скидки

Musik_Developer

Новичок
Доброго времени суток! Такая проблема: есть сайт. В нем есть вариативные товары (вот один из них) http://covr/product/legends-of-the-fall/. Заказчицу не устраивает традиционный вывод скидок (зачеркнуты старые цены и написаны новые). Она желает примерно такое отображение цены:
"\реальная цена/-\скидка/=\цена со скидкой/ Ура! Вы получили скидку, которая продлится до конца августа" При этом на отдельную категорию товара своя скидка (допустим на одела скидка 10000, а на пледы 3000). нашел функцию вывода статьи \wp-content\plugins\woocommerce\includes\class-wc-product-variation.php но всё-же склоняюсь к тому, что цены формируются с помощью js, и поэтому нашел ещё несколько файлов: \woocommerce\assets\js\frontend\add-to-card-variation.js + add-to-card-variation.min.js
Помогите пожалуйста!
 

D&B

Администратор
Команда форума
Местный
Может подойдут плагины которые выводят всякие ярлыки. Напишите там сами на ярлыке хоть целую поэму по скидкам.
 

Musik_Developer

Новичок
Может подойдут плагины которые выводят всякие ярлыки. Напишите там сами на ярлыке хоть целую поэму по скидкам.
спасибо большое за совет, но я уже нашел как решить проблему) извиняюсь за беспокойство (у меня так всегда, три дня не могу найти решение проблемы, потом выкладываю на каком-нибудь форуме и в этот же день нахожу решение)
Отпишусь здесь по решению, вдруг кому-то тоже нужно
в файле \wp-content\plugins\woocommerce\includes\class-wc-product-variation.php в 314 строке начинается функция get_price_html() далее объявляются три переменные $display_price(вот это пока не знаю что такое, сейчас поэксперементирую и пойму), $display_regilar_price(это обычная цена товара) и $display_sale_price(это цена товара с вычетом скидки). мне нужно было вывести так: $display_regular_price - \скидка/ = $display_sale_price Ура Ура и т.д. поэма со скидкой.
под переменной $display_sale_price пишем
$sale = $display_regular_price - $display_sale_price;
далее идут "ифы" и "элсе", но нам теперь нужна строка 322. она выглядит так:
$price = apply_filters( 'woocommerce_variation_sale_price_html', '<del>' . wc_price( $display_regular_price ) . '</del> <ins>' . wc_price( $display_sale_price ) . '</ins>' . $this->get_price_suffix(), $this );
вот все, что выделено жирным можете изменять, как вам понравится. я сделал так
$price = apply_filters( 'woocommerce_variation_sale_price_html', wc_price( $display_regular_price ) . ' - ' . wc_price($sale) . ' = ' . wc_price( $display_sale_price ) . 'HOORAY!!! You get a discount. Your discount will last until the end of summer' . $this->get_price_suffix(), $this );
Важно: слова нужно писать на английском, а потом переводить в файле в переводом по аналогии. он находится в wp-content/languages/plugins/woocommerce-ru_RU.po и woocommerce-ru_RU.mo. так же переменные, отображающие цены, скидки желательно писать так wc_price($variable_name) функция wc_price делает из обычного числа цену.
 

Musik_Developer

Новичок
ещё добавлю: что бы полностью убрать стандартное отображение скидки (т.е. убрать зачеркнутые цены) необходимо в файле wp-content\plugins\woocommerce\includes\abstracts\abstract-wc-product.php в строке 1070 стереть всё, что внутри тега <del></del> и стереть все остальные теги, что бы в строке осталось только $price = ( ( is_numeric( $to ) ) ? wc_price( $to ) : $to );(это что бы отображались цены с учетом скидки, считаю это не нужно, потому что скидка будет, когда заказчик выберет что покупать)
$price = ( ( is_numeric( $to ) ) ? wc_price( $to ) : $to ); здесь отображается стандартная цена товара, более разумно, думаю, так будет
 
Последнее редактирование:

searchingman

Гуру
Местный
ещё добавлю: что бы полностью убрать стандартное отображение скидки (т.е. убрать зачеркнутые цены) необходимо в файле wp-content\plugins\woocommerce\includes\abstracts\abstract-wc-product.php в строке 1070 стереть всё, что внутри тега <del></del> и стереть все остальные теги, что бы в строке осталось только $price = ( ( is_numeric( $to ) ) ? wc_price( $to ) : $to );(это что бы отображались цены с учетом скидки, считаю это не нужно, потому что скидка будет, когда заказчик выберет что покупать)
$price = ( ( is_numeric( $to ) ) ? wc_price( $to ) : $to ); здесь отображается стандартная цена товара, более разумно, думаю, так будет
Перед тем как править "ядро" плагина, которое перезапишется после очередного обновления, Вы что-нибудь слышали про систему хуков и шаблонов в WooCommerce?
 

Musik_Developer

Новичок
Перед тем как править "ядро" плагина, которое перезапишется после очередного обновления, Вы что-нибудь слышали про систему хуков и шаблонов в WooCommerce?
про систему хуков слышал, но пока не было времени в ней толком разобраться. это так сказать "временное" изменение.
 
Сверху Снизу