Форум

конвертор валют для WP

Цитировать

Две части скрипта состоящие из php и javascript. Одна часть парсит курс валют из источника Банка другая конвертирует  цены на страницы.

Сразу отмечу один недостаток . Цены  в woocommerce по смыслу проставлены  рубли.  И значит конвертация происходит рубли => ue.

Но если товар закупаете за ue  и цены меняются то ставить цены на сайте не удобно. Потому что курс всегда с перекосом покупки и продажи.

Но конвертер валют для WP  всё равно может пригодится, так что кому понадобится можете позаимствовать.

 

Цитировать

<?php
function getCurs($moneyCode){
// создаем объект для работы с XML
$xml = new DOMDocument();
// ссылка на сайт банка
$url = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req=' . date('d.m.Y');
// получаем xml с курсами всех валют
if ($xml->load($url)){
// массив для хранения курсов валют
$result = array();
// разбираем xml
$root = $xml->documentElement;
// берем все теги 'Valute' и их содержимое
$items = $root->getElementsByTagName('Valute');
// переберем теги 'Valute' по одному
foreach ($items as $item){
// получаем код валюты
$code = $item->getElementsByTagName('CharCode')->item(0)->nodeValue;
// получаем значение курса валюты, относительно рубля
$value = $item->getElementsByTagName('Value')->item(0)->nodeValue;
// записываем в массив, предварительно заменив запятую на точку
$result[$code] = str_replace(',', '.', $value);
}
// возвращаем значение курса, для запрошенной валюты
return $result[$moneyCode];
}else{
// если не получили xml возвращаем false
return false;
}
}
// пример использования
echo '<div id="usa" style="display:none;">'.getCurs('USD').'</div>';
echo '<div id="euro" style="display:none;">'.getCurs('EUR').'</div>';
?>

Цитировать

ну вот сама функция  а далее  создаем соответственно структуре вашего сайта javascript и меняем наше значение но только визуально

пример на моем сайте так что линки и теги нужно будет поменять на Ваши.

Цитировать
Цитата: root от 16/05/2018, 22:14

//меняем виджет
$.each(massi,function(ind, val){

$('.product_list_widget li').each(function(inex, vl){

link = $(vl).children('a').attr('href');
if(link == val){
var euro1 = $('#usa').text();
//alert($(vl).children('.woocommerce-Price-amount').html());
var patr1 = /\d+/;
var text1 = $(vl).children('.woocommerce-Price-amount').text();
var res1 = text1.replace(/\s/g, '').match(patr1);
$(vl).children('.woocommerce-Price-amount').html(Math.round(res1 / euro1).toFixed(2)+'<span class="woocommerce-Price-currencySymbol"> USD </span>');
}
});

 

Цитировать
Цитата: root от 16/05/2018, 22:14

ну вот сама функция  а далее  создаем соответственно структуре вашего сайта javascript и меняем наше значение но только визуально

пример на моем сайте так что линки и теги нужно будет поменять на Ваши.

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(function(){

var massi = Array('http://11111111111.ru/elektronnye-zamki',
'http://11111111111.ru/product/dafe-kf-005');
var link = '';

//меняем виджет
$.each(massi,function(ind, val){

$('.product_list_widget li').each(function(inex, vl){

link = $(vl).children('a').attr('href');
if(link == val){
var euro1 = $('#usa').text();
//alert($(vl).children('.woocommerce-Price-amount').html());
var patr1 = /\d+/;
var text1 = $(vl).children('.woocommerce-Price-amount').text();
var res1 = text1.replace(/\s/g, '').match(patr1);
$(vl).children('.woocommerce-Price-amount').html(Math.round(res1 / euro1).toFixed(2)+'<span class="woocommerce-Price-currencySymbol"> USD </span>');
}
});

});

 

Цитировать

Конечно говнокод но как идею можно использовать.