Wordpress woocommerce: полностью кастомный вывод и фильрование товаров?

Можно вывести например на сингл странице товара данные полностью по своему? То есть цену, описание, фотки, кнопку заказа и т.п. а не использовать уже имеющиеся шаблоны. Я просто не пойму как это работает.

Могу конечно обычным лупом вывести the_title() и т.п. но как быть с ценой? с кнопкой заказа?

Хорошо, иду на woocommerce документацию, апи почитать, и использую эту функцию к примеру woocommerce_template_single_title() для вывода имени товара, но там уже выводит h1 со стилями, как я понял это можно поменять в single-product/title.php.

Но зачем такие фичи если просто можно сделать get_the_title()? Хорошо, я предполагаю, что конечно, лучше пользоваться уже прикладным апи от плагина и т.п. но как мне все полностью отфильтровать тогда?

Например я хочу полностью поменять экшены и написать свои, но как быть если я не могу найти как реализованы ихние хуки и что идет в ввод и выходит в вывод. Например:
Хочу поменять этот экшн, полностью по своему woocommerce_before_single_product_summary(). Мне нужно все что есть в нем, все данные, которые хочу по своему вывести, но я не знаю какие данные идут туда на вход и с какими данными работает этот экшн. Где можно это увидеть, или почитать, или еще что-то? Помогите разобраться пожалуйста.
  • Вопрос задан
  • 3657 просмотров
Решения вопроса 1
Palych_tw
@Palych_tw
Типа веб-разработчик
В самом шаблоне все уже написано. Вот, например content-single-product.php и интересующий вас экшн.
<?php
			/**
			 * woocommerce_single_product_summary hook.
			 *
			 * @hooked woocommerce_template_single_title - 5
			 * @hooked woocommerce_template_single_rating - 10
			 * @hooked woocommerce_template_single_price - 10
			 * @hooked woocommerce_template_single_excerpt - 20
			 * @hooked woocommerce_template_single_add_to_cart - 30
			 * @hooked woocommerce_template_single_meta - 40
			 * @hooked woocommerce_template_single_sharing - 50
			 */
			do_action( 'woocommerce_single_product_summary' );
		?>

Здесь написаны все хуки из этого экшна. Их можно удалить, можно всунуть свои экшны с функциями. Каждый легко гуглится и вот здесь официальная документация: https://docs.woocommerce.com/wc-apidocs/index.html
Забиваем в поиск woocommerce_template_single_price и получаем функцию и ссылку на её расположение. Видим
if ( ! function_exists( 'woocommerce_template_single_price' ) ) {
    /**
     * Output the product price.
     *
     * @subpackage  Product
     */
    function woocommerce_template_single_price() {
        wc_get_template( 'single-product/price.php' );
    }
}

Идем по пути видим код нужного шаблона. Так с каждым интересующим. Каждый шаблон можно скопировать в папку своей темы и изменять как угодно, о чем в файле и написано
This template can be overridden by copying it to yourtheme/woocommerce/single-product/price.php.

Все поля продукта заполнены как кастомные. Можете к ним обращаться через get_post_meta();
Чтоб посмотреть все доступные поля, просто дампните результат этой функции без аргументов на странице товара. Но у продукта вуккомерс есть свои методы типа
$product->get_price(); 
$product->is_on_sale();
и т.д. полный список методов здесь
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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