簡體   English   中英

僅在Woocommerce中針對本地運輸和已完成訂單的自定義電子郵件通知

[英]Custom email notification for local shipping and completed orders only in 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 processing and completed email notifications to customer
if( ! ( 'customer_processing_order' == $email->id || 
'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;
    }
}

現在我的問題是:如何調整代碼以刪除處理訂單電子郵件,以便僅處理已完成的訂單電子郵件?

您只需要在函數代碼中替換如下:

// Only for processing and completed email notifications to customer
if( ! ( 'customer_processing_order' == $email->id || 
'customer_completed_order' == $email->id ) ) return;

這樣:

// Only for completed email notifications to customer
if( 'customer_completed_order' != $email->id ) return;

而且僅適用於向客戶“完成”的訂單通知…因此,完整的代碼如下:

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;
        }
    }
}

相關: 將自定義文本添加到本地取貨Woocommerce訂單的特定電子郵件通知中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM