1

我正在为一家酒店开发一个 Woocommerce 预订网站,我一直在寻找在自定义循环中为 Woocommerce Booking 提供“添加到购物车”的 URL 的方法。有人可以给我一点帮助,无论是WP_Query还是wc_get_products。任何帮助将不胜感激。thx

4

1 回答 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 回答