向管理员发送电子邮件通知,了解 WooCommerce 中的待处理订单状态

2024-02-11

在 WooCommerce 中,当客户从购物车结帐并提交订单时,如果未处理付款,订单将设置为“待处理”付款。管理员没有收到任何相关电子邮件。

我想就此类订单向管理员发送电子邮件。我该怎么做?


UPDATE 2 (更改自woocommerce_new_order to woocommerce_checkout_order_processed感谢席琳·加雷尔)

当新订单出现时,此代码将在所有可能的情况下被触发获得待处理状态并将自动触发“新订单”电子邮件通知:

// New order notification only for "Pending" Order status
add_action( 'woocommerce_checkout_order_processed', 'pending_new_order_notification', 20, 1 );
function pending_new_order_notification( $order_id ) {

    // Get an instance of the WC_Order object
    $order = wc_get_order( $order_id );

    // Only for "pending" order status
    if( ! $order->has_status( 'pending' ) ) return;

    // Send "New Email" notification (to admin)
    WC()->mailer()->get_emails()['WC_Email_New_Order']->trigger( $order_id );
}

代码位于活动子主题(或主题)的functions.php 文件中或任何插件文件中。


更可定制的代码版本(如果需要),这将使待处理订单更加明显:

// New order notification only for "Pending" Order status
add_action( 'woocommerce_checkout_order_processed', 'pending_new_order_notification', 20, 1 );
function pending_new_order_notification( $order_id ) {
    // Get an instance of the WC_Order object
    $order = wc_get_order( $order_id );

    // Only for "pending" order status
    if( ! $order->has_status( 'pending' ) ) return;

    // Get an instance of the WC_Email_New_Order object
    $wc_email = WC()->mailer()->get_emails()['WC_Email_New_Order'];

    ## -- Customizing Heading, subject (and optionally add recipients)  -- ##
    // Change Subject
    $wc_email->settings['subject'] = __('{site_title} - New customer Pending order ({order_number}) - {order_date}');

    // Change Heading
    $wc_email->settings['heading'] = __('New customer Pending Order'); 
    // $wc_email->settings['recipient'] .= ',[email protected] /cdn-cgi/l/email-protection'; // Add email recipients (coma separated)

    // Send "New Email" notification (to admin)
    $wc_email->trigger( $order_id );
}

代码位于活动子主题(或主题)的functions.php 文件中或任何插件文件中。

