将数据库中所有 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 位 的相关文章

随机推荐

  • 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 插件一起使用 有没有数据库查询可以做到这一点 我看过一些有关舍入和