0

0

WooCommerce 定制特定邮件通知的页眉与页脚

聖光之護

聖光之護

发布时间:2025-08-06 22:22:01

|

656人浏览过

|

来源于php中文网

原创

WooCommerce 定制特定邮件通知的页眉与页脚

本教程详细讲解如何在 WooCommerce 中仅针对特定类型的邮件通知(如“订单待处理”邮件)定制其页眉和页脚,而非修改所有邮件模板。通过利用 WooCommerce 提供的 woocommerce_email_header 和 woocommerce_email_footer 动作钩子,并结合邮件对象中的 $email->id 属性进行条件判断,开发者可以精准控制不同邮件的视觉呈现,实现高度定制化的用户体验。

在 woocommerce 中,对邮件通知的视觉样式进行定制是提升用户体验的重要一环。然而,许多开发者在尝试修改邮件页眉和页脚时,会发现默认的模板文件(如 email-header.php 和 email-footer.php)修改后会影响到所有类型的邮件。这对于需要针对特定邮件(例如“订单待处理”邮件)进行差异化定制的场景来说,显然不是理想的解决方案。本教程将深入探讨如何精确地为特定 woocommerce 邮件通知定制其页眉和页脚,避免全局性的修改。

利用动作钩子实现精准定制

WooCommerce 在其邮件模板中嵌入了多个动作钩子(Action Hooks),允许开发者在不直接修改核心模板文件的情况下注入自定义内容或逻辑。针对邮件的页眉和页脚,主要涉及以下两个关键钩子:

  • woocommerce_email_header: 在邮件页眉内容输出之前触发。
  • woocommerce_email_footer: 在邮件页脚内容输出之前触发。

这些钩子被设计为接收邮件相关的参数,其中最关键的是 $email 对象。通过检查 $email 对象的属性,我们可以识别当前正在处理的是哪种类型的邮件,从而实现有条件的定制。

识别特定邮件类型:$email->id

$email 对象包含了一个名为 id 的属性,它唯一标识了当前的邮件通知类型。例如,“订单待处理”邮件的 id 通常是 customer_on_hold_order。通过在动作钩子内部对 $email->id 进行条件判断,我们就可以确保自定义的页眉或页脚内容只应用于目标邮件。

实现步骤与示例代码

要实现对特定邮件页眉和页脚的定制,您需要将以下 PHP 代码添加到您主题(推荐是子主题)的 functions.php 文件中。

id == 'customer_on_hold_order' ) {
        // 在此处输出您自定义的页眉内容
        // 您可以根据需要设计任何HTML结构和内联样式
        echo '
'; echo '

您的订单正在等待处理

'; echo '

感谢您的耐心等待!

'; echo '
'; } } // 注册动作钩子,优先级为10,接受2个参数 add_action( 'woocommerce_email_header', 'custom_woocommerce_email_header_for_on_hold_order', 10, 2 ); /** * WooCommerce 特定邮件页脚定制 * 仅针对 'customer_on_hold_order' 邮件添加自定义页脚内容 * * @param WC_Email $email WC_Email 对象实例 */ function custom_woocommerce_email_footer_for_on_hold_order( $email ) { // 检查当前邮件的ID是否为 'customer_on_hold_order' if ( $email->id == 'customer_on_hold_order' ) { // 在此处输出您自定义的页脚内容 echo '
'; echo '

如有疑问,请随时联系我们。

'; echo '

© ' . date('Y') . ' 您的公司名称. All rights reserved.

'; echo '
'; } } // 注册动作钩子,优先级为10,接受1个参数 add_action( 'woocommerce_email_footer', 'custom_woocommerce_email_footer_for_on_hold_order', 10, 1 );

代码说明:

  • 函数定义: custom_woocommerce_email_header_for_on_hold_order 和 custom_woocommerce_email_footer_for_on_hold_order 是自定义的 PHP 函数,用于包含您希望在特定邮件中显示的页眉和页脚内容。
  • 条件判断: if ( $email->id == 'customer_on_hold_order' ) 是核心,它确保了只有当邮件类型匹配时,其内部的代码才会被执行。
  • echo 输出: 在条件块内部,您可以使用 echo 语句输出任何 HTML 内容,这些内容将作为页眉或页脚的一部分显示在邮件中。您可以根据需要添加 CSS 样式(建议使用内联样式)。
  • add_action:
    • 第一个参数是钩子名称 (woocommerce_email_header 或 woocommerce_email_footer)。
    • 第二个参数是您自定义的函数名称。
    • 第三个参数 10 是优先级,数字越小,函数执行越早。
    • 第四个参数是函数接受的参数数量。woocommerce_email_header 接收 $email_heading 和 $email 两个参数,所以是 2;woocommerce_email_footer 只接收 $email 一个参数,所以是 1。

注意事项:

  • 代码位置: 务必将上述代码放置在您的 子主题 的 functions.php 文件中。直接修改父主题的文件会在主题更新时丢失您的更改。
  • 邮件 ID 查找: 如果您需要定制其他类型的邮件,但不知道其 id,可以在上述函数的条件判断前添加 error_log( 'Email ID: ' . $email->id ); 来将邮件 ID 记录到 WordPress 的调试日志中,或者简单地 var_dump($email->id); 来查看。常见的邮件 ID 包括:new_order, cancelled_order, failed_order, customer_processing_order, customer_completed_order, customer_refunded_order, customer_invoice, customer_note, customer_reset_password, customer_new_account 等。
  • 替换而非添加: 默认情况下,上述代码会在现有页眉/页脚之后添加内容。如果您希望完全替换默认的页眉/页脚,则需要更高级的技巧,例如在您的函数中移除默认的 WC_Emails::email_header 和 WC_Emails::email_footer 钩子,然后再添加您自己的内容。这通常通过 remove_action 实现,但操作需谨慎。对于大多数定制需求,在现有内容基础上添加或修改样式即可满足。
  • 样式考虑: 邮件客户端对 CSS 的支持程度不一,建议使用内联样式以确保最佳兼容性。

总结

通过利用 WooCommerce 提供的 woocommerce_email_header 和 woocommerce_email_footer 动作钩子,并结合 $email->id 进行条件判断,开发者可以实现对特定邮件通知的页眉和页脚进行精准控制。这种方法不仅避免了对所有邮件进行不必要的修改,还提供了极大的灵活性,以满足个性化的品牌和用户体验需求。遵循本教程的方法,您将能够为您的 WooCommerce 商店创建更专业、更具针对性的邮件通知。

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

780

2023.08.22

wordpress seo
wordpress seo

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

420

2023.09.18

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

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

317

2024.04.15

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

4

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

1

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

1

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

16

2026.01.29

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

CSS教程
CSS教程

共754课时 | 25.2万人学习

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

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