Я понял, что использование wc_price — не лучший вариант, поскольку оно влияет на все остальное в системе. Итак, я надеялся, что это будет работать только на странице продукта, не затрагивая корзину, оформление заказа, мини-корзину, заказы администратора и все остальное...
Итак, на основе Добавление дополнительных валют к цене продукта с помощью фильтра wc_price — это моя попытка сделать это. Проблема в; ничего не отображается.
add_filter( 'woocommerce_single_product_summary', 'manual_currency_converter', 5, 1);
function manual_currency_converter($price) {
$product = wc_get_product();
$product_price = $product->get_price();
// EUR
$conversion_rate_eur = (float) 1.25;
$symbol_eur = 'EUR';
$currency_symbol_eur = get_woocommerce_currency_symbol($symbol_eur);
$euro_price = (float) $product_price * $conversion_rate_eur;
// US dollar
$conversion_rate_us = (float) 0.85;
$symbol_us = 'USD';
$currency_symbol_us = get_woocommerce_currency_symbol($symbol_us);
$us_price = (float) $product_price * $conversion_rate_us;
// GP brittish pound
$conversion_rate_gbp = (float) 1.35;
$symbol_gbp = 'GBP';
$currency_symbol_gbp = get_woocommerce_currency_symbol($symbol_gbp);
$gbp_price = (float) $product_price * $conversion_rate_us;
$exchange_rate_section = '
' . number_format( $euro_price, 2, '.', '' ) . ' ' . $currency_symbol_eur . '
'. number_format( $us_price, 2, '.', '' ) . ' ' . $currency_symbol_us . '
' . number_format( $gbp_price, 2, '.', '' ) . ' ' . $currency_symbol_gbp . '
';
return $price . '
' . $exchange_rate_section;
}
Подробнее здесь: https://stackoverflow.com/questions/661 ... product-pr