如何在wordpress中以印度编号格式显示货币?

时间:2018-04-15 09:12:03

标签: wordpress currency-formatting

我的一位客户有房地产网站出售物业。它是使用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网站中的编号系统? 有没有可用的插件?

1 个答案:

答案 0 :(得分:0)

好吧,你可以使用hitswa的函数numberToCurrencymad e

然后可以以不同的方式使用此功能:

  1. 直接到现场:<?php echo numberToCurrency( get_post_meta( get_the_id(), 'price', true ) ); ?>

  2. 在字段中应用过滤器,假设您显示字段的代码如下:

    $unformatted_price = get_post_meta(get_the_id(), 'price', true);<br> echo apply_filters('price_meta_content', $unformatted_price );

  3. 关于你的functions.php <?php add_filter( 'price_meta_content', 'numberToCurrency' ) ; ?>

    1. 另一种解决方案是在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); }

    2. 这是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';
            }
          }
      }
      
      ?>