提问者:小点点

如何使用php从数据库中获取所有woocommerce产品


我正在尝试使用php从数据库中获取woocommerce的所有产品。。但它并没有给我所有产品的清单

  <select Name='choose'>
  <?php
  $args = array( 'post_type' => 'product' ,'posts_per_page' => 100);
  $loop = new WP_Query( $args );
  while ( $loop->have_posts() ) : 
      $loop->the_post();
      echo '<option selected value="'.the_title().'</option>';
  endwhile;
  ?>
</select>

有谁能告诉我怎么才能买到吴商行的所有产品吗

谢啦


共3个答案

匿名用户

您的代码在我的机器上运行良好,但是它似乎与您以前的wp查询有冲突。你也可以试着得到所有这样的产品。。

<select Name='choose'>
<?php
$args = array( 'post_type' => 'product' ,'posts_per_page' => 100);
$products = get_posts( $args );
foreach( $products as $product ) : 
  echo '<option selected value="'.$product->post_title.'</option>';
endforeach;
?>
</select>

匿名用户

以便将单个产品带到您的单个客户。php页面您可以使用我已经在这里建议的代码。请参阅:

https://wordpress.stackexchange.com/questions/240653/how-to-query-single-product-in-woocommerce/240726#240726

为了将您拥有的所有产品提取到数据库中,您可以执行以下步骤。

您可以根据WP_Query获取Woo商务产品,因此它也单独保存在wp_posts表中。因此,我们可能会稍微修改文章类型,单独让WP_Query工作。

第一步:首先,我们将看看WP_Query的参数。

$params = array(
        'posts_per_page' => 5, 
        'post_type' => 'product'
);

注意:如您所见,我们所做的只是向数组添加一个post_type变量,并将其值设置为“产品”;查询现在将查找WooCommerce产品,而不是帖子。

第二步:之后,我们必须使用与普通WP_查询行为相同的结构运行。

<?php
$params = array(
        'posts_per_page' => 5, 
        'post_type' => 'product'
);
$wc_query = new WP_Query($params); 
?>
<?php if ($wc_query->have_posts()) :  ?>
<?php while ($wc_query->have_posts()) : $wc_query->the_post();  ?>
<?php the_title(); //Prints the title over Here ?>
<?php //You can add what ever you need from the loop over here ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
<p>
     <?php _e( 'No Products' );  ?>
</p>
<?php endif; ?>
  • 创建WP_查询要使用的参数数组;首先,它只是一些基本的帖子,但是通过向这些参数添加更多细节,我们可以为我们的查询获得不同的结果

通过这个链接,我研究了如何使用WP_查询查询WooCommerce产品,我在这里分享了这些内容,以便大家都能使用这些帖子。

快乐编码:)

匿名用户

$this->db->select('*');
        $this->db->from('vm_posts');
        $this->db->join('vm_postmeta', 'vm_postmeta.post_id = vm_posts.id');
        $this->db->join('vm_wc_product_meta_lookup', 'vm_wc_product_meta_lookup.product_id = vm_postmeta.post_id');
        $this->db->join('vm_inventory', 'vm_wc_product_meta_lookup.sku = vm_inventory.product_sku');
        $this->db->join('vm_terms', 'vm_inventory.customer_id = vm_terms.name');
        $this->db->where('post_type','product');
        $query = $this->db->get()->result();