用PHP更新WooCommerce产品的价格

时间:2017-02-25 12:26:55

标签: php wordpress woocommerce

我正在尝试在我的 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();

1 个答案:

答案 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();  

我希望这很有用。