我在我的主题的function.PHP中有这个代码来显示价格后的百分比,它在WooCommerce v2.6.14中运行良好.

但是这个片段在WooCommerce 3.0版本上不再起作用了.

我该如何解决这个问题?

这是代码:

// Add save percent next to sale item prices.
add_filter( 'woocommerce_sale_price_html','woocommerce_custom_sales_price',10,2 );
function woocommerce_custom_sales_price( $price,$product ) {
    $percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 );
    return $price . sprintf( __(' Save %s','woocommerce' ),$percentage . '%' );
}
woocommerce_sale_price_html钩子已经被WooCommerce 3.0中的一个不同的钩子所取代,它现在有3个参数(但不再是$product参数).

这是功能相似的代码:

// Only for WooCommerce version 3.0+
add_filter( 'woocommerce_format_sale_price',3 );
function woocommerce_custom_sales_price( $price,$regular_price,$sale_price ) {
    $percentage = round( ( $regular_price - $sale_price ) / $regular_price * 100 ).'%';
    $percentage_txt = __(' Save ','woocommerce' ).$percentage;
    $price = '<del>' . ( is_numeric( $regular_price ) ? wc_price( $regular_price ) : $regular_price ) . '</del> <ins>' . ( is_numeric( $sale_price ) ? wc_price( $sale_price ) . $percentage_txt : $sale_price . $percentage_txt ) . '</ins>';
    return $price;
}

此代码位于活动子主题(或主题)的function.PHP文件中,或者也可以放在任何插件文件中.

此代码经过测试,仅适用于WooCommerce 3.0版

Update to avoid NAN% percentage value when regular and sale prices are html pre-formatted:

add_filter( 'woocommerce_format_sale_price',$sale_price ) {
    // Getting the clean numeric prices (without html and currency)
    $regular_price = floatval( strip_tags($regular_price) );
    $sale_price = floatval( strip_tags($sale_price) );

    // Percentage calculation and text
    $percentage = round( ( $regular_price - $sale_price ) / $regular_price * 100 ).'%';
    $percentage_txt = __(' Save ','woocommerce' ).$percentage;

    return '<del>' . wc_price( $regular_price ) . '</del> <ins>' . wc_price( $sale_price ) . $percentage_txt . '</ins>';
}

此代码位于活动子主题(或主题)的function.PHP文件中,仅适用于WooCommerce 3.0版(感谢@AsifRao)

php – 在WC 3.0的单个产品页面中显示销售价格附近的折扣百分比的更多相关文章

  1. ios – 如何删除/解码URL百分比编码?

    我想要一个url并将其转换成更易读的格式.例如我有以下链接:我拿走了不必要的部分,并留下了“Sándor_Font”作为Nsstring.有没有什么方式将它转换成“SándorFont”,而不必输出每一个特殊字符的组合并替换字符串的每个部分?为了演示如何使用它,我写了以下示例代码:最后我要标签说“SándorFont”不是“Sándor_Font”.谢谢!

  2. ios – 如何在使用XCode 7的Storyboards中将视图高度设置为屏幕高度的百分比

    我需要设计如下图像的视图,我已经尝试了固定的高度,并尝试了紧凑的宽度和规则的高度和规则的宽度和紧凑的高度,但这些情况对我没有用.如何在Storyboards中将视图高度设置为屏幕高度的百分比?

  3. swift – 使UIButton占屏幕大小的百分比

    我注意到iPhone5模拟器上的某些按钮尺寸看起来很棒,但在iPhone6模拟器上看起来不太好,这是因为我放在UIButton上的高度或约束最终会在底部留下很多空白区域.我的应用程序屏幕无论我在哪个设备上模拟,我都希望有一个40%的屏幕大小的按钮.无论设备如何,关于如何使按钮大小的任何想法都保持在屏幕尺寸的40%?>按住Ctrl键从按钮拖动到superview,然后选择EqualWidths>OpenSizeInspector编辑EqualWidths约束并将乘数设置为0.4.你会看到这样的事情:>添加缺

  4. android – 移动应用程序的WooCommerce API

    我打算为WooCommerce商店开发原生移动Android应用程序.我在这里查看了他们的RESTapi文档:http://docs.woocommercev2.apiary.io/我已经开始测试了,但是当我做不同的电话时GET/order让我们说它会返回商店的所有订单.有谁知道如何使用他们的API开发最终用户应用程序.例如:PUT/order(为登录用户创建订单)GET/order(获取登录用户

  5. Android Java百分比计算

    我无法弄清楚这段代码有什么问题……我正在尝试计算一个百分比:我确定boatsnpage和numpages大于零,但结果cCom始终为0:有任何想法吗?解决方法如果npage和numpages都是整数,则Java将舍入为整数(即0).要使Java使用双精度进行除法,您需要将其中一个数字转换为double,如下所示:事实上,因为你正在使用一个百分比,你可能想要:

  6. android – 在Playstore的新管理版本页面中,百分比在更新推出旁边显示的内容是什么

    Playstore应用发布控制台引入了新的页面管理版本而不是APK页面,这里我们都管理app的apk用于不同的环境,如alpha,beta和producation.在ManageProducation中,我在发布应用程序后推出了现有应用程序的新更新,我可以看到发布“Haltrollout”,“Updaterollout”的两个选项,然后在点击更新时显示5%的符号每次百分比符号增加5%时滚动.我想知道百分比符号表示什么?

  7. Android百分比宽度布局

    我需要将视图的宽度设置为屏幕宽度的50%,然后将此视图水平居中,同时可能有一个或多个按钮,这些按钮可以显示为附加到屏幕的左侧或右侧.我正在使用相对布局,这样我就可以放置一个带有权重的线性布局,使我的50%居中,同时将任何按钮放在连接到RL左边或右边的LL的顶部.但是这个布局缺少蓝色中间栏.如果我将中间视图layout_weight设置为1,我将获得3个相同大小的条形图.解决方法您应该将视图的宽度设置为0dip

  8. angular4+百分比进度显示插件用法示例

    这篇文章主要介绍了angular4+百分比进度显示插件用法,结合实例形式分析了Angular4安装及使用百分比进度显示插件相关步骤与操作技巧,需要的朋友可以参考下

  9. 利用Echarts实现图例显示百分比效果

    EChart开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。本文将利用EChart实现图例中显示百分比的效果,感兴趣的可以学习一下

  10. echarts如何实现带百分比的横向柱状图

    近期在使用echart开发过程中遇到一些问题,需要开发横向柱状图,下面这篇文章主要给大家介绍了关于echarts如何实现带百分比的横向柱状图的相关资料,需要的朋友可以参考下

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部