sql >> Database teknologi >  >> RDS >> Mysql

MySQL-forespørgsel for at ændre variabel 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';

TILFØJET Hvis du vil flette alle ovenstående forespørgsler til en enkelt forespørgsel, kan du bruge denne:

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 skal også slette WooCommerce produktpriscaching, som er gemt i wp_options tabel under _transient_timeout_wc_var_prices_{{post_id}} og _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_%')

Alle ovenstående forespørgsler er testet og virkede for mig.

Tag en databasesikkerhedskopiering, før du kører denne forespørgsel

Reference:Kopiér WooCommerce-produkter Udsalgspriser til almindelige priser, og nulstil udsalgspriser

Håber dette hjælper!




  1. MySQL giver læst ECONNRESET fejl efter inaktiv tid på node.js server

  2. Følg design af brugerdatabasetabel

  3. Opdater en bestemt række i en tabel ved hjælp af en knap

  4. Forbindelse Java - MySQL:Hentning af offentlig nøgle er ikke tilladt