我正在尝试在我的 WooCommerce网站上更改各种产品的价格,但我遇到了问题。当我运行脚本时,如果我在数据库和目标中更改correctly
,网络的前端仍然显示为错误的价格,甚至某些价格显示为“免费”。
最奇怪的是,如果我看到正确的价格,请输入产品版本。
我给你代码示例:
$stock = $value['stock'];
$regular_price = $value['rates']['2']['rate_pvp'];
update_post_meta($post_id, '_regular_price', $regular_price);
update_post_meta($post_id, '_price', $regular_price);
$product->set_price($regular_price);
if($stock>0){
update_post_meta($post_id, '_stock_status', 'instock');
} else {
update_post_meta($post_id, '_stock_status', 'outofstock');
}
update_post_meta($post_id, '_stock', $stock);
echo $post_id . ':' . $value['variation_sku'] . ':' . $stock . '.............................OK<br/>';
wc_delete_product_transients();
答案 0 :(得分:4)
我有同样的问题。我认为你应该重置wordpress的查询对象。这是我的样本正常工作。
$args = array( 'post_type' => 'product', 'product_cat' => $key);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
update_post_meta($product->id, '_regular_price', (float)$value);
update_post_meta($product->id, '_price', (float)$value);
endwhile;
wp_reset_query();
我希望这很有用。