我的一位客户有房地产网站出售物业。它是使用houzez主题在wordpress中构建的。该网站有默认的编号系统,其中分隔符显示每三个字符,例如:10缺少:1,000,000,但是印度货币格式应该是:10,00,000。
印度货币编号系统如下:
1 10 100 1000 万 1,00,000 10,00,000 1,00,00,000 10,00,00,000
如何更改wordpress网站中的编号系统? 有没有可用的插件?
答案 0 :(得分:0)
好吧,你可以使用hitswa的函数numberToCurrencymad e
然后可以以不同的方式使用此功能:
直接到现场:<?php echo numberToCurrency( get_post_meta( get_the_id(), 'price', true ) ); ?>
在字段中应用过滤器,假设您显示字段的代码如下:
$unformatted_price = get_post_meta(get_the_id(), 'price', true);<br>
echo apply_filters('price_meta_content', $unformatted_price );
关于你的functions.php <?php add_filter( 'price_meta_content', 'numberToCurrency' ) ; ?>
另一种解决方案是在the_content
中添加一个过滤器add_filter(&#39; the_content&#39;,&#39; strnumtocurrency&#39;,99); function strnumtocurrency($ content){ $ pattern =&#34; /(\ d +。\ d +)/&#34 ;; return preg_replace($ pattern,numberToCurrency(&#39; $ 1&#39;),$ content); }
这是numberToCurrency代码
<?php
function numberToCurrency($number)
{
if(setlocale(LC_MONETARY, 'en_IN'))
return money_format('%.0n', $number);
else {
$explrestunits = "" ;
$number = explode('.', $number);
$num = $number[0];
if(strlen($num)>3){
$lastthree = substr($num, strlen($num)-3, strlen($num));
$restunits = substr($num, 0, strlen($num)-3); // extracts the last three digits
$restunits = (strlen($restunits)%2 == 1)?"0".$restunits:$restunits; // explodes the remaining digits in 2's formats, adds a zero in the beginning to maintain the 2's grouping.
$expunit = str_split($restunits, 2);
for($i=0; $i<sizeof($expunit); $i++){
// creates each of the 2's group and adds a comma to the end
if($i==0)
{
$explrestunits .= (int)$expunit[$i].","; // if is first value , convert into integer
}else{
$explrestunits .= $expunit[$i].",";
}
}
$thecash = $explrestunits.$lastthree;
} else {
$thecash = $num;
}
if(!empty($number[1])) {
if(strlen($number[1]) == 1) {
return '₹ ' .$thecash . '.' . $number[1] . '0';
} else if(strlen($number[1]) == 2){
return '₹ ' .$thecash . '.' . $number[1];
} else {
return 'cannot handle decimal values more than two digits...';
}
} else {
return '₹ ' .$thecash.'.00';
}
}
}
?>