Как добавить автоматическое сохранение просмотра в Elementor для WordPress

При создании сложных страниц в Elementor часто возникает задача сохранить состояние просмотра пользователя — например, прокрутку, открытые вкладки или выбранные элементы форм. Это особенно актуально для длинных лендингов и многостраничных форм, где потеря позиции раздражает посетителей.

Почему важно автоматическое сохранение состояния просмотра в Elementor

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

При этом стандартного функционала в Elementor для сохранения позиции прокрутки или состояния элементов нет, поэтому приходится использовать кастомные решения на JavaScript и PHP.

Основные сценарии сохранения состояния просмотра

  • Сохранение позиции прокрутки страницы или конкретного блока.
  • Сохранение открытых вкладок или аккордеонов.
  • Запоминание выбранных значений в формах.

Все это можно реализовать с помощью локального хранилища браузера (localStorage), сессий или AJAX-запросов к серверу.

Как реализовать сохранение позиции прокрутки в Elementor

Самый простой и востребованный кейс — это сохранение позиции вертикальной прокрутки страницы. Рассмотрим минимальный пример кода, который надо подключить в теме или через плагин, чтобы пользователь при обновлении страницы оказывался на том же месте.

function wpelementor_enqueue_scroll_script() {
    wp_enqueue_script('wpelementor-scroll-save', get_stylesheet_directory_uri() . '/js/scroll-save.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'wpelementor_enqueue_scroll_script');

В файле scroll-save.js разместим следующий код:

jQuery(document).ready(function($) {
    // Восстановим позицию прокрутки
    if(sessionStorage.getItem('wpelementor-scroll-pos')) {
        $(window).scrollTop(sessionStorage.getItem('wpelementor-scroll-pos'));
    }

    // Сохраним позицию при прокрутке
    $(window).on('scroll', function() {
        sessionStorage.setItem('wpelementor-scroll-pos', $(window).scrollTop());
    });
});

Здесь используется sessionStorage, чтобы хранить позицию прокрутки только в текущей сессии браузера. Если нужно сохранять между сессиями, замените на localStorage.

Сохранение состояния вкладок и аккордеонов в Elementor

Elementor использует свои виджеты вкладок и аккордеонов с классами .elementor-tab-title и .elementor-accordion-item. Чтобы сохранить, какая вкладка была открыта, можно сохранять индекс выбранного элемента в localStorage и восстанавливать при загрузке.

Пример кода для вкладок:

jQuery(document).ready(function($) {
    var tabs = $('.elementor-tabs-wrapper');
    tabs.each(function(index) {
        var tabWrapper = $(this);
        var storageKey = 'wpelementor-tabs-' + index;

        // Восстановить активную вкладку
        var activeIndex = localStorage.getItem(storageKey);
        if(activeIndex !== null) {
            tabWrapper.find('.elementor-tab-title').removeClass('elementor-active');
            tabWrapper.find('.elementor-tab-content').removeClass('elementor-active');
            tabWrapper.find('.elementor-tab-title').eq(activeIndex).addClass('elementor-active');
            tabWrapper.find('.elementor-tab-content').eq(activeIndex).addClass('elementor-active');
        }

        // Сохранять при клике
        tabWrapper.find('.elementor-tab-title').on('click', function() {
            var idx = $(this).index();
            localStorage.setItem(storageKey, idx);
        });
    });
});

Аналогично можно сделать для аккордеонов, отслеживая открытый индекс.

Сохранение данных форм Elementor с помощью AJAX и localStorage

Если на странице используются формы (например, с плагином WPForms или встроенным виджетом Elementor), можно сохранять введенные данные в localStorage, чтобы при обновлении формы не сбрасывались.

Пример для сохранения данных текстового поля формы с классом .elementor-field-textual:

jQuery(document).ready(function($) {
    $('.elementor-field-textual').each(function() {
        var field = $(this);
        var id = field.attr('id');

        // Восстановить значение
        var saved = localStorage.getItem('wpelementor-form-' + id);
        if(saved) {
            field.val(saved);
        }

        // Сохранять при изменении
        field.on('input', function() {
            localStorage.setItem('wpelementor-form-' + id, field.val());
        });
    });
});

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

Расширенные решения с использованием плагинов WPShop

Для более сложных задач хранения и восстановления состояния можно использовать плагины из каталога WPShop. Например, плагин WPRemark позволяет создавать динамические комментарии и отзывы с AJAX, где важна сохранность пользовательских данных между обновлениями.

Также можно рассмотреть Clearfy Pro для оптимизации загрузки скриптов и уменьшения конфликтов при кастомных решениях с JavaScript.

Советы по отладке и тестированию

При внедрении сохранения состояния обязательно протестируйте на разных браузерах и устройствах. Особенно внимательно проверяйте работу с кэшированием страниц и плагинами кеша — они могут мешать корректной работе localStorage и sessionStorage.

Для отладки используйте инструменты разработчика в браузере (F12), вкладку Application для localStorage и sessionStorage. Также полезно логировать действия в консоль для проверки срабатывания событий.

Итог

Автоматическое сохранение просмотра в Elementor — полезная функция, которая значительно улучшает пользовательский опыт. Ее можно реализовать простым JavaScript-кодом с использованием sessionStorage или localStorage, а также интеграцией с AJAX. В сочетании с продвинутыми плагинами из WPShop можно получить надежное и гибкое решение для любого проекта на WordPress с Elementor.

WooCommerce: автоматическое отключение товаров при отсутствии наличия
29.05.2026
Как добавить автоматическое сохранение просмотра в Elementor для WordPress
18.02.2026
Как создать динамические эффекты при прокрутке в Elementor для WordPress
30.01.2026
Как использовать Elementor для создания уникальных картинок из данных в WordPress
10.04.2026
Как использовать хуки Elementor для динамических изменений в WordPress
14.01.2026