php WooCommerce中可变产品的第一个变体的URL

z9smfwbn  于 2023-06-21  发布在  PHP
关注(0)|答案(1)|浏览(111)

我一直在尝试找到一种方法“quick_add_to_cart”,即产品循环中任何可变产品的第一个变体。现在,URL动态重定向到产品单页,这并不是我真正想要的。
有没有一种方法可以让URL自动将特定产品变体的ID添加到购物车中?
我知道URL应该是:

?add-to-cart=(product_id+1)&quantity=1

其中product_id+1应该表示第一个变体的URL。
如果可变产品ID的主页是887,那么第一个产品变体应该是888
我正在使用Elementor和Crocoblock,但我可以通过函数添加它吗?
我一直在努力找到我的方式在它周围一段时间了。
我尝试过动态获取URL,但我不知道是否必须找到一种以编程方式添加它的方法?我已经尝试了ChatGPT和谷歌了很多...

s2j5cfk0

s2j5cfk01#

有多种方法可以通过编程方式将产品变体添加到购物车URL中,因此在您的示例中,第一个产品变体从可变产品添加到购物车URL中。
1.使用WC_Productadd_to_cart_url()方法,
1.使用WordPressadd_query_arg()add-to-cart查询参数键
现在,让我们首先得到一个变量乘积的第一个变量:

$product_id = 887; // Variable Product ID

$product = wc_get_product( $product_id ); // Get the product Object of the variable product

$variations_ids = $product->get_children(); // Get an array of the product variations for this variable product

$fist_variation_id = reset($variations_ids); // Get the first product variation ID

$first_variation = wc_get_product( $fist_variation_id ); // Get the product Object of the product variation

现在我们有了变量product的第一个product variation ID(以及相关的product对象)。
1.在product对象上使用add_to_cart_url()方法来获取我们的添加到购物车URL:

$add_to_cart_url = $first_variation->add_to_cart_url();

1.使用add_query_arg()(“quantity”参数是可选的:在WooCommerce中默认设置为1

$add_to_cart_url = site_url( add_query_arg( array(
     'add-to-cart' => $fist_variation_id,
     'quantity' => 1 // Optional
 ) ) );

测试和作品。

相关问题