2016-11-17 33 views
1

我一直在使用WooCommerce一段時間,但這一個問題正在導致我一個問題。我正在製作網站的客戶提供培訓課程和演示文稿,而這種特殊產品(或演示文稿)允許將多種不同的選項添加到購物車中,每個都有自己的價格。使用WooCommerce中的變體複選框允許多選

因此,基準價格爲零。然後有8個不同的演示文稿,用戶可以通過他們現有的網站上的複選框選擇 - 我不知何故需要在他們的新網站上覆制使用WooCommerce,但我只能使用下拉式變體,並且據我所見,它只允許一個選項可供選擇。我可以看到這個工作的唯一可行的方法是,如果我添加8個不同的下拉菜單,每個下拉菜單中都包含8個演示文稿,然後客戶選擇他們想要的許多不同的下拉菜單。這雖然有點麻煩,並可能導致用戶錯誤(例如,選擇兩次相同的演示文稿)。

我附上了我最喜歡的樣子,看起來像在WooCommerce中的截圖,有沒有一種方法可以實現?如果這是唯一的方法,我不介意使用插件。

enter image description here

回答

2

你可以這樣來做:

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)消毒,驗證和狀態消息是你的,但這個過程應該工作。

相關問題