2017-01-09 12 views
2

woocommerceで可変商品の価格を変更したいと思います。私はそれを行うには、MySQLのクエリを試してみたWooCommerceで可変商品価格を変更するMySQLクエリ

UPDATE wp_postmeta 
SET meta_value = price_value 
WHERE post_id = variation_id AND meta_key = '_sale_price'; 

しかし、フロントエンドではなく、バックエンド(DBと管理領域)での更新。実際にフロントエンドでは販売価格も表示されません。 私はSQLがうまくいかないので、可変コードの価格を変更するためのコードスニペットやWooCommerceフックはありますか?

ありがとうございました。

答えて

1

あなたは同じ値で_sale_price_priceの両方を更新する を持っている販売上にある製品の価格を変更したい場合。あなたが使用することができ、単一のクエリに上記のすべてのクエリをマージしたい場合は

//for Regular Price 
UPDATE wp_postmeta 
SET meta_value = diff_price_value 
WHERE post_id = variation_id AND meta_key = '_regular_price'; 

//for Price 
UPDATE wp_postmeta 
SET meta_value = price_value 
WHERE post_id = variation_id AND meta_key = '_price'; 

//for Sale Price 
UPDATE wp_postmeta 
SET meta_value = price_value 
WHERE post_id = variation_id AND meta_key = '_sale_price'; 

を追加しました。この1:

UPDATE wp_postmeta 
SET meta_key = CASE 
        WHEN meta_key = "_regular_price" THEN diff_price_value 
        WHEN meta_key = "_price" THEN price_value 
        WHEN meta_key = "_sale_price" THEN price_value 
        ELSE meta_key 
       END 
WHERE post_id = variation_id 
    AND meta_key IN ("_regular_price", "_price", "_sale_price"); 

はまた、あなたはWooCommerce製品の価格を削除する必要がありますwp_optionsのテーブルに格納されているキャッシング_transient_timeout_wc_var_prices_{{post_id}}_transient_wc_var_prices_{{post_id}}

DELETE 
FROM `wp_options` 
WHERE (`option_name` LIKE '_transient_wc_var_prices_%' 
    OR `option_name` LIKE '_transient_timeout_wc_var_prices_%') 

option_nameに上記のすべてのクエリがテストされ、私のために働きました。このクエリを実行する前に

は、データベースのバックアップを取る行う

参考:このことができますCopy WooCommerce products Sale prices to regular prices and reset Sale prices

願っています!

+0

ありがとうございます。彼らは単一のクエリに結合することができる方法はありますか? –

+0

@karbyl_subbu:私は自分の答えを更新しました。試してみてください。 –

+0

@RaunakGupta、私はあなたの助けが必要です[ここ](http://stackoverflow.com/questions/43805478/how-to-update-sale-price-woocommerce3-0-variable-product) –

関連する問題