Я проверил ваш код, и он работает для метаданных зарегистрированного элемента заказа, ключ которого Umbrella Hole
, см. Его ниже в таблице wp_woocommerce_order_itemmeta
для line_item
:
Таким образом, проблема может быть связана только с пользовательскими метаданными заказа, которые не зарегистрированы
Я немного пересмотрел вашкод:
add_action( 'woocommerce_email_order_details', 'add_order_instruction_email', 10, 4 );
function add_order_instruction_email( $order, $sent_to_admin, $plain_text, $email ) {
// Loop through order items
foreach ( $order->get_items() as $item ) {
if ( "Yes" == $item->get_meta('Umbrella Hole') ) {
echo '<div style="background-color:antiquewhite;padding:5px;margin-bottom:10px;"><strong><span style="color:red;">Note:</span></strong> Umbrella Hole is present in the order. Please make sure velcro zipper split is requested from supplier too.</div>';
$break; // Stop the loop to avoid repetitions
}
}
}
Код находится в файле function.php вашей активной дочерней темы (или активной темы).Протестировано и работает.
Здесь ниже уведомления по электронной почте, когда любая позиция строки заказа имеет зарегистрированные метаданные Umbrella Hole
с "yes"
в качестве значения: