我正在尝试使用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>
有谁能告诉我怎么才能买到吴商行的所有产品吗
谢啦
您的代码在我的机器上运行良好,但是它似乎与您以前的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_查询查询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();