В общем, если кому понадобится... пошёл таким путем:
При нажатии на кнопку в корзину, срабатывает js, который через ajax отправляет выбранное значение в функцию, которая записывает выбранное значение в поле товара:
add_action("wp_ajax_obrabotka", "k_ajax_obrabotka");
add_action("wp_ajax_nopriv_obrabotka", "k_ajax_obrabotka");
function k_ajax_obrabotka(){
$idproduct = $_POST['idproduct'];
$znachenie = $_POST['znachenie'];
update_post_meta( $idproduct, '_znachenie', esc_attr( $znachenie ) );
}
И при создании заказа, добавляем это значение к товару:
add_action('woocommerce_checkout_create_order_line_item', 'save_file_type_as_order_item_meta', 20, 4);
function save_file_type_as_order_item_meta($item, $cart_item_key, $values, $order) {
if ( $nashe_znachenie = $values['data']->get_meta('_znachenie') ) {
$item->update_meta_data( 'Значение', $nashe_znachenie );
}
}
В итоге получилось то что нужно, но это сработает, если будет в одно время один заказ, если будет кучу заказов в одно время, то будет путаница. Но на данный момент такой вариант меня устраивает.