更改WooCommerce货币符号的问题

时间:2018-03-13 12:44:23

标签: wordpress woocommerce hook-woocommerce

我根据Checkout页面中的Country选项编写了一个代码来更改WooCommerce货币符号。以下是代码:

add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);

function change_existing_currency_symbol( $currency_symbol, $currency ) {
    global $post, $woocommerce;
    $my_country = WC()->customer->get_shipping_country();
    /*echo $my_country;
    echo "<br>";
    echo $country;*/
     switch( $my_country ) {
          case 'GB': $currency_symbol = '£'; 
          break;

          case 'NZ': $currency_symbol = '$'; 
          break;

          case 'IE': $currency_symbol = '€'; 
          break;

          default:
                    $currency_symbol = '$'; 

     }
     return $currency_symbol;
}

代码工作正常,当从Checkout页面选择Country时,符号显示良好。但是,我们发现我们无法访问管理部分,因为它说:

此页面无效 www.XXXXXX-XX.com目前无法处理此请求。 HTTP ERROR 500

当我删除代码$my_country = WC()->customer->get_shipping_country();时,管理面板会打开,但未显示符号。 寻求你的帮助。

1 个答案:

答案 0 :(得分:1)

使用条件检查,使其仅在结帐页面上运行代码。

add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);

function change_existing_currency_symbol( $currency_symbol, $currency ) {
    if ( is_checkout() ) {
        $my_country = WC()->customer->get_shipping_country();

        switch( $my_country ) {
            case 'GB': 
                $currency_symbol = '£'; 
            break;

            case 'NZ': 
                $currency_symbol = '$'; 
            break;

            case 'IE': 
                $currency_symbol = '€'; 
            break;

            default:
                $currency_symbol = '$'; 

        }
    }

    return $currency_symbol;
}