Как в woocommerce получить id продукта, если известен id заказа?
Хотел бы задать вопрос, как получить id продукта в woocommerce если известен id заказа? После завершения покупки я отправляю письмо пользователю с данными о товаре. Мне нужно получить id продукта для того что бы взять по id его данные(данные товара). Скажите как можно получить продукт если известны только данные товара?
Второй способ получить данные о продукте использовать стандартную функцию woocommerce:
$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']; }
Ниже приведен пример функции get_id_product_func($order_id) — которая принимает в качестве параметра $order_id, id заказа, а возвращает id продукта $product_id.
function get_id_product_func($order_id) { 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); // получаем id продукта if(is_array($result)){ foreach ($result as $value) { if ($value->meta_key == '_product_id') { $product_id = $value->meta_value; } } } return $product_id; }
Данное решение не лучшее, id продукта можно получить стандартными функциями woocommerce.