【问题标题】:Woocommerce get all products in arrayWoocommerce 获取数组中的所有产品
【发布时间】:2015-06-12 04:02:38
【问题描述】:

我在 Woocommerce 中通过对象函数检索产品信息时遇到问题。

我就是这样做的:

public function table_data()
{
    $args     = array( 'post_type' => 'product', 'posts_per_page' => -1 );
    $products = get_posts( $args );

    $pfactory = new WC_Product_Factory();
    foreach($products as $product)
    {
        $_product = $pfactory->get_product($product);
    }
}

这仅返回来自 wp_posts 的产品信息,它不会给我存储在 wp_postmeta 中的信息。

我需要一个数组中所有产品的完整信息(例如价格、sku、库存等),但我似乎遗漏了一些东西,我不确定它是否与我的代码中的函数层次结构有关。但是我认为这可以在没有 SQL 查询的情况下完成。

基本上,我想做的是在管理员中完整复制产品列表,以便在面板中列出带有信息的产品。

感谢我能得到的所有帮助。

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    改用 WP_Query,这将使您能够从循环内访问全局 WooCommerce $product 变量。从那里,您可以获取价格、sku、库存和所有其他类型的数据。 http://docs.woothemes.com/wc-apidocs/class-WC_Product.html

    <?php
        $args = array(
            'post_type' => 'product',
            'posts_per_page' => -1
        );
        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ): while ( $loop->have_posts() ): $loop->the_post();
    
            global $product;
    
            $price = $product->get_price_html();
            $sku = $product->get_sku();
            $stock = $product->get_stock_quantity();
    
        endwhile; endif; wp_reset_postdata();
    ?>
    

    【讨论】:

    • 什么不起作用?你在尝试什么?此代码尚未输出任何内容,而是为您提供输出数据所需的变量。
    • 我正在用你的示例代码做一个简单的测试,我尝试 var_dump 一些参数。但我不明白你为什么在你的例子中使用 $product->?
    • 来自 Woocommerce 文档 - “如果帖子是产品,调用 the_post() 将自动填充全局 $product 变量。” docs.woothemes.com/document/class-reference。 WooCommerce 产品类处理单个产品数据。在循环中打印 $product 数组以查看您必须使用的内容。
    • 是的,这正是我今天早些时候红的。但我得到的唯一信息是:注意:未定义变量:产品
    • var_dump($product);die;在循环内立即返回 NULL。
    【解决方案2】:

    我想到的第一件事就是这个。

    function products() {
            return array_map('wc_get_product', get_posts(['post_type'=>'product','nopaging'=>true]));
    }
    

    如果有更好的方法,我很想向对 WooCommerce 更有经验的人了解

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-27
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      相关资源
      最近更新 更多