我一直在使用WooCommerce一段时间,但这一个问题让我遇到了问题。我制作网站的客户提供培训课程和演示文稿,此部分产品(或演示文稿)允许将多个不同的选项添加到购物车中,每个选项都有自己的价格。
因此,基本价格为零。然后有8个不同的演示文稿,用户可以通过他们现有网站上的复选框选择 - 我不知何故需要在他们的新网站上使用WooCommerce复制它,但我只能使用下拉变换,并且据我所知它只允许一个选项可供选择。我能看到这个工作的唯一可行方法是,如果我添加8个不同的下拉列表,每个下拉列表中包含所有8个演示文稿,然后客户选择他们想要的许多不同的下拉列表。这有点麻烦,可能会导致用户错误(例如,选择两次相同的演示文稿)。
我已经附上了我在WooCommerce中理想的样子截图,有没有可行的方法?如果它是唯一的方法,我不介意使用插件。
答案 0 :(得分:4)
你可以这样做:
1)编辑你的content-single-product.php:
2)通过$ product = wc_get_product($ productId)
获取产品3)检查$ product-> product_type ==“variable”
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)您正在进行清理,验证和状态消息传递,但此过程应该有效。