当前位置: 首页 > 知识库问答 >
问题:

当订单状态从“挂起”更改为“已取消”时发送电子邮件通知

潘灵均
2023-03-14

在以前的Woocommerce版本中,当订单从挂起状态更改为取消状态时,会自动发送电子邮件通知(在我的例子中,这发生在admin的inventory部分中设置的分配时间之后)。

在WooCommerce 3.0.8中,他们删除了这种自动化,并将其标记为修补程序:https://github.com/WooCommerce/WooCommerce/blob/master/changelog.txt

pull请求在这里:https://github.com/woocommerce/woocommerce/pull/15170/files

我想恢复这个功能,但是很明显,将这一行复制/粘贴到Woocommerce核心文件中不是一个好主意,因为它会在平台更新时被覆盖。

我知道最好的方法是创建一个函数,并通过functions.php链接到取消的订单操作中,但在看了一下之后,我有点不知道如何做到这一点。下面是被替换的行:

add_action( 'woocommerce_order_status_pending_to_cancelled_notification', array( $this, 'trigger' ), 10, 2 );

如何恢复这个旧的自动功能?

共有1个答案

墨安阳
2023-03-14

好消息:使用woocommerce_order_status_pending_to_cancelled操作钩子和自定义函数钩子,可以彻底解决您的问题:

add_action('woocommerce_order_status_pending_to_cancelled', 'cancelled_send_an_email_notification', 10, 2 );
function cancelled_send_an_email_notification( $order_id, $order ){
    // Getting all WC_emails objects
    $email_notifications = WC()->mailer()->get_emails();

    // Sending the email
    $email_notifications['WC_Email_Cancelled_Order']->trigger( $order_id );
}

代码存在于活动子主题(或主题)的function.php文件中,也存在于任何插件文件中。

在Woocommerce3+中进行了测试并完美运行(在4.8+版本中仍然有效)

 类似资料:
  • 我在我的WooCommerce安装中创建了一个自定义订单状态,称为Quote。 现在我想收到一封电子邮件,每当收到一个订单,已经给出了状态栏。我根据这篇有用的文章创建了一个插件:http://www.skyverge.com/blog/how-to-add-a-custom-woocommerce-email/ 我的插件基本上是从文章复制的,我只是更改了电子邮件的内容。我想改变的是什么触发了电子邮

  • 我正试图阻止woo-commerce发送邮件时,订单状态更改。这些订单是亚马逊的,我的插件从亚马逊同步到Woo-Commerce。在这样做的时候,亚马逊和woo-commerce的邮件都收到了,这激怒了客户。因此,我想停止电子邮件功能停止时,状态从我的插件更改。要更改状态的代码是 有没有可以设置的标志来避免发送邮件? 任何种类的帮助都是非常感谢的。

  • 我已经在我的WooCommerce回拨订单()中创建了自定义订单状态: 现在我想收到一封电子邮件,每当收到一个订单,已经给出了状态栏。我根据这篇有用的文章创建了一个插件:如何添加自定义的WooCommerce电子邮件 这个链接包含我的插件源代码和functions.php代码。 我在function.php中添加了钩子: 当订单更改为“延迟订单”状态时,不会发生任何情况。 有什么想法吗? 我已经尝

  • 拜托,帮忙解决问题。我想让WooComerce只发送一次电子邮件,关于新的订单-管理和客户。如果我将更改订单状态-没有电子邮件将被发送。 我尝试在处禁用通知,并禁用客户端的所有通知,但在这种情况下,客户端即使是第一次也不会收到任何电子邮件。

  • 我添加了自定义状态: 我添加了自定义电子邮件: 我可以在电子邮件设置中看到电子邮件,在订单状态下拉菜单中看到状态。现在,每当订单状态更改为时,我就需要发送我的新电子邮件。过渡钩似乎从未开火。 我也试过: 这似乎也不起作用...有什么想法吗?

  • 我创建了一个自定义电子邮件类并将其添加到Woocommerce中。当我转到WooCommerce中的电子邮件设置时,我可以在那里看到我的模板,当我手动触发它时,电子邮件就会到达目标电子邮件帐户。现在我遇到的问题是,我在我的类中添加了一个动作,该动作应该检测订单状态更改,并在订单被设置为我的自定义状态时执行我的触发器功能: add_action('woocommerce_order_status_w