Как правильно делать тему для woocommerce?

В документации
docs.woothemes.com/document/template-structure
я нашел что можно копировать папку шаблонов
/plugins/woocommerce/templates/
в папку своей темы, переименовать ее в woocommerce
/themes/mytheme/woocommerce/
И дальше менять эти шаблоны.
Но я скачал темы от woothemes (так сказать родные темы), например storefront и mystile, и в них все по другому, нету уже шаблонов, как верстка интегрирована? Непонятно. То есть сами они для себя делают шаблоны не так как советуют в документации?

Начал я делать тему как в документации они советуют. Возникла у меня простая задача, нужно добавить класс к кнопке "Proceed to Checkout" в корзине, я открываю файл шаблона корзины woocommerce/cart/cart-totals.php и там вижу
<?php do_action( 'woocommerce_proceed_to_checkout' ); ?>

вместо простой ссылки.
Поэтому, вместо того чтобы просто изменить ссылку, мне нужно переопределять эту функцию в файле functions.php.
Зачем такое разделение? Зачем мелкие элементы типа кнопок и ссылок делать в виде do_action и убирать их в совершенно другое место, а не оставить их там где они должны выводиться?

Дальше. Хотел поменять местами цену и кнопку "Add to cart", захожу в файл соответствующего шаблона и вижу
<?php
	/**
	 * woocommerce_single_product_summary hook
	 *
	 * @hooked woocommerce_template_single_title - 5
	 * @hooked woocommerce_template_single_excerpt - 20
	 * @hooked woocommerce_template_single_rating - 25
	 * @hooked woocommerce_template_single_price - 25
	 * @hooked woocommerce_template_single_add_to_cart - 30
	 * @hooked woocommerce_template_single_sharing - 50
	 */
	do_action( 'woocommerce_single_product_summary' );
?>

В итоге половина темы у меня в файле function.php и еще он теперь пестрит строчками вида:
remove_action("...");
add_action("...");
remove_action("...");
add_action("...");

Но люди из woothemes наверняка умнее меня, поэтому чего я не понимаю? Это паттерн какой-то или что? Чем это удобнее?
И как сделать тему так, что если мне надо поменять html в корзине, я захожу в шаблон корзины и меняю, а не ищу соответствующую функцию где-то еще?
  • Вопрос задан
  • 10942 просмотра
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Парни из WooThemes действительно огонь, но делают они не так ровно по другой причине. Они Производят и плагин и тему, соответственно зачем им включать плагин в тему, если там их и так все устраивает?

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

у меня это устроено так
1e1c2cf5ab.jpg
настройки выношу в отдельный файл.

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

Да и вообще использование данных возможностей, есть хороший тон при разработке к примеру, я разрабатываю всякое на собственном фреймвоке, все акшены вынесены у меня в отдельный файл, что позволяет без каких либо лишних телодвижений гнуть проект в любую сторону.
d99cde57a7.jpg
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы