sql >> Databáze >  >> RDS >> Mysql

Dotaz MySQL pro změnu variabilní ceny produktu ve WooCommerce

//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';

PŘIDÁNO Pokud chcete sloučit všechny výše uvedené dotazy do jediného dotazu, můžete použít tento:

UPDATE wp_postmeta
SET meta_value = 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");

Také musíte odstranit mezipaměť cen produktu WooCommerce, která je uložena v wp_options tabulka pod _transient_timeout_wc_var_prices_{{post_id}} a _transient_wc_var_prices_{{post_id}} v option_name

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

Všechny výše uvedené dotazy byly testovány a fungovaly pro mě.

Před spuštěním tohoto dotazu proveďte zálohu databáze

Reference:Kopírování výprodejových cen produktů WooCommerce na běžné ceny a resetování výprodejových cen

Doufám, že to pomůže!




  1. Spustit tiché ignorování/smazání duplicitních záznamů při INSERT

  2. Jak získat všechny tabulky s omezením primárního klíče nebo bez něj v databázi SQL Server - SQL Server / TSQL výukový program 59

  3. Minimální a maximální hodnoty Mysql a odpovídající datum pro každý měsíc

  4. Nepoužívá se při použití NULL v PostgreSQL stále bitmapa NULL v záhlaví?