• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Конвертер валют рядом с основной ценой (проблемы)

vltyan

Новичок
Здравствуйте, есть вот такой код:

$price_us_int = intval(preg_replace('/[^0-9]+/', '', $price), 10);

function convert_idr_to_usd_cart( $price ){
$convertion_rate = 0.82;
$new_price = $price * $convertion_rate;
return number_format($new_price, 0, '.', '');
}
add_filter( 'wc_price', 'my_custom_price_format', 10, 3 );
function my_custom_price_format( $formatted_price, $price, $args ) {

// The currency conversion custom calculation function
$price_usd = convert_idr_to_usd_cart($price);

// the currency symbol for US dollars
$currency = 'USD';
$currency_symbol = get_woocommerce_currency_symbol( $currency );
$price_usd = $currency_symbol.$price_usd; // adding currency symbol

// The USD formatted price
$formatted_price_usd = "<span class='price-usd'> ($price_usd)</span>";

// Return both formatted currencies
return $formatted_price . $formatted_price_usd;
}

Проблема №1: Не могу понять, как работает умножение (*) в этой функции
function convert_idr_to_usd_cart( $price ){
$convertion_rate = 0.82;
$new_price = $price * $convertion_rate;
return number_format($new_price, 0, '.', '');
}
Пример: $price = 16094
Конверсионный курс: $1 = 1230
Ожидаемый результат: Цена ($ цена в долларах) = 16094 ($13)

Исходя из данной информации $convertion_rate = 0.000807754 для умножения (*).

Но по факту, когда ставлю правильный $convertion_rate = 0.000807754, получаю ($0).

Если ставлю $convertion_rate = 0.82, то отображается 16094 ($13), но если взять калькулятор 16094 * 0,82 = 13,197.08

Проблема №2: Если заменить умножение (*) на деление (/), то функция перестает работать.
function convert_idr_to_usd_cart( $price ){
$convertion_rate = 1230;
$new_price = $price / $convertion_rate;
return number_format($new_price, 0, '.', '');
}
Ожидаемый результат: Цена ($ цена в долларах) = 16094 ($13)
Фактический результат: Цена ($ цена в долларах) = 16094 ($0)

Проблема №3: Когда сумма переваливат за 1,000,000, в скобках отображается только ($1)
Items Subtotal: 1,489,240 ($1)
Coupon(s): - 106,901 ($87)
Shipping: 0 ($0)
Order Total: 1,382,339 ($1)
Paid: 1,382,339 ($1)

Буду очень признателен за любые коментарии, по исправлению данных проблем.
 
Сверху Снизу