Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Convert persian or arabic number on Gravity Form fields

I using Gravity Forms on my site but in gravity forms field, Arabic or Persian field is not work. Also I have modified a code to change English number to Arabic or Persian but it does not working.Please help me guys.
Any help is appreciated.

My code so far:

 function _sn_convert_persian_and_arabic_numbers_to_english_numbers__input_number_gravity_form($_sn_html_input_type){
    if(!function_exists("_sn_cpaanten__ingf__add_to_footer")){
      function _sn_cpaanten__ingf__add_to_footer(){
        ?>
        <script type="text/javascript" language="JavaScript">
          var sn_persian_numbers = new Array(/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g),//Persian Number
            sn_arabic_numbers  = new Array(/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g);//Arabic Number
          function sn_convert_persian_and_arabic_numbers_to_english_numbers(sn_string){
            if(typeof sn_string === "string"){
              for(var sn_cpaanten_for_a=0; sn_cpaanten_for_a<10; sn_cpaanten_for_a++){
                sn_string = sn_string.replace(sn_persian_numbers[sn_cpaanten_for_a], sn_cpaanten_for_a).replace(sn_arabic_numbers[sn_cpaanten_for_a], sn_cpaanten_for_a);
              }
            }
            return sn_string;
          };

          var sn_gform_inputs_number = document.querySelectorAll(".ginput_container.ginput_container_number input");
          for(var sn_gform_inputs_number_for_a=0; sn_gform_inputs_number_for_a < sn_gform_inputs_number.length; sn_gform_inputs_number_for_a++){
            function sn_gform_change_value_input_number(){
              this.value = sn_convert_persian_and_arabic_numbers_to_english_numbers( this.value );
            }
            sn_gform_inputs_number[sn_gform_inputs_number_for_a].addEventListener("input",sn_gform_change_value_input_number);
            sn_gform_inputs_number[sn_gform_inputs_number_for_a].addEventListener("keyup",sn_gform_change_value_input_number);
            sn_gform_inputs_number[sn_gform_inputs_number_for_a].addEventListener("keydown",sn_gform_change_value_input_number);
            sn_gform_inputs_number[sn_gform_inputs_number_for_a].addEventListener("keypress",sn_gform_change_value_input_number);
          }
        </script>
        <?php
      }

    return $_sn_html_input_type;
  }
  add_filter("gform_include_thousands_sep_pre_format_number","_sn_convert_persian_and_arabic_numbers_to_english_numbers__input_number_gravity_form");

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Generally your code almost complete but there is s little problem on it. So, I have revisited the code nearly completely and managed to fix your issues. The revisited code is:

  /* change English Number to Arabic or Persian */

  function _sn_convert_persian_and_arabic_numbers_to_english_numbers__input_number_gravity_form($_sn_html_input_type){
    if(!function_exists("_sn_cpaanten__ingf__add_to_footer")){
      function _sn_cpaanten__ingf__add_to_footer(){
        ?>
        <script type="text/javascript" language="JavaScript">
          var sn_persian_numbers = new Array(/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g),//Persian Number
            sn_arabic_numbers  = new Array(/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g);//Arabic Number
          function sn_convert_persian_and_arabic_numbers_to_english_numbers(sn_string){
            if(typeof sn_string === "string"){
              for(var sn_cpaanten_for_a=0; sn_cpaanten_for_a<10; sn_cpaanten_for_a++){
                sn_string = sn_string.replace(sn_persian_numbers[sn_cpaanten_for_a], sn_cpaanten_for_a).replace(sn_arabic_numbers[sn_cpaanten_for_a], sn_cpaanten_for_a);
              }
            }
            return sn_string;
          };

          var sn_gform_inputs_number = document.querySelectorAll(".ginput_container.ginput_container_number input");
          for(var sn_gform_inputs_number_for_a=0; sn_gform_inputs_number_for_a < sn_gform_inputs_number.length; sn_gform_inputs_number_for_a++){
            function sn_gform_change_value_input_number(){
              this.value = sn_convert_persian_and_arabic_numbers_to_english_numbers( this.value );
            }
            sn_gform_inputs_number[sn_gform_inputs_number_for_a].addEventListener("input",sn_gform_change_value_input_number);
            sn_gform_inputs_number[sn_gform_inputs_number_for_a].addEventListener("change",sn_gform_change_value_input_number);
            sn_gform_inputs_number[sn_gform_inputs_number_for_a].addEventListener("keyup",sn_gform_change_value_input_number);
            sn_gform_inputs_number[sn_gform_inputs_number_for_a].addEventListener("keydown",sn_gform_change_value_input_number);
            sn_gform_inputs_number[sn_gform_inputs_number_for_a].addEventListener("keypress",sn_gform_change_value_input_number);
          }
        </script>
        <?php
      }
      add_action("wp_footer","_sn_cpaanten__ingf__add_to_footer");
    }

    return $_sn_html_input_type;
  }
  add_filter("gform_include_thousands_sep_pre_format_number","_sn_convert_persian_and_arabic_numbers_to_english_numbers__input_number_gravity_form");

Code goes in function.php file of your active child theme (active theme). tested and works.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading