2017-02-25 6 views
0

Ich versuche, die Preise für verschiedene Produkte auf meiner WooCommerce-Website zu ändern, aber ich habe ein Problem. Wenn ich das Skript ausführen, wenn ich correctly in der Datenbank und Ziele ändere, erscheint die Vorderseite des Webs immer noch als die falschen Preise, sogar einige Preise erscheinen "Free".Update Preis eines WooCommerce-Produkt in PHP

Das seltsamste von allem ist, dass durch Eingabe der Produkt-Ausgabe, wenn ich die Preise richtig sehe.

Ich gebe Ihnen das Codebeispiel:

$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

Irgendein Cache-Plugin? – 4EACH

+0

Keine, nur woocommerce –

+0

Versuchen Sie, 'CTRL-SHIFT-R' zu drücken, während Sie auf der Website Ihren Browser-Cache aktualisieren – samdd

Antwort

2

ich gleiches Problem hatte. Ich denke, dass Sie das Abfrage-Objekt von Wordpress zurücksetzen sollten. Hier meine Probe, die richtig funktioniert.

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

Ich hoffe, dass dies nützlich ist.

+0

Funktioniert für mich, danke .. aber woocommerce 3.0.X ist ungültig ($ product-> id) es muss geändert werden für ($ product-> get_id()) – mikesneider