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

时间:2016-11-17 17:10:35

标签: wordpress woocommerce variations

我一直在使用WooCommerce一段时间,但这一个问题让我遇到了问题。我制作网站的客户提供培训课程和演示文稿,此部分产品(或演示文稿)允许将多个不同的选项添加到购物车中,每个选项都有自己的价格。

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

我已经附上了我在WooCommerce中理想的样子截图,有没有可行的方法?如果它是唯一的方法,我不介意使用插件。

enter image description here

1 个答案:

答案 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)您正在进行清理,验证和状态消息传递,但此过程应该有效。