php 在YITH发票插件中从订单中获取Woocommerce货币符号

5sxhfpxr  于 2023-04-28  发布在  PHP
关注(0)|答案(2)|浏览(151)

我们的WooCommerce网站有2种货币。主要货币为印度卢比,次要货币为美元(使用货币转换器)。我试着用美元下订单,但YITH发票显示发票中的主要印度卢比符号。
我已经尝试改变各种货币切换插件可用,但符号不会改变发票,它只是采取默认的货币符号。
我甚至尝试将'get_woocommerce_currency_symbol()'添加到YITH函数的currency arg数组中。我需要帮助。使用的插件是YITH Invoice版本:1.3.11.

function yith_get_formatted_price ( $price, $args = array () ) {
    extract ( apply_filters ( 'wc_price_args', wp_parse_args ( $args, array (
        'ex_tax_label'       => false,
        'currency'           => get_woocommerce_currency_symbol (),
        'decimal_separator'  => wc_get_price_decimal_separator (),
        'thousand_separator' => wc_get_price_thousand_separator (),
        'decimals'           => wc_get_price_decimals (),
        'price_format'       => get_woocommerce_price_format (),
    ) ) ) );

    $negative = $price < 0;
    $price    = apply_filters ( 'raw_woocommerce_price', floatval ( $negative ? $price * - 1 : $price ) );
    $price    = apply_filters ( 'formatted_woocommerce_price', number_format ( $price, $decimals, $decimal_separator, $thousand_separator ), $price, $decimals, $decimal_separator, $thousand_separator );

    if ( apply_filters ( 'woocommerce_price_trim_zeros', false ) && $decimals > 0 ) {
        $price = wc_trim_zeros ( $price );
    }

    $formatted_price = ( $negative ? '-' : '' ) . sprintf ( $price_format, get_woocommerce_currency_symbol ( $currency ), $price );
    $return          = $formatted_price;

    return apply_filters ( 'wc_price', $return, $price, $args );
}
f4t66c6m

f4t66c6m1#

获取订单货币符号(或代码)的唯一方法是首先获取**WC_Order**对象,您可以从global $order;对象或$order_id对象中获取:

$order = wc_get_order( $order_id );

现在你可以在上面使用**WC_Abstract_Order方法get_currency()**来获取货币代码,最后你将通过以下方式获得货币符号:

$currency_code = $order->get_currency();
$currency_symbol = get_woocommerce_currency_symbol( $currency_code );

这是测试和工作在WooCommerce 3+

amrnrhlw

amrnrhlw2#

“currency”=〉get_woocommerce_currency()

相关问题