/** * Replaces the labels for a variation attribute, on the frontend, so that they * show amounts in the active currency. * * @param string $option_name The original option name. * @return string The new option name, with the amount in the active currency. * @author Aelia * @link https://aelia.co */ add_filter('woocommerce_variation_option_name', function($option_name) { $amount_to_convert = null; // Check if the label contains one of the "supported" amounts switch($option_name) { case '£10': $amount_to_convert = 10; break; case '£20': $amount_to_convert = 20; break; case '£50': $amount_to_convert = 50; break; case '£100': $amount_to_convert = 100; break; } // If an amount was determined, convert it to the active currency, format it // and use the new amount as the label for the option if(!empty($amount_to_convert)) { $active_currency = get_woocommerce_currency(); // Generate the new label by calling the conversion functions provided by // the WooCommerce Currency Switcher $option_name = wc_price(apply_filters('wc_aelia_cs_convert', $price, 'GNP', $active_currency), array('currency' => $active_currency)); } return $option_name; }, 10, 1);