获取自定义元字段的订单货币的符号和代码

我有以下代码,显示 php 模板发票中自定义字段的值,其中我还显示了订单货币的代码,但货币符号没有出现,我正在使用答案 @LoicTheAztec 中的部分代码问题的,显示订单货币的代码和符号从 YITH 发票插件中的订单获取 Woocommerce 货币符号

https://img1.sycdn.imooc.com/6533972d0001e42601380036.jpg

   <?php

        $custom_order_meta = get_post_meta($order->get_order_number(), 'costoseguro', true);

    

        if( ! empty($custom_order_meta) )

        { ?>

    <p> <?php

    printf( '<b>Insured Package Value:</b> ' . esc_html( '%s', 'woocommerce' ), esc_html($custom_order_meta)  );?> <?php $currency_code = $order->get_currency();

$currency_symbol = get_woocommerce_currency_symbol( $currency_code ); ?></p> <?php 

        }

        ?>

在 fuctions.php 文件中,我使用此代码来更改货币符号和代码:`


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

function change_currency_symbol( $symbols, $currency ) {

    if ( 'USD' === $currency ) {

        return 'USD $ ';

    }

    if ( 'EUR' === $currency ) {

        return 'EUR € ';

    }

    if ( 'COP' === $currency ) {

        return 'COP $';

    }

        return $symbols;

}


哆啦的时光机
浏览 107回答 1
1回答

MMMHUHU

函数get_currency()和get_woocommerce_currency_symbol()函数不会输出任何东西。printf()它们只是检索一个值,因此如果您想显示它们,则必须将它们合并到您的函数中。另外,我认为switch声明更适合您的过滤器。所以你的代码看起来像这样:add_filter( 'woocommerce_currency_symbol', 'change_currency_symbol', 10, 2 );function change_currency_symbol( $symbol, $currency ) {&nbsp; &nbsp; switch ( $currency ) {&nbsp; &nbsp; &nbsp; &nbsp; case 'USD':&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $symbol = 'USD $';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; case 'EUR':&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $symbol = 'EUR €';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; case 'COP':&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $symbol = 'COP $';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; }&nbsp; &nbsp; return $symbol;}if ( !empty( $order->get_meta( 'costoseguro' ) ) ) {&nbsp; &nbsp; printf( '<p><b>Insured Package Value:</b> %s %s</p>', $order->get_meta( 'costoseguro'), get_woocommerce_currency_symbol( $order->get_currency() ) );}(另请注意,调用get_post_meta()检索订单元已经相当过时了。您可以更好地使用$order->get_meta()它。)
打开App,查看更多内容
随时随地看视频慕课网APP