此版本允许自定义电子邮件标题、主题、添加收件人...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向管理员发送电子邮件通知,了解 WooCommerce 中的待处理订单状态 的相关文章

  • PHP cURL 代理带标头?

    我正在制作一个 PHP 图像代理脚本 我需要它不仅能够回显其请求的图像的内容 而且还能够以相同的方式重现图像请求的标头 我见过一个 另一个 但没有同时看到过 这些 cURL 选项让我感到困惑 我该怎么做 抱歉 我不确定你想要什么 这是从图像
  • 为什么 foreach 这么慢?

    PHPBench com http www phpbench com 在每个页面加载上运行快速基准测试脚本 在 foreach 测试中 当我加载它时 foreach 的运行时间是第三个示例的 4 到 10 倍 为什么本机语言构造明显比执行逻
  • 将 1 添加到字段

    如何将以下 2 个查询变成 1 个查询 sql SELECT level FROM skills WHERE id id LIMIT 1 result db gt sql query sql level int db gt sql fetc
  • 将 IP 地址与 IPv6 块进行比较

    我使用 PHP 将用户 IP 地址与 IP 块列表进行比较 其中大多数是 IPv4 但其中一些是 IPv6 我从用户那里获得的 IP 地址始终与 IPv4 兼容 至少我是这么假设的 我将如何比较这个 这就是我现在正在使用的 function
  • password_verify 哈希值与密码不匹配

    我使用下面的代码生成了密码哈希 hash password hash test PASSWORD BCRYPT 然后我使用 255 个字符将其存储在数据库中 然后我尝试使用比较器来测试登录 但失败了 它只允许我使用我之前刚刚生成的几行哈希登
  • 手动检查 php 中的 jpeg 文件结尾标记 ffd9 (?) 以捕获截断错误

    基本上是尝试从集合中删除损坏的 过早结束的 jpeg 文件 我认为如果文件末尾标记不存在 则意味着图像被截断 因此我认为它对我的目的无效 这是检查声音的方法吗 如果是的话 我有什么想法可以在 php 中实现这个吗 cheers 尝试这个 j
  • 寻求有关标记视频系统上的“相关视频”查询的建议

    好吧 我运行一个小型视频网站 在实际的视频页面上有一条与大多数视频页面 例如 YouTube 类似的 相关视频 目前我所做的就是随机获取其标签之一并查找其他视频相同的标签 毫不奇怪 这不是一个好方法 因为有些标签非常模糊 有些视频被错误标记
  • 下拉选择字段是否容易受到任何类型注入的影响

    我在这里读到了 永远不要相信用户输入 这句话 这是有道理的 我可以理解用户输入的任何字段都是可疑的 但是 下拉选择字段怎么样 它们可以用于任何类型的注射吗 我已经清理了允许用户输入的所有字段 并且还使用 mysqli 准备好的语句插入数据库
  • 将 H:i 转换为 ISO 8601 持续时间标准

    菜谱的持续时间作为字符串存储在我的数据库中 如下所示 01 50 我试图将其转换为 ISO 8601 持续时间标准 但没有成功 这就是我用来调用该字段并解析页面的内容 totalTime extraField gt value itempr
  • is_page() 条件在 AJAX 函数内不起作用

    我正在使用ajax 过滤帖子 我希望 产品 和 常见问题解答 页面的 数组不同 如果这是在 ajax 请求中执行的 则不会设置 is page 您发出请求的页面是之前的请求 您需要在原始页面上设置一些内容以与您的 ajax 请求一起传递 以
  • 如何删除 utf-8 中无法识别的字符? mysql/php

    我有一个设置为 utf 8 的 mysql 数据库 我已将 php 标头设置为 header Content Type text html charset utf 8 在我的html中 当我返回任何带有圆引号或撇号的内容时 它们显示为无法识
  • PHP 中的图像处理和创建 - 如何创建 300DPI 图像

    在 PHP 中使用 GD 库创建图像时 ie imagecreatetruecolor 生成图像的 DPI 是多少 我找不到任何人指定 dpi 的设置位置或默认值 我需要创建 300DPI tiff 或 jpeg 然后从程序保存到文件系统
  • 将访客客户的订单分配给特定用户

    我正在使用以下代码 https stackoverflow com questions 41311308 assign orders to existing customer in woocommerce来解决这个问题 但这不适用于来宾客户
  • 雄辩的 laravel:如何从 ->get() 获取行数

    我在弄清楚如何使用这个集合来计算行数时遇到了很多麻烦 wordlist DB table wordlist gt where id lt correctedComparisons gt get 我努力了adding gt count 但没有
  • wp_mail(Wordpress 邮件功能)未发送到 gmail 或 live.co.uk 帐户

    我有一个网站 允许访问者通过两种方式联系我 通过其自己页面上的联系表单和侧边栏中的 ajax 小型联系表单 两种联系方式都会向我的 Gmail 帐户发送电子邮件 它自己页面上的联系表单工作正常 但ajax表单不会发送到gmail 也不会发送
  • 如何在godaddy共享主机上安装composer?

    我正在尝试安装作曲家 但出现错误 我做了什么 下载的作曲家wget https getcomposer org installer php installer check 使用 Composer 的所有设置均正确 php installer
  • 依赖注入类 - 在哪里存储配置

    当对数据库处理程序等使用依赖注入而不是单例时 最好将配置保存在哪里 即用户名密码主机等 保留在类内部 使用容器类或使用静态配置类或使用文件 我通常将它们保存在网络根目录之外的文件中
  • 如何在 PHP 中使用 Amazon 的 API 来搜索书籍? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一款用于图书共享 评论和推荐的 Facebook 应用程序 我搜索了网络 使用我能想到的每个
  • 相当于 PHP 中的 Alert() 和 Prompt()

    在 JavaScript 中 我们有 Alert 和 Prompt 它们为用户打开一个弹出框 PHP 有等效的吗 Get asdf 是获取用户输入的一种方法 还有其他方法吗 另外 还有一个问题 是否要求 PHP 总是一次性执行 或者它可以像
  • 我无法使用 Codeigniter 发送任何电子邮件

    我创建了一个控制器 并在控制器中做了一个测试函数来测试电子邮件是否发送 我检查了不同的电子邮件地址 但没有成功 这是我的代码示例 public function sendmail config protocol sendmail confi

随机推荐