Пакетные решения для WordPress и WooCommerce от топовых Российских авторов!
Благодаря зарегистрированному событию woocommerce_before_single_product можно вносить изменения в верную область страниц товара в WooCommerce.
Событие срабатывает только на странице товара!
Допустим нам нужно что-то вывести выше основного товарного изображения и для этого добавляем следующий код в functions.php дочерней темы:
/**
* Пример хука события woocommerce_before_single_product
*/
function wplb_hook_for_woocommerce_before_single_product() {
echo 'Привет! Смотри какая майка!
';
}
add_action( 'woocommerce_before_single_product', 'wplb_hook_for_woocommerce_before_single_product', 11 );
И как результат отработки нашего хука получаем:
Обратите внимание, что в само событие не принимает каких-либо входных данных:
do_action('woocommerce_before_single_product');
А следовательно, для того чтобы отображать какие-то дополнительные данные о товаре нужно получить к нему доступ:
/**
* Пример хука события woocommerce_before_single_product
*/
function wplb_hook_for_woocommerce_before_single_product() {
echo 'Привет! Смотри какая майка!
';
}
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' ); // Устанавливаем ссылку на главную страницу магазина.
}
И как результат ссылка будет работать правильно:
Всё просто, a если у вас есть вопросы – спрашивайте в комментариях.
Спасибо.
Изначально фильтр woocommerce_breadcrumb_defaults применяется в событии woocommerce_breadcrumb и позволяет стилизовать внешний вид хлебных крошек в WooCommerce
Добавляем следующий код в functions.php дочерней темы:
/**
* Стилизуем хлебные крошки в WooCommerce
*/
// Описиываем функцию для фильтра
function wpbl_breadcrumbs_style() {
return array(
'delimiter' => ' → ', // Меняем разделитель
'wrap_before' => '',
'before' => '',
'after' => '',
'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_home_url
Всё достаточно просто, a если у вас есть вопросы – спрашивайте в комментариях.
Спасибо.
Внешний вид хлебных крошек может изменяться в зависимости от темы, которую вы используете для своего интернет магазина на WordPress.
За отображение хлебных крошек на страницах WooCommerce отвечает зарегистрированное событие woocommerce_breadcrumb, за стилизацию – фильтр woocommerce_breadcrumb_defaults, а за замену ссылки на главную страницу – woocommerce_breadcrumb_home_url
Если ваша тема соответствует стандартам 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 '? Привет!';
}
// Добавление события
add_action( 'woocommerce_before_main_content', 'wplb_say_hello', 10 );
И как результат:
События могут не срабатывать только если в теме для вашего интернет-магазина были переписаны стандартные шаблоны и авторы темы принципиально не используют функции, которые доступны в 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 );
И как результат работы скрипта:
// Описываем функцию
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.
Если у вас есть вопросы, то можете смело их нам задать, и мы обязательно поможем!
Спасибо.
Авторизуйтесь, чтобы продолжить *
или
* Если аккунта у Вас еще нет, то он будет создан автоматически