Skip navigation

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

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

Sun Mon Tue Wed Thu Fri Sat
- 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 -
- 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 -

Часовой пояс сторонника: Europe/Kyiv (GMT+02:00)

Помечено: ,

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

Последнее обновление: Andrey 14 часов, 11 минут назад.

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

Автор Записи
14 января, 2025 на 3:57 пп #16593932

serhiiM-6

Здравствуйте,

Все сделал, но проблема с разделом "Недавно просмотренные товары" не решилась.

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

Кроме того, кнопки "Просмотреть" и "Выбрать опцию" иногда отображаются на украинском языке, даже если сайт на английском.

Мне нужно, чтобы:

- В разделе "Недавно просмотренные товары" показывались только товары на текущем языке.
- Текст кнопок всегда соответствовал текущему языку.
Подскажите, пожалуйста, как это настроить.
скрытая ссылка

14 января, 2025 на 4:07 пп #16593973

Andrey
Supporter

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

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

Мне нужно больше информации о том, как добавили раздел. Сделать необходимые обновления и проверить проблему после.

17 января, 2025 на 2:18 пп #16606496

serhiiM-6

Добрый день,

плагин был уже обновлен,
"Недавно просмотренные товары" добавлен через настройки текущей темы.

Точечный рисунок.jpg
17 января, 2025 на 2:20 пп #16606530

serhiiM-6

Добрый день,

Плагин уже был обновлен,

"Недавно просмотренные товары" был добавлен в настройке текущей темы

Точечный рисунок.jpg
17 января, 2025 на 4:32 пп #16607533

Andrey
Supporter

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

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

Добрый день,

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

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

20 января, 2025 на 3:00 пп #16614098

serhiiM-6

Добрый день,

скрытая ссылка

переключатель языка в футере.

21 января, 2025 на 8:18 пп #16620485

Andrey
Supporter

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

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

Спасибо, я проверю проблему и дам Вам знать.

23 января, 2025 на 9:39 пп #16629952

Andrey
Supporter

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

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

Я сообщил о данной проблеме нашей команде по совместимости. Я дам Вам знать, как только у меня будет больше новостей.

27 января, 2025 на 1:30 пп #16638077

Andrey
Supporter

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

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

Спасибо за ожидание.

- В разделе "Недавно просмотренные товары" показывались только товары на текущем языке

По данной проблеме, это ожидаемое поведение Вашей текущей темы, так просмотренные товары собираются в массив и после отображаются на странице, также если просматривали товары на другом языке.

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

1. Откройте /wp-content/themes/moderno/woocommerce\single-product/recently.php

2. Замените:

		<?php foreach ( $recently_products as $recently_product_id ) : ?>

			<?php
			$post_object = get_post( $recently_product_id );

			setup_postdata( $GLOBALS['post'] =& $post_object );

			wc_get_template_part( 'content', 'product' ); ?>

		<?php endforeach; ?>

на

		<?php foreach ( $recently_products as $recently_product_id ) : ?>

			<?php
			$current_language= apply_filters( 'wpml_current_language', NULL );
			$recently_product_id = apply_filters( 'wpml_object_id', $recently_product_id, 'product', FALSE, $current_language );
			$post_object = get_post( $recently_product_id );

			setup_postdata( $GLOBALS['post'] =& $post_object );

			wc_get_template_part( 'content', 'product' ); ?>

		<?php endforeach; ?>

- Текст кнопок всегда соответствовал текущему языку.

1. Откройте /wp-content/themes/moderno/includes/woocommerce/woocommerce.php

2. Найдите линию 1921

3. Замените:

function ideapark_recently_container() {
		$product_id   = is_product() ? get_the_ID() : 0;
		$storage_name = 'ip_recently_' . md5( get_current_blog_id() . '_' . get_site_url( get_current_blog_id(), '/' ) . get_template() );

на

function ideapark_recently_container() {
		$product_id   = is_product() ? get_the_ID() : 0;
		$current_language= apply_filters( 'wpml_current_language', NULL );
		$storage_name = 'ip_recently_' . $current_language . md5( get_current_blog_id() . '_' . get_site_url( get_current_blog_id(), '/' ) . get_template() );

Обратите внимание, что Вам все равно придется обновить страницы товаров один раз, чтобы данные обновились.

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