使用WooCommerce中的变体复选框允许多选

问题描述:

我一直在使用WooCommerce一段时间,但这一个问题正在导致我一个问题。我正在制作网站的客户提供培训课程和演示文稿,而这种特殊产品(或演示文稿)允许将多种不同的选项添加到购物车中,每个都有自己的价格。使用WooCommerce中的变体复选框允许多选

因此,基准价格为零。然后有8个不同的演示文稿,用户可以通过他们现有的网站上的复选框选择 - 我不知何故需要在他们的新网站上复制使用WooCommerce,但我只能使用下拉式变体,并且据我所见,它只允许一个选项可供选择。我可以看到这个工作的唯一可行的方法是,如果我添加8个不同的下拉菜单,每个下拉菜单中都包含8个演示文稿,然后客户选择他们想要的许多不同的下拉菜单。这虽然有点麻烦,并可能导致用户错误(例如,选择两次相同的演示文稿)。

我附上了我最喜欢的样子,看起来像在WooCommerce中的截图,有没有一种方法可以实现?如果这是唯一的方法,我不介意使用插件。

enter image description here

你可以这样来做:

1)编辑您的内容,单product.php:

2)$产品获取产品= wc_get_product($的productId)

3)检查$产品 - >产品类型==“变量”

4)取得当前产品的所有变体,它列出来复选框:

$variations = $product->get_available_variations(); 

foreach ($variations as $variation) { 

$variationId = $variation['variation_id']; 

echo '<input type="checkbox" name="variations[]" value="' . $variationId . '" /> 

} 

echo '<input type="checkbox" name="product_id" value="' . $product->ID . '" /> 

5)之后,你可以处理$ _ POST和添加变化到购物车编程:

if (!empty($_POST['variations'])) { 

$productId = $_POST['product_id']; 
$qty = 1; 
$buyVariations = $_POST['variations']; 

foreach ($buyVariations as $variationId) { 

WC()->cart->add_to_cart($productId, $qty, $variationId); 

} 

} 

6)消毒,验证和状态消息是你的,但这个过程应该工作。