将数据库中所有 WooCommerce 产品价格更新为小数点后 2 位

2023-12-30

我的许多产品的价格如下£3.4560等等。我需要将它们在数据库中四舍五入并精简为 2。

WooCommerce 中小数点后两位的输出是不够的,并且无法与 Tax Toggle 插件一起使用。

有没有数据库查询可以做到这一点?

我看过一些有关舍入和截断的内容,但由于我的知识匮乏,所以不确定如何执行此操作。

任何帮助表示赞赏。


更新2: (添加了一些代码来清除所有相关产品临时缓存)

这是一些将更新所有产品价格的代码(之前进行数据库备份):

global $wpdb;
$postmeta = $wpdb->prefix . "postmeta";
$posts = $wpdb->prefix . "posts";

// 1. First query: Get all prices
$results = $wpdb->get_results( "
    SELECT $postmeta.*
    FROM $postmeta
    INNER JOIN $posts ON $postmeta.post_id = $posts.ID
    WHERE $posts.post_type LIKE '%product%'
    AND $postmeta.meta_key LIKE '%price%'
    AND $postmeta.meta_value != ''
    ORDER BY $postmeta.meta_id ASC
" );

// iterating through each price and update it
foreach($results as $result){
    $meta_id    = $result->meta_id;
    $post_id    = $result->post_id;
    $meta_key   = $result->meta_key;
    $meta_value = number_format( $result->meta_value, 2 );

    // 2. Udating prices query
    $wpdb->query( $wpdb->prepare( "
        UPDATE $postmeta
        SET meta_id = $meta_id, post_id = $post_id, meta_key = '$meta_key', meta_value = '$meta_value'
        WHERE $postmeta.meta_id = %d
    ", $meta_id ) );

     // 3. Clear all related product transient cached data (refresh prices)
     wc_delete_product_transients($post_id);
}

代码位于活动子主题(或主题)的 function.php 文件中或任何插件文件中。

保存后,只需浏览站点的任何页面,检查数据库 wp_postmeta 表搜索‰price‰ LIKE meta_key。现在您可以删除此代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据库中所有 WooCommerce 产品价格更新为小数点后 2 位 的相关文章

  • 对 SQL Server 2005 结果进行分页

    如何在 SQL Server 2005 中对结果进行分页 我在 SQL Server 2000 中尝试过 但没有可靠的方法来做到这一点 我现在想知道SQL Server 2005是否有任何内置方法 分页的意思是 例如 如果我按用户名列出用户
  • SQL限制数据库中的最小值和最大值

    CREATE TABLE TBL CD CDnr int identity 1 1 CDTitel nvarchar 80 NOT NULL CDduur int CDprijs smallmoney 所以我正在创建这个表 有什么方法可以将
  • PHP header() 和 jquery mobile

    我想使用 php header Location newpage php 进行重定向 我没有收到错误 但 Jquery mobile 似乎无法加载目标页面 并且地址栏仍保留旧地址 请问您有什么建议吗 Thanks 尝试添加data ajax
  • 如何在 SQL 中编写 where 子句来按一天中的时间过滤 DATETIME 列?

    我有带有 DATETIME 列时间戳的数据 我想将其过滤到 DATETIME 介于上午 9 30 到下午 5 30 之间的任意一天的记录集 最好的方法是什么 更新 更改是因为我需要精确到分钟 而不仅仅是小时 对于那个很抱歉 您始终可以将其编
  • 获取 SQL 表上未使用的唯一值

    我有一个表 其中有一列描述数字 ID 该 ID 对于所有行都是唯一的 但它不是主键 数字 ID 是有限的 假设答案可以是从 1 到 10 SELECT ID FROM TABLE ID 1 2 5 我必须 通过 UI 向用户呈现未使用的值
  • 使用 PDO 在 SQLite 中检索单个(且唯一)行的最简单方法

    我有这个 PDO stmt db gt prepare SELECT FROM channels WHERE id id stmt gt bindValue id id SQLITE3 INTEGER result stmt gt exec
  • 在带有循环引用的表中插入 SQL

    我有 2 张桌子 Empleados numEmpl nombre apellido sexo telefono salario numDept Departamentos numDept nombreDept numDirect 在部门中
  • 获取SQL中前2个特殊字符之间的字符

    我有数据在sql 只是要注意 SQL STudio is the IDE like data a 10 b c a 1 b c 我想获取前两个符号之间的数据 Output 10 1 这就是我的方法 SELECT CAST
  • 需要 mysqli_fetch_all 的替代方案

    我有一个 php mysqli 代码 可以找到一个我的本地服务器 但是在我的服务器上使用它时 我得到了一个 Fatal error Call to undefined function mysqli fetch all in home3 t
  • 对时间序列数据重新采样

    我有一个以毫秒为单位的时间序列列表 我想对时间序列进行重新采样并对组应用平均值 我如何在 Postgres 中实现它 重新采样 是指聚合一秒或一分钟内的所有时间戳 一秒或一分钟内的所有行形成一组 表结构 date x y z Use dat
  • cURL '格式错误的网址'

    This url 在浏览器中工作得很好 但 cURL 返回错误 3 格式错误的 url 关于解决方法有什么想法吗 EDIT 卷曲代码 function get web page url options array CURLOPT RETUR
  • 如何创建环境变量来保护我的网站的 Google 地图 API 密钥(或任何其他秘密值)?

    我正在学习使用 Bootstrap 编写自己的网站 并使用 Google 地图 API 密钥和 Google Developers 的脚本轻松地将地图放置在我的页面上 理想情况下 我会有类似的东西 即我已经尝试过这个 Html PHP
  • 计算行数并仅获取表中的最后一行

    我有一张桌子叫employeexam其结构和数据是这样的 id course id employee id degree date 1 1 3 8 2013 01 14 2 2 4 15 2013 01 14 3 2 4 17 2013 0
  • 左连接 SQL 求和

    我有两张桌子想要加入 比如说表 a 和表 b 表 b 有许多行指向表 a 表 b 包含价格 实际上是一个购物篮 所以我想要的是表a中的所有记录和表b中的价格之和 我努力了 select a sum b ach sell from booki
  • 无需下载整个文件即可读取 ID3 标签

    是否可以读取 MP3 文件的 ID3 标签 持续时间 艺术家 标题 而无需下载整个文件 我做了一些测试 只需下载 MP3 文件的几个字节就可以获得艺术家和标题标签 但我不确定持续时间和其他标签是否可能 Thanks 我刚刚发现 ffmpeg
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • php,in_array,0值

    我试图理解in array下一个场景的行为 arr array 2 gt Bye 52 77 3 gt Hey var dump in array 0 arr 返回值in array 是布尔值true 正如你所看到的no值等于0 所以有人可
  • 转换MAC地址格式

    我刚刚编写了一个小脚本 从交换机中提取数百个 MAC 地址进行比较 但它们的格式为 0025 9073 3014 而不是标准的 00 25 90 73 30 14 我对如何转换它感到困惑 我能想到的最好的办法就是在 处将它们分解成碎片 然后
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 我的数据库有错误

    创建表时如下 create table Ticket ticket id integer not null primary key AirlineName varchar not null CustomerName varchar from

随机推荐

  • Matplotlib axvspan - 实心填充?

    我正在使用这行代码使用 matplotlib 创建跨图形的垂直跨度 matplotlib pyplot axvspan datetime datetime strptime 09 10 2015 d m Y datetime datetim
  • 如何检查网络路径是否存在?

    在linux中使用python了解网络路径 例如 192 168 1 1 test 是否存在的最佳方法是什么 如果 路径 指的是互联网 URL 则需要查看 urllib 模块 from urllib import urlopen try u
  • 将关系属性从 ER 图转换为 SQL

    目前我是第一次尝试掌握 SQL 所以我正在解决一些问题 这是一个示例数据库规范 学生 姓名 性别 课程 做项目 标题 每个项目都有 两名主管 姓名 性别 部门 所有学生都做一个项目 但并非所有项目都被接受 不止一名学生可以做同样的事情 项目
  • 如何编写迁移来重命名 Rails 中的 ActiveRecord 模型及其表?

    我不擅长命名 并意识到我的 Rails 应用程序中有一组更好的模型名称 有没有办法使用迁移来重命名模型及其对应的表 这是一个例子 class RenameOldTableToNewTable lt ActiveRecord Migratio
  • 如何不覆盖node.js中的文件

    我想让这段代码在文件存在时更改文件名而不是覆盖它 var fileName file fs writeFile fileName txt Random text function err if err throw err console l
  • Spring Boot 外部配置和 xml 上下文

    我想使用 Spring Boot 外部化我的配置 但我想继续部分使用我的 xml 上下文 我的主类 SpringServerApplication java Configuration PropertySources value Prope
  • 无法将类型“__NSArrayM”的值转换为“NSDictionary”

    我有一个 json 我正在尝试用该代码解析它 但它说 无法将类型 NSArrayM 的值转换为 NSDictionary do let dataDictionary NSDictionary try NSJSONSerialization
  • 在 Java 中,如果我的集合是只读的,我是否需要将其声明为同步?

    当我的 J2EE web 应用程序启动时 我会一次性填充一个集合 然后 多个线程可以同时访问它 但只能读取它 我知道使用同步集合对于并行写入是强制性的 但是我仍然需要它来进行并行读取吗 通常不会 因为在这种情况下您不会更改集合的内部状态 当
  • window.location.href 在 Ipad 和 Iphone 中不起作用

    我在表单中使用了 Google Login API 登录用户后 我使用window location href将用户重定向到另一个页面 但它不起作用iPad and iPhone window location href http exam
  • Ruby on Rails - 将参数传递到routes.rb中的301重定向

    我想更改 paths rb 中现有的 游戏 路由 但由于 SEO 我还需要为旧链接设置 301 重定向 我的旧路由 match games permalink id page gt games show 新路由 match gierki p
  • Angular2 中 api 调用后重定向到路由

    在处理 通过 api 用户通过表单提交的数据后 我需要将用户重定向到不同的组件 下面是我尝试过的代码 在组件中 onSubmit model if model valid true this SharedService postFormda
  • 更改日期选择器背景颜色

    我正在尝试显示一个DatePicker另一个活动之上的对话框 正在发生的事情是它以某种方式继承了它的颜色 I d like it to have a green header and white background 这是样式的摘录
  • Wcf 和接口作为参数

    我有一个库 其中一些实体共享相同的接口 客户和服务共享这个程序集 现在我想知道是否有一种方法可以将此接口类型作为我的服务合同中的参数 以便我可以对实现该接口的所有类使用相同的方法 实体本身都用 datacontract attribute
  • 如何在 NHibernate 中删除子对象?

    我有一个父对象 它与子对象的 IList 具有一对多关系 删除子对象的最佳方法是什么 我不会删除父级 我的父对象包含子对象的 IList 以下是一对多关系的映射
  • 如何更改图像的亮度

    我的问题 我希望能够更改资源图像的亮度 并将其三个实例作为 ImageIcons 一张亮度为 50 较暗 另一张亮度为 75 稍亮 最后一张亮度为 100 与原始图像相同 我还想保持透明度 我尝试过的 我四处搜寻 看起来最好的解决方案是使用
  • 与 static_assert 和 boost::hana 相关的 Clang 编译错误

    考虑以下在 Clang 3 8 上成功编译的问题 std c 14 include
  • 使用 selenium python 模拟 onclick

    我对 selenium 很陌生 我正在尝试找出如何模拟 onclick 这是我在检查 html 源代码时在源代码中看到的内容 a href img src images ListingOptionSearch jpg a
  • React - 按对象属性过滤

    我正在尝试按属性过滤对象 但无法使其工作 对象中的数据结构如下 我通过 UID 获取数据 然后映射该对象中的所有项目 但我无法使过滤器工作 渲染方法如下所示 render return div Object keys this state
  • Ext js - 动态更改 TabPanel 中选项卡的内容

    我有一个 Ext JS 选项卡面板 其中隐藏的选项卡在初始实例化时根本不加载 我唯一设置的是标题 激活 选项卡后 我想调用一个方法 然后实例化一个新的 FormPanel GridPanel 并将此内容放入选项卡中 有人可以给我指出一个代码
  • 将数据库中所有 WooCommerce 产品价格更新为小数点后 2 位

    我的许多产品的价格如下 3 4560等等 我需要将它们在数据库中四舍五入并精简为 2 WooCommerce 中小数点后两位的输出是不够的 并且无法与 Tax Toggle 插件一起使用 有没有数据库查询可以做到这一点 我看过一些有关舍入和