2017-12-08 12 views
1

local_pickupが選択された出荷方法の場合、customer_processing_orderおよびcustomer_completed_orderを受け取るべきすべての顧客にメッセージを表示する次のコードを試しました。ローカルピックアップの特定の電子メール通知にカスタムテキストを追加します。

私は、任意の順序メタ内の任意の_shipping_methodアイテムを格納しない気づいたが、唯一の事のように:私はそれを取得するにはどうすればよいlocal_pickup:3

出荷> method_id>:order_item_type?

私は成功せず、コードのこれを試してみました:

// testo per Ritiro in Sede 

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) { 

if('customer_processing_order' != $email->id) return; 

if (method_exists($order, 'get_id')) { 
    $order_id = $order->get_id(); 
} else { 
    $order_id = $order->id; 
} 

$shipping_method_arr = get_post_meta($order_id, '_shipping_method', false); 
$method_id = explode(':', $shipping_method_arr[0][0]); 
$method_id = $method_id[0]; // We get the slug type method 


if ('local_pickup' == $method_id){ 
    echo '<p><strong>Ritiro in sede</strong></p>'; 
    } 
} 

答えて

1

をこれは、受注出荷項目を反復処理するこの方法を行うことができます。

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

コードは、あなたのアクティブなのfunction.phpファイルに行きます子供のテーマ(またはテーマ)、またはすべてのプラグインファイルに保存されます。

テスト済みで動作します。

+0

@alemarengo申し訳ありません。私は疲れていました。テスト後に名前を変更して書き留めたとき、私は誤植をしていました...今はうまくいくので、2つのコメントを削除してください。ありがとう、申し訳ありません。 – LoicTheAztec

関連する問題