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

WordPress WooCommerce中mailto锚点链接失效问题排查求助

解决WooCommerce邮件模板中mailto链接被错误转换的问题

我之前也踩过WooCommerce邮件模板里mailto链接被乱加前缀的坑,你遇到的情况是因为WooCommerce的邮件系统会自动"规范化"所有链接,误把mailto协议当成了普通HTTP链接,硬给加上了https://前缀,导致点击后跳转到站点域名而不是唤起邮件客户端。

下面给你几个亲测有效的解决方法:

方法1:用WooCommerce官方的mailto过滤器

WooCommerce专门提供了woocommerce_email_mailto过滤器来处理邮件链接,能完美避开自动转换的坑。把你邮件图标的代码改成这样:

<li>
    <?php
    // 用官方过滤器生成正确的mailto链接
    $email_link = apply_filters( 'woocommerce_email_mailto', 'myemail@test.com', 'Email us' );
    // 把默认的文字替换成你的图标图片
    echo str_replace( '>Email us<', '><img src="' . get_stylesheet_directory_uri() . '/images/email_email.png" target="_blank" alt="email" title="Email us"><', $email_link );
    ?>
</li>

这个方法既安全又符合WooCommerce的开发规范,不会和系统的过滤逻辑冲突。

方法2:直接输出原始HTML绕过过滤

如果过滤器的方式不符合你的需求,也可以直接用PHP输出完整的a标签,绕开WooCommerce的链接处理逻辑:

<li>
    <?php 
    // 直接输出原始a标签,同时用esc_url确保图片URL安全
    echo '<a href="mailto:myemail@test.com"><img src="' . esc_url( get_stylesheet_directory_uri() . '/images/email_email.png' ) . '" target="_blank" alt="email" title="Email us"></a>'; 
    ?>
</li>

这里要注意用esc_url处理图片路径,避免出现安全问题,同时直接输出整个标签,不让系统有机会修改mailto部分。

方法3:确认子主题模板路径正确

最后别忘了检查你的子主题模板路径是否正确:必须是你的子主题文件夹/woocommerce/emails/email-footer.php,如果路径不对,你的修改根本没生效,还是在用默认模板的逻辑。

验证方式

改完之后,去WooCommerce后台的「邮件设置」里,找任意一封邮件点击「发送测试邮件」,收到后查看邮件源码,确认mailto链接的href是mailto:myemail@test.com而不是带https前缀的版本就ok了。


内容的提问来源于stack exchange,提问作者devjson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:26:43