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

Как сделать так, чтобы стили магазина не рушились при обновлении WooCommerce?

xrikx

Новичок
Доброго времени суток!

Перешел на woocommerce c prectashopa совсем недавно. Появился довольно серьезный вопрос. Поиск в форуме не дал результатов, но может быть я не то ищу не по тем ключам=)
Проблема следующая - я сделал доработки стилей для нормального отображения элементов. Вчера обновился woocommerce и конечно же обновление затёрло все мои доработки и исправления. Обновления основной темы я отрубил сразу и перепахал там всё, woocommerce хотелось бы иметь актуальным и новым (или обновления тоже рационально отключить?)

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

Заранее спасибо за консультации!
 

xrikx

Новичок
Спасибо!

Проясните пожалуйста "style.css — единственный необходимый файл в дочерней теме. Он обеспечивает информационный заголовок, по которому WordPress опознает дочернюю тему, и он заменяет style.css родительской темы." - Правильно ли я понимаю, что указание темы в стиле позволяет "подхватить её на лету" и система сама выберет именно дочернюю тему?

И тут речь про сам движок, а как woocommerce? Там же я тоже вносил изменение в тот же woocmmerce.css. Алгоритм аналогичен?
 

tuxfighter

Гуру
Местный
Спасибо!

Проясните пожалуйста "style.css — единственный необходимый файл в дочерней теме. Он обеспечивает информационный заголовок, по которому WordPress опознает дочернюю тему, и он заменяет style.css родительской темы." - Правильно ли я понимаю, что указание темы в стиле позволяет "подхватить её на лету" и система сама выберет именно дочернюю тему?

И тут речь про сам движок, а как woocommerce? Там же я тоже вносил изменение в тот же woocmmerce.css. Алгоритм аналогичен?

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


и кстати, не заменяет, а изменяет и дополняет
 

xrikx

Новичок
Ещё раз спасибо =)
А если происходит изменение кода самого плагина, а не стиля? Как тогда спасти вставки от затирания?

Например у меня здесь плагин сравнения затер даже перевод 0_0, который я сам делал.
 
Последнее редактирование:

tuxfighter

Гуру
Местный
Ещё раз спасибо =)
А если происходит изменение кода самого плагина, а не стиля? Как тогда спасти вставки от затирания?

Например у меня здесь плагин сравнения затер даже перевод 0_0, который я сам делал.
если хотите изменять что-то в плагинах, то предварительно изменяемые файлы нужно скопировать в каталог дочерней темы.
например woocommerce/templates/cart/cart-empty.php надо скопировать в yourtheme/woocommerce/cart/cart-empty.php и уже его изменять.
работает правда не со всеми плагинами.....
 

xrikx

Новичок
Сориентируйте пожалуйста, например, у меня изменяемый файл woocommerce.css для woocommerce лежит в папке ../public_html/wp-content/plugins/woocommerce/assets/css/woocommerce.css . Как должен выглядеть путь к этому файлу в дочерней теме, чтобы можно было его редактировать без изменений основного файла? Вариант yourtheme/woocommerce/assets/css/woocommerce.css не проходит =) Изменений нет. Напишите пожалуйста примеры правильных путей к папкам.
 

tuxfighter

Гуру
Местный
в данном конкретном случае - yourtheme/style.css

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

xrikx

Новичок
Это Вы про эту строчку из примера
@import url("../twentyten/style.css"); =)?

Это сделано

Спасибо! Со стилями началось получаться,изменения в mini-cart.php тоже получились ;)

Единственный косяк - отвалился логотип. Не пойму почему. Причем, если его ставить через настройку внешнего вида оно не появляется всё равно) Не знаете, где покопать?
 

tuxfighter

Гуру
Местный
Это Вы про эту строчку из примера
@import url("../twentyten/style.css"); =)?

это я про приоритет стилей.
Единственный косяк - отвалился логотип. Не пойму почему. Причем, если его ставить через настройку внешнего вида оно не появляется всё равно) Не знаете, где покопать?

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

Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
 

xrikx

Новичок
Не скрываю ни в коем случае - сайт в подписи был) Сайт http://uzumeti.ru/, тема Estore называется. Проблема с сейчас в логотипе осталась. Почему-то на дочерней теме он не отображается.

Про приоритет стилей не понял ничего,сейчас почитаю про этого зверя)
 

xrikx

Новичок
Логотип вернул =) Спасибо ещё раз! Очень хорошо всё пояснили.
 

xrikx

Новичок
А как быть с переводами =)? Прочитал несколько статей, предлагают использовать конструкцию типа в functions.php дочерней темы.

<?php
function my_child_theme_setup()
{ load_child_theme_textdomain( ‘my-child-theme’, get_stylesheet_directory() . ‘/languages’ ); }
add_action( ‘after_setup_theme’, ‘my_child_theme_setup’ ); ?>

Но не работает. В чем хитрость? Переводы положены в дочернюю тему, в папку /languages
 

tuxfighter

Гуру
Местный
А как быть с переводами =)? Прочитал несколько статей, предлагают использовать конструкцию типа в functions.php дочерней темы.

<?php
function my_child_theme_setup()
{ load_child_theme_textdomain( ‘my-child-theme’, get_stylesheet_directory() . ‘/languages’ ); }
add_action( ‘after_setup_theme’, ‘my_child_theme_setup’ ); ?>

Но не работает. В чем хитрость? Переводы положены в дочернюю тему, в папку /languages
переводы хронятся в .po и .mo файлах..... причем тут functions.php?
 

xrikx

Новичок
Верно. Для того, чтобы переводы не затирались при обновлении темы, я эти два файлика копирую в папку дочерней темы /languages. Дальше эти файлики, как пишут в обучающих статьях, надо подключить через functions.php дочерней темы. Т.к. из папки дочерней переводы сами не прилипают)...Может быть есть более простой способ=)? Мне нужно всего-то,чтобы переводы не затирались при обновлениях.

Примеров таких в интернете много, но не выходит) Вот например - https://toster.ru/q/283704
 

rikitiki

Специалист
Местный
Зачем эти заморочки с дочерней темой? Установите лучше плагин Simple Custom CSS и правьте через него в основной. Ничего не затрётся.
 

searchingman

Гуру
Местный
Верно. Для того, чтобы переводы не затирались при обновлении темы, я эти два файлика копирую в папку дочерней темы /languages. Дальше эти файлики, как пишут в обучающих статьях, надо подключить через functions.php дочерней темы. Т.к. из папки дочерней переводы сами не прилипают)...Может быть есть более простой способ=)? Мне нужно всего-то,чтобы переводы не затирались при обновлениях.

Примеров таких в интернете много, но не выходит) Вот например - https://toster.ru/q/283704
Можно воспользоваться Плагин 'Say What' (описание) - изменение перевода "на лету" без правки файла перевода
 
Сверху Снизу