Как в 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.

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.