1

在最新版本的 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 ->sales_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 ->sales_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 ->sales_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 ->sales_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 ->sales_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 ->sales_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);

对,这很好用。这些行允许我捕捉变量中的价格变化,目前仅适用于 Couleurs 属性。我可以将它添加到functions.php,但我想得到我的json_encode($variations_prices); 在jQuery中。这就是我在这个脚本中所做的,就在我的自定义 php 之后,仍然在variation.php 中。

单词 SOME_BAD_PHP 表示打开或结束 php,is_less_than 表示 <(抱歉,您实际上是在阅读我在 Stackoverflow 中的第一篇文章 :-))

>     
> $(文档).ready(函数(){
> 函数计算价格(){
> 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){
> }否则{
> 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;}
> 否则如果(qty_prod >= 50){
> var price_redux = price_coul_min - 5 / 100;
> var total_to_pay = price_redux * qty_prod;}
> 如果(total_to_pay > 0){
> $('#price_me').html('Le prix est de ' + total_to_pay + ' euros pour la sélection');
> }其他{}
> };

<span id="price_me"></span>最后我在我的产品页面中添加了一个简单的。

这些代码行显示折扣价格取决于选择的变化和数量,在具有“price_me”id 的跨度中。工作正常,不幸的是这并不好,它可能包含错误。

我希望我的代码(适用于本地)对其他人有所帮助,我只想正确地做到这一点:-D 但是没有循环,并且 jquery 中有一些糟糕的 php ......

有没有办法让 php 函数将我的 json_encode($array) 返回到另一个函数,将我的 jquery 脚本添加到 woocommerce(例如使用 wp_enqueue_script)?(像往常一样,我心里很清楚:-D)

4

1 回答 1

1

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

于 2014-05-23T14:47:32.650 回答