Настраиваемое сообщение по электронной почте о статусе выполненного заказа только для роли пользователя

Я хотел бы улучшить этот код из этот ответ, отображать сообщение в электронном письме о состоянии выполненного заказа только для клиентов, но не для других ролей пользователей (как подписчиков и т. д.)

Вот этот код:

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

Как мне этого добиться?

Спасибо

1

Решение

Чтобы включить это пользовательское сообщение в уведомлении по электронной почте для полного статуса заказа и только для роли пользователя «клиент», Вы должны получить пользовательские данные, связанные с заказом, чтобы получить роль пользователя. Тогда ты будешь использовать его в своем условном.

Вот код:

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 вашей активной дочерней темы (или темы), а также в любом файле плагина.

Этот код протестирован и полностью функционален.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]