Сначала мы удалим действие, которое отображает уведомление о магазине по умолчанию:
remove_action( 'wp_footer', 'woocommerce_demo_store' );
Мы добавим уведомление о магазине в нужном месте на выбранных страницах:
if ( is_product_category( array( 'clothing', 'decor' ) ) ) {
add_action( 'woocommerce_before_shop_loop', 'woocommerce_demo_store' );
}
Измените 'clothing', 'decor'
с помощью slug для вашей категории продуктов.
if ( is_single( array( 159, 160 ) ) ) {
add_action( 'woocommerce_before_single_product', 'woocommerce_demo_store' );
}
Измените '159', '160'
с помощью идентификатора вашего продукта.
Примечание. Вы можете использовать имя, слаг или ID во входных данных.массив для функций is_product_category()
и is_single()
.
Вот полный код для вставки в файл functions.php
вашей дочерней темы:
function lh_conditional_store_notice() {
// Remove default 'woocommerce_demo_store' notice
remove_action( 'wp_footer', 'woocommerce_demo_store' );
// Add back the woocommerce_demo_store' notice, but on the selected pages
// Show notice on the 'clothing' and 'decor' categories at 'woocommerce_before_shop_loop'
if ( is_product_category( array( 'clothing', 'decor' ) ) ) {
add_action( 'woocommerce_before_shop_loop', 'woocommerce_demo_store' );
}
// Show notice on single products having ID '159' and '160' at 'woocommerce_before_single_product'
if ( is_single( array( 159, 160 ) ) ) {
add_action( 'woocommerce_before_single_product', 'woocommerce_demo_store' );
}
}
add_action( 'template_redirect', 'lh_conditional_store_notice' );
Протестированои работает на:
- WordPress 5.0.3
- Twentyninteen 1.2
- WooCommerce 3.5.4
- Localhost (XAMPP для Windows 5.6.15)