我正在为一家酒店开发一个 Woocommerce 预订网站,我一直在寻找在自定义循环中为 Woocommerce Booking 提供“添加到购物车”的 URL 的方法。有人可以给我一点帮助,无论是WP_Query
还是wc_get_products
。任何帮助将不胜感激。thx
问问题
753 次
1 回答
1
要从 WooCommerce 预订插件中获取可预订产品:
1)。使用WC_Product_Query
(请参阅此处的文档):
$products = wc_get_products( array(
'status' => 'publish',
'type' => 'booking',
'limit' => -1,
) );
// Loop through an array of the WC_Product objects
foreach ( $products as $product ) {
// Output linked product name (with add to cart url)
echo '<p><a href="' . $product->add_to_cart_url() . '">' . $product->get_name() . '</a></p>'; // The product name
}
2)。使用 WP_Query (请参阅此处的文档):
$query = new WP_Query( array(
'posts_per_page' => -1,
'post_type' => array( 'product' ),
'post_status' => 'publish',
'tax_query' => array( array(
'taxonomy' => 'product_type',
'terms' => array( 'booking' ),
'field' => 'slug',
)),
) );
if ( $query->have_posts() ) :
// Loop through an array of WP_Post objects
while ( $query->have_posts() ) : $query->the_post();
// Get the WC_Product Object (optional)
$product = wc_get_product();
// Output linked product name (with add to cart URL)
echo '<p><a href="' . $product->add_to_cart_url() . '">' . get_the_title() . '</a></p>'; // The product name
endwhile;
wp_reset_postdata();
else :
// No post found
echo '<p>' . __("No products found", "woocommerce") . '</p>';
endif;
两种方式都有效……</p>
可预订产品上添加到购物车 URL 的注意事项:
在可预订产品上,您通常无法获取添加到购物车 URL,因为它涉及一些仅在单个产品页面中可能的选择……因此,当使用WC_Product
add_to_cart_url()
方法时,您可以获取到单个产品页面的链接.
于 2020-07-08T17:20:54.113 回答