本文介绍如何在 woocommerce 订单确认邮件中,基于用户当前语言环境(locale)自动附加对应语言的静态 pdf 文件,实现多语言附件精准匹配。
在 WooCommerce 中,为订单邮件(如 new_order 或 customer_processing_order)添加 PDF 附件是常见需求;而当站点支持多语言(例如使用 WPML、Polylang 或原生语言切换),仅固定路径无法满足本地化要求。此时需根据用户的界面语言动态选择附件文件。
核心思路是:通过 get_locale() 获取当前请求的语言标识符(如 cs_CZ、en_US、de_DE),再结合条件判断加载对应语言的 PDF 文件路径。注意:get_locale() 返回的是 WordPress 站点当前加载的语言代码(由 WPLANG 或语言插件设置),而非浏览器语言或用户个人偏好——这正适合邮件场景,因为 WooCommerce 邮件默认按订单生成时的站点语言环境渲染(包括模板和文本),附件语言也应与之保持一致。
以下是优化后的完整代码示例(兼容主流多语言插件,支持可扩展):