Php Woocommerce邮件功能返回空,即使发送了邮件

Php Woocommerce邮件功能返回空,即使发送了邮件,php,wordpress,email,woocommerce,Php,Wordpress,Email,Woocommerce,我正在尝试使用wordpress发送邮件 $subject = 'WC Send Mail Test'; // load the mailer $mailer = WC()->mailer(); $send = $mailer->send( get_option( 'admin_email' ), $subject, $mailer->wrap_message( $subject, 'a test message' ), '', '' ); if($send){ echo

我正在尝试使用wordpress发送邮件

$subject = 'WC Send Mail Test';

// load the mailer
$mailer = WC()->mailer();
$send = $mailer->send( get_option( 'admin_email' ), $subject, $mailer->wrap_message( $subject, 'a test message' ), '', '' );
if($send){
 echo "Sent";
}else{
 echo "Not sent";
}
此功能工作正常,但我无法跟踪邮件是否已发送。 $send始终为空


以上代码取自

您应该使用var\u dump$send,并查看返回的内容。否则你为什么不试试使用wordpress的原生邮件功能呢

$multiple_recipients = array(
    'recipient1@example.com',
    'recipient2@foo.example.com'
);
$subj = 'The email subject';
$body = 'This is the body of the email';
if(wp_mail( $multiple_recipients, $subj, $body )){
 // Mail Sent Successfully
}else{
 // Mail not sent
}

我终于找到了解决办法。我正在努力挖掘woocommerce代码,并找到woocommerce使用此文件发送电子邮件

woocommerce/includes/class-wc-emails.php

在第214行附近,我找到了send方法

我必须更改密码

$email->send( $to, $subject, $message, $headers, $attachments );

因为更改wordpress核心功能是一个坏习惯,所以我找到了一种覆盖wordpress核心功能的正确方法

我刚刚在子主题中创建了一个目录结构,如

商业/包括

在这里,您必须创建一个名为class-wc-emails.php的文件,并将编辑过的文件代码粘贴到这里


请不要选择该部分或该部分对我不起作用。

您不能跟踪它是什么意思?你想在哪里追踪这个?@mevius请检查我的更新代码就像代码一样简单,我可以向你保证应该返回true。。。如果邮件已发送。。无法返回null,因为它只能返回true或false…@ShravanShrama去掉最后两个参数。在您的情况下,现在应该返回true。@Phorce不起作用。。实际上,我的客户希望每种电子邮件格式都应该相同。由于我们在应用程序中使用woocommerce,所以我们决定将电子邮件格式与woocommerce订单电子邮件格式相同,这就是我使用woocommerce邮件功能的原因。我想你已经找到了答案,但标准化所有电子邮件的最佳方法是使用此插件。我真的很喜欢这个插件,通常在整个网站上都使用它,所以wordpress+woocommerce发送的所有电子邮件都遵循相同的模板。谢谢你的建议,但我的要求不适用于此。这会被视为woocommerce代码中的错误吗?如果是这样,请向他们报告,以便他们能够为每个人解决问题。还请记住,如果您更新Woocommerce,此更改将被撤消。@Forza我想是的。我应该问一下woocommerce的开发者这个问题。@Reigel你在说什么。我同意你的看法,他们在这里处理返回事宜。但是看看214号线附近。我的功能从这里发送电子邮件,不返回是处理这里。改变一个核心是坏习惯。。。你能试试最后这个建议吗?这是。。。尝试更改$mailer=WC->mailer;发送至$mailer=WC\u Email;。如果这不起作用,那么是的,改变核心是@Reigel我知道这是一个坏习惯,但我遇到了致命的错误:在使用您的建议时调用未定义的函数WC_Email。
$return = $email->send( $to, $subject, $message, $headers, $attachments );
return $return;
                           **OR**