Advertisement
adczk

Forminator - Indian currency to words

Dec 6th, 2022
1,060
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.54 KB | None | 0 0
  1. <?php
  2.  
  3. // based on https://stackoverflow.com/questions/23106027/javascript-function-to-convert-indian-currency-numbers-to-words-with-paise-suppo
  4.  
  5. add_action( 'wp_footer', 'formi_number_words', 99 );
  6. function formi_number_words() {
  7.    
  8.     ?>
  9.    
  10.     <script type="text/javascript">
  11.    
  12.     jQuery(function($) {
  13.  
  14.         function number2text(value) {
  15.             var fraction = Math.round(frac(value)*100);
  16.             var f_text  = "";
  17.  
  18.             if(fraction > 0) {
  19.             f_text = "AND "+convert_number(fraction)+" PAISE";
  20.             }
  21.  
  22.             return convert_number(value)+" RUPEE "+f_text+" ONLY";
  23.         }
  24.  
  25.         function frac(f) {
  26.             return f % 1;
  27.         }
  28.  
  29.         function convert_number(number) {
  30.            
  31.             if ((number < 0) || (number > 999999999)) {
  32.                 return "NUMBER OUT OF RANGE!";
  33.             }
  34.             var Gn = Math.floor(number / 10000000);  /* Crore */
  35.             number -= Gn * 10000000;
  36.             var kn = Math.floor(number / 100000);     /* lakhs */
  37.             number -= kn * 100000;
  38.             var Hn = Math.floor(number / 1000);      /* thousand */
  39.             number -= Hn * 1000;
  40.             var Dn = Math.floor(number / 100);       /* Tens (deca) */
  41.             number = number % 100;               /* Ones */
  42.             var tn= Math.floor(number / 10);
  43.             var one=Math.floor(number % 10);
  44.             var res = "";
  45.  
  46.             if (Gn>0) {
  47.                 res += (convert_number(Gn) + " CRORE");
  48.             }
  49.             if (kn>0) {
  50.                 res += (((res=="") ? "" : " ") +
  51.                 convert_number(kn) + " LAKH");
  52.             }
  53.         if (Hn>0) {
  54.             res += (((res=="") ? "" : " ") +
  55.             convert_number(Hn) + " THOUSAND");
  56.         }
  57.  
  58.         if (Dn) {
  59.             res += (((res=="") ? "" : " ") +
  60.             convert_number(Dn) + " HUNDRED");
  61.         }
  62.  
  63.  
  64.         var ones = Array("", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX","SEVEN", "EIGHT", "NINE", "TEN", "ELEVEN", "TWELVE", "THIRTEEN","FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN","NINETEEN");
  65.         var tens = Array("", "", "TWENTY", "THIRTY", "FOURTY", "FIFTY", "SIXTY","SEVENTY", "EIGHTY", "NINETY");
  66.  
  67.         if (tn>0 || one>0) {
  68.             if (!(res=="")) {
  69.                 res += " AND ";
  70.             }
  71.             if (tn < 2) {
  72.                 res += ones[tn * 10 + one];
  73.             }
  74.             else {
  75.  
  76.                 res += tens[tn];
  77.                     if (one>0) {
  78.                     res += ("-" + ones[one]);
  79.                 }
  80.             }
  81.         }
  82.  
  83.         if (res=="") {
  84.             res = "zero";
  85.         }
  86.     return res;
  87.     }
  88.    
  89.    
  90.     $('<p class="wordsvalue"></p>').appendTo($('.numberformat'));
  91.        
  92.         $('.numberformat input.forminator-currency').on('input',function(e){
  93.             var thenumber = $(this).val();
  94.             var wordsnumber = number2text(thenumber);
  95.            
  96.             var msg = wordsnumber;
  97.            
  98.             $('.wordsvalue').text(msg);
  99.            
  100.            
  101.            
  102.            
  103.         });
  104.  
  105.  
  106.     });
  107.    
  108.     </script>
  109.    
  110.     <?php
  111.    
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement