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

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

Тема в разделе "Вопросы, советы и доработки.", создана пользователем Musik_Developer, 7 июл 2016.

Метки:
  1. Musik_Developer

    Musik_Developer

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток! Такая проблема: есть сайт. В нем есть вариативные товары (вот один из них) 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
    Помогите пожалуйста!
     
  2. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.262
    Симпатии:
    721
    Баллы:
    113
    Может подойдут плагины которые выводят всякие ярлыки. Напишите там сами на ярлыке хоть целую поэму по скидкам.
     
    • Нравится Нравится x 1
  3. Musik_Developer

    Musik_Developer

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    спасибо большое за совет, но я уже нашел как решить проблему) извиняюсь за беспокойство (у меня так всегда, три дня не могу найти решение проблемы, потом выкладываю на каком-нибудь форуме и в этот же день нахожу решение)
    Отпишусь здесь по решению, вдруг кому-то тоже нужно
    в файле \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 делает из обычного числа цену.
     
  4. Musik_Developer

    Musik_Developer

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    ещё добавлю: что бы полностью убрать стандартное отображение скидки (т.е. убрать зачеркнутые цены) необходимо в файле 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 ); здесь отображается стандартная цена товара, более разумно, думаю, так будет
     
    Последнее редактирование: 8 июл 2016
  5. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Перед тем как править "ядро" плагина, которое перезапишется после очередного обновления, Вы что-нибудь слышали про систему хуков и шаблонов в WooCommerce?
     
  6. Musik_Developer

    Musik_Developer

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    про систему хуков слышал, но пока не было времени в ней толком разобраться. это так сказать "временное" изменение.