Фильтр для списка продуктов woocommerce в администраторе без перевода – Polylang

Вопрос или проблема

Кто-нибудь уже работает над фильтром для продуктов/постов WooCommerce в админке, чтобы отфильтровать все продукты без перевода или только на основном языке? Используя плагин перевода Polylang??? Любая идея будет оценена.

Ответ или решение

Как отфильтровать список продуктов WooCommerce в админке без переводов с помощью Polylang

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

1. Понимание проблемы

Когда вы работаете с WooCommerce и используете плагин Polylang для управления переводами, может возникнуть необходимость увидеть только те продукты, которые не были переведены. Это может помочь вам в выявлении незавершенных задач или недостатков в локализации вашего интернет-магазина.

2. Настройка фильтрации в админке

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

Шаг 1: Используйте хук pre_get_posts

Вы можете задать условия для выборки продуктов с помощью хука pre_get_posts. Этот хук позволяет изменить параметры запроса, прежде чем они будут выполнены.

add_action('pre_get_posts', 'filter_woocommerce_products_no_translation');

function filter_woocommerce_products_no_translation($query) {
    if (is_admin() && $query->is_main_query() && $query->get('post_type') === 'product') {
        $lang = pll_current_language(); // Получаем текущий язык
        $query->set('meta_query', array(
            array(
                'key' => 'lang',
                'value' => '', // Поиск продуктов без языка
                'compare' => 'NOT EXISTS'
            )
        ));
        // Или ищем только те продукты, которые на основном языке
        $query->set('lang', $lang);
    }
}
Шаг 2: Применение фильтров в админской панели

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

3. Проверка результата

После того как код будет добавлен, перейдите на страницу продуктов в административной панели. Используйте новый фильтр, чтобы увидеть список товаров без переводов. При необходимости, вы можете доработать функциональность, добавив более сложные мета-запросы в зависимости от ваших потребностей.

Заключение

Используя предложенное решение, вы сможете эффективно фильтровать товары в WooCommerce с установленным плагином Polylang, упрощая управление локализацией вашего интернет-магазина. Не забывайте тестировать код после его внедрения и вносить корректировки при необходимости. Это значительно упростит вам жизнь при работе с многоязычными проектами и поможет в поддержании актуальности вашего контента.

Если у вас возникнут дополнительные вопросы или потребуется помощь в оптимизации кода, не стесняйтесь обращаться к сообществу разработчиков или к профессионалам в этой области.

Оцените материал
Добавить комментарий

Капча загружается...