WooCommerce_Email_Recipient_New_Order未触发

时间:2018-06-20 作者:jdog

我想在WooCommerce中定制新订单的收件人。根据文档和各种示例,我可以这样做:

function wc_change_admin_new_order_email_recipient( $recipient, $order ) {
    global $woocommerce;

//some code
    return $recipient;
}
add_filter(\'woocommerce_email_recipient_new_order\', \'wc_change_admin_new_order_email_recipient\', 10, 2);
然而,我无法在本地开发机器上触发此过滤器,即使删除此代码,我也无法让网站发送订单电子邮件。

我有一个工作的本地调试器,代码在wc\\u email类中的不同点停止,但是只有在我更改后端的管理电子邮件时,它才能到达get\\u recipient函数。

以下是我尝试过的:

关闭所有其他插件,确保Wordpress、WooCommerce、Theme是最新的,有些主题文件显示为非最新的,但管理新顺序。此列表中不显示php管理新订单。overrides文件夹中的php与WooCommerce版本完全相同,因此我也尝试完全删除override。丢失的密码会在本地系统(通过Internet)向我发送一封电子邮件,因此电子邮件发送工作正常。是否有用于发送管理新订单电子邮件的cron作业,如果有,我如何触发它?

还有其他想法吗?

2 个回复
SO网友:jdog

发送给管理员的订单通知电子邮件作为付款通知流程的一部分-在本例中为Paypal IPN

要在本地域上测试这一点,最好的方法是从后端的订单列表中触发订单电子邮件。

上述代码工作正常。

SO网友:Hasan Mahamud Rana

WordPress版本:5.2.2

WooCommerce版本:3.7.0

发送静态收件人(覆盖默认值)

add_filter( \'woocommerce_email_headers\', \'hasan_headers_filter_function\', 10, 2);

function hasan_headers_filter_function( $headers, $object ) {
  $headers = \'Test Dealer <[email protected]>\';
  return $headers;
}
将额外的静态收件人与管理员一起发送

add_filter( \'woocommerce_email_headers\', \'hasan_headers_filter_function\', 10, 2);

function hasan_headers_filter_function( $headers, $object ) {
  $headers .= \'CC: Test Dealer <[email protected]>\' . "\\r\\n";
  return $headers;
}
如果您只想在订单完成时发送

add_filter( \'woocommerce_email_headers\', \'hasan_headers_filter_function\', 10, 2);

function hasan_headers_filter_function( $headers, $object ) {
  if ($object == \'customer_completed_order\') {
    $headers .= \'CC: Test Dealer <[email protected]>\' . "\\r\\n";
  }
  return $headers;
}

结束

相关推荐