我想显示WooCommerce商店通知,而不是整个站点,而是仅显示特定类别或产品。我想在woocommerce_before_shop_loop
和woocommerce_before_single_product
上显示它。就像这些视觉指南中一样:
https://businessbloomer.com/woocommerce-visual-hook-guide-archiveshopcat-page/ https://businessbloomer.com/woocommerce-visual-hook-guide-single-product-page/
我该如何实现?我以为我可以用woocommerce_demo_store
打印WooCommerce商店通知,但是没有用。谢谢。
add_action( 'woocommerce_before_shop_loop', 'woocommerce_demo_store' );
它什么也没显示
woocommerce_demo_store
是woocommerce钩子http://hookr.io/filters/woocommerce_demo_store/
答案 0 :(得分:0)
首先,我们将删除显示默认商店通知的操作:
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'
。
if ( is_single( array( 159, 160 ) ) ) {
add_action( 'woocommerce_before_single_product', 'woocommerce_demo_store' );
}
用产品的ID更改'159', '160'
。
注意:您可以在is_product_category()
和is_single()
函数的输入数组中使用名称,子段或ID。
以下是放入子主题的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' );
经过测试并正在研究: