使用WooCommerce中的变体复选框允许多选
问题描述:
我一直在使用WooCommerce一段时间,但这一个问题正在导致我一个问题。我正在制作网站的客户提供培训课程和演示文稿,而这种特殊产品(或演示文稿)允许将多种不同的选项添加到购物车中,每个都有自己的价格。使用WooCommerce中的变体复选框允许多选
因此,基准价格为零。然后有8个不同的演示文稿,用户可以通过他们现有的网站上的复选框选择 - 我不知何故需要在他们的新网站上复制使用WooCommerce,但我只能使用下拉式变体,并且据我所见,它只允许一个选项可供选择。我可以看到这个工作的唯一可行的方法是,如果我添加8个不同的下拉菜单,每个下拉菜单中都包含8个演示文稿,然后客户选择他们想要的许多不同的下拉菜单。这虽然有点麻烦,并可能导致用户错误(例如,选择两次相同的演示文稿)。
我附上了我最喜欢的样子,看起来像在WooCommerce中的截图,有没有一种方法可以实现?如果这是唯一的方法,我不介意使用插件。
答
你可以这样来做:
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)消毒,验证和状态消息是你的,但这个过程应该工作。