在 WooCommerce 中发送订单通知的指南

PHP WooCommerce

实施自定义订单通知

管理 WooCommerce 商店涉及确保您的供应商或产品经理在产品售出时立即收到通知。此过程对于维护更新的库存和提高卖家参与度至关重要。通常,WooCommerce 会向商店管理员发送订单通知,但不会向在没有供应商插件的情况下直接管理其产品的个人用户或供应商发送订单通知。

为了解决这个问题,需要自定义编码来扩展 WooCommerce 的功能,从而允许在新订单时向产品发布商发送通知。这涉及利用 WooCommerce 的挂钩和过滤器,特别是针对订单处理阶段来触发向产品发布者发送自定义电子邮件通知。

命令 描述
add_action() 将回调函数注册到由 WordPress 触发的特定操作挂钩,在本例中,用于在 WooCommerce 处理订单后执行自定义代码。
wc_get_order() 使用订单 ID 检索订单对象,从而允许访问 WooCommerce 中的所有订单详细信息。
get_items() 调用订单对象的方法以返回订单中包含的所有商品/产品的数组。
reset() 将数组的内部指针重置为第一个元素,此处用于从订单的项目数组中获取第一个项目。
get_product_id() 调用项目/产品对象以检索产品的唯一标识符,用于在脚本中进一步引用。
get_post_field('post_author', $product_id) 从特定帖子字段获取数据,此处用于获取与产品帖子关联的作者/用户 ID。
get_userdata() 通过用户 ID 检索与用户相关的所有数据,此处用于获取产品作者的电子邮件和显示名称等详细信息。
wp_mail() 用于通过 WordPress 发送电子邮件。它设置并发送使用给定主题、消息和标题格式化的电子邮件。

了解 WooCommerce 通知脚本

提供的脚本用于在 WooCommerce 网站上为产品发布新订单时自动执行通知产品发布者的过程。工作流程开始于 函数,它连接到 WooCommerce 的结账流程。此操作会触发自定义功能 每当处理订单时。该函数首先使用条件语句检查是否存在有效的订单 ID。如果没有,它将退出以防止错误。然后它通过以下方式检索订单对象 功能,允许访问订单详细信息。

获得订单对象后,脚本将使用 获取订单中的产品数组。由于该配置只允许每个订单购买一种产品, 函数用于直接抓取第一项。后续行涉及使用以下命令提取产品 ID 和产品发布者的用户 ID 和 get_post_field('post_author'), 分别。该脚本通过以下方式获取用户数据 ,包括通知将发送到的电子邮件。电子邮件的撰写和发送使用 ,完成通知流程。

WooCommerce 产品订单的自定义电子邮件提醒

WordPress 和 WooCommerce PHP 集成

add_action('woocommerce_checkout_order_processed', 'send_email_to_product_publisher_on_new_order', 10, 1);
function send_email_to_product_publisher_on_new_order($order_id) {
    if (!$order_id) return;
    $order = wc_get_order($order_id);
    if (!$order) return;
    $items = $order->get_items();
    $item = reset($items);
    if (!$item) return;
    $product_id = $item->get_product_id();
    $author_id = get_post_field('post_author', $product_id);
    $author = get_userdata($author_id);
    if (!$author) return;
    $author_email = $author->user_email;
    if (!$author_email) return;
    $subject = 'Notification: New Order Received!';
    $message = "Hello " . $author->display_name . ",\n\nYou have a new order for the product you posted on our website.\n";
    $message .= "Order details:\n";
    $message .= "Order Number: " . $order->get_order_number() . "\n";
    $message .= "Total Value: " . wc_price($order->get_total()) . "\n";
    $message .= "You can view the order details here: " . $order->get_view_order_url() . "\n\n";
    $message .= "Thank you for your contribution to our community!";
    $headers = array('Content-Type: text/plain; charset=UTF-8');
    wp_mail($author_email, $subject, $message, $headers);
}

WooCommerce 的增强电子邮件通知功能

WooCommerce 的高级 PHP 脚本

add_action('woocommerce_checkout_order_processed', 'notify_product_publisher', 10, 1);
function notify_product_publisher($order_id) {
    if (empty($order_id)) return;
    $order = wc_get_order($order_id);
    if (empty($order)) return;
    foreach ($order->get_items() as $item) {
        $product_id = $item->get_product_id();
        $author_id = get_post_field('post_author', $product_id);
        $author_info = get_userdata($author_id);
        if (empty($author_info->user_email)) continue;
        $email_subject = 'Alert: Your Product Has a New Order!';
        $email_body = "Dear " . $author_info->display_name . ",\n\nYour product listed on our site has been ordered.\n";
        $email_body .= "Here are the order details:\n";
        $email_body .= "Order ID: " . $order->get_order_number() . "\n";
        $email_body .= "Total: " . wc_price($order->get_total()) . "\n";
        $email_body .= "See the order here: " . $order->get_view_order_url() . "\n\n";
        $email_body .= "Thanks for using our platform.";
        $headers = ['Content-Type: text/plain; charset=UTF-8'];
        wp_mail($author_info->user_email, $email_subject, $email_body, $headers);
    }
}

WooCommerce 中增强的工作流程自动化

在没有供应商插件的情况下,在 WooCommerce 中集成产品发布者的自定义通知涉及有效利用 WordPress 功能。这种方法对于多个供应商在单一平台下管理其产品的站点特别有用。通过使用 WordPress 用户角色和功能系统,网站可以允许用户管理其库存,同时还可以接收有关其产品销售的直接通知。该系统不仅简化了平台内的通信,还确保每个供应商及时更新其库存动态,这对于保持准确的库存水平和计划补货至关重要。

实现这样的通知系统需要深入了解 WooCommerce 和 WordPress 的内部结构。这包括 WordPress 中的挂钩和过滤器、用户角色以及电子邮件处理的知识。此外,必须确保这些自定义实现不会与现有工作流程或插件冲突,从而为管理员和供应商提供无缝体验。如所提供的脚本所示,正确的错误处理和验证对于避免发送错误或重复的通知至关重要。

  1. 目的是什么 脚本中的函数?
  2. 这 function 用于将自定义函数挂钩到由 WordPress 或 WooCommerce 触发的特定操作中,在本例中,用于在处理订单后启动通知流程。
  3. 为什么是 功能对于自定义通知很重要吗?
  4. 这 函数检索确定购买了哪个产品并提取通知的发布者信息所需的订单详细信息。
  5. 如何 功能协助处理订单项目?
  6. 由于商店每个订单只允许购买一种产品, 函数有助于直接访问订单项数组中的第一个也是唯一一个产品。
  7. 什么是 在 WooCommerce 上下文中检索?
  8. 此函数检索发布产品的用户的 ID,这是识别订单通知电子邮件的收件人所必需的。
  9. 的作用是什么 通知过程中的功能?
  10. 这 功能至关重要,因为它使用指定的主题和消息内容向产品发布者发送实际的电子邮件通知。

将自定义通知功能集成到 WooCommerce 中提供了一种定制的方法来管理各个供应商的产品销售。该系统不仅通过确保电子商务平台与其用户之间的及时沟通来提高运营效率,而且还支持更好的库存管理和供应商参与。通过满足直接管理其产品的供应商的特定需求,此类解决方案使用户能够更好地控制和监督其销售流程。