Skip navigation

Эта тема решена. Вот описание проблемы и ее решения.

Problem:
При первоначальной загрузке страницы с категориями товаров цена отображается в долларах, но при выборе категории продукта в фильтре валюта меняется на рубли.
Solution:
Если вы столкнулись с аналогичной проблемой, мы рекомендуем обновить WooCommerce до последней версии, а также сопутствующие плагины, такие как Advanced Custom Fields. Также необходимо добавить AJAX действие для мультивалютных фильтров. Больше информации можно найти здесь: https://wpml.org/wcml-hook/wcml_multi_currency_ajax_actions/
и здесь: https://wpml.org/documentation/related-projects/woocommerce-multilingual/wcml-hooks-reference/

Если данное решение оказалось неактуальным или не подходит для вашего случая, мы настоятельно рекомендуем открыть новый тикет поддержки. Также рекомендуем проверить известные проблемы, убедиться в версии исправления и подтвердить, что у вас установлены последние версии тем и плагинов.

Это форум технической поддержки WPML – плагина для многоязычной WordPress.

Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.

Сотрудники Службы поддержки сегодня не доступны на форуме Russian. Создайте обращение и мы возьмемся за решение вашего вопроса, как только будем в сети. Благодарим за понимание.

Помечено: , ,

Эта тема содержит 8 ответов, имеет 2 голоса.

Последнее обновление: Andrey 4 месяца, 1 неделя назад.

При содействии: Andrey.

Автор Записи
30 июня, 2024 на 4:17 пп #15862837

konstantinD-8

Предыстория вопроса:
Во время первоначальной загрузки страницы с категориями товаров отображается цена в долларах, но при выборе категории продукта в фильтре валюта меняется с долларов на рубли. URL: скрытая ссылка

Симптомы:
Валюта стоимости товаров изменилась на рубли при фильтрации товаров.

Вопросы:
Почему валюта меняется с долларов на рубли при выборе категории продукта?
Как можно сохранить валюту в долларах при фильтрации товаров?

30 июня, 2024 на 9:30 пп #15863551

Andrey
Supporter

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

Спасибо за обращение в службу поддержки WPML.

В первую очередь вам необходимо обновить WooCommerce до последней версии, а также сопутствующие плагины.

Существует ли проблема если временно отключить все плагины кроме WPML, WooCommerce и WooCommerce Multilingual?

Пожалуйста, не забудьте сделать резервную копию Вашей базы данных, прежде чем продолжить.

1 июля, 2024 на 1:10 дп #15863958

konstantinD-8

Обновил плагины, пробовал отключение. Ситуация не поменялась. При фильтрации доллары меняются на рубли.

1 июля, 2024 на 8:46 пп #15870463

Andrey
Supporter

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

Это стандартная фильтрация? Или была добавлена с помощью какого нибудь плагина?

Мне нужно запросить временный доступ (WP-администратора и FTP) на Ваш сайт - предпочтительно к тестовому сайту, где проблема была воспроизведена, если это возможно - для того, чтобы лучше помочь. Вы найдете необходимые поля ниже поля для комментариев, когда Вы войдете, чтобы оставить свой следующий ответ. Информацию, которую Вы ведете является частной, что означает только Вы и я могу видеть и иметь доступ к ней.

2 июля, 2024 на 2:39 пп #15876380

Andrey
Supporter

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

Спасибо за информацию. Все же вижу, что Вы создали пользовательскую фильтрацию товаров. Предполагал, что Вы используете стандартные виджеты Woocommerce.

В первую очередь, Вам необходимо обновить WooCommerce до последней версии, а также сопутствующие плагины такие, как Advanced Custom Fields и остальные.

Фильтрация происходит с помощью AJAX. Вам необходимо добавить действие AJAX для которых требуются мультивалютные фильтры. Больше информации: https://wpml.org/wcml-hook/wcml_multi_currency_ajax_actions/.

Справочник по хукам WCML:
https://wpml.org/documentation/related-projects/woocommerce-multilingual/wcml-hooks-reference/

2 июля, 2024 на 3:13 пп #15876502

konstantinD-8

Спасибо. Попробую и отпишусь.

2 июля, 2024 на 3:18 пп #15876511

Andrey
Supporter

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

Думаю, что фильтр решит проблему.

3 июля, 2024 на 12:55 пп #15884462

konstantinD-8

Видимо, что-то не так делаю - у меня в этом вопросе не хватает компетенции. Добавил строку

add_filter( 'wcml_multi_currency_ajax_actions', 'catalog_filter_function', 10, 1 );

в файл woocommerce-functions.php

Однако фильтрация вообще перестала работать (товары исчезают при попытке использовать фильтры). Откатил изменения в файле. Может, вы дадите подсказку?

Снимок.JPG
4 июля, 2024 на 4:24 пп #15893370

Andrey
Supporter

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

Скорее всего, Вам нужна помощь человека, который делал для Вас пользовательское программирование.

Просто добавить строку недостаточно. В самой функции, также необходимо добавить Ваше действие AJAX вместо ux_quickview.

/**
 * Add this code to the functions.php file of your theme.
 */
add_filter( 'wcml_multi_currency_ajax_actions', 'add_action_to_multi_currency_ajax', 10, 1 );
 
function add_action_to_multi_currency_ajax( $ajax_actions ) {
 
    $ajax_actions[] = 'ux_quickview'; // Add a AJAX action to the array
    return $ajax_actions;

Также обратил внимание, что Вы изменили строку add_filter( 'wcml_multi_currency_ajax_actions', 'catalog_filter_function', 10, 1 ); на catalog_filter_function, но ее не нужно менять, если Вы не поменяли название функции function add_action_to_multi_currency_ajax.

6 июля, 2024 на 9:32 дп #15902803

konstantinD-8

Проблема решена. Спасибо zа содействие! На будущее другим страдальцам:
нарыл ajax actions в своём файле assets/js/custom.js
и подставил zначения actions так:
$ajax_actions[] = 'действие1'
$ajax_actions[] = 'действие2'
и т. д.
Так что велосипед иzобретать не пришлось.