【发布时间】:2020-04-01 13:06:39
【问题描述】:
我有一个多币种 wordpress 网站(使用 WPML 插件),我需要一种方法来以指定货币创建指向特定产品的链接。我发现了这个可以用于这个目的的“钩子”:wcml_client_currency。作为其中的一部分,我将此代码添加到我的子 functions.php 文件中:
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 中时,后者不起作用。
当我使用“?currency=EUR” URL 链接然后浏览到我网站上的另一个页面时,货币保持我选择的那个并且字符串从 URL 中消失,现在可以使用正常的货币切换器。
我是否可以对上述代码进行任何代码修复,以显示请求的货币但从 URL 中删除字符串?或其他解决此问题的方法?
【问题讨论】:
标签: php wordpress url hook-woocommerce wpml