0

0

如何在 WooCommerce 订单邮件中根据网站语言动态添加 PDF 附件

碧海醫心

碧海醫心

发布时间:2026-02-08 12:06:04

|

662人浏览过

|

来源于php中文网

原创

如何在 WooCommerce 订单邮件中根据网站语言动态添加 PDF 附件

本文介绍如何在 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 邮件默认按订单生成时的站点语言环境渲染(包括模板和文本),附件语言也应与之保持一致。

以下是优化后的完整代码示例(兼容主流多语言插件,支持可扩展):

add_filter( 'woocommerce_email_attachments', 'wphelp_dynamic_pdf_attachment', 10, 4 );
function wphelp_dynamic_pdf_attachment( $attachments, $email_id, $order, $email ) {
    // 指定需添加附件的邮件类型
    $target_emails = array( 'new_order', 'customer_processing_order', 'customer_completed_order' );
    if ( ! in_array( $email_id, $target_emails ) ) {
        return $attachments;
    }

    $upload_dir = wp_upload_dir();
    $locale     = get_locale(); // 获取当前语言环境,如 'sk_SK', 'en_GB', 'de_DE'

    // 定义语言与 PDF 路径映射(建议存放在 uploads 目录下,确保路径稳定)
    $pdf_map = array(
        'sk_SK' => '/2021/12/FORMULAR_NA_ODSTUPENIE_OD_ZMLUVY-1.pdf',
        'en_GB' => '/2021/12/cancellation-form-en.pdf',
        'de_DE' => '/2021/12/widerrufsformular-de.pdf',
        'fr_FR' => '/2021/12/formulaire-de-retractation-fr.pdf',
    );

    // 默认 fallback(如无匹配语言,使用英文版)
    $pdf_path = $pdf_map['en_GB'];
    if ( isset( $pdf_map[ $locale ] ) ) {
        $pdf_path = $pdf_map[ $locale ];
    }

    $full_path = $upload_dir['basedir'] . $pdf_path;

    // 安全检查:确保文件存在且可读,避免邮件发送失败
    if ( file_exists( $full_path ) && is_readable( $full_path ) ) {
        $attachments[] = $full_path;
    } else {
        error_log( "WooCommerce PDF attachment missing or unreadable: {$full_path}" );
    }

    return $attachments;
}

关键注意事项

SciMaster
SciMaster

全球首个通用型科研AI智能体

下载
  • 路径规范:所有 PDF 应统一上传至 wp-content/uploads/ 下(如示例中的 /2021/12/ 子目录),避免硬编码绝对服务器路径;wp_upload_dir() 确保跨环境兼容。
  • 语言代码准确性:请通过 var_dump(get_locale()); 在对应页面调试确认实际返回值(例如 Polylang 可能返回 en,需配合 pll_current_language('locale') 替代;WPML 则通常返回标准 xx_XX 格式)。
  • 错误防御:务必校验文件是否存在(file_exists)与可读性(is_readable),否则附件失败将导致整封邮件发送中断。
  • 性能与缓存:该钩子在邮件构建时执行,无显著性能开销;无需额外缓存处理。

? 进阶提示:若需按用户个人语言(而非下单时站点语言)适配,可尝试从 $order->get_customer_id() 获取用户元数据(如 wp_usermeta 中的语言偏好),但需确保该字段已由主题或插件可靠写入——多数场景推荐以 get_locale() 为准,因其与邮件模板语言严格同步,语义最一致。

通过以上方案,您即可实现真正本地化的订单附件体验,提升多语言客户的信任感与合规性(如 GDPR 退订表单的母语支持)。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

189

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

294

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

264

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

127

2025.08.07

wordpress seo
wordpress seo

WordPress网站SEO优化方法有:1、选择一个SEO友好的主题,具有清晰的代码结构,快速的加载速度和响应式设计;2、使用SEO插件,优化你的标题标签,元描述,关键字,XML站点地图等;3、优化你的内容,内容是SEO优化的核心;4、优化你的网站速度;5、创建友好的URL;6、使用内部链接;7、优化图像;8、使用社交媒体;9、定期更新你的网站;10、监控和分析你的网站等等。

425

2023.09.18

wordpress下载后怎么安装
wordpress下载后怎么安装

安装前准备:确保服务器满足要求、获取安装文件、创建数据库。上传 wordpress 文件。创建数据库和用户。运行安装程序:选择语言、输入数据库信息、网站标题和管理员信息。安装 wordpress。安装后配置:设置永久链接、安装主题、安装插件、创建内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

323

2024.04.15

Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.02.06

java多线程方法汇总
java多线程方法汇总

本专题整合了java多线程面试题、实现函数、执行并发相关内容,阅读专题下面的文章了解更多详细内容。

28

2026.02.06

1688阿里巴巴货源平台入口与批发采购指南
1688阿里巴巴货源平台入口与批发采购指南

本专题整理了1688阿里巴巴批发进货平台的最新入口地址与在线采购指南,帮助用户快速找到官方网站入口,了解如何进行批发采购、货源选择以及厂家直销等功能,提升采购效率与平台使用体验。

443

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第二十三期_前端开发
第二十三期_前端开发

共98课时 | 7.8万人学习

WordPress视频教程
WordPress视频教程

共23课时 | 9.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号