Obtener el ID del producto desde el ID del pedido en Woocommerce
Estoy teniendo problemas con la relación entre los detalles del producto y los detalles del pedido en Woocommerce. No puedo encontrar el ID del producto relacionado con el ID del pedido en la página de Ver Pedidos del tema de Woocommerce. Simplemente quiero obtener el contenido del producto y el enlace permanente, etc. en la página de Ver Pedidos.
Intenté buscar en wp_postmeta
pero no tuve éxito.

WooCommerce 3.0+
Puedes obtener los items de un pedido usando:
$order = wc_get_order( $order_id );
$items = $order->get_items();
Luego, si recorres los items, puedes obtener todos los datos relevantes:
foreach ( $items as $item ) {
$product_name = $item->get_name();
$product_id = $item->get_product_id();
$product_variation_id = $item->get_variation_id();
}
Un buen consejo es revisar cómo las páginas de pedidos en el administrador obtienen los datos, ¡encontrarás muchas respuestas ahí!
Pre-WooCommerce 3.0
$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$product_name = $item['name'];
$product_id = $item['product_id'];
$product_variation_id = $item['variation_id'];
}

A menos que me esté perdiendo algo, esto no parece funcionar en la última versión de WooCommerce...

Sigue funcionando en WooCommerce 2.4.8 para mí, pero necesitas tener definida la variable $order_id (a veces está en $order->id, dependiendo de tu contexto).

@mevius agregué una edición para 3+ con una función dispatch para verificar múltiples productos

ver el historial de ediciones para el dispatcher, esto no es bueno sin él ya que consumirá tu servidor innecesariamente

@GaretClaborn eso depende completamente de lo que estés haciendo con estos datos. 'tal cual', este fragmento de ejemplo no desperdicia memoria de ninguna manera.

Si estás verificando múltiples productos entonces estás repitiendo bastante lógica en lugar de poder capitalizar la primera ejecución del bucle

Trabajé en ello y logré algo que me gustaría compartir con otros desarrolladores. Esta no es la forma preferida de hacerlo, pero por conocimiento estoy publicando mi respuesta.
global $wpdb;
$result = $wpdb->get_results('select t1.order_item_id, t2.* FROM
wp_woocommerce_order_items as t1 JOIN wp_woocommerce_order_itemmeta as t2 ON t1.order_item_id = t2.order_item_id
where t1.order_id='.$order->ID);
echo '<pre>';
print_r($result);
echo '</pre>';
Espero que le sirva a alguien.
Adicionalmente:
Es mejor usar el prefijo de tablas de WordPress para evitar problemas en múltiples sitios web o en migraciones, etc.
global $wpdb;
$table_name = $wpdb->prefix . 'table_name';
