我正在尝试制作产品及其数量的报告。一切正常,除了可变产品,我很难获得数量......这是我到目前为止所做的:
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没有返回任何内容,空白。如何获取可变产品的变体信息?
答案 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;