Skip navigation

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

Проблема:
Клиент столкнулся с проблемой, что при смене языка на английский переведенные товары не отображаются на сайте, и вместо этого страницы остаются пустыми.
Решение:
1. Попробуйте запустить Product lookup tables и Regenerate the product attributes lookup table в Woocommerce → Status → Tools.
2. Также выполните Synchronize Product categories assignment в WooCommerce → WooCommerce Multilingual & Multicurrency → Categories.
3. Вам или вашему разработчику потребуется отладить код темы, особенно файл

wp-content/themes/shopkeeper/woocommerce/archive-product.php

, который отвечает за вывод товаров в категориях. Проверьте, корректно ли выполняется код, особенно начиная с 319-й строки.
4. Используйте фильтр wpml_object_id для корректного получения ID переведённых товаров или категорий. Полезные ссылки: wpml_object_id, WPML Hooks Reference.

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

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

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

Помечено: 

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

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

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

Автор Записи
3 марта, 2025 на 4:19 дп #16766676

Евгений Василевич

Предыстория вопроса:
Я пытался отобразить переведенные товары на сайте. Ссылка на страницу, где можно увидеть проблему: скрытая ссылка

Симптомы:
При смене языка на eng, товары не отображаются. Вместо этого страницы пустые.

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

3 марта, 2025 на 8:22 дп #16767258

Andrey
Сторонник

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

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

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

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

Как вы добавили секцию с товарами на домашнюю страницу? Загрузите скриншоты.

3 марта, 2025 на 8:33 дп #16767279

Евгений Василевич

Нет проблема в категориях товаров
В категориях не выводится

3 марта, 2025 на 9:14 дп #16767538

Andrey
Сторонник

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

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

Попробуйте запустить Product lookup tables и Regenerate the product attributes lookup table в Woocommerce → Status → Tools.

Также Synchronize Product categories assignment в WooCommerce → WooCommerce Multilingual & Multicurrency → Categories.

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

3 марта, 2025 на 9:16 дп #16767542

Евгений Василевич

Все это делали вчера. не помогло

3 марта, 2025 на 9:21 дп #16767580

Andrey
Сторонник

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

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

Если проверить в админ панели, Вы видите, что на данные переведенные категории назначены товары?

Такая же проблема если временно переключить тему на любую стандартную?

3 марта, 2025 на 4:15 пп #16769962

Евгений Василевич

Да, товары назначены.

Если сменить тему, то товары англоязычные показываются

3 марта, 2025 на 4:26 пп #16769996

Andrey
Сторонник

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

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

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

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

4 марта, 2025 на 6:55 дп #16771607

Евгений Василевич

Доброе утро. Есть ли для нас информация? сайт по-прежнему не отображает товары на английском

4 марта, 2025 на 9:34 дп #16772629

Andrey
Сторонник

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

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

Доброе утро,

Я проверю и дам Вам знать.

4 марта, 2025 на 1:30 пп #16774381

Andrey
Сторонник

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

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

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

Я проверил возникшую проблему, и, к сожалению, её невозможно решить со стороны WPML. Ваша текущая тема содержит множество кастомизаций и пользовательских функций, которые могут влиять на работу с переводами.

Что можно сделать?

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

Мои наблюдения

Ваша тема содержит файл wp-content/themes/shopkeeper/woocommerce/archive-product.php, который отвечает за вывод товаров в категориях.

Насколько я вижу, начиная с 319-й строки, не выполняется следующий код:

                                    if ('products' != $display_mode && !('both' === $display_mode && 'styled_grid' === Shopkeeper_Opt::getOption('category_style', 'styled_grid'))) {
                                        ?>
                                        <ul class="product-categories products columns-<?php echo esc_attr(wc_get_loop_prop('columns')); ?>">
                                            <?php echo woocommerce_maybe_show_product_subcategories(); ?>
                                        </ul>
                                        <?php
                                    }

                                    if (have_posts()) {

                                        woocommerce_product_loop_start();

                                        if (wc_get_loop_prop('total')) {
                                            while (have_posts()) {
                                                the_post();

                                                /**
                                                 * Hook: woocommerce_shop_loop.
                                                 */
                                                do_action('woocommerce_shop_loop');

                                                wc_get_template_part('content', 'product');
                                            }
                                        }

                                        woocommerce_product_loop_end();
                                    }

В чём причина?

Скорее всего, проблема в том, что ваш код не получает переведённые товары и категории в соответствии с текущими условиями.

Как исправить?

Чтобы получить товары на другом языке, попробуйте использовать фильтр wpml_object_id до того, как запрашиваете ID товаров или категорий. Этот фильтр позволит корректно получить ID переведённого товара или категории.

Полезные ссылки:
https://wpml.org/wpml-hook/wpml_object_id/
https://wpml.org/documentation/support/wpml-coding-api/wpml-hooks-reference/

Надеюсь, это поможет вам разобраться с проблемой.