Spectra#
Плагин можно получить здесь. Генерация файлов ассетов в виде отдельных файлов должна быть отключена.
FOX – Currency Switcher Professional for WooCommerce#
Плагин можно получить здесь.
Чтобы исправить поведение переключения:
- Установите «Settings» -> «Options» -> «Currency storage» на «Transient» (только если «FOX Session» не работает).
-
Добавьте
@^wccs_changed_currency$@
в часть cookie в группе кэша пользователя с именем «WooCommerce». -
Вставьте следующий HTML-код внизу внутри тега
body
с помощью любого плагина фрагментов кода (например, Code Snippets):
<script seraph-accel-crit="1">
(
function( d )
{
function _getCookie( name )
{
var m = d.cookie.match( new RegExp( '(^| )' + name + '=([^;]+)' ) );
return ( m ? m[2] : "" );
}
function _setCookie( name, v )
{
// Set the cookie with a path to make it accessible site-wide
var expires = new Date();
expires.setTime( expires.getTime() + 365 * 24 * 60 * 60 * 1000 ); // 1 year expiration
d.cookie = name + '=' + v + ';path=/;SameSite=Lax;expires=' + expires.toUTCString();
}
// Implementation for '.woocommerce-currency-switcher' control
d.querySelectorAll( "select[name=\"woocommerce-currency-switcher\"]" ).forEach(
function( e )
{
e.addEventListener( "change",
function()
{
_setCookie( "wccs_changed_currency", _getCookie( "wccs_init_currency" ) == this.value ? "" : this.value );
}
);
if( !_getCookie( "wccs_init_currency" ) )
_setCookie( "wccs_init_currency", e.value );
}
);
// Implementation for '.woocs-style-1-dropdown' control
d.querySelectorAll( ".woocs-style-1-dropdown" ).forEach(
function( e )
{
var curValText = e.querySelector( ".woocs-style-1-select > span" );
if( curValText )
curValText = curValText.textContent;
e.querySelectorAll( ".woocs-style-1-dropdown-menu li" ).forEach(
function( eItem )
{
if( eItem.textContent == curValText && !_getCookie( "wccs_init_currency" ) )
_setCookie( "wccs_init_currency", eItem.getAttribute( "data-currency" ) );
eItem.addEventListener( "click",
function()
{
var vCur = this.getAttribute( "data-currency" );
_setCookie( "wccs_changed_currency", _getCookie( "wccs_init_currency" ) == vCur ? "" : vCur );
}
);
}
);
}
);
}
)( document );
</script>
Предупреждение: кэширование на сервере или в облаке должно быть отключено, если файл cookie «wccs_changed_currency» не пустой.