Благодаря зарегистрированному событию woocommerce_before_single_product можно вносить изменения в верную область страниц товара в WooCommerce.

Событие срабатывает только на странице товара!

Пример работы с событием

Допустим нам нужно что-то вывести выше основного товарного изображения и для этого добавляем следующий код в functions.php дочерней темы:

				
					/**
 * Пример хука события woocommerce_before_single_product
 */
function wplb_hook_for_woocommerce_before_single_product() {
    echo '<h3 style="margin:30px 0; color:red">Привет! Смотри какая майка!</h3>';
}

add_action( 'woocommerce_before_single_product', 'wplb_hook_for_woocommerce_before_single_product', 11 );
				
			

И как результат отработки нашего хука получаем:

Пример отработки хука для woocommerce_before_single_product
Пример отработки хука для woocommerce_before_single_product

Обратите внимание, что в само событие не принимает каких-либо входных данных:

				
					do_action('woocommerce_before_single_product');
				
			

А следовательно, для того чтобы отображать какие-то дополнительные данные о товаре нужно получить к нему доступ:

				
					/**
 * Пример хука события woocommerce_before_single_product
 */
function wplb_hook_for_woocommerce_before_single_product() {
    echo '<h3 style="margin:30px 0; color:red">Привет! Смотри какая майка!</h3>';
}

add_action( 'woocommerce_before_single_product', 'wplb_hook_for_woocommerce_before_single_product', 11 );
				
			

Всё достаточно просто, a если у вас есть вопросы – спрашивайте в комментариях.

Спасибо.

Фильтр woocommerce_breadcrumb_home_url используется для замены ссылки главную страницу в хлебных крошках (событие woocommerce_breadcrumb).

В хлебных крошках мы заменили слово «Главная» на «Наш Магазин» и дополнительно стилизовали вывод с использованием фильтра woocommerce_breadcrumb_defaults.

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

Сделать это можно, добавив следующий код в functions.php вашей дочерней темы:

				
					/**
 * При нажатии на ссылку "Наш Магазин(Главная)" покупатель перейдет на страницу магазина, а не на главную страницу сайта.
 */
add_filter( 'woocommerce_breadcrumb_home_url', 'wpbl_breadcrumbs_home_url' );
function wpbl_breadcrumbs_home_url() {
    return wc_get_page_permalink( 'shop' ); // Устанавливаем ссылку на главную страницу магазина.
}
				
			

И как результат ссылка будет работать правильно:

Фильтр woocommerce_breadcrumb_home_url – Ссылка на главную страницу в хлебных крошках
Фильтр woocommerce_breadcrumb_home_url – Ссылка на главную страницу в хлебных крошках

Всё просто, a если у вас есть вопросы – спрашивайте в комментариях.

Спасибо.

Изначально фильтр woocommerce_breadcrumb_defaults применяется в событии woocommerce_breadcrumb и позволяет стилизовать внешний вид хлебных крошек в WooCommerce

Пример работы с фильтром

Добавляем следующий код в functions.php дочерней темы:

				
					/**
 * Стилизуем хлебные крошки в WooCommerce
 */

// Описиываем функцию для фильтра
function wpbl_breadcrumbs_style() {
    return array(
        'delimiter' => ' → ', // Меняем разделитель
        'wrap_before' => '<nav class="woocommerce-breadcrumb wpbl_custom_style" itemprop="breadcrumb">', // Добавляем CSS класс wpbl_custom_style
        'wrap_after' => '</nav>',
        'before' => '<span>',
        'after' => '</span>',
        'home' => _x( 'Наш Магазин', 'breadcrumb', 'woocommerce' ) // Меняем слово "Главная" на "Наш Магазин"
    );
}

// Добавляем сам фильтр
add_filter( 'woocommerce_breadcrumb_defaults', 'wpbl_breadcrumbs_style' );
				
			

Как видно мы добавили CSS класс wpbl_custom_style, а дочерние элементы обернули в <span>, давайте опишем новый класс:

				
					.wpbl_custom_style span {
    padding: 0px 3px
}
.wpbl_custom_style > span > a {
    border-bottom: 1px dashed #999;
    color: #333 !important;
}
.wpbl_custom_style span:last-child {
    padding: 5px 7px;
    border-radius: 3px;
    margin-left: 7px;
    background-color: #dff0d8;
    border-color: #d0e9c6;
    color: #3c763d;
}
				
			

И как результат получим:

Фильтр woocommerce_breadcrumb_defaults – Стилизация хлебных крошек в WooCommerc
Фильтр woocommerce_breadcrumb_defaults – Стилизация хлебных крошек в WooCommerc
Обратите внимание

Для замены ссылки на главную страницу в хлебных крошках используется фильтр woocommerce_breadcrumb_home_url

Всё достаточно просто, a если у вас есть вопросы – спрашивайте в комментариях.

Спасибо.

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

За отображение хлебных крошек на страницах WooCommerce отвечает зарегистрированное событие woocommerce_breadcrumb, за стилизацию – фильтр woocommerce_breadcrumb_defaults, а за замену ссылки на главную страницу – woocommerce_breadcrumb_home_url

