WooCommerce-如何将所有价格四舍五入以0.99结尾

时间:2020-10-31 作者:Xav

我需要更新我店里的所有价格以结束。99,无论是在前端还是在数据库中。我有以下代码,当我运行一个短代码时,它似乎可以做到这一点,但我有一个问题。

当我在admin中查看产品时,它们会显示old 价格。我已经清除了瞬态并重新生成了产品查找表,但旧的价格仍在显示,这使我认为新的价格只显示在前端,即使代码明显在更新数据库。有点困惑。

add_shortcode( \'shortcode_update_price\',\'shortcode_update_price\' );
function shortcode_update_price(){
  global $wpdb;

  $prefix = $wpdb->prefix;
  $results = $wpdb->get_results( "SELECT `meta_id`, `meta_value` FROM {$prefix}postmeta WHERE `meta_key`=\'_price\'", ARRAY_A );
  if ( !empty($results) ) {
    foreach ($results as $key => $value) {
      $new_price = ceil($value[\'meta_value\']) - 0.01; 
      $wpdb->query( "UPDATE {$prefix}postmeta SET `meta_value`=$new_price WHERE `meta_id`=$value[meta_id]" );
    }
  }

}

enter image description here

我做错了什么?这可能仍然只是一个缓存问题吗?

1 个回复
SO网友:Zaim

您应该尝试使用_regular_price SQL查询中的元键。

管理员提供的常规价格使用_regular_price 键,而前端显示的价格使用_price 钥匙请记住_price 是产品的有效价格,如果产品当前正在销售_price 将使用的值_sale_price. 的价值_price 默认情况下,每天都会更新WC挂钩cron。

相关推荐

transient or not transient

我有一个连接到专用数据库的风捕捉器。捕获者的数据每分钟推送到db。我可以使用连接到第二个db并将数据打印到wp页面 $meteodb = new wpdb(\'xx\',\'xx\',\'xx\',\'xx\'); $meteoValues = $meteodb->get_results( \" SELECT average, min, max, direction, timestamp FROM wind