You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让联系表单仅显示在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:04:31