add_filter('woocommerce_currency', 'change_existing_currency_symbol', 10, 2);
function change_existing_currency_symbol( $currency ) {
global $post, $product;
if ( has_term( 'cars', 'product_cat' ) ) {
return 'EUR';
}else{
return $currency;
}
}
Он выводит дополнительную валюту для категории "cars" символ меняется в карточке товара, но не меняется в корзине и оформление заказа, подскажите пожалуйста как дополнить?
Я хочу, для товаров категории "CARS" выводить EUR, без синхронизации с курсом.
Логика простая, если товар попал в категорию CARS, валюта будет EUR
Если категория "yacht" будет USD
Для вариаций другой хук (woocommerce_variable_price_html), но с той-же функцией. То есть, одну и ту-же функцию "вешаем" на два фильтра - один для простых товаров, второй для вариаций. Добавил в код примера.
Для корзины - тут отдельная история, тот вариант, который я предлагал ранее - нерабочий. Поэтому, я его удалил. С корзиной нужно экспериментировать.
Пожалуйста.
С корзиной - там свои хуки используются, с помощью которых поменять суммы не проблема. Они для того и предназначены.
А со знаком валюты - корзина по умолчанию работает только с одной системной валютой. Возможно поэтому разработчики woo не особо заморачивались на хуки, связанные с изменением валюты. Поэтому, тут нужно придумывать.
Еще момент - есть страница корзины, а есть компонент корзины, который насквозь на всех страницах идет. И их нужно "кастомить" отдельно. То есть, если на странице корзины удается что-то поменять, не факт, что компонент корзины правильно "среагирует" на эти изменения.
Возможно, в корзине поменять будет проще с помощью JavaScript. То есть, не трогать корзину "изнутри", а просто подменить всё что нужно в интерфейсе в html-тегах корзины. Но тут будет другой момент - это зависит от вашей темы. В разных темах корзина может быть "обернута" в разные теги.
Михаил Нестеров, проще видимо будет воспользоваться кодом для стандартных товаров и уже плясать от них, чем совсем внутрь залазить.
Будем дальше экспериментировать, спасибо большое!