WooCommerce - 添加到购物车没有变体 ID

WooCommerce - Add to cart without variation id

我做了一个简单的插件,可以让用户一步步选择他想要的产品。它使用 4 个步骤,其中 3 个是属性选择。现在我遇到的问题是直接 link 需要 variation_id。 为产品生成 link:

/cart/?add-to-cart=3772&attribute_pa_izmers=20&attribute_pa_forma=kaste&attribute_pa_krasas=spilgtas

为了使下面的 link 起作用,我还需要传递 variation_id。但是,如果不手动传递每个 variation_id 组合,我找不到获取它的方法。有没有 hook/action 我可以用来根据我传递的属性获取变体 ID?或者将产品添加到购物车而不传递变体 ID?

我已经在 woocommerce 论坛上问过了,但无济于事。

提前致谢。

您可以从 WC_Ajax::get_variation() 方法中借用一些代码,因为它在您使用 select 普通可变产品的属性时运行。

$data_store   = WC_Data_Store::load( 'product' );
$variation_id = $data_store->find_matching_product_variation( $variable_product, wp_unslash( $_POST ) );

需要 WooCommerce 3.0+