从 WooCommerce“暂停订单"中删除订单号;&“新秩序"电子邮件 [英] Remove Order # from WooCommerce "Order on-hold" & "New Order" Emails

查看:32
本文介绍了从 WooCommerce“暂停订单"中删除订单号;&“新秩序"电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从 WooCommerce 生成的订单暂停"和新订单"电子邮件中删除自动生成的订单号.

我在下订单后使用第三方插件来分配自定义订单号,因此我分配的新订单号仍然可以在以后的电子邮件中使用很重要.我不希望客户(或管理员)在更改之前看到原始订单号.

任何帮助将不胜感激!

解决方案

更新 (仅适用于 woocommerce 3.3+ 特定模板)

您需要通过您的子主题覆盖 Woocommerce 电子邮件模板,如以下链接的官方文档中所述:

2) 客户保留订单:

现在您还需要在 WooCommerce > 设置 > 电子邮件中从新订单"主题中删除 ({order_number}) 并保存...

你已经完成了……

I'd like to remove the auto-generated order number from both the "Order on-hold" and "New order" emails generated by WooCommerce.

I'm using a third-party plugin to assign custom order numbers after an order has been placed, so it's important that the new order number I assign can still be used in future emails. I don't want the customer (or admin) to see the original order number until it has been changed.

Any help would be greatly appreciated!

解决方案

Updated (only for woocommerce 3.3+ specific template)

You will need to override a Woocommerce email template via your child theme as explained on the below linked official documentation:

Template structure & Overriding templates via a theme

The template to copy and override is woocommerce/templates/emails/email-order-details.php

In this template (copied to your theme as explained) you will need to change this entire block:

<h2>
    <?php
    if ( $sent_to_admin ) {
        $before = '<a class="link" href="' . esc_url( $order->get_edit_order_url() ) . '">';
        $after  = '</a>';
    } else {
        $before = '';
        $after  = '';
    }
    /* translators: %s: Order ID. */
    echo wp_kses_post( $before . sprintf( __( 'Order #%s', 'woocommerce' ) . $after . ' (<time datetime="%s">%s</time>)', $order->get_order_number(), $order->get_date_created()->format( 'c' ), wc_format_datetime( $order->get_date_created() ) ) );
    ?>
</h2>

to:

<?php
    // Targetting specific email notificatoins
    $email_ids = array('new_order', 'customer_on_hold_order');

    $date = sprintf( '<time datetime="%s">%s</time>', $order->get_date_created()->format( 'c' ), wc_format_datetime( $order->get_date_created() ) );

    // Displaying order number except for "New Order" and "Customer On Hold Order" notifications
    if( ! in_array($email->id, $email_ids) ){
        $order_number = sprintf( __( 'Order #%s', 'woocommerce' ), $order->get_order_number() );
        $date = '('.$date.')';
    } else {
        $date = __('Order date:', 'woocommerce') . ' ' . $date;
        $order_number = '';
    }

    if ( $sent_to_admin ) {
        $before = '<a class="link" href="' . esc_url( $order->get_edit_order_url() ) . '">';
        $after  = '</a> ';
    } else {
        $before = '';
        $after  = ' ';
    }
?>

<h2><?php echo $before . $order_number . $after . $date; ?></h2>

This will remove the Order number on "New Order" and "Customer On Hold Order" email notifications. You will get:

1) New order (admin):

2) Customer On-Hold Order:

Now you will also need in WooCommerce > Settings > Emails to remove ({order_number}) from "New Order" subject and save…

You are done…

这篇关于从 WooCommerce“暂停订单"中删除订单号;&amp;“新秩序"电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