Есть код для конвертации цен на сайте в зависимости от выбранной валюты:
add_filter('woocommerce_get_regular_price', 'customPrice', 10, 2); // Изменяем обычную цену
add_filter('woocommerce_get_price', 'customPrice', 10, 2); // Изменяем цену
add_filter('woocommerce_variation_prices_sale_price', 'customPrice', 10, 2); // Изменяем цену со скидкой у вариативных товаров
add_filter('woocommerce_variation_prices_regular_price', 'customPrice', 10, 2); // Изменяем обычную цену у вариативных товаров
add_filter('woocommerce_variation_prices_price', 'customPrice', 10, 2); // Изменяем цену у вариативного товара
function customPrice($price, $product)
{
// Конвертируем цены только у товаров имеющих тег 'usd'
if (has_term('usd', 'product_tag', $product->id)) {
$rateusd = 20; // Курс валюты
$price = $price * $rateusd;
}
if (has_term('eur', 'product_tag', $product->id)) {
$rateeur = 10; // Курс валюты
$price = $price * $rateeur;
}
return $price;
}
На обычном товаре всё работает, а на вариативном цена не полностью меняется