当前位置: 首页 > 知识库问答 >
问题:

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

楚茂实
2023-03-14

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

这是我的php,添加在woocommerce_before_add_to_cart_form之后。

> $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{}
>     };

最后,我在产品页面中添加了一个简单的

这些代码行显示了在具有“price_me”ID的跨度中根据变化和所选数量而定的折扣价格。工作良好,不幸的是,这不是很好,它可能包含错误。

我希望我的代码(在local上工作)能帮助其他人,我只想正确地做它:-d但是没有循环,jQuery中有一些坏的php...

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

共有1个答案

颜嘉誉
2023-03-14

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

 类似资料:
  • 嗨,我正在尝试计算的百分比折扣的产品,在一个产品列表页上出售,有一个过去和现在的价格。 我已经有了用来获得百分比折扣的代码,但我似乎不能让它对每个产品动态地工作。目前,它将运行计算,然后打印每个产品的相同百分比折扣,即使是全价产品。 对此,我们将不胜感激。谢谢! null null

  • 我需要显示一些变化的可用“库存”。问题是我需要在一个静态的标准WP页面上做这件事。我知道产品ID和变体ID,我可以使用这些来获得WooCommerce模板之外的变体库存计数吗?我可以使用PHP或AJAX,我已经有一个自定义页面模板应用于该页面。

  • 我有两张桌子。一个ID及其价格表和第二个每个ID折扣表。在折扣表中,一个Id可以有很多折扣,我需要知道一个Id的最终价格。 查询它的最佳方式是什么(在一次查询中)?对于每个id的许多折扣,查询应该是通用的(不仅仅是下面示例中提到的2个) 例如表1 表二 最终结果:

  • 问题内容: 我在主题中有此代码以显示价格后的百分比,并且在WooCommerce v2.6.14中运行良好。 但是此代码段在WooCommerce 3.0+版本上不再起作用。 我该如何解决? 这是该代码: 问题答案: 更新 -2019 (避免四舍五入的价格问题) -2017 (避免百分比值) 在WooCommerce 3.0+中,该钩子已替换为另一个钩子,该钩子现在具有3个参数(但不再有该 参数)

  • 在WooCommerce中,我想用我自己的定制设计展示可变产品,作为产品变化的旋转木马。我得到了代码,通过它我可以在数组中显示产品的常规价格,但我坚持在其中获取属性名和值。 基于“WooCommerce变量产品:在超文本标记语言表中显示一些变化值”的回答代码,这是我的实际代码: 这段代码给出了正确的输出,但我需要属性值和名称,这是输出屏幕截图:

  • 我正在尝试为函数编写一个代码段。php文件,该文件仅显示所选变体的一个价格,因此忽略了在单个产品页面上随变体价格一起显示的价格范围。我正在使用以下代码: 问题是,例如,当您有两个单一产品的变体,而其中一个缺货时,此脚本会在单一产品页面上隐藏剩余变体的价格。我在想,也许每个产品都有一些可用的变体,并使用IF来使用标准的单一产品模板来显示它们。或者你有更好的办法解决这个问题?