我正在尝试列出woocommerce模板之外的每个变体的产品变体和价格。 任何人都可以建议我如何访问该信息?
我试过这样的事情:
$tickets = new WC_Product( $product_id);
$variables = $tickets->get_available_variations();
但这不起作用,因为它在循环之外,它会返回错误。
Idealy我希望得到像阵列一样的所有变体:
$vars = array(
array('name' => 'My var name', 'price' => '123'),
array('name' => 'My var name', 'price' => '123'),
);
也许即使可以在'save_post'上为每个产品创建新的post_meta并将其保存以供将来使用,这样就可以得到:
$meta = get_post_meta( $product_id, '_my_variations' );
欢迎提出任何建议。
答案 0 :(得分:8)
要在循环外获得产品变体,您需要创建WC_Product_Variable类的新实例,这是一个示例:
$tickets = new WC_Product_Variable( $product_id);
$variables = $tickets->get_available_variations();
通过这种方式,您将获得$ variables数组中变体的所有必需信息。
答案 1 :(得分:5)
这是使用产品ID,循环外和woocommerce模板获取产品变量的最简单的解决方案
$args = array(
'post_type' => 'product_variation',
'post_status' => array( 'private', 'publish' ),
'numberposts' => -1,
'orderby' => 'menu_order',
'order' => 'asc',
'post_parent' => $product_id // $post->ID
);
$variations = get_posts( $args );
echo "<pre>"; print_r($variations); echo "</pre>";