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

Вопрос по созданию своей темы

MisterViktor

Новичок
А в чем смысл копирования папки темы woocommerce в свою тему, там по сути ничего нельзя сделать для изменения расположения блоков, к примеру мне нужно изменить внешний вид страницы одиночного товара, ага, открываю single-product.php, а в нем весь контент выплёвывает одна функция:
Код:
<?php wc_get_template_part( 'content', 'single-product' ); ?>
ну ладно, есть же папка single-product, может быть там всё есть, открываем price.php, мне нужно всего лишь вставить <br> между обычной ценой и ценой со скидкой, и что же мы видим? Цену выводит функция:
Код:
<?php echo $product->get_price_html(); ?>

Тоесть чтобы изменить какой-то кусок хтмл кода, я должен переопределить функцию вывода любого элемента, перед которым или после которого я хочу вставить свой кусок кода, или я чтото недопонимаю?

При первом знакомстве с woocommerce складывается такое впечатление, что сей плагин был создан непосредственно для использования платных тем от woothemes, и сделано всё возможное, чтобы запутать и усложнить создание тем пользователями, такая вот коммерческая хитрость. И это печально конечно.
 
Последнее редактирование:

searchingman

Гуру
Местный
При первом знакомстве с woocommerce складывается такое впечатление, что сей плагин был создан непосредственно для использования платных тем от woothemes, и сделано всё возможное, чтобы запутать и усложнить создание тем пользователями, такая вот коммерческая хитрость. И это печально конечно.
WooCommerce создавался в том числе для создания сложных проектов.
Поэтому разработчики заложили в него средства кастомизации в первую очередь в виде хуков и уже затем в виде переопределения шаблонов. Все заточено на то, чтобы можно было в 99.9% обойтись без правки ядра плагина.

Даже в своем базовом варианте - это уже почти готовое решение, т.е. поставил и работай.
Если не нравиться и Вы хотите менять, то придется знакомится со средствами модификации плагина.

...мне нужно всего лишь вставить <br> между обычной ценой и ценой со скидкой...
Если рассматривать вашу "проблему", то для создания переноса между ценой со скидкой и обычной ценой не нужно ни шаблон менять, ни функцию вывода цены модифицировать.
"Проблему" можно решить с помощью стилей.
Вот вывод метода get_price_html()
PHP:
<span class="price"><del><span class="amount">34,567.00&nbsp;руб.</span></del> <ins><span class="amount">32,000.00&nbsp;руб.</span></ins></span>
Достаточно для тега 'del' назначить 'display:block' и перенос обеспечен.

Рассмотрим другую задачу. Нужно поменять местами зачеркнутую цену распродажи и обычную цену. Для этого тоже не нужно модифицировать файл шаблона. Достаточно воспользоваться хуком.
PHP:
add_filter('woocommerce_get_price_html_from_to', 'my_woocommerce_get_price_html_from_to',100,3 );
function my_woocommerce_get_price_html_from_to($price, $from, $to) {
    $price =  '<ins>' . ( ( is_numeric( $to ) ) ? wc_price( $to ) : $to ) . '</ins> <del>' . ( ( is_numeric( $from ) ) ? wc_price( $from ) : $from ) . '</del>';
    return $price;
}
Если все это делать в файле шаблона, то тогда туда нужно выводить всю логику и шаблон становиться очень большим. Ведь нужно учесть вывод для всех видов товаров (простой, групповой, вариативный и т.д.).
Шаблоны редактируют тогда, когда нужно глобально изменить разметку или если что-то не заложено в функциях движка.

ИМХО: Последовательность модификаций должна быть такой.
Стили своей темы -> хуки (действия, фильтры) в functions.php своей темы -> Перенос файлов шаблонов плагина в свою тему
 
Последнее редактирование:
Сверху Снизу