如何移除WooCommerce管理员新订单通知邮件的头部内容
移除WooCommerce管理员新订单通知邮件头部的实现方案
目标效果:移除管理员收到的新订单通知邮件自带的头部区块,将邮件篇幅压缩至单页,适配打印需求。
所有修改仅作用于管理员收到的新订单通知,不会影响发送给买家的订单确认、发货提醒、付款通知等其他邮件的正常内容与排版。
方案1:代码片段挂载实现(推荐,无升级覆盖风险)
不需要修改模板文件,将以下代码添加到当前主题的functions.php文件,或者使用代码片段管理插件插入即可生效:
// 移除管理员新订单邮件的默认文本头部 add_action( 'woocommerce_email_header', 'unset_admin_new_order_header', 1, 2 ); function unset_admin_new_order_header( $email_heading, $email ) { if ( $email->id === 'new_order' ) { remove_action( 'woocommerce_email_header', [ WC()->mailer(), 'email_header' ], 10 ); } } // 移除管理员新订单邮件顶部的logo、站点名称抬头区块 add_filter( 'woocommerce_email_header_image', 'hide_admin_new_order_logo', 10, 2 ); function hide_admin_new_order_logo( $img_url, $email ) { return $email->id === 'new_order' ? '' : $img_url; }
如果不需要移除logo,只删除文字头部的话,保留第一段代码即可。
方案2:直接覆盖邮件模板(适合需要深度自定义邮件内容的场景)
如果后续还要调整邮件其他区块的排版,可以通过模板覆盖的方式修改,修改内容不会随插件升级丢失:
- 第一步:找到WooCommerce核心目录下的管理员新订单模板,路径为:
wp-content/plugins/woocommerce/templates/emails/admin-new-order.php - 第二步:将该文件复制到当前主题的WooCommerce模板目录,路径为:
wp-content/themes/你当前使用的主题/woocommerce/emails/admin-new-order.php(如果对应目录不存在手动创建即可) - 第三步:打开复制到主题目录的模板文件,找到如下渲染邮件头部的代码段,直接删除保存即可:
/** * Hook: woocommerce_email_header. * * @hooked WC_Emails::email_header() Output the email header */ do_action( 'woocommerce_email_header', $email_heading, $email );
验证提示
代码添加/模板修改完成后,可以在WooCommerce后台的「WooCommerce > 设置 > 邮件 > 新订单」里发送测试邮件,确认头部内容移除后篇幅符合单页打印要求即可。
内容的提问来源于stack exchange,提问作者Ronyman
相关产品推荐
相关产品推荐