Отображение хлебных крошек в WooCommerce по умолчанию – событие woocommerce_breadcrumb
Отображение хлебных крошек в WooCommerce по умолчанию – событие woocommerce_breadcrumb

Если ваша тема соответствует стандартам WooCommerce, то хлебный крошки должны отображаться на страницах архивов и на странице товара, так как событие woocommerce_breadcrumb входит в состав события woocommerce_before_main_content с приоритетом 20:

				
					// Вот так изначально должно срабатывать событие вывода хлебных крошек
add_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
				
			

Что можно сделать с самим событием?

Как и с любым другим событием, с woocommerce_breadcrumb можно:

Введите текст заголовка

В качестве примера, давайте добавим отображение хлебных крошек на страницах корзины и оформления заказа:

				
					// Корзина
add_action( 'woocommerce_before_cart', 'woocommerce_breadcrumb', 10, 0 );

// Оформление заказа
add_action( 'woocommerce_before_checkout_form', 'woocommerce_breadcrumb', 0, 0 );
				
			
Хлебные крошки на странице корзины
Хлебные крошки на странице корзины
Обратите внимание!

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

А совсем отключить хлебные крошки можно так:

				
					// Отключаем вывод хлебных крошек (страницы архивов и страница товара)
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
				
			

Если у вас есть вопросы – спрашивайте в комментариях.

Спасибо.

Благодаря зарегистрированному событию woocommerce_before_main_content можно вносить изменения в область до заголовка страниц WooCommerce.

Событие срабатывает только на страницах архивов, и на странице товара!

По умолчанию содержит два других события:

				
					// Выводит кусок верстки
add_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10 );

// А затем, выводит хлебные крошки
add_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
				
			

Подробнее про событие вызова хлебных крошек – woocommerce_breadcrumb

Как изменить стандартное отображение?

Можно добавить свои событие или же отключить погрузку уже зарегистрированных:

				
					// Отключаем вывод хлебных крошек
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );

/************************
* Добавляем свое событие
************************/

// Описание функции
function wplb_say_hello() {
    echo '<div style="margin-bottom:10px; color: red"><em>? Привет!</em></div>';
}
// Добавление события
add_action( 'woocommerce_before_main_content', 'wplb_say_hello', 10 );
				
			

И как результат:

Добавляем свое событие к woocommerce_before_main_content
Добавляем свое событие к woocommerce_before_main_content

Почему событие может не срабатывать?

События могут не срабатывать только если в теме для вашего интернет-магазина были переписаны стандартные шаблоны и авторы темы принципиально не используют функции, которые доступны в WooCommerce по умолчанию. В этом случае придется в ручную копаться коде ?

Всё достаточно просто, но если если остались вопросы – спрашивайте, обязательно ответим.

Спасибо.

В WooCommerce у есть функция woocommerce_page_title(), и её можно использовать для внесения изменений в заголовки различных страниц генерируемых плагином WooCommerce.

Примеры:

Вот несколько примеров фильтрации:

— Добавляем текстовую переменную к заголовками страниц архива:

				
					// Описываем функцию
function wplb_woo_archive_title( $page_title ) {
    if ( is_product_category() ) {
        $page_title = "Мой текст - " . $page_title;
    }
    return $page_title;
}

// Добавляем фильтр
add_filter( 'woocommerce_page_title', 'wplb_woo_archive_title', 10, 1 );
				
			

И как результат работы скрипта:

Пример использования фильтра для woocommerce_page_title
Пример использования фильтра для woocommerce_page_title

— Менам заголовок страницы с результатами поиска товаров:

				
					// Описываем функцию
function wplb_woo_search_title( $page_title ) {
    if ( is_search() ) {
        if (! get_search_query()) {
            $page_title = sprintf( __( 'Результаты поиска: "Все товры"', 'woocommerce' ), get_search_query() );
        } else {
            $page_title = sprintf( __( 'Результаты поиска: "%s"', 'woocommerce' ), get_search_query() );
        }
    }
    return $page_title;
}

// Добавляем фильтр
add_filter( 'woocommerce_page_title', 'wplb_woo_search_title', 10, 1 );
				
			

Как вы уже поняли есть много различных способов использовать фильтр для заголовков страниц в WooCommerce.

Если у вас есть вопросы, то можете смело их нам задать, и мы обязательно поможем!

Спасибо.

Давайте составим техническое задание!100% без рискаНет обязательств по наймуБесплатная оценка стоимости
Здравствуйте! Я асистент на основе искусственного интеллекта. Вы можете общаться со мной, как с человеком — задавайте вопросы, описывайте свои идеи и требования.

С удовольствием помогу вам составить техническое задание для вашего WordPress проекта.

Выберите подходящий вариант или опишите свою задачу в свободной форме, и я помогу вам составить четкий план действий, для оценки стоимости нашими разработчиками! 😊

Поможем вывести Ваш бизнес на новый уровень!

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

Добро пожаловать!

Авторизуйтесь, чтобы продолжить

или

* Если аккунта у Вас еще нет, то он будет создан автоматически