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) 消毒、验证和状态消息由您负责,但此过程应该有效。
| 归档时间: |
|
| 查看次数: |
12071 次 |
| 最近记录: |