在 WooCommerce 中完成订单后向客户发送电子邮件
Posted
技术标签:
【中文标题】在 WooCommerce 中完成订单后向客户发送电子邮件【英文标题】:Send Email To The Customer On Order Complete in WooCommerce 【发布时间】:2014-03-09 03:38:25 【问题描述】:我的 Wordpress 安装有问题,或者更具体的说是 WooCommerce。
我过去几个月一直在工作的客户希望每次客户完成/支付订单时,除了标准订单确认电子邮件之外,还会向他的电子邮件地址发送一封自定义电子邮件。
简而言之:我需要在订单完成后向客户发送一封自定义电子邮件。 我怎样才能在functions.php中做到这一点?
我尝试使用官方文档中描述的各种钩子和函数,但无法弄清楚。
Wordpress 版本是 3.8.1,WooCommerce 版本是 2.0.20。
提前谢谢你。
【问题讨论】:
【参考方案1】:您可以通过使用名为 woocommerce_payment_complete 的操作来做到这一点;
$order = new WC_Order( $order_id );
function order_completed( $order_id )
$order = new WC_Order( $order_id );
$to_email = $order["billing_address"];
$headers = 'From: Your Name <your@email.com>' . "\r\n";
wp_mail($to_email, 'subject', 'message', $headers );
add_action( 'woocommerce_payment_complete', 'order_completed' );
【讨论】:
尝试了该功能,但由于某种原因它似乎不起作用。答案似乎正确,动作名称也记录在案,但我就是收不到邮件。 @Alessio 如果你正在开发自己的插件,你应该把它放在你的插件操作中。 不,我只是在订单完成后尝试执行一些操作,我已将此代码放在主题文件夹中的 functions.php 文件中,但它没有被调用...【参考方案2】:我解决了这个问题。我一直在使用错误的钩子。这就是问题的主要原因。正确的钩子名称是“woocommerce_thankyou”。在我更改函数以使用此钩子后,一切正常。
【讨论】:
【参考方案3】:我认为您没有检索邮件主要有三个原因
-
如果启用,则需要正确配置 SMTP 插件
试试PHP邮件功能
mail('caffeinated@example.com', 'My Subject', $message);
为添加为add_action( 'woocommerce_payment_complete', 'order_completed',1 );
的操作添加优先级
【讨论】:
我对此表示怀疑,因为所有其他邮件功能都正常工作。 Wordpress/WooCommerce 正在正确发送其他电子邮件(订单确认和订单处理电子邮件)。我认为这不会导致问题。以上是关于在 WooCommerce 中完成订单后向客户发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
在 WooCommerce 中自动处理已付款订单而不是自动完成
php Woocommerce在发送失败/取消订单时向客户发送电子邮件
WooCommerce - 从 functions.php 文件发送新订单/客户发票电子邮件
在客户订单历史记录中显示最后一个WooCommerce管理订单备注