Как редактировать html шаблон товара Woocomerce

nikonlay
На сайте с 11.12.2006
Offline
176
8993

Доброго вечера!

У меня такая ситуация - есть интернет-магазин на wordpess с woocomerce с темой Storefront.

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

Однако, сейчас сделано так, открывается див с классов product, в котором содержатся блоки с фотографиями товара, с ценой, с описанием и блоком рекомендованных товаров.

<div itemscope="" itemtype="http://schema.org/Product" id="product-43" class="post-43 product type-product status-publish has-post-thumbnail product_cat-kuhni shipping-taxable purchasable product-type-simple product-cat-kuhni instock">

<div class="images"></div>
<div class="summary entry-summary"></div>....

То есть, если задать фон в css основного блока, то фон появится и под рекомендованными товарами тоже. А мне нужно, чтобы фон был только под фотографией товара с ценой и описанием, а рекомендованные товары уже были отдельно.

Я так понимаю, нужно найти какой-то html-шаблон страницы отдельного товара, в котором заданы порядок вывода блоков, и там поменять их. Однако, я поискал в папке \wp-content\plugins\woocommerce\templates и не нашел такого файла, только файлы с какими списками функций, а такого шаблона, где просто html-код страницы со вставками php - не нашел.

Знатоки wordpress, подскажите, как в этом случае быть, где искать?

Мощные фонари и бинокли: https://market.yandex.ru/store--volny-i-veter?businessId=79203856
Ragnarok
На сайте с 25.06.2010
Offline
226
#1

nikonlay, так

1. стили применяются благодаря селекторам. селектор нужно выбрать такой, чтобы указывал на товар, но не на рекомендованные. шаблон можно не трогать

2. в папке плагина шаблоны трогать нельзя, т.к всё похерится при первом же обновлении. Шаблоны woocommerce из папки плагина можно скопировать в папку шаблона сайта и править там, но опять же никаких гарантий что что-то не сломается при обновлении

//TODO: перестать откладывать на потом
SeVlad
На сайте с 03.11.2008
Offline
1609
#2
Ragnarok:
но опять же никаких гарантий что что-то не сломается при обновлении

Что бы не ломалось при обновлении давно существует механизм дочерних тем.

Правда, не все производители тем это учитывают :(

nikonlay:
подскажите, как в этом случае быть, где искать?

Где-то тут есть всё, что нужно: https://docs.woothemes.com/

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
nikonlay
На сайте с 11.12.2006
Offline
176
#3

Ragnarok, так я же говорю как раз, что сейчас вложенность блоков div такова, что дочерние блоки снаружи находится общий блок product, а уже внутри него - блоки с фотками, ценой и рекомендованными.

То есть сейчас так:

<div class="product">

<div class="images"></div>
<div class="summary"></div>
<div class="woocommerce-tabs"></div>
<div class="related products"></div>
</div>

И если задать фон для div.product , то этот фон будет под всеми блоками, в том числе и под related products.

Поэтому, я бы хотел путем правки шаблона сделать так:

<div class="product">

<div class="images"></div>
<div class="summary"></div>
<div class="woocommerce-tabs"></div>
</div>
<div class="related products"></div>

И тогда можно было спокойно делать фон под .product и он бы не залезал на related

Про то, что в папке шаблона не стоит ничего трогать, я, конечно, слышал, но полез туда уже в отчаянии, когда обычные методы перепробовал.

SeVlad, спасибо, попробую поискать тогда в документации.

Я просто думал - мало ли, может кто сталкивался с таким, и сразу подскажет, как это сделать.

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

Ragnarok
На сайте с 25.06.2010
Offline
226
#4
SeVlad:
Что бы не ломалось при обновлении давно существует механизм дочерних тем.

знаю про это, но недавно был такой косяк:

скопированы файлы шаблона из plugins/woocommerce в папку темы, т.к там были изменения. И была какая-то функция в этих шаблонах, которую при обновлении плагина отключили. в итоге часть функционала темы перестала работать

---------- Добавлено 02.03.2016 в 17:08 ----------

nikonlay, копируйте шаблоны, как я написал чуть выше, и правьте структуру тогда. но что-то может поехать, учтите..

SeVlad
На сайте с 03.11.2008
Offline
1609
#5
Ragnarok:
знаю про это,

Да я был уверен, что знаешь. Но удивился, что ты не только не сказал об этом, а наоборот показал.. несколько корявое решение (ну да, предупредив о рисках).

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

Ragnarok:
И была какая-то функция в этих шаблонах, которую при обновлении плагина отключили. в итоге часть функционала темы перестала работать

Есть надежда, что после покупки Атоматиком ВС таких резких телодвижений больше не будет ;)

nikonlay:
Я просто думал - мало ли, может кто сталкивался с таким, и сразу подскажет, как это сделать.
Просто задача-то простейшая - фон под карточкой товара задать, а из-за этого всю документацию учить от корки до корки, возможно, не оправдывает цель средства..

А там действительно не так сложно. Но согласись, разбираться в рамках форума...

Что же до манов - в данном случае не нужно "от корки до корки". Там всё хорошо структурировано и документировано. Даже я, не зная английского, относительно легко могу найти там нужные решения.

nikonlay
На сайте с 11.12.2006
Offline
176
#6

Ragnarok, да а какой смысл копировать шаблоны woocommerce, если они, как я написал в первом сообщении, не содержат того, что мне нужно (html-кода со вставками php), а лишь вызовы каких-то функций.

Например, файл \wp-content\plugins\woocommerce\templates\single-product.php , который, по идее, должен содержать шаблон отдельного товара, содержит такой код:


<?php

if ( ! defined( 'ABSPATH' ) ) {
exit;
}
get_header( 'shop' ); ?>
<?php
do_action( 'woocommerce_before_main_content' );
?>
<?php while ( have_posts() ) : the_post(); ?>
<?php wc_get_template_part( 'content', 'single-product' ); ?>
<?php endwhile; ?>

<?php
do_action( 'woocommerce_after_main_content' );
?>

<?php
do_action( 'woocommerce_sidebar' );
?>
<?php get_footer( 'shop' ); ?>

И остальные файлы шаблонов в таком же духе.

SeVlad, ну хорошо, раз так, то попробую тогда найти ответ на свой вопрос за какое-то приемлемое время.

А то я уж отчаялся в поисках и решил просто скрыть через display: none этот div.related раз все так сложно

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий