首页 文章

Woocommerce完成订单电子邮件 - 仅手动完成

提问于
浏览
1

我正在尝试取消/删除在订单发货后将订单状态保存为“已完成”时发送的自动客户电子邮件 .

不希望发送自动电子邮件的原因是因为我在电子邮件模板文件中添加了一个代码(覆盖)/woocommerce/email/customer-completed-order.php,这将显示在电子邮件中在管理员中创建的新订单备注发送给客户,如果我们添加订单并保存,然后将订单状态更改为已完成并保存,则会创建一个新注释并发送一封电子邮件 . 因此,现在发送给客户的电子邮件中显示的注释不是我们想要在电子邮件中显示的注释 . 这样做的全部意图是设计精美的电子邮件,状态更新为“已发货”,并包含货件的跟踪编号 . 将最新/最新订单备注添加到电子邮件的代码:

<?php
$args = array(
'status' => 'approve',
'post_id' => $order->id
);
$comments = get_comments($args);
foreach($comments as $comment) {
if ($comment === reset ($comments))
echo $comment->comment_content . '.
'; }

所以我现在找到了解决方案 . 从此链接添加功能:https://docs.woocommerce.com/document/unhookremove-woocommerce-emails/

add_action( 'woocommerce_email', 'unhook_those_pesky_emails' );

function unhook_those_pesky_emails( $email_class ) {

remove_action( 'woocommerce_order_status_completed_notification', array( $email_class->emails['WC_Email_Customer_Completed_Order'], 'trigger' ) );
}

上述功能将禁用在保存状态为“已完成”的订单时发送的自动电子邮件,但您仍然可以使用“订单操作”手动发送订单已完成的电子邮件,并控制在发送电子邮件时保存的最后一个订单备注 . 所以现在我们只需将订单状态更改为已完成并保存,然后我们向客户添加“订单备注”(非私人),其中仅包含跟踪号并保存(“添加备注”),最后我们使用“订单操作” “手动将订单已完成的电子邮件发送给客户 .

如果有任何问题,请随意...

3 回答

  • 1

    这样做的全部意图是设计精美的电子邮件,状态更新为“已发货”,并包含货件的跟踪编号 .

    我建议您创建自己的订单状态并将其命名为 shipped . 以下是如何使一切正常工作:WooCommerce - send custom email on custom order status change

  • 0

    我有一个类似的问题,但解决方式不同:

    我们禁用了订单完成后发送的自动电子邮件(在WC>设置>电子邮件中),因此订单标记完成后不会发送电子邮件 .

    然后,我们将订单备注的电子邮件模板更改为我们想要的文本(例如“您的订单现已完成并且已经在您的订单上 . 请在下面找到您的货件的跟踪号码”)并使用备注功能进行跟踪数字 . 它们不直接链接到跟踪网站,但是模板中提供了详细的运输代理,客户应该可以轻松地手动复制和粘贴以进行跟踪 .

    这对你有用吗?

  • 0
    <?php
      $args = array(
       'status' => 'approve',
       'post_id' => $order->id
       );
      $comments = get_comments($args);
      foreach($comments as $comment)          
       {
         if ($comment === reset ($comments))
            echo $comment->comment_content . '.
    '; }

    上面的代码在WooCommerce(WC)3.1.0中没有给出所需的输出(即客户的最后订单)

    上述代码的工作是由于WC 3.1.0中修复的错误造成的 . 要使上述代码起作用(将最后的订单备注返回给客户),请执行以下操作:删除代码行: $comments = get_comments($args); 并将其替换为:


    `remove_filter( 'comments_clauses', array( 'WC_Comments','exclude_order_comments' ), 10, 1 );
     $comments = get_comments( $args );
     add_filter( 'comments_clauses', array( 'WC_Comments','exclude_order_comments' ), 10, 1 );`
    

    关于这个bug的更多细节:https://github.com/woocommerce/woocommerce/issues/15982#issuecomment-313235066

相关问题