sql >> Databasteknik >  >> RDS >> Mysql

MySQL-fråga för att ändra variabelt produktpris i 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';

TILLlagt Om du vill slå samman alla ovanstående frågor till en enda fråga kan du använda den här:

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");

Du måste också ta bort WooCommerce produktpriscaching som lagras i wp_options tabell under _transient_timeout_wc_var_prices_{{post_id}} och _transient_wc_var_prices_{{post_id}} i option_name

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

Alla ovanstående frågor är testade och fungerade för mig.

Ta en säkerhetskopia av databas innan du kör den här frågan

Referens:Kopiera WooCommerce-produkter Reapriser till ordinarie priser och återställ reapriser

Hoppas detta hjälper!




  1. MySQL Max-funktion blandar rader

  2. Lagra bild till databas blob; hämta från db till Picturebox

  3. Får fel:Det går inte att ansluta till någon av de angivna MySQL-värdarna. I en applikation som inte använder MySQL

  4. Hur använder jag CONCAT-funktionen i SQL Server 2008 R2?