2017-02-25 7 views
0

私はWooCommerceウェブサイトの様々な製品の価格を変更しようとしていますが、問題があります。私がスクリプトを実行すると、データベースと目標でcorrectlyを変更すると、ウェブの正面が依然として間違った価格で表示されます。一部の価格でも「無料」と表示されます。PHPのWooCommerce製品のアップデート価格

価格が正しく表示されている場合は、製品版を入力することで最も奇妙なことがすべてあります。

私はあなたのコードサンプルを与える:

$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

キャッシュプラグインはありますか? – 4EACH

+0

なし、woocommerceのみ –

+0

サイトでCTRL-SHIFT-Rを押してブラウザのキャッシュを更新してみてください – samdd

答えて

2

私は同じ問題を抱えていました。私はあなたがワードプレスのクエリオブジェクトをリセットする必要がありますと思います。ここで私のサンプルは正常に動作します。

$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(); 

この情報が役立ちます。

+0

私のために働きます、ありがとう..しかし、woocommerce 3.0.Xは無効です($ product-> id)($ product-> get_id())のためにそれを変更する必要があります – mikesneider

関連する問題