Woocommerce の最新バージョンで Mystile テーマを使用して、選択した数量とバリエーションに応じて割引価格を表示するために、variation.php をオーバーライドしました。私は 3 つの属性を持っています: "marquage"、"couleurs"、"couleurs à marquer" です。
これが woocommerce_before_add_to_cart_form の直後に追加された私の php です。
私はあなたの目が出血しないことを願っています.私は1年も経たないうちにウェブサイトで働いています.
> $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= 新しい 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= 新しい 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] => $通常_価格6);
そうですね、これはうまくいきます。これらの行により、現時点ではクルール属性のみについて、変数の変動価格を取得できます。functions.php に追加できますが、json_encode($variations_prices); を取得したいです。jqueryで。これが、このスクリプトで実行したことです。カスタム php の直後で、まだvariation.php にあります。
単語 SOME_BAD_PHP は php を開くまたは終了することを意味し、is_less_than は < を意味します (申し訳ありませんが、実際に Stackoverflow で私の最初の投稿を読んでいます :-) )
> > $(document).ready(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 オプション:選択済み').val(), my_array)!== -1){ > }その他{ > var price_in_array = my_array[$('select#pa_couleurs オプション:選択済み').val()]; > var price_coul_min = price_in_array;} > if(qty_prod is_less_than 50) { > var total_to_pay = price_coul_min * 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 select'); > }それ以外{} > };
<span id="price_me"></span>
そして最後に、製品ページにシンプルなものを追加しました。
これらのコード行は、「price_me」ID を持つスパンで、選択されたバリエーションと数量に応じて割引価格を表示します。残念ながら、それは良くなく、おそらくエラーが含まれている可能性があります。
私のコード(ローカルで動作する)が他の人に役立つことを願っています。私はそれを適切に実行したいだけです:-Dしかし、ループはなく、jqueryにはいくつかの悪いphpがあります...
json_encode($array) を別の関数に返し、jquery スクリプトを woocommerce に追加する php 関数を使用する方法はありますか (たとえば wp_enqueue_script を使用) ? (いつものように、それは私の心の中で明確でした:-D)