获取Woocommerce可变产品的总数量

时间:2015-10-03 21:31:34

标签: php 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-&gt; product_type没有返回任何内容,空白。如何获取可变产品的变体信息?

1 个答案:

答案 0 :(得分: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;