Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta MySQL para alterar o preço do produto variável no 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';

ADICIONADO Se você deseja mesclar todas as consultas acima em uma única consulta, você pode usar esta:
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");

Além disso, você deve excluir o cache de preços do produto WooCommerce que está armazenado em wp_options tabela em _transient_timeout_wc_var_prices_{{post_id}} e _transient_wc_var_prices_{{post_id}} em option_name
DELETE
FROM `wp_options`
WHERE (`option_name` LIKE '_transient_wc_var_prices_%'
    OR `option_name` LIKE '_transient_timeout_wc_var_prices_%')

Toda a consulta acima foi testada e funcionou para mim.

Antes de executar esta consulta, faça um backup do banco de dados

Referência:Copiar os preços de venda dos produtos WooCommerce para preços normais e redefinir os preços de venda

Espero que isto ajude!