2014-03-04 19 views
1

在Woocommerce的最新版本中使用Mystile主題,我重寫了variation.php以顯示折扣價格,具體取決於所選的數量和變化。我有3個屬性:「marquage」,「couleurs」和「couleursàmarquer」。Woocommerce在產品頁面上每個數量和變體的價格爲2.0+折扣

這是我的php,在woocommerce_before_add_to_cart_form後面添加。

我希望你的眼睛會不會流血,我因爲不到一年的時間(我是一個打印機之前\ O /不知道什麼編碼)在網站上運行。

 
> $available_variations = $product->get_available_variations(); 
> $variation_id=$available_variations[0]['variation_id']; 
> $variable_product1= new WC_Product_Variation($variation_id); 
> $regular_price1 = $variable_product1 ->regular_price; 
> $sales_price1 = $variable_product1 ->sale_price; 
> $variation_id=$available_variations[1]['variation_id']; 
> $variable_product2= new WC_Product_Variation($variation_id); 
> $regular_price2 = $variable_product2 ->regular_price; 
> $sales_price2 = $variable_product2 ->sale_price; 
> $variation_id=$available_variations[2]['variation_id']; 
> $variable_product3= new WC_Product_Variation($variation_id); 
> $regular_price3 = $variable_product3 ->regular_price; 
> $sales_price3 = $variable_product3 ->sale_price; 
> $variation_id=$available_variations[3]['variation_id']; 
> $variable_product4= new WC_Product_Variation($variation_id); 
> $regular_price4 = $variable_product4 ->regular_price; 
> $sales_price4 = $variable_product4 ->sale_price; 
> $variation_id=$available_variations[4]['variation_id']; 
> $variable_product5= new WC_Product_Variation($variation_id); 
> $regular_price5 = $variable_product5 ->regular_price; 
> $sales_price5 = $variable_product5 ->sale_price; 
> $variation_id=$available_variations[5]['variation_id']; 
> $variable_product6= new WC_Product_Variation($variation_id); 
> $regular_price6 = $variable_product6 ->regular_price; 
> $sales_price6 = $variable_product6 ->sale_price; 
> $variations_prices = array($available_variations[0][attributes][attribute_pa_couleurs] => $regular_price1, $available_variations[1][attributes][attribute_pa_couleurs] => $regular_price2, $available_variations[2][attributes][attribute_pa_couleurs] => $regular_price3, $available_variations[3][attributes][attribute_pa_couleurs] => $regular_price4, $available_variations[4][attributes][attribute_pa_couleurs] => $regular_price5, $available_variations[5][attributes][attribute_pa_couleurs] => $regular_price6); 

對,這工作正常。 這些行允許我捕獲變量中的變化價格,僅此時Couleurs屬性。 我可以將它添加到functions.php,但我想讓我的json_encode($ variations_prices);在jQuery中。所以這就是我在這個腳本中所做的,在我的自定義php之後,仍然在variation.php中。

詞SOME_BAD_PHP意味着打開或結束PHP,is_less_than意味着<(抱歉的是,你實際上讀我的:-)#2的第一篇文章)

 
>  
>    $(document).ready(function(){ 
>  function calculate_price(){ 
>  var my_array = SOME_BAD_PHP echo json_encode($variations_prices); END_SOME_BAD_PHP; 
>  var qty_prod = $('.qty').val(); 
>  var coul = $('#pa_couleurs').val(); 
>  var marquage = $('#pa_marquage').val(); 
>  var couleurs_marquage = $('#pa_couleurs-a-marquer').val(); 
>  if(jQuery.inArray($('select#pa_couleurs option:selected').val(), my_array)!== -1){ 
>  }else { 
>  var price_in_array = my_array[$('select#pa_couleurs option:selected').val()]; 
>  var price_coul_min = price_in_array;} 
>   if(qty_prod is_less_than 50) { 
>    var total_to_pay = price_coul_min * qty_prod;} 
>   else if(qty_prod >= 50) { 
>    var price_redux = price_coul_min - 5/100; 
>    var total_to_pay = price_redux * qty_prod;} 
>  if (total_to_pay > 0){ 
>  $('#price_me').html('Le prix est de ' + total_to_pay + ' euros pour la sélection'); 
>  }else{} 
>  }; 

最後我添加了一個簡單<span id="price_me"></span>我產品頁面。

這些代碼行顯示的折扣價格取決於所選變量和數量,在具有「price_me」id的跨度中。工作正常,不幸的是這不是很好,它可能包含錯誤。

我希望我的代碼(即本地工作)會幫助別人,我只想做正確它:-D但目前還沒有循環,並在jQuery的一些不好的PHP ...

是否有方法有一個PHP函數,返回我的json_encode($數組)到另一個函數,這增加了我的jQuery腳本woocommerce(例如使用wp_enqueue_script)?(像往常一樣,我很清楚:-D)

+0

問題通過向主題添加js腳本解決。重載購物車的PHP功能可以在http://cyrilchalamon.fr/woocommerce-loverride-du-panier/ – Cyssoo

回答

2

我包含覆蓋Ajax價格的JS腳本,然後我創建了一個覆蓋woocommerce購物車的自定義函數。 Woocommerce購物車重寫代碼可以在我自己的網站上看到,js文件取決於你的銷售情況。 這兩個工作魅力,感謝朋友。

+0

看到我已經明確地將它添加到我的MustToDoListIn WC。其實我的問題已經解決了,但我已經向Woocommerce添加了Ajax腳本,這絕對有用。 – Cyssoo

相關問題