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

Woocommerce处理电子邮件不自动发送

池砚文
2023-03-14

我四处搜索,从我可以看出,大多数人只是使用一个SMTP插件为这...但是,我想知道怎么了!:)

几周前,我们开始收到报告说,客户没有收到他们的确认电子邮件,当他们下了订单在我们的商店。这以前工作得很好。这里是真正奇怪的部分,据我所知,它只是当我下了一个订单,处理电子邮件没有发送。我们有两种支付选择,贝宝和克拉纳。两个都有用,我自己也试过。我给自己下了真正的订单,一切都很顺利...除了来自Woocommerce的确认邮件。我可以通过重新发送处理电子邮件手动发送,一旦我在订单...即发送邮件功能没有问题!

我还确保我有所有最新的确认邮件模板文件到位。

这对我来说完全是个谜。调试中的任何帮助都将是伟大的!

我在:

Wordpress 4.8

Woocommerce 3.1.1(系统状态无错误)

和PHP版本:7.0.21

我检查了我的PHP日志,我确实每天都会收到一些致命的错误消息(这些是经常出现的):

[02-aug-2017 05:42:19 UTC]PHP致命错误:第22行/[root]/wp-content/plugins/woocommerce/includes/wc-condition-functions.PHP中允许的1073741824字节内存已耗尽(尝试分配262144字节

[02-aug-2017 05:44:08 UTC]PHP致命错误:在/[root]/wp-includes/cache.PHP行548中,允许的1073741824字节内存已耗尽(尝试分配262144字节

[02-aug-2017 05:46:07 UTC]PHP致命错误:第291行/[root]/wp-includes/class-wp-hook.PHP中允许的1073741824字节内存已耗尽(尝试分配20480字节

[02-aug-2017 06:51:12 UTC]PHP致命错误:第59行/[root]/wp-content/plugins/woocommerce/includes/wc-page-functions.PHP中允许的1073741824字节内存已耗尽(尝试分配262144字节

[02-aug-2017 08:42:21 UTC]PHP致命错误:在/[root]/WP中允许的内存大小为1073741824字节已耗尽(尝试分配262144字节)(第548行)[02-aug-2017 12:28:56 UTC]PHP致命错误:在/[root]/WP中允许的内存大小为1073741824字节已耗尽(尝试分配262144字节)(第123行)

[02-aug-2017 12:29:48 UTC]PHP致命错误:第86行/[root]/wp-content/plugins/woocommerce/includes/data-stores/abstract-wc-order-data-store-cpt.PHP中的允许内存大小1073741824字节已耗尽(尝试分配20480字节

我已经安装了WP邮件日志,它的日志记录很好。然而,新的订单根本没有任何邮件发送,所以那里也没有任何东西:(

编辑

我尝试了一个SMTP插件,但当然这并不能解决问题。既然邮件没有被发送...即当客户完成对订单的付款并将其标记为正在处理时,不发送电子邮件。因此这不是一个SMTP可解决的错误。

共有1个答案

宦宏爽
2023-03-14

只是想指出这个问题已经解决了。问题出在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 currency converter插件显示所有价格而不拖尾0。这以前也起过作用,但我相信它与另一个过滤器相冲突,我们在价格小数add_filter('woocommerce_price_trim_zeros','__return_true')中有活动的//trim 0;

因此,总之,去掉前一个函数,只使用后一个过滤器是有效的。

 类似资料:
  • 我希望管理电子邮件的电子邮件主题行根据产品类别进行更改。我看过所有类似的堆栈溢出问题,但没有一个适用于Woocommerce3.8.0(参见这个和这个)。 我有的是这个 我的代码只是返回新订单的默认电子邮件主题行(在woocommerce/settings/email中设置)。我想不通为什么我的函数不能识别类别名称。 谁能告诉我我的代码出了什么问题吗? 我将这段代码放在我的child-theme/

  • 我有一个插件管理我的货件与两个自定义状态:等待-装运和装运。 我尝试添加一个电子邮件发送时,订单传递到发货。 我在Stack Overflow:Woocommerce退款电子邮件中发现了这一点,但我可以知道它是如何工作的 下面是我的插件文件代码: 我用下面的helgatheviking和Adrien Leber的建议更新了我的代码 和我的班级: 当我改变我的订单状态时,什么也没有发生!我的触发函数

  • 我已经做了大量的搜索,尽管我发现有用户询问如何实现以下目标,但在我的知识范围内没有工作解决方案的例子。 问题是关于非常流行的Wordpress插件“Woocommerce”。该插件附带了一个电子邮件系统,使电子商务网站所有者和客户的生活更加轻松。一个问题是,当商店经理将订单状态更改为“已退款”时,没有发送电子邮件。有人说这是因为它是一个手工过程。这是真的,这是一个过程,店主将通过那里的商户帐户或贝

  • 默认情况下,WooCommerce不会发送退款邮件,因为正如Mike Jolley所说,退款是“一个手工过程”。但是,我需要送一个! 我的问题是:我找不到一个钩子,它会在我的扩展电子邮件类内部触发来做到这一点。 我遵循了本教程,编写了一个类来扩展,并且使所有的东西都正常工作,只是当订单状态被更改并保存为“已退款”时,我需要一个钩子来触发类: http://www.skyverge.com/blog

  • 在woocommerce thank you页面上,如果订单状态正在处理,则向多个电子邮件地址发送WC_Email_Customer_Invoice电子邮件。 但问题是电子邮件只发送到客户的电子邮件地址,没有电子邮件发送到prohostreview@gmail.com。我正在使用最新的WordPress和woo-commerce插件。 请告诉我我在这里做错了什么。 问候。

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送