我一直在搜索,从我所知道的,大多数人只是使用一个SMTP插件...但是,我想知道什么是错的! :)
几周前,我们开始收到客户在向我们的商店下订单时未收到确认电子邮件的报告。这之前工作得很好。这是一个非常奇怪的部分,从我所知道的,这就是我发出的订单,即处理电子邮件没有发送。 我们有两种付款方式,paypal和klarna。两个都工作,我自己尝试过。我为自己下了真正的订单,一切正常......除了来自woocommerce的确认电子邮件。我可以通过在订单中重新发送处理邮件手动发送它...即发送邮件功能没有问题!
我还确保我已准备好所有最新的确认邮件模板文件。
这对我来说是一个完全的谜。任何调试方面的帮助都会很棒!
我在:
Wordpress 4.8
Woocommerce 3.1.1(系统状态无错误)
和PHP版本:7.0.21
我已经检查了我的PHP日志,并且每天都会收到一些致命的错误消息(这些是经常性的):
[02-Aug-2017 05:42:19 UTC] PHP致命错误:/ [root] / wp-content / plugins / woocommerce / includes /中允许的内存大小为1073741824字节耗尽(试图分配262144字节)第22行的wc-conditional-functions.php
[02-Aug-2017 05:44:08 UTC] PHP致命错误:第548行的/[root]/wp-includes/cache.php中允许的内存大小为1073741824字节(试图分配262144字节)
[02-Aug-2017 05:46:07 UTC] PHP致命错误:/ [root] / wp-includes / class-wp-hook中允许的内存大小为1073741824字节耗尽(试图分配20480字节)。 php第291行
[02-Aug-2017 06:51:12 UTC] PHP致命错误:/ [root] / wp-content / plugins / woocommerce / includes /中允许的内存大小为1073741824字节耗尽(试图分配262144字节)第59行的wc-page-functions.php
[02-Aug-2017 08:42:21 UTC] PHP致命错误:第548行的/[root]/wp-includes/cache.php中允许的内存大小为1073741824字节(试图分配262144字节) [02-Aug-2017 12:28:56 UTC] PHP致命错误:在第123行的/[root]/wp-includes/cache.php中,允许的内存大小为1073741824字节(试图分配262144字节)
[02-Aug-2017 12:29:48 UTC] PHP致命错误:/ [root] / wp-content / plugins / woocommerce / includes中允许的内存大小为1073741824字节(试图分配20480字节)第86行的data-stores / abstract-wc-order-data-store-cpt.php
PS。我已经安装了WP Mail日志,它的日志记录很好。但是,新订单根本没有发送任何邮件,因此没有任何内容:(
修改
我尝试了一个SMTP插件,但当然这并没有解决问题。由于没有发送电子邮件...即,当客户完成订单付款并且标记为处理时,不发送电子邮件。所以这不是SMTP可解决的错误。
答案 0 :(得分:0)
只是想注意这个问题已经解决了。 问题是我们的functions.php中的一个函数 更具体地说,这个:
/*
* Show prices with zero decimals on the catalogue and product pages.
* @param int decimals The number of decimals passed by WooCommerce.
* @return int The number of decimals used to show the price.
* @author Aelia
*/
function woocs_subzero($decimals) {
if(!is_admin() || defined('DOING_AJAX')) {
// Set zero decimals everywhere for all currencies except [BASE_CURRENCY], and on all pages except cart and checkout
if( ( get_woocommerce_currency() !== 'SEK' ) && !is_cart() && !is_checkout() ) {
return 0;
}
}
return $decimals;
}add_filter('pre_option_woocommerce_price_num_decimals', 'woocs_subzero', 50, 2);
这是为了强制Aelia货币转换器插件显示所有价格而不会尾随零。这之前有用,但我认为这与我们活跃的另一个过滤器有冲突 //在价格小数中修剪零 add_filter('woocommerce_price_trim_zeros','__ return_true');
总而言之,删除前一个函数并仅使用后面的过滤器。