Получить идентификатор продукта из идентификатора заказа в Woocommerce [закрыто]

У меня возникли проблемы с деталями продукта Woocommerce и деталями заказов. Я не могу найти идентификатор продукта соответствующего идентификатора заказа на странице View Orders темы Woocommerce. Я просто хочу получить содержимое продукта и постоянную ссылку и т. Д. На странице Просмотреть заказы .

Я попытался выполнить поиск в wp_postmeta , но не повезло.

33 голоса | спросил arslaan ejaz 25 AMpThu, 25 Apr 2013 11:57:33 +040057Thursday 2013, 11:57:33

2 ответа


62

WooCommerce 3.0 +

вы можете получить элементы заказа заказа

  $ order = wc_get_order ($ order_id);
$ items = $ order-> get_items ();
 

, то, если вы пройдете через элементы, вы можете получить все соответствующие данные:

  foreach ($ items as $ item) {
    $ product_name = $ item-> get_name ();
    $ product_id = $ item-> get_product_id ();
    $ product_variation_id = $ item-> get_variation_id ();
}
 

Хороший совет - проверить, как страницы заказа администратора получают данные, вы найдете там много ответов!

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 ['variant_id'];
}
 
ответил Ewout 25 PMpThu, 25 Apr 2013 20:13:36 +040013Thursday 2013, 20:13:36
4

Я работал над этим и добился чего-то. Это я хотел бы поделиться с другими разработчиками. Это не предпочтительный способ сделать это, но для знания я отправляю свой ответ.

  global $ wpdb;
            $ result = $ wpdb-> get_results ('select t1.order_item_id, t2. * FROM
            wp_woocommerce_order_items как t1 JOIN wp_woocommerce_order_itemmeta as t2 ON t1.order_item_id = t2.order_item_id
            где t1.order_id = '. $ order-> ID);
            echo '<pre>';
            print_r ($ результат);
            echo '</pre>';
 

Надежда поможет кому-то.

Дополнительно:

Лучше использовать префикс префикса Wordpress, чтобы избежать проблем на нескольких веб-сайтах или в процессе миграции и т. д.

  global $ wpdb;
$ table_name = $ wpdb-> префикс. 'Table_name';
 
ответил arslaan ejaz 25 PMpThu, 25 Apr 2013 21:19:04 +040019Thursday 2013, 21:19:04

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132