在 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管理订单备注

WooCommerce Google Analytics:发送有关非标准成功页面的订单信息

php 在WooCommerce上添加自定义javascripts感谢David客户端订单完成后的页面