我的许多产品的价格如下£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(使用前将#替换为@)