如何让联系表单仅显示在WooCommerce分类页面而非产品页面
如何让联系表单仅显示在WooCommerce分类页面而非产品页面
嘿,我来帮你搞定这个问题!你的代码之所以会在产品页面也显示表单,是因为woocommerce_after_main_content这个动作钩子在WooCommerce的产品页面和分类页面都会被触发。要实现表单仅出现在分类页面的需求,我们只需要给输出逻辑加上一个页面类型的条件判断就可以了。
WooCommerce提供了专门的条件标签is_product_category(),用来判断当前页面是否是产品分类归档页面。我们把你原来的输出代码包裹在这个条件判断里,就能精准控制表单的显示范围了。修改后的代码如下:
add_action( 'woocommerce_after_main_content', function(){ // 仅在产品分类页面执行以下代码 if ( is_product_category() ) { // Title $header = "<br><b>Contact Us</b><br>"; // Message $text = "<p>Please do not hesitate to contact us with queries you may have</p><br>"; // WPForms shortcode $wpforms_shortcode = do_shortcode('[wpforms id="1385"]'); // Output combined message and form echo ' ' . $header .' ' . $text .' ' . $wpforms_shortcode .' '; } }, 9 );
简单解释一下:
is_product_category()会检查当前页面是否是产品分类页面,只有返回true时,里面的表单代码才会执行输出- 这样就彻底避免了表单在产品页面(以及其他非分类页面)显示的问题
如果你之后还需要调整显示范围,比如排除商店首页,可以在条件里补充&& !is_shop(),变成if ( is_product_category() && !is_shop() ),灵活适配你的需求。
备注:内容来源于stack exchange,提问作者Gary
相关产品推荐
相关产品推荐

