Я программно создаю категорию продукта, когда добавляю нового пользователя. Я также сохраняю этот новый идентификатор категории в мета-категории пользователя и новый идентификатор пользователя в мета-категории. У каждой категории есть связанный пользователь, и у каждого пользователя есть связанная категория продукта. У меня есть другие функции, успешно использующие эту связь для выполнения sh различных задач.
// for reference only:
update_term_meta( $cat_id, 'user_id', $user_id );
update_user_meta( $user_id, 'cat_id', $cat_id );
Каждый продукт находится в одной категории продуктов, и в каждой категории продуктов определен термин meta 'user_id'.
Когда в Woocommerce запускается уведомление о новом заказе, мне нужно добавить к нему получателя на основе категорий продуктов, связанных с каждой позицией заказа. По какой-то причине моя функция не работает. Получатели никогда не добавляются. Вот эта функция:
function maybe_add_new_order_email_recipient( $recipient, $order ) {
if( ! is_a($order, 'WC_Order') ) return $recipient;
foreach( $order->get_items() as $items ) {
$terms = wp_get_post_terms( $items->get_product_id(), 'product_cat' );
foreach( $terms as $wp_term ){
$user_id = get_term_meta($wp_term->term_id, 'user_id');
$user_info = get_userdata($user_id);
$user_email = $user_info->user_email;
$recipient .= ','.$user_email;
}
}
return $recipient;
}
add_filter('woocommerce_email_recipient_new_order', 'maybe_add_new_order_email_recipient', 1, 2);
Что мне здесь не хватает!?