У меня есть мультивалютный веб-сайт WordPress (с использованием плагина WPML), мне нужен способ сделать ссылку на указанный c продукт в указанной валюте. Я нашел этот «крючок», который можно использовать для этой цели: wcml_client_currency. Как часть этого, я добавил этот код в мои дочерние функции. php file:
add_action( 'wcml_client_currency', 'currency' );
function currency( $current_currency ) {
$currency = isset( $_GET['currency'] ) ? esc_attr( $_GET['currency'] ) : $current_currency;
return strtoupper( $currency );
}
Это работает частично. Я могу использовать URL-адрес mysite.com/?currency=EUR и перейти на страницу с валютой, выбранной в евро. Однако этот код отключает виджет выбора валюты, который есть у меня на сайте. Поэтому посадка на этой странице больше не меняет валюту, когда вы используете обычный селектор валют.
Кажется, проблема в двух противоречивых данных URL. т. е. с помощью приведенного выше кода я добавляю это «? currency = EUR», но селектор валют автоматически добавляет это «wcmlc = GBP» в URL. Когда оба появляются в URL, последний не работает.
Когда я использую URL-ссылку "? Currency = EUR" и затем перехожу на другую страницу на моем сайте, валюта остается той, которую я выбрал, и строка исчезает из URL, теперь можно переключать обычный валютный переключатель используемый.
Есть ли какое-либо исправление кода, которое я могу сделать с приведенным выше кодом, который будет отображать запрашиваемую валюту, но удаляет строку из URL? или какой-то другой способ решения этой проблемы?