2016-10-11 20 views
1

このコードをthis answerから改善して、完了した注文ステータスメールに顧客のみが表示され、他のユーザーの役割は受け付けられません(購読者など) ...)。ここで完了した注文状況の電子メール通知のカスタムメッセージ

はそのコードです:

add_action('woocommerce_email_before_order_table', 'completed_order_mail_message', 20); 
function completed_order_mail_message($order) { 
    if (empty($order->get_used_coupons()) && $order->post_status == 'wc-completed') 
     echo '<h2 id="h2thanks">Get 20% off</h2><p id="pthanks">Thank you for making this purchase! Come back and use the code "<strong>Back4More</strong>" to receive a 20% discount on your next purchase! Click here to continue shopping.</p>'; 
} 

どのように私はそれを達成することができますか?

おかげ

答えて

3

は単に '顧客のユーザーロールの電子メールの完全な注文状況の通知とでこのカスタムメッセージを有効にするには、ユーザーの役割を取得するには、順番に関連したユーザデータを取得する必要があります。それからあなたは条件付きでそれを使用します。ここで

コードされています

add_action('woocommerce_email_before_order_table', 'completed_order_mail_message', 20); 
function completed_order_mail_message($order) { 

    // Getting order user data to get the user roles 
    $user_data = get_userdata($order->customer_user); 

    if (empty($order->get_used_coupons()) && $order->post_status == 'wc-completed' && in_array('customer', $user_data->roles)) 
     echo '<h2 id="h2thanks">Get 20% off</h2><p id="pthanks">Thank you for making this purchase! Come back and use the code "<strong>Back4More</strong>" to receive a 20% discount on your next purchase! Click here to continue shopping.</p>'; 
} 

このコードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルやも任意のプラグインファイルになります。

このコードはテスト済みであり、完全に機能しています。

+0

これは完璧に機能します。ありがとうLoicTheAztec! – Volt

関連する問題