以编程方式设置WooCommerce货币

时间:2019-09-26 作者:FooBar

我有一个问题,我需要以编程方式更改货币。我正在进行一个AJAX调用,我注意到返回的结果没有考虑用户设置的货币。

所以我现在在$上指定货币。然而,ajax调用的问题是让WordPress在此调用中以编程方式更改货币。我很惊讶地发现,这个问题没有一个明确的答案。

我希望函数woocommerce_set_currency(\'EUR\').

因此,基本上我需要更改模板的查看货币,如下所示:

set_viewed_currency(\'USD\'); // some function to change currency before rendering
wc_get_template(\'modal-single-product.php\');

2 个回复
SO网友:FooBar

在检查我们使用的插件(WooCommerce Multicurrency)的源代码后,我找到了以下解决方案:

WOOMULTI_CURRENCY_Data::get_ins()->set_current_currency($_POST[\'wmc-currency\']);
然而,如果有一种更直接的本地方式使用woocommerce,我会很高兴。

SO网友:Ahmad Wael

您可以获取要更改其货币的页面id,然后将新货币返回到woocommerce筛选器woocmmerce_currency

add_filter( \'woocommerce_currency\', \'change_woocommerce_currency\' );
function change_woocommerce_currency( $currency ) {
    if ( ! is_singular() ) {
        return false;
    }
    global $post;
    $current_page_id = $post->ID;
    $saved_page_id   = 15; //get the page id you want
    if ( $current_page_id == $saved_page_id ) {
        $currency = \'$$$\'; // or whatever the currency symbol is
    }

    return $currency;
}