【问题标题】:Get Woocommerce product variations outside loop在循环之外获取 Woocommerce 产品变体
【发布时间】:2015-03-22 08:08:32
【问题描述】:

我正在尝试列出 woocommerce 模板之外的每个变体的产品变体和价格。 任何人都可以建议我如何访问该信息?

我尝试过这样做:

$tickets = new WC_Product( $product_id);
$variables = $tickets->get_available_variations();

但这不起作用,因为它在循环之外,它返回错误。

理想情况下,我希望获得像数组这样的所有变体:

$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' );

欢迎提出任何建议。

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    要在循环之外获取产品变体,您需要创建 WC_Product_Variable 类的新实例,这是一个示例:

    $tickets = new WC_Product_Variable( $product_id);
    $variables = $tickets->get_available_variations();
    

    通过这种方式,您将获得 $variables 数组中变体所需的所有信息。

    【讨论】:

    • 我试过了,但出现错误...是否有更多代码,例如需要全局变量?
    • 您收到什么错误?它在我这边运行良好,无需额外代码或全球化变量。
    • 这不起作用。 Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
    【解决方案2】:

    这是使用产品 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>"; 
    

    【讨论】:

    • 感谢您的回复,但这并没有给我想要的数据。我找到了方法,我创建了一个新循环
    • @Bobz 如果您确实发布了解决此问题的方法,将对其他用户有所帮助。
    • @indextwo 如上所述'我创建了一个新循环'。你也可以查看这个插件:eggplantstudios.ca/woocommerce-product-variation-add-cart-grid
    • @Bobz 这对你来说很好,但对其他人没有帮助。 如何您创建了一个新循环?你把它放在哪里了?你能发布解决你问题的代码吗?请记住,SO 也适用于可以通过您的问题(以及您的解决方案!)得到帮助的其他用户,因此简单地说“我解决了它”并消失并不是很有帮助。该链接的一些上下文也会有所帮助:“鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及它存在的原因。” - stackoverflow.com/help/how-to-answer
    猜你喜欢
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    相关资源
    最近更新 更多