Данные, которые вы ищете, это не метаданные заказа, а заказ элемент метаданные и расположены в wp_woocommerce_order_itemmeta
таблице базы данных (см. Ниже, как получить доступ к этим данным) .
Начиная с woocommerce 3, гораздо лучший хук заменяет старый woocommerce_add_order_item_meta
хук.
Также meta_key
должно быть лучше читаемым названием этикетки , так как эти данные будут отображаться под каждым элементом заказа .
код:
add_action( 'woocommerce_checkout_create_order_line_item', 'custom_order_item_meta', 20, 4 );
function custom_order_item_meta( $item, $cart_item_key, $values, $order ) {
if ( isset( $values['custom_option'] ) ) {
$item->update_meta_data( __('Custom option', 'woocommerce'), $values['custom_option'] );
}
}
На странице "Заказ получен" (спасибо) вы получите что-то вроде:

Это также будет отображаться в бэкэнде и почтовых уведомлениях.
Для доступа к этим данным позиции заказа вам необходимо получить элементы из объекта заказа в цикле foreach:
foreach( $order->get_items() as $item_id => $item ){
$custom_data = $item->get_meta( 'Custom option' );
}
Чтобы получить первый элемент заказа (избегая цикла foreach), вы будете использовать:
$items = $order->get_items(); // Order items
$item = reset($items); // The first Order item
$custom_data = $item->get_meta( 'Custom option' ); // Your custom meta data
Похожие: Заменить хук woocommerce_add_order_item_meta в Woocommerce 3.4