【问题标题】:How to remove fields from WooCommerce Customer Thank You Email (Customer Processing Order)如何从 WooCommerce 客户感谢电子邮件中删除字段(客户处理订单)
【发布时间】:2020-12-27 08:15:49
【问题描述】:

我急需帮助。我似乎无法在网上找到任何关于此的信息,我们将不胜感激。

我需要从客户下单后 Woocommerce 发送给客户的客户处理订单电子邮件中删除以下内容:

  1. 付款方式
  2. 所购商品的价格
  3. 购买项目下方表格中的所有内容,即总计和备注。

我附上了一张图片,以直观地查看需要从电子邮件中删除的内容: items to be removed

该文件位于此处:yourtheme/woocommerce/emails/customer-processing-order.php,它包含以下代码,但正如您所见,这不是删除或注释掉部分的简单情况。 :

<?php
/**
 * Customer processing order email
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/emails/customer-processing-order.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see https://docs.woocommerce.com/document/template-structure/
 * @package WooCommerce/Templates/Emails
 * @version 3.7.0
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/*
 * @hooked WC_Emails::email_header() Output the email header
 */
do_action( 'woocommerce_email_header', $email_heading, $email ); ?>

<?php /* translators: %s: Customer first name */ ?>
<p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ); ?></p>
<?php /* translators: %s: Order number */ ?>
<p><?php printf( esc_html__( 'Just to let you know &mdash; we\'ve received your order #%s, and it is now being processed:', 'woocommerce' ), esc_html( $order->get_order_number() ) ); ?></p>

<?php

/*
 * @hooked WC_Emails::order_details() Shows the order details table.
 * @hooked WC_Structured_Data::generate_order_data() Generates structured data.
 * @hooked WC_Structured_Data::output_structured_data() Outputs structured data.
 * @since 2.5.0
 */
do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email );

/*
 * @hooked WC_Emails::order_meta() Shows order meta data.
 */
do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email );

/*
 * @hooked WC_Emails::customer_details() Shows customer details
 * @hooked WC_Emails::email_address() Shows email address
 */
do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );

/**
 * Show user-defined additional content - this is set in each email's settings.
 */
if ( $additional_content ) {
    echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) );
}

/*
 * @hooked WC_Emails::email_footer() Output the email footer
 */
do_action( 'woocommerce_email_footer', $email );

我还在我的functions.php 文件中使用了以下代码来删除小计以及在其下方的付款方式。但我仍然需要帮助移除其他物品。

add_filter( 'woocommerce_get_order_item_totals', 'adjust_woocommerce_get_order_item_totals' );

function adjust_woocommerce_get_order_item_totals( $totals ) {
  unset($totals['cart_subtotal']  );
  unset( $totals['payment_method'] );
  return $totals;
}

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: php wordpress woocommerce customer


    【解决方案1】:

    您可以使用 woocommerce_email_before_order_table 挂钩自定义内容

    add_action( 'woocommerce_email_before_order_table', 'custom_process_table', 10, 4 );
    function custom_process_table( $order, $sent_to_admin, $plain_text, $email ) {
          // Your Custom Table goes here
    }
    

    您还可以覆盖电子邮件模板。 https://github.com/woocommerce/woocommerce/blob/master/templates/emails/email-order-details.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 2018-09-19
      • 2017-08-08
      • 2018-05-31
      • 2017-08-19
      • 2023-02-04
      • 1970-01-01
      相关资源
      最近更新 更多