When a store with subscriptions changes currency type, the already-existing subscriptions will maintain their original currency. This is because the currency type is saved as a piece of metadata for each individual subscription.
Example: Due to Brexit, a store needs to change from Euros to Pounds.
- Find and edit one of the subscriptions in WooCommerce -> Subscriptions. Confirm that all prices are appearing in the old currency
- Use a database management tool (like phpMyAdmin or Ari Adminer) to find the “_order_currency” meta for that subscription. To do that, you would search in the “_postmeta” table by “post_id” by the ID of the subscription. It should contain the code of your previous currency.
- Change this value to the new currency code. For example, if you’re changing the subscription with an id=188 from EUR to GBP you could use this SQL query:
UPDATE wp_postmeta SET ‘meta_value’=’GBP’ WHERE ‘meta_key’=’_order_currency’ AND ‘post_id’=’188’
- Edit/reload the subscription again in the admin area and confirm that the prices have been updated to GBP currency
- Use the selector in “subscription actions” to Process Renewal.
- Check and confirm that the renewal has been processed (a new renewal order should have been generated correctly) and the payment can be found in Stripe dashboard in the new currency.
NOTE: This method does not do price conversion or change prices at all. It simply changes the currency designation. Please don’t edit the database directly unless you take full backups and have a developer level of understanding.
For future bulk editing of subscriptions, please look into AutomateWoo. There are various degrees of bulk editing capabilities, including line items, prices, and currency type, which either already exist or are planned for the future.