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