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

Mic*_*son 6 wordpress variations woocommerce

我已经使用 WooCommerce 一段时间了,但是这个问题给我带来了问题。我正在为其创建站点的客户提供培训课程和演示,而这个特定的产品(或演示)允许将几个不同的选项添加到购物车中,每个选项都有自己的价格。

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

我附上了一张我希望在 WooCommerce 中看起来像的屏幕截图,有什么办法可以实现吗?如果这是唯一的方法,我不介意使用插件。

在此处输入图片说明

小智 6

你可以这样做:

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 . '" />
Run Code Online (Sandbox Code Playgroud)

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 );

}

}
Run Code Online (Sandbox Code Playgroud)

6) 消毒、验证和状态消息由您负责,但此过程应该有效。