WooCommerce 根据付款方式、送货方式和送货国家/地区添加自定义电子邮件内容

问题描述 投票:0回答:1

我想根据客户选择的运输方式向他们发送一封自定义文本电子邮件。我们使用运输区域。

  1. 爱沙尼亚 - 订单上的“本地取货”-“custom_text_1”已完成。
  2. 爱沙尼亚 - 任何其他运输方式 - 当前电子邮件文本保持不变。
  3. 爱沙尼亚以外的任何地方,但不是“统一费率” - 订单完成后的“custom_text_2”。
  4. 任何“统一费率”类型的运输 - 订单上的“custom_text_3”已完成。

我相信默认情况下它称为“固定费率”或“固定费率”方法? https://prnt.sc/FyDXD6NbMkSc

我遇到过 WooCommerce 根据付款方式和运输方式添加自定义电子邮件内容 答案线程。

这是我的代码:

add_action( 'woocommerce_email_order_details', 'my_completed_order_email_instructions', 10, 4 );
function my_completed_order_email_instructions( $order, $sent_to_admin, $plain_text, $email ) {
    // Only for completed email notifications to customer
    if( 'customer_completed_order' != $email->id ) return;

    foreach( $order->get_items('shipping') as $shipping_item ){
        $shipping_rate_id = $shipping_item->get_method_id();
        $method_array = explode(':', $shipping_rate_id );
        $shipping_method_id = reset($method_array);
        // Display a custom text for local pickup shipping method only
        if( 'local_pickup' == $shipping_method_id ){
            echo '<p><strong>Ritiro in sede</strong></p>';
            break;
        }
    }
}

但这仅涵盖本地运输。

php wordpress woocommerce orders email-notifications
1个回答
0
投票

尝试以下方法:

add_action( 'woocommerce_email_order_details', 'completed_order_email_custom_instructions', 10, 4 );
function completed_order_email_custom_instructions( $order, $sent_to_admin, $plain_text, $email ) {
    // Only for "Customer Completed Order" email notification
    if( 'customer_completed_order' !== $email->id ) return;

    if ( $order->get_shipping_country() === 'EE' && $order->has_shipping_method('local_pickup') ){
        echo '<p><strong>'.__('Ritiro in sede').'</strong></p>';
    } elseif ( $order->get_shipping_country() !== 'EE' && ! $order->has_shipping_method('flat_rate') ){
        echo '<p><strong>'.__('custom text 2').'</strong></p>';
    } elseif ( $order->has_shipping_method('flat_rate') ){
        echo '<p><strong>'.__('custom text 3').'</strong></p>';
    }
}

代码位于子主题的functions.php 文件中(或插件中)。应该可以。

相关:

© www.soinside.com 2019 - 2024. All rights reserved.