Некоторые плагины и темы оформления зависят от информации о сеансе для своей работы. При переключении языков информация о сеансе теряется, и посетители могут больше не увидеть свои товары в корзине. WPML предоставляет механизм для синхронизации этих данных сеанса между доменами и языками.
На странице WPML → Настройки → URL-адреса и SEO → Свой домен для каждого языка, в разделе Формат URL языка, Вы можете найти параметр Передавать аргументы сеанса между доменами через переключатель языков. Он синхронизирует эти данные сеанса между доменами и языками.

Зачем WPML нужно синхронизировать данные сеанса между языками в доменах
Браузеры хранят информацию в так называемых файлах cookie или сеансах. Когда Вы заходите на сайт, который должен «узнать Вас», он отображает персонализированный контент. Вы можете увидеть это на многих сайтах электронной коммерции и сайтах с членством. Браузер сохраняет некоторую информацию о Вас в своем хранилище и отправляет её на сервер. Сервер использует эту информацию для продолжения Вашего предыдущего сеанса просмотра.
Браузеры должны поддерживать строгую изоляцию этой информации о сеансах между различными сайтами. Некоторая информация о сеансе, хранящаяся в Вашем браузере, включает данные для входа или платежную информацию. Очевидно, Вы не хотите, чтобы Ваши платежные данные на Amazon передавались другим сайтам, которые не являются amazon.com.
WPML позволяет сайтам предоставлять языки с разных доменов. Поскольку браузеры не знают, что на самом деле это один и тот же сайт, они правильно делают, изолируя информацию о сеансе между языками. Поэтому WPML включает собственный механизм, который передает информацию о сеансе между языками. Не волнуйтесь. Этот механизм передает информацию о сеансе только между доменами, которые обслуживает WPML. Таким образом, Ваши посетители могут переключать языки и пользоваться постоянным хранилищем браузера.
Как WPML синхронизирует данные сеанса между языками в разных доменах
Когда Вы настраиваете WPML на использование языков в доменах, WPML знает, что ему нужно синхронизировать информацию о сеансе между языками. Мы создали фильтр в WPML под названием wpml_cross_domain_language_data. Этот фильтр позволяет плагинам и темам оформления передавать необходимую информацию между доменами.
Наш плагин WPML Multilingual & Multicurrency for WooCommerce использует этот фильтр для передачи файлов cookie корзины.
Поэтому, когда Вы используете языки в доменах и есть файлы cookie, которые необходимо синхронизировать при переключении языков, Вы увидите аргументы, добавленные к URL-адресам переключателя языков.
Это будет выглядеть так:
sample.es?xdomain_data=LONG_STRING
Этот «волшебный» аргумент xdomain_data включает информацию для установки файла cookie после переключения языков.
Вызывает ли аргумент xdomain_data проблемы с SEO?
Вовсе нет. WPML добавляет аргумент xdomain_data с помощью Javascript в браузере (помните, что мы кодируем файлы cookie из браузера?).
Единственный, кто видит этот аргумент — это пользователь, у которого есть файлы cookie. Эта информация недоступна на странице, которая генерируется WordPress. Она добавляется позже, на стороне пользователя. Информация поступит на веб-сервер только при переключении языков (и когда эта информация действительно нужна).
Вы никогда не увидите URL-адреса с xdomain_data в Вашей XML-карте сайта или на проиндексированных страницах. Google никогда не видит эти аргументы в исходном коде страницы. Вы БУДЕТЕ видеть xdomain_data в Google Analytics (иногда), потому что это реальные ссылки, по которым кликают посетители. Это нормально и не имеет никаких негативных последствий для Google или SEO.
Будет ли этот механизм работать с моим пользовательским переключателем языков?
Если Вы создадите свой пользовательский переключатель языков с помощью API переключателя языков WPML, он будет работать. Поскольку информация добавляется с помощью JS, до тех пор, пока наш JS распознает URL-адреса переключателя языков, он будет добавлять к ним необходимый аргумент.