Woocommerce 2.0+折扣价格每个数量和产品页面的变化

时间:2014-03-04 13:51:23

标签: php jquery woocommerce discount variation

在最新版本的Woocommerce中使用Mystile主题,我为了显示折扣价格而取代了所选择的数量和变化,以此来覆盖variation.php。我有3个属性:“marquage”,“couleurs”和“couleursàmarquer”。

这是我的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表示< (对不起,你实际上正在阅读Stackoverflow中的第一篇文章:-))

>     
>             $(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($ array)返回给另一个函数,将我的jquery脚本添加到woocommerce(例如使用wp_enqueue_script)?(像往常一样,它在我的脑海里很清楚:-D)

1 个答案:

答案 0 :(得分:2)

我包含了覆盖Ajax价格的JS脚本,然后我创建了一个覆盖woocommerce购物车的自定义功能。 Woocommerce购物车覆盖代码可以在我自己的网站上看到,js文件取决于你的销售情况。 感谢朋友,两者都有魅力。