/**
* Aelia Currency Switcher for WooCommerce.
* How to delete order meta in base currency for orders with a "zero" order total. The queries
* can be used to to clean up order totals, before running the recalculation described in
* the following knowledge base article: https://aelia.freshdesk.com/a/solutions/articles/3000052833
*
* IMPORTANT WARNING
* The queries delete data from the database, and the deletion is irreversible. We strongly
* recommend to run them on a staging copy of your database first, and to take a full backup
* of your data before running them on the production site.
*
* DISCLAIMER
* Aelia and any member of its staff are not responsible for any data loss or damage incurred
* when using the code, which you can use at your own risk.
*
* GPL DISCLAIMER
* Because this code program is free of charge, there is no warranty for it, to the extent permitted by applicable law.
* Except when otherwise stated in writing the copyright holders and/or other parties provide the program "as is"
* without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of
* merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program
* is with you. should the program prove defective, you assume the cost of all necessary servicing, repair or correction.
*
* Need a consultation, or assistance to customise this code? Find us on Codeable: https://aelia.co/hire_us
*/
-- Delete base currency amounts for order items
-- from orders with a base currency total of zero or less
-- SELECT
-- meta_id,
-- meta_key
DELETE
FROM
wp_woocommerce_order_itemmeta
WHERE
(meta_id IN (
SELECT
OIM.meta_id
FROM
wp_woocommerce_order_itemmeta OIM
JOIN
wp_woocommerce_order_items OI ON
(OI.order_item_id = OIM.order_item_id)
JOIN
wp_postmeta PM ON
(PM.post_id = OI.order_id) AND
(PM.meta_key = '_order_total_base_currency') AND
(PM.meta_value <= 0)
WHERE
OIM.meta_key like '%_base_currency'
));
-- Delete base currency amounts for orders
-- with a base currency total of zero or less.
-- SELECT
-- post_id
DELETE
FROM
wp_postmeta
WHERE
(meta_key like '%_base_currency%') AND
(post_id IN (
SELECT
post_id
FROM
wp_postmeta
WHERE
(meta_key = '_order_total_base_currency') AND
(meta_value <= 0)
));
Comments