2015-10-03 19 views
0

Я пытаюсь подготовить отчет о продуктах и ​​их количестве. Все работает отлично, за исключением переменных продуктов, я имею трудное время получить количество ... это то, что я до сих пор:Получить общее количество Woocommerce для переменных продуктов

global $wpdb; 
    $args = array(
     'post_type' => 'product', 
     'post_status' => 'publish', 
     'nopaging' => 'true', 
     'orderby' => 'post_title', 
     'order' => 'asc' 
    ); 
    $loop = new WP_Query($args); 
    $output = '<div style="float: right;">As of ' . current_time('F d, Y h:ia') . '</div>'; 
    $output .= '<h3>Products Report</h3>'; 
    $output .= '<table border="0"><tbody>'; 
    while ($loop->have_posts()) : $loop->the_post(); 
     $product = new WC_Product($loop->post->ID); 
     if ($product->product_type == 'variable') { 
      $product = new WC_Product_Variable($loop->post->ID); 
     } 
     $qty = ($product->get_total_stock() != 0) ? $product->get_total_stock(): 'OUT'; 
     $price = '$'.$product->get_price(); 
     $output .= '<tr><td><em><strong>' . $loop->post->post_title . '</strong></em><br>' . $loop->post->post_content . '</td><td><span class="wc-qty">' . $qty .'</span></td><td>' . $price .'</td></tr>'; 
    endwhile; 
    $output .= '</tbody></table>'; 
    echo $output; 

В $ продукт-> product_type возвращает ничего, пусто. Как я могу получить информацию о вариантах для переменных продуктов?

+0

Вы пытаетесь показать все вариации для каждого переменного продукта? – helgatheviking

+0

В значительной степени, да, покажите или вытащите информацию из этих вариантов. Прямо сейчас мне нужно вытащить общий запас для переменных продуктов. Как наши футболки, у нас есть 5 маленьких, 10 больших и т. Д. Как получить сумму всех или перебрать по петле и сложить? – rwfitzy

ответ

0

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

while ($loop->have_posts()) : $loop->the_post(); 
     $product = wc_get_product(get_the_ID())); 
     $qty = ($product->get_total_stock() > 0) ? $product->get_total_stock(): 'OUT'; 
     $price = $product->get_price_html(); 
     $output .= '<tr><td><em><strong>' . $product->get_title() . '</strong></em><br>' . $loop->post->post_content . '</td><td><span class="wc-qty">' . $qty .'</span></td><td>' . $price .'</td></tr>'; 
    endwhile; 
+0

Если я использую вышеизложенное, переменные продукты выходят с пустым qty и ценой. Та же проблема, которую я испытывал своими попытками. – rwfitzy

+0

На самом деле царапины, он отлично работает, спасибо! Я использовал на сервере dev без инвентаря в db. – rwfitzy

+0

Если это решит вашу проблему, вы можете принять это как ответ? – helgatheviking

Смежные вопросы