1

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)

4

1 に答える 1

1

Ajax の価格をオーバーライドする JS スクリプトを含め、woocommerce カートをオーバーライドするカスタム関数を作成しました。Woocommerce カート オーバーライド コードは、自分の Web サイトで見ることができます。js ファイルは、販売しているものによって異なります。友達のおかげで、どちらも魅力的です。

于 2014-05-23T14:47:32.650 に答える