Advertisement
Guest User

Untitled

a guest
Jun 8th, 2015
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 97.32 KB | None | 0 0
  1. <?php
  2. /*
  3. Plugin Name: Persian Gravity Forms
  4. Plugin URI: https://wordpress.org/plugins/persian-gravity-forms/
  5. Description: Gravity Forms for Iranian
  6. Version: 1.7.1
  7. Requires at least: 3.8
  8. Author: HANNAN Ebrahimi Setoode
  9. Author URI: http://www.gravityforms.ir/
  10. Text Domain: Persian_Gravityforms_By_HANNANStd
  11. Domain Path: /languages/
  12. License: GPL 2
  13. */
  14. add_action('plugins_loaded', 'Load_Live_Preview', 0);
  15. function Load_Live_Preview() {
  16. require_once("include/Live_Preview.php");
  17. }
  18.  
  19. require_once("include/News_Letter.php");
  20. if(class_exists("GFIR_NewsLetter"))
  21. new GFIR_NewsLetter();
  22.  
  23. require_once("include/Pre_Submission.php");
  24. if(class_exists("GFIR_PreSubmission"))
  25. GFIR_PreSubmission::init();
  26.  
  27. require_once("include/Snippets.php");
  28. if(class_exists("GFIR_PostPermalink"))
  29. new GFIR_PostPermalink();
  30.  
  31. require_once("include/Multipage_Navigation.php");
  32. require_once("include/wp-session.php");
  33. class GravityFormsPersian {
  34. private $file;
  35. private $language;
  36. private $is_persian;
  37. public function __construct( $file ) {
  38. $this->file = $file;
  39. //actions
  40. add_action('init', array( $this, 'init' ), 8 );
  41. add_action('gform_post_status_options', array( $this, 'Add_Private_Post_Status_By_HANNANStd'));
  42. add_action('activated_plugin', array( $this, 'Activated_Plugin_By_HANNANStd' ) );
  43. add_action('wp_footer', array($this ,'Add_RTL_Style_To_Footer_By_HANNANStd'));
  44. add_action('gform_admin_pre_render', array( $this, 'Add_Merge_Tags_To_List_By_HANNANStd'));
  45. add_action('wp_dashboard_setup', array( $this, 'Persian_GravityForms_Dashboard_By_HANNANStd'));
  46. add_action('admin_print_scripts', array( $this, 'GravityForms_Admin_Script_Css_By_HANNANStd' ));
  47. add_action('gform_field_standard_settings', array( $this, 'Add_Field_Active_Standard_Settings'), 10, 2);
  48. add_action('gform_editor_js', array( $this, 'Editor_Script_By_HANNANStd'));
  49. add_action('gform_enqueue_scripts', array( $this, 'Add_Script_Css_Front_End_By_HANNANStd'), 10 , 2 );
  50. add_action('gform_field_input', array( $this,'Add_Melli_Cart_Field_Input_By_HANNANStd'), 10, 5);
  51. add_action('gform_field_css_class', array( $this, 'Add_Melli_Cart_Field_Class_By_HANNANStd'), 10, 3);
  52. add_action('gform_field_advanced_settings', array( $this, 'Add_Melli_Cart_Field_Setting_By_HANNANStd'), 10, 2);
  53. add_action('gform_entries_first_column', array($this ,'First_Column_Actions_By_HANNANStd'), 10, 5);
  54. add_action('gform_entry_post_save', array($this ,'Update_Lead_No_Gateway_By_HANNANStd'), 10, 2);
  55. //filters
  56. add_filter('update_footer', array( $this, 'GravityForms_Footer_Left_By_HANNANStd'), 11);
  57. add_filter('load_textdomain_mofile', array( $this, 'Load_Textdomain_Mo_File_By_HANNANStd'), 10, 2 );
  58. add_filter('gform_currencies', array( $this, 'Update_Currency_By_HANNANStd' ) );
  59. add_filter('gform_address_types', array( $this, 'Gform_IRAN_By_HANNANStd' ) );
  60. add_filter('gform_replace_merge_tags', array( $this, 'GformReplaceMergeTags_By_HANNANStd'), 10, 7);
  61. add_filter('gform_print_styles', array( $this, 'Add_Styles_Print_By_HANNANStd'), 10, 2);
  62. add_filter('gform_predefined_choices', array( $this, 'Add_Iran_Predefined_Choice_By_HANNANStd' ),1);
  63. add_filter('gform_tooltips', array( $this, 'Add_Encryption_tooltips_By_HANNANStd'));
  64. add_filter('gform_add_field_buttons', array( $this, 'Add_HANNANStd_Field_By_HANNANStd'));
  65. add_filter('gform_field_type_title', array( $this,'Add_HANNANStd_Field_Title_By_HANNANStd'));
  66. add_filter('gform_editor_js_set_default_values', array( $this, 'Add_HANNANStd_Field_Label_By_HANNANStd'));
  67. add_filter('gform_field_content', array( $this, 'Add_Melli_Cart_Field_JavaScript_Checker_By_HANNANStd'), 10, 5);
  68. add_filter('gform_field_validation', array( $this, 'Input_Valid_Checker_By_HANNANStd'), 10, 4);
  69. add_filter('gform_noconflict_styles', array( $this, 'Register_Style_to_No_Conflict_By_HANNANStd'));
  70. add_filter('gform_noconflict_scripts', array( $this, 'Register_Script_to_No_Conflict_By_HANNANStd'));
  71. }
  72.  
  73. public function Activated_Plugin_By_HANNANStd() {
  74. $path = str_replace( WP_PLUGIN_DIR . '/', '', $this->file );
  75. if ( $plugins = get_option( 'active_plugins' ) ) {
  76. if ( $key = array_search( $path, $plugins ) ) {
  77. array_splice( $plugins, $key, 1 );
  78. array_unshift( $plugins, $path );
  79. update_option( 'active_plugins', $plugins );
  80. }
  81. }
  82. if ( $plugins = get_site_option( 'active_sitewide_plugins' ) ) {
  83. if ( $key = array_search( $path, $plugins ) ) {
  84. array_splice( $plugins, $key, 1 );
  85. array_unshift( $plugins, $path );
  86. update_site_option( 'active_sitewide_plugins', $plugins );
  87. }
  88. }
  89. }
  90. public function init(){
  91. require_once("include/Jalali.php");
  92. require_once("include/Post_Content_Merge_Tags.php");
  93. $rel_path = dirname( plugin_basename( $this->file ) ) . '/languages/';
  94. if ( $this->language == null && defined('WPLANG') ) {
  95. $this->language = get_option( 'WPLANG', WPLANG );
  96. $this->is_persian = ( $this->language == 'fa' || $this->language == 'fa_IR' );
  97. }
  98. if ( defined( 'ICL_LANGUAGE_CODE' ) ) {
  99. $this->is_persian = ( ICL_LANGUAGE_CODE == 'fa' );
  100. }
  101. load_plugin_textdomain( 'Persian_Gravityforms_By_HANNANStd', false, $rel_path );
  102. }
  103. protected static function get_base_path(){
  104. $folder = basename(dirname(__FILE__));
  105. return WP_PLUGIN_DIR . "/" . $folder;
  106. }
  107. public function Load_Textdomain_Mo_File_By_HANNANStd( $mo_file, $domain ) {
  108. if ( strpos( $mo_file, 'fa_IR.mo' ) !== false ) {
  109. $domains = array(
  110. 'gravityformscoupons' => array(
  111. 'languages/gravityformscoupons-fa_IR.mo' => 'gravityformscoupons/fa_IR.mo'
  112. ),
  113. 'gravityformsmailchimp' => array(
  114. 'languages/gravityformsmailchimp-fa_IR.mo' => 'gravityformsmailchimp/fa_IR.mo'
  115. ),
  116. 'gravityformspolls' => array(
  117. 'languages/gravityformspolls-fa_IR.mo' => 'gravityformspolls/fa_IR.mo'
  118. ),
  119. 'gravityformsquiz' => array(
  120. 'languages/gravityformsquiz-fa_IR.mo' => 'gravityformsquiz/fa_IR.mo'
  121. ),
  122. 'gravityformssignature' => array(
  123. 'languages/gravityformssignature-fa_IR.mo' => 'gravityformssignature/fa_IR.mo'
  124. ),
  125. 'gravityformssurvey' => array(
  126. 'languages/gravityformssurvey-fa_IR.mo' => 'gravityformssurvey/fa_IR.mo'
  127. ),
  128. 'gravityformsuserregistration' => array(
  129. 'languages/gravityformsuserregistration-fa_IR.mo' => 'gravityformsuserregistration/fa_IR.mo'
  130. ),
  131. 'gravityformsauthorizenet' => array(
  132. 'languages/gravityformsauthorizenet-fa_IR.mo' => 'gravityformsauthorizenet/fa_IR.mo'
  133. ),
  134. 'gravityformsaweber' => array(
  135. 'languages/gravityformsaweber-fa_IR.mo' => 'gravityformsaweber/fa_IR.mo'
  136. ),
  137. 'gravityformscampaignmonitor' => array(
  138. 'languages/gravityformscampaignmonitor-fa_IR.mo' => 'gravityformscampaignmonitor/fa_IR.mo'
  139. ),
  140. 'gravityformsfreshbooks' => array(
  141. 'languages/gravityformsfreshbooks-fa_IR.mo' => 'gravityformsfreshbooks/fa_IR.mo'
  142. ),
  143. 'gravityformspaypal' => array(
  144. 'languages/gravityformspaypal-fa_IR.mo' => 'gravityformspaypal/fa_IR.mo'
  145. ),
  146. 'gravityformspaypalpro' => array(
  147. 'languages/gravityformspaypalpro-fa_IR.mo' => 'gravityformspaypalpro/fa_IR.mo'
  148. ),
  149. 'gravityformspaypalpaymentspro' => array(
  150. 'languages/gravityformspaypalpaymentspro-fa_IR.mo' => 'gravityformspaypalpaymentspro/fa_IR.mo'
  151. ),
  152. 'gravityformstwilio' => array(
  153. 'languages/gravityformstwilio-fa_IR.mo' => 'gravityformstwilio/fa_IR.mo'
  154. ),
  155. 'gravityformsstripe' => array(
  156. 'languages/gravityformsstripe-fa_IR.mo' => 'gravityformsstripe/fa_IR.mo'
  157. ),
  158. 'gravityformszapier' => array(
  159. 'languages/gravityformszapier-fa_IR.mo' => 'gravityformszapier/fa_IR.mo'
  160. ),
  161. 'sticky-list' => array(
  162. 'languages/sticky-list-fa_IR.mo' => 'gravityformsstickylist/fa_IR.mo'
  163. ),
  164. 'gf-limit' => array(
  165. 'gf-limit-fa_IR.mo' => 'gravityformsquantitylimits/fa_IR.mo'
  166. ),
  167. 'gf-limit' => array(
  168. 'languages/gf-limit-fa_IR.mo' => 'gravityformsquantitylimits/fa_IR.mo'
  169. )
  170. );
  171.  
  172.  
  173. if (self::is_gravityforms_new()) {
  174. $Gdomains = array(
  175. 'gravityforms' => array(
  176. 'languages/gravityforms-fa_IR.mo' => 'gravityforms1.9/fa_IR.mo'
  177. )
  178. );
  179. }
  180. else
  181. {
  182. $Gdomains = array(
  183. 'gravityforms' => array(
  184. 'languages/gravityforms-fa_IR.mo' => 'gravityforms1.8/fa_IR.mo'
  185. )
  186. );
  187. }
  188.  
  189. $domains = array_merge($domains,$Gdomains);
  190.  
  191. if ( isset( $domains[$domain] ) ) {
  192. $paths = $domains[$domain];
  193. foreach ( $paths as $path => $file ) {
  194. if ( substr( $mo_file, -strlen( $path ) ) == $path ) {
  195. $new_file = dirname( $this->file ) . '/languages/' . $file;
  196. if ( is_readable( $new_file ) ) {
  197. $mo_file = $new_file;
  198. }
  199. }
  200. }
  201. }
  202. }
  203. return $mo_file;
  204. }
  205.  
  206. private static function is_gravityforms_new(){
  207. if(class_exists("GFCommon")){
  208. $is_new_version = version_compare(GFCommon::$version, '1.9.0', ">=");
  209. return $is_new_version;
  210. }
  211. else{
  212. return false;
  213. }
  214. }
  215.  
  216. public function Add_Field_Active_Standard_Settings($position, $form_id){
  217. if($position == 25){
  218. ?>
  219. <li class="Jalali_setting field_setting">
  220. <input type="checkbox" id="check_jalali" onclick="SetFieldProperty('check_jalali', jQuery(this).is(':checked') ? 1 : 0);"/>
  221. <label class="inline gfield_value_label" for="field_admin_label">
  222. <?php _e( 'فعالسازی تاریخ شمسی', 'Persian_Gravityforms_By_HANNANStd' ); ?>
  223. <?php gform_tooltip("form_check_jalali") ?>
  224. </label>
  225. </li>
  226. <?php /*
  227. <li class="keyboard_setting field_setting">
  228. <label class="inline gfield_value_label" for="field_admin_label">
  229. <?php _e( 'نحوه استفاده از کیبورد', 'Persian_Gravityforms_By_HANNANStd' ); ?>
  230. <?php gform_tooltip("form_field_keyboard_desc") ?>
  231. </label>
  232. </br>
  233. <p>
  234. برای استفاده از کیبورد کافی است پس از افزودن فیلد "کیبورد" از قسمت فیلد های پیشرفته ، به هر کدام از فیلدهایی که میخواهید دارای کیبورد شوند کلاس keyb را اضافه نمایید .
  235. البته برچسب این فیلد را نیز خالی بگذارید تا در فرم دیده نشود.
  236. </p>
  237. </li>
  238. <?php
  239. */
  240. }
  241. }
  242. public function Editor_Script_By_HANNANStd(){
  243. ?>
  244. <script type='text/javascript'>
  245. fieldSettings["date"] += ", .Jalali_setting";
  246. fieldSettings["mellicart"] = ".conditional_logic_field_setting, .label_setting, .admin_label_setting, .size_setting, .rules_setting, .visibility_setting, .duplicate_setting, .default_value_setting, .description_setting, .css_class_setting, .mellicart_setting";
  247. //fieldSettings["keyboard"] = ".label_setting, .keyboard_setting";
  248. jQuery(document).bind("gform_load_field_settings", function(event, field, form){
  249. jQuery("#check_jalali").attr("checked", field["check_jalali"] == true);
  250. jQuery("#field_mellicart").attr("checked", field["field_mellicart"] == true);
  251. jQuery("#field_mellicart_sp").attr("checked", field["field_mellicart_sp"] == true);
  252. jQuery("#field_mellicart_sp1").val(field["field_mellicart_sp1"]);
  253. jQuery("#field_mellicart_sp2").val(field["field_mellicart_sp2"]);
  254. jQuery("#field_mellicart_sp3").val(field["field_mellicart_sp3"]);
  255. jQuery("#field_mellicart_sp4").val(field["field_mellicart_sp4"]);
  256. });
  257. </script>
  258. <?php
  259. }
  260. public function Add_Encryption_tooltips_By_HANNANStd($tooltips){
  261. $tooltips["form_check_jalali"] = "<h6>فعالسازی تاریخ شمسی</h6>در صورتی که از چند فیلد تاریخ استفاده میکنید ، فعالسازی تاریخ شمسی یکی از فیلدها کفایت میکند .<br/>تذکر : با توجه به آزمایشی بودن این قسمت ممکن است تداخل توابع سبب ناسازگاری با برخی قالب ها شود.";
  262. $tooltips["form_field_mellicart"] = "<h6>نمایش لحظه ای شهر از روی کد ملی </h6>نمایش شهر و پیغام زیر فیلد کد ملی بعد از پر شدن فیلد . تذکر : در صورتی که این گزینه را فعال نمایید ،ممکن است فراخوانی شهر های ایران با توجه به زیاد بودن آنها سبب سنگین شدن صفحه گردد.";
  263. $tooltips["form_field_mellicart_sp"] = "<h6>جدا سازی ارقام</h6>در صورتی که این گزینه را فعال نمایید ، پس از پر شدن فیلد ، <strong>در صورتی که کد ملی وارد شده صحیح تشخصی داده شود</strong> ؛ کد ملی به صورت زیر در خواهد آمد :<br/>xxx-xxxxxx-x";
  264. $tooltips["form_field_mellicart_sp1"] = "<h6>پیغام پیشفرض</h6>با توجه به اینکه کد ملی فقط باید به صورت عدد باشد ، در صورتی که کاراکتری غیر از عدد وارد شده باشد پیغام خطا نمایش داده خواهد شد .<br/>پیغام پیشفرض : کد ملی فقط باید به صورت عدد وارد شود . ";
  265. $tooltips["form_field_mellicart_sp2"] = "<h6>پیغام پیشفرض</h6>با توجه به اینکه کد ملی می بایست 10 رقمی باشد اگر تعداد رقم وارد شده ، اشتباه باشد پیغام خطا نمایش داده خواهد شد .<br>پیغام پیشفرض : کد ملی می بایست 10 رقمی باشد . تنها در صورتی مجاز به استفاده از کد های 8 یا 9 رقمی هستید که ارقام سمت چپ 0 باشند . ";
  266. $tooltips["form_field_mellicart_sp3"] = "<h6>پیغام پیشفرض</h6>در صورتی که از تب وِیژگی تیک گزینه بدون تکرار را زده باشید ؛ بعد از پر شدن فرم و زدن دکمه ارسال پیغامی مبتنی بر تکراری بودن کد ملی نمایش داده خواهد شد . <br/>پیغام پیشفرض : این کد ملی توسط فرد دیگری ثبت شده است .";
  267. $tooltips["form_field_mellicart_sp4"] = "<h6>پیغام پیشفرض</h6>در صورتی که کد ملی وارد شده مطابق با الگوریتم کشور نباشد پیغام خطا نمایش داده خواهد شد .<br/>پیغام پیشفرض : کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .";
  268. $tooltips["form_field_mellicart_header"] = "<h6>پیغام خطا</h6>در صورتی که کاربر فیلد کد ملی را به صورت صحیح وارد نکند ؛ پیغام خطا را مشاهده میکند که میتوانید این پیغام ها را مدیریت نمایید . در صورتی که مقادیر زیر را خالی بگذارید پیغام پیشفرض نمایش داده خواهد شد.";
  269. //$tooltips["form_field_keyboard_desc"] = "<h6>نحوه استفاده</h6>پس از اضافه کردن فیلد کیبورد به فرم ، کافیست به هر فیلدی که میخواهید کیبورد اضافه کنید ، کلاس keyb رو بیافزایید .";
  270. return $tooltips;
  271. }
  272. function Add_Script_Css_Front_End_By_HANNANStd( $form, $ajax ) {
  273. foreach ( $form['fields'] as $field ) {
  274. if ( ( $field['type'] == 'date' ) ) {
  275. if(rgget("check_jalali", $field)){
  276. add_filter('gform_date_min_year', array( $this, 'Set_Min_Year_By_HANNANStd' ) );
  277. add_filter('gform_date_max_year', array( $this, 'Set_Max_Year_By_HANNANStd' ) );
  278. if (!IS_ADMIN)
  279. {
  280. wp_deregister_script('gform_datepicker_init');
  281. wp_deregister_script('jquery-ui-datepicker');
  282. wp_register_script('gform_datepicker_init',plugins_url ( '/assets/js/date-picker.js', __FILE__), array( 'jquery', 'jquery-ui-core' ), GFCommon::$version, true );
  283. }
  284. }
  285. }
  286.  
  287. if ( ( $field['type'] == 'keyboard' ) ) {
  288. if (!IS_ADMIN) {
  289. wp_enqueue_script('Keyboard',plugins_url ( '/assets/js/keyboard.js', __FILE__), array(), true );
  290. wp_enqueue_style('Keyboard', plugins_url ( '/assets/css/persian-gravity-form.css', __FILE__, null, GFCommon::$version ) );
  291. }
  292. }
  293.  
  294. }
  295. }
  296. public function Set_Min_Year_By_HANNANStd($min_year){
  297. $min_year = GF_gregorian_to_jalali($min_year,03,21);
  298. return $min_year[0]+1;
  299. }
  300. public function Set_Max_Year_By_HANNANStd($max_year){
  301. $max_year = GF_gregorian_to_jalali($max_year,03,21);
  302. return $max_year[0]+20;
  303. }
  304. public function GravityForms_Footer_Left_By_HANNANStd($text) {
  305. $text = sprintf(__("%sGravity Forms%s for WordPress is a full featured contact form plugin .", "Persian_Gravityforms_By_HANNANStd"), '<a href="http://gravityforms.ir" target="_blank">', "</a>");return $text;
  306. }
  307. public function Add_Private_Post_Status_By_HANNANStd($post_status_options) {
  308. $post_status_options['private'] = __("خصوصی", "Persian_Gravityforms_By_HANNANStd");
  309. return $post_status_options;
  310. }
  311. public function Update_Currency_By_HANNANStd($currencies) {
  312. $currencies['IRR'] = array("name" => __("ریال ایران", "Persian_Gravityforms_By_HANNANStd"), "symbol_left" => '', "symbol_right" => " ریال ", "symbol_padding" => "", "thousand_separator" => ',', "decimal_separator" => '.', "decimals" => 0);
  313. $currencies['IRT'] = array("name" => __("تومان", "Persian_Gravityforms_By_HANNANStd"), "symbol_left" => '', "symbol_right" => " تومان ", "symbol_padding" => " ", "thousand_separator" => ',', "decimal_separator" => '.', "decimals" => 0);
  314. return $currencies;
  315. }
  316. public function Gform_IRAN_By_HANNANStd( $address_types ) {
  317. $address_types['persian'] = array(
  318. 'label' => __( 'ایران', 'Persian_Gravityforms_By_HANNANStd' ),
  319. 'country' => __( 'ایران', 'Persian_Gravityforms_By_HANNANStd' ),
  320. 'zip_label' => __( 'کد پستی', 'Persian_Gravityforms_By_HANNANStd' ),
  321. 'state_label' => __( 'استان', 'Persian_Gravityforms_By_HANNANStd' ),
  322. 'states' => array( '',
  323. __( 'آذربایجان شرقی', 'Persian_Gravityforms_By_HANNANStd' ),
  324. __( 'آذربایجان غربی', 'Persian_Gravityforms_By_HANNANStd' ),
  325. __( 'اردبیل', 'Persian_Gravityforms_By_HANNANStd' ),
  326. __( 'اصفهان', 'Persian_Gravityforms_By_HANNANStd' ),
  327. __( 'البرز', 'Persian_Gravityforms_By_HANNANStd' ),
  328. __( 'ایلام', 'Persian_Gravityforms_By_HANNANStd' ),
  329. __( 'بوشهر', 'Persian_Gravityforms_By_HANNANStd' ),
  330. __( 'تهران', 'Persian_Gravityforms_By_HANNANStd' ),
  331. __( 'چهارمحال و بختیاری', 'Persian_Gravityforms_By_HANNANStd' ),
  332. __( 'خراسان شمالی', 'Persian_Gravityforms_By_HANNANStd' ),
  333. __( 'خراسان رضوی', 'Persian_Gravityforms_By_HANNANStd' ),
  334. __( 'خراسان جنوبی', 'Persian_Gravityforms_By_HANNANStd' ),
  335. __( 'خوزستان', 'Persian_Gravityforms_By_HANNANStd' ),
  336. __( 'زنجان', 'Persian_Gravityforms_By_HANNANStd' ),
  337. __( 'سمنان', 'Persian_Gravityforms_By_HANNANStd' ),
  338. __( 'سیستان و بلوچستان', 'Persian_Gravityforms_By_HANNANStd' ),
  339. __( 'فارس', 'Persian_Gravityforms_By_HANNANStd' ),
  340. __( 'قزوين', 'Persian_Gravityforms_By_HANNANStd' ),
  341. __( 'قم', 'Persian_Gravityforms_By_HANNANStd' ),
  342. __( 'کردستان', 'Persian_Gravityforms_By_HANNANStd' ),
  343. __( 'کرمان', 'Persian_Gravityforms_By_HANNANStd' ),
  344. __( 'کرمانشاه', 'Persian_Gravityforms_By_HANNANStd' ),
  345. __( 'کهگیلویه و بویراحمد', 'Persian_Gravityforms_By_HANNANStd' ),
  346. __( 'گلستان', 'Persian_Gravityforms_By_HANNANStd' ),
  347. __( 'گیلان', 'Persian_Gravityforms_By_HANNANStd' ),
  348. __( 'لرستان', 'Persian_Gravityforms_By_HANNANStd' ),
  349. __( 'مازندران', 'Persian_Gravityforms_By_HANNANStd' ),
  350. __( 'مرکزی', 'Persian_Gravityforms_By_HANNANStd' ),
  351. __( 'هرمزگان', 'Persian_Gravityforms_By_HANNANStd' ),
  352. __( 'همدان', 'Persian_Gravityforms_By_HANNANStd' ),
  353. __( 'یزد', 'Persian_Gravityforms_By_HANNANStd' )
  354. )
  355. );
  356. return $address_types;
  357. }
  358. public function Add_Iran_Predefined_Choice_By_HANNANStd($choices){
  359. $states[__( 'استانهای ایران', 'Persian_Gravityforms_By_HANNANStd' )] = array(
  360. __( 'آذربایجان شرقی', 'Persian_Gravityforms_By_HANNANStd' ),
  361. __( 'آذربایجان غربی', 'Persian_Gravityforms_By_HANNANStd' ),
  362. __( 'اردبیل', 'Persian_Gravityforms_By_HANNANStd' ),
  363. __( 'اصفهان', 'Persian_Gravityforms_By_HANNANStd' ),
  364. __( 'البرز', 'Persian_Gravityforms_By_HANNANStd' ),
  365. __( 'ایلام', 'Persian_Gravityforms_By_HANNANStd' ),
  366. __( 'بوشهر', 'Persian_Gravityforms_By_HANNANStd' ),
  367. __( 'تهران', 'Persian_Gravityforms_By_HANNANStd' ),
  368. __( 'چهارمحال و بختیاری', 'Persian_Gravityforms_By_HANNANStd' ),
  369. __( 'خراسان شمالی', 'Persian_Gravityforms_By_HANNANStd' ),
  370. __( 'خراسان رضوی', 'Persian_Gravityforms_By_HANNANStd' ),
  371. __( 'خراسان جنوبی', 'Persian_Gravityforms_By_HANNANStd' ),
  372. __( 'خوزستان', 'Persian_Gravityforms_By_HANNANStd' ),
  373. __( 'زنجان', 'Persian_Gravityforms_By_HANNANStd' ),
  374. __( 'سمنان', 'Persian_Gravityforms_By_HANNANStd' ),
  375. __( 'سیستان و بلوچستان', 'Persian_Gravityforms_By_HANNANStd' ),
  376. __( 'فارس', 'Persian_Gravityforms_By_HANNANStd' ),
  377. __( 'قزوين', 'Persian_Gravityforms_By_HANNANStd' ),
  378. __( 'قم', 'Persian_Gravityforms_By_HANNANStd' ),
  379. __( 'کردستان', 'Persian_Gravityforms_By_HANNANStd' ),
  380. __( 'کرمان', 'Persian_Gravityforms_By_HANNANStd' ),
  381. __( 'کرمانشاه', 'Persian_Gravityforms_By_HANNANStd' ),
  382. __( 'کهگیلویه و بویراحمد', 'Persian_Gravityforms_By_HANNANStd' ),
  383. __( 'گلستان', 'Persian_Gravityforms_By_HANNANStd' ),
  384. __( 'گیلان', 'Persian_Gravityforms_By_HANNANStd' ),
  385. __( 'لرستان', 'Persian_Gravityforms_By_HANNANStd' ),
  386. __( 'مازندران', 'Persian_Gravityforms_By_HANNANStd' ),
  387. __( 'مرکزی', 'Persian_Gravityforms_By_HANNANStd' ),
  388. __( 'هرمزگان', 'Persian_Gravityforms_By_HANNANStd' ),
  389. __( 'همدان', 'Persian_Gravityforms_By_HANNANStd' ),
  390. __( 'یزد', 'Persian_Gravityforms_By_HANNANStd' )
  391. );
  392. $month[__( 'ماه های ایران', 'Persian_Gravityforms_By_HANNANStd' )] = array(
  393. __( 'فروردین', 'Persian_Gravityforms_By_HANNANStd' ),
  394. __( 'اردیبهشت', 'Persian_Gravityforms_By_HANNANStd' ),
  395. __( 'خرداد', 'Persian_Gravityforms_By_HANNANStd' ),
  396. __( 'تیر', 'Persian_Gravityforms_By_HANNANStd' ),
  397. __( 'مرداد', 'Persian_Gravityforms_By_HANNANStd' ),
  398. __( 'شهریور', 'Persian_Gravityforms_By_HANNANStd' ),
  399. __( 'مهر', 'Persian_Gravityforms_By_HANNANStd' ),
  400. __( 'آبان', 'Persian_Gravityforms_By_HANNANStd' ),
  401. __( 'آذر', 'Persian_Gravityforms_By_HANNANStd' ),
  402. __( 'دی', 'Persian_Gravityforms_By_HANNANStd' ),
  403. __( 'بهمن', 'Persian_Gravityforms_By_HANNANStd' ),
  404. __( 'اسفند', 'Persian_Gravityforms_By_HANNANStd' )
  405. );
  406. return $choices = array_merge($states, $month, $choices);
  407. }
  408. public function Add_Merge_Tags_To_List_By_HANNANStd($form){ ?>
  409. <script type="text/javascript">
  410. gform.addFilter("gform_merge_tags", "add_merge_tags");
  411. function add_merge_tags(mergeTags, elementId, hideAllFields, excludeFieldTypes, isPrepop, option){
  412. mergeTags["custom"].tags.push({ tag: '{payment_gateway}', label: '<?php _e("Simple Payment Gateway", "Persian_Gravityforms_By_HANNANStd") ?>' });
  413. mergeTags["custom"].tags.push({ tag: '{payment_status}', label: '<?php _e("Simple Payment Status", "Persian_Gravityforms_By_HANNANStd") ?>' });
  414. mergeTags["custom"].tags.push({ tag: '{transaction_id}', label: '<?php _e("Simple Transaction ID", "Persian_Gravityforms_By_HANNANStd") ?>' });
  415. mergeTags["custom"].tags.push({ tag: '{payment_gateway_css}', label: '<?php _e("Styled Payment Gateway", "Persian_Gravityforms_By_HANNANStd") ?>' });
  416. mergeTags["custom"].tags.push({ tag: '{payment_status_css}', label: '<?php _e("Styled Payment Status", "Persian_Gravityforms_By_HANNANStd") ?>' });
  417. mergeTags["custom"].tags.push({ tag: '{transaction_id_css}', label: '<?php _e("Styled Transaction ID", "Persian_Gravityforms_By_HANNANStd") ?>' });
  418. mergeTags["custom"].tags.push({ tag: '{payment_pack}', label: '<?php _e("Styled Payment Pack", "Persian_Gravityforms_By_HANNANStd") ?>' });
  419. mergeTags["custom"].tags.push({ tag: '{rtl_start}', label: '<?php _e("RTL Start", "Persian_Gravityforms_By_HANNANStd") ?>' });
  420. mergeTags["custom"].tags.push({ tag: '{rtl_end}', label: '<?php _e("RTL End", "Persian_Gravityforms_By_HANNANStd") ?>' });
  421. return mergeTags;
  422. }
  423. </script>
  424. <?php
  425. return $form;
  426. }
  427. function First_Column_Actions_By_HANNANStd($form_id, $field_id, $value, $lead, $query_string) {
  428. $url = get_bloginfo("wpurl") . "/wp-admin/admin.php?page=gf_entries&view=entries&id=" . $form_id;
  429. $gateway = gform_get_meta($lead["id"], "payment_gateway");
  430. if($lead["payment_status"] == 'Active') {
  431. $color = '#008000';
  432. $stat = "موفق";
  433. }
  434. if($lead["payment_status"] == 'Paid') {
  435. $color = '#008000';
  436. $stat = "موفق";
  437. }
  438. if($lead["payment_status"] == 'Failed') {
  439. $color = '#FF0000';
  440. $stat = "ناموفق";
  441. }
  442. if($lead["payment_status"] == 'Cancelled') {
  443. $color = '#FFA500';
  444. $stat = "منصرف شده";
  445. }
  446. if($lead["payment_status"] == 'Processing') {
  447. $color = '#3399FF';
  448. $stat = "معلق";
  449. }
  450. if ($gateway)
  451. echo '<a class="stat" href="'.$url.'&sort=0&dir=DESC&s=Processing&field_id=payment_status&operator=is" style="color:'.$color.';"> '.$stat.' </a> - <a class="stat" href="'.$url.'&sort=0&dir=DESC&s='.$gateway.'&field_id=payment_gateway&operator=is" style="color:#000000;"> '.$gateway.' </a>';
  452. else if ($lead["payment_status"])
  453. echo '<a class="stat" href="'.$url.'&sort=0&dir=DESC&s=Processing&field_id=payment_status&operator=is" style="color:'.$color.';"> موفق </a>';
  454. }
  455.  
  456. public function Update_Lead_No_Gateway_By_HANNANStd($lead, $form) {
  457. $gateway = gform_get_meta($lead['id'], 'payment_gateway');
  458. $method = $lead['payment_method'];
  459. $product = self::get_product_price($form, $lead);
  460.  
  461.  
  462. if (!isset($method) && !$gateway && !isset($lead["transaction_id"]) ) {
  463. $tr_id = RGFormsModel::get_lead_count( $form["id"], '', null, null, null, null, null );
  464. $lead["transaction_id"] = !$tr_id ? '00001' : substr('0000'.($tr_id),-5);
  465. $lead["is_fulfilled"] = 0;
  466. }
  467.  
  468.  
  469. if ( ($product["yes"]==2) && !isset($method) && !$gateway ) {
  470. $lead["payment_amount"] = $product["total"];
  471. $lead["payment_date"] = gmdate('Y-m-d H:i:s');
  472. $lead["is_fulfilled"] = 1;
  473. $lead["payment_status"] = 'Paid';
  474. }
  475.  
  476. $wp_session = WP_Session::get_instance();
  477. wp_session_unset();
  478. $wp_session['refid'] = $form["id"].$lead["id"];
  479. @session_start();
  480. $_SESSION["refid"] = $form["id"].$lead["id"];
  481. RGFormsModel::update_lead($lead);
  482. return $lead;
  483. }
  484.  
  485. public function GformReplaceMergeTags_By_HANNANStd($text, $form, $lead, $url_encode, $esc_html, $nl2br, $format){
  486. $gateway = gform_get_meta($lead['id'], 'payment_gateway');
  487. if ($lead['payment_status']=="Active" || $lead['payment_status']=="Paid")
  488. $payment_status = __("Paid", "Persian_Gravityforms_By_HANNANStd");
  489. if ($lead['payment_status']=="Failed")
  490. $payment_status = __("Failed", "Persian_Gravityforms_By_HANNANStd");
  491. if ($lead['payment_status']=="Cancelled")
  492. $payment_status = __("Cancelled", "Persian_Gravityforms_By_HANNANStd");
  493. $tags = array(
  494. '{payment_gateway}',
  495. '{transaction_id}',
  496. '{payment_status}',
  497. '{payment_gateway_css}',
  498. '{transaction_id_css}',
  499. '{payment_status_css}',
  500. '{payment_pack}',
  501. '{rtl_start}',
  502. '{rtl_end}',
  503. );
  504. $values = array (
  505. $gateway ? $gateway : '',
  506. isset($lead['transaction_id']) ? $lead['transaction_id'] : '',
  507. isset($lead['payment_status']) ? $payment_status : '',
  508. $gateway ? '
  509. <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
  510. <tr bgcolor="#EAF2FA">
  511. <td colspan="2" style="padding:5px !important">
  512. <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Gateway', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
  513. </td>
  514. </tr>
  515. <tr bgcolor="#FFFFFF">
  516. <td style="padding:5px !important"><font style="font-family:sans-serif;font-size:12px">'.$gateway.'</font>
  517. </td>
  518. </tr>
  519. </table>' : '',
  520. isset($lead['transaction_id']) ? '
  521. <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
  522. <tr bgcolor="#EAF2FA">
  523. <td colspan="2" style="padding:5px !important">
  524. <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Transaction ID', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
  525. </td>
  526. </tr>
  527. <tr bgcolor="#FFFFFF">
  528. <td style="padding:5px !important">
  529. <font style="font-family:sans-serif;font-size:12px">'.$lead['transaction_id'].'</font>
  530. </td>
  531. </tr>
  532. </table>' : '',
  533. isset($lead['payment_status']) ? '
  534. <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
  535. <tr bgcolor="#EAF2FA">
  536. <td colspan="2" style="padding:5px !important">
  537. <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Status', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
  538. </td>
  539. </tr>
  540. <tr bgcolor="#FFFFFF">
  541. <td style="padding:5px !important">
  542. <font style="font-family:sans-serif;font-size:12px">'.$payment_status.'</font>
  543. </td>
  544. </tr>
  545. </table>' : '',
  546. (isset($lead['transaction_id']) && $gateway && isset($lead['payment_status']) ) ? '
  547. <table width="99%" border="0" cellpadding="1" cellspacing="0" bgcolor="#EAEAEA" style="border:1px solid #e9e9e9!important;">
  548. <tr>
  549. <td style="font-size:14px;font-weight:bold;background-color:#eee;border-bottom:1px solid #dfdfdf;padding:7px 7px" colspan="2">
  550. '.__( 'Payment Information', 'Persian_Gravityforms_By_HANNANStd' ).'
  551. </td>
  552. </tr>
  553. <tr bgcolor="#EAF2FA">
  554. <td colspan="2" style="padding:5px !important">
  555. <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Gateway', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
  556. </td>
  557. </tr>
  558. <tr bgcolor="#FFFFFF">
  559. <td style="padding:5px !important">
  560. <font style="font-family:sans-serif;font-size:12px">'.$gateway.'</font>
  561. </td>
  562. </tr>
  563. <tr bgcolor="#EAF2FA">
  564. <td colspan="2" style="padding:5px !important">
  565. <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Payment Status', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
  566. </td>
  567. </tr>
  568. <tr bgcolor="#FFFFFF">
  569. <td style="padding:5px !important">
  570. <font style="font-family:sans-serif;font-size:12px">'.$payment_status.'</font>
  571. </td>
  572. </tr>
  573. <tr bgcolor="#EAF2FA">
  574. <td colspan="2" style="padding:5px !important">
  575. <font style="font-family:sans-serif;font-size:12px"><strong>'.__( 'Transaction ID', 'Persian_Gravityforms_By_HANNANStd' ).'</strong></font>
  576. </td>
  577. </tr>
  578. <tr bgcolor="#FFFFFF">
  579. <td style="padding:5px !important"><font style="font-family:sans-serif;font-size:12px">'.$lead['transaction_id'].'</font>
  580. </td>
  581. </tr>
  582. </table>' : '',
  583.  
  584. '<div style="text-align: right !important; direction: rtl !important;">',
  585. '</div>',
  586. );
  587. $text = str_replace($tags, $values, $text);
  588. return $text;
  589. }
  590. public function Add_RTL_Style_To_Footer_By_HANNANStd() {
  591.  
  592. if( is_rtl() ) {
  593. echo '<style type="text/css">
  594. .gright,.gform_wrapper form ,.gform_wrapper ul li:before, .gform_wrapper ul li:after, .gform_wrapper ul.gform_fields {
  595. text-align: right !important;
  596. direction:rtl !important;
  597. }
  598. .gleft,.gform_wrapper input[type="url"], .gform_wrapper input[type="email"],
  599. .gform_wrapper input[type="tel"], .gform_wrapper input[type="number"],
  600. .gform_wrapper input[type="password"],body.rtl .gform_wrapper input[type="email"], body.rtl .gform_wrapper input[type="password"],
  601. body.rtl .gform_wrapper input[type="url"], body.rtl .gform_wrapper input[type="tel"],body .gform_wrapper.gf_rtl_wrapper input[type="email"],
  602. body .gform_wrapper.gf_rtl_wrapper input[type="password"], body .gform_wrapper.gf_rtl_wrapper input[type="url"], body .gform_wrapper.gf_rtl_wrapper input[type="tel"] {
  603. text-align:left !important;
  604. direction:ltr !important;
  605. }
  606. .gform_wrapper .ginput_complex .ginput_left {
  607. float: right !important;
  608. }
  609. .gform_wrapper .ginput_complex .ginput_right {
  610. float: left !important;
  611. }
  612. .gform_wrapper .gfield_checkbox li label,
  613. .gform_wrapper .gfield_radio li label {
  614. margin-right:20px !important;
  615. }
  616. .gform_wrapper .ginput_complex.ginput_container.has_first_name.has_middle_name.has_last_name span.name_first,
  617. .gform_wrapper .ginput_complex.ginput_container.has_first_name.has_middle_name.has_last_name span.name_middle,
  618. .gform_wrapper .ginput_complex.ginput_container.has_first_name.no_middle_name.has_last_name span.name_first{
  619. margin-right:0px !important;
  620. margin-left: 1.3% !important;
  621. }
  622. </style>';
  623. }
  624. }
  625. public function Add_Styles_Print_By_HANNANStd($value, $form){
  626. if( is_rtl() ) {
  627. wp_register_style('print_entry', plugins_url ( '/assets/css/printer.css', __FILE__, true ) );
  628. return array('print_entry');
  629. }
  630. }
  631. public function GravityForms_Admin_Script_Css_By_HANNANStd() {
  632. if(!class_exists('GFForms'))
  633. return;
  634. $current_page = trim(strtolower(RGForms::get("page")));
  635. $page_prefix = explode("_", $current_page);
  636. if ( isset($_GET['page']) )
  637. $is_gravityforms_page = (substr($_GET['page'],0,12) == 'gravityforms') ? 1 : 0;
  638. else
  639. $is_gravityforms_page = 0;
  640. if (is_rtl() && ($page_prefix[0]=="gf" || RGForms::is_gravity_page() || $is_gravityforms_page == 1 ||
  641. $_SERVER['REQUEST_URI'] == '/wp-admin/' || $_SERVER['REQUEST_URI'] == '/wp-admin' ||
  642. $_SERVER['REQUEST_URI'] == '/wp-admin/index.php' || $_SERVER['REQUEST_URI'] == '/wp-admin/index.php/'))
  643. {
  644. wp_enqueue_style('Persian_GravityForms', plugins_url ( '/assets/css/admin-style.css', __FILE__, null, GFCommon::$version ) );
  645. wp_print_styles('gform_tooltip','Persian_GravityForms' );
  646. wp_dequeue_script('jquery-ui-datepicker');
  647. wp_dequeue_script(array("jquery-ui-datepicker"));
  648. // wp_deregister_script('jquery-ui-datepicker');
  649. wp_deregister_script(array("jquery-ui-datepicker"));
  650. wp_deregister_script('gform_datepicker_init');
  651. wp_enqueue_script('gform_datepicker_init', plugins_url ( '/assets/js/wp-admin-datepicker.js', __FILE__), array( 'jquery', 'jquery-ui-core' ), true );
  652. echo '<style type="text/css">
  653. .mt-gform_notification_message,
  654. .mt-form_confirmation_message {
  655. margin-right: -30px !important;
  656. }
  657. </style>';
  658. }
  659. }
  660. public function Register_Script_to_No_Conflict_By_HANNANStd($scripts){
  661. $scripts[] = "gform_datepicker_init";
  662. return $scripts;
  663. }
  664. public function Register_Style_to_No_Conflict_By_HANNANStd($styles){
  665. $styles[] = "Persian_GravityForms";
  666. $styles[] = "print_entry";
  667. return $styles;
  668. }
  669. public function Persian_GravityForms_Dashboard_By_HANNANStd() {
  670. if ( !current_user_can('manage_options') )
  671. return;
  672. global $wp_meta_boxes;
  673. wp_add_dashboard_widget('persiangf_wd_hannanstd', __( 'Persian Gravity Forms Dashboard', 'Persian_Gravityforms_By_HANNANStd' ) , array( $this, 'Persian_GravityForms_Widget_By_HANNANStd'));
  674. }
  675. public static function Persian_GravityForms_Widget_By_HANNANStd() {
  676. global $_wp_admin_css_colors;
  677. $current_color = get_user_option( 'admin_color' );
  678. $colors = array();
  679. foreach ( $_wp_admin_css_colors as $color => $color_info ) {
  680. if ($color == $current_color){
  681. foreach ( $color_info->colors as $html_color ) {
  682. $colors[] = esc_attr( $html_color );
  683. }
  684. }
  685. }
  686. if (get_bloginfo('version')>=3.8) {
  687. ?>
  688. <style>
  689. #persiangf_wd_hannanstd h3{font-family:byekan !important;background:<?php echo $colors[1] ?> !important;color:#fff !important;}
  690. #persiangf_wd_hannanstd .handlediv{color:#fff !important;}
  691. #persiangf_wd_hannanstd .a1{font-family:byekan !important;}
  692. #persiangf_wd_hannanstd .a2{font-family:byekan !important;font-size:12px !important;}
  693. </style>
  694. <?php
  695. }
  696. $rss = fetch_feed( "http://gravityforms.ir/feed/" );
  697. if ( is_wp_error($rss) ) {
  698. if ( is_admin() || current_user_can('manage_options') ) {
  699. printf(__('<strong>RSS Error</strong>', 'Persian_Gravityforms_By_HANNANStd'));
  700. }
  701. return;
  702. }
  703. if ( !$rss->get_item_quantity() ) {
  704. printf(__( 'Apparently, There are no updates to show!', 'Persian_Gravityforms_By_HANNANStd' ));
  705. $rss->__destruct();
  706. unset($rss);
  707. return;
  708. }
  709. echo "<ul>";
  710. if ( !isset($items) )
  711. $items = 5;
  712. $i=1;
  713. foreach ( $rss->get_items(0, $items) as $item ) {
  714. $publisher = '';
  715. $site_link = '';
  716. $link = '';
  717. $content = '';
  718. $date = '';
  719. $link = esc_url( strip_tags( $item->get_link() ) );
  720. $title = esc_html( $item->get_title() );
  721. $content = $item->get_content();
  722. $content = wp_html_excerpt($content, 250) . ' ...';
  723. echo "<li>";
  724. if ($i==1)
  725. echo "<a class='rsswidget a1' href='$link'>$title</a><div class='rssSummary'>$content</div><hr/>";
  726. else
  727. echo "<a class='rsswidget a2' href='$link'>$title</a>";
  728. echo "</li>";
  729. $i++;
  730. }
  731. echo "</ul>";
  732. $rss->__destruct();
  733. unset($rss);
  734. }
  735. public static function get_product_price($form, $entry){
  736. $currency = GFCommon::get_currency();
  737. $products = GFCommon::get_product_fields($form, $entry, true);
  738. $product_index = 1;
  739. $total = 0;
  740. $discount = 0;
  741. foreach($products["products"] as $product){
  742. $option_fields = "";
  743. $price = GFCommon::to_number($product["price"]);
  744. if(is_array(rgar($product,"options"))){
  745. $option_index = 1;
  746. foreach($product["options"] as $option){
  747. $field_label = urlencode($option["field_label"]);
  748. $option_name = urlencode($option["option_name"]);
  749. $option_fields .= "&on{$option_index}_{$product_index}={$field_label}&os{$option_index}_{$product_index}={$option_name}";
  750. $price += GFCommon::to_number($option["price"]);
  751. $option_index++;
  752. }
  753. }
  754. $name = urlencode($product["name"]);
  755. if($price > 0)
  756. {
  757. $total += $price * $product['quantity'];
  758. $product_index++;
  759. }
  760. else{
  761. $discount += abs($price) * $product['quantity'];
  762. }
  763. }
  764. if($price) $yes = 2;
  765. else $yes = 1;
  766. if(!empty($products["shipping"]["price"])) {
  767. $total += floatval($products["shipping"]["price"]);
  768. }
  769. if($discount > 0){
  770. if($discount < $total) {
  771. $total = $total-$discount;
  772. }
  773. else {
  774. $total = 0;
  775. }
  776. }
  777. else {
  778. $total = $total;
  779. }
  780. return array("total" => $total, "yes" => $yes);
  781. }
  782. public static function get_mysql_tz_offset(){
  783. $tz = get_option('gmt_offset');
  784. if ( intval($tz) < 0)
  785. $pf = "-";
  786. else
  787. $pf = "+";
  788. $tz = abs($tz) * 3600;
  789. $tz = gmdate("H:i", $tz);
  790. $tz = $pf.$tz;
  791. $today = date('Y-m-d H:i:s');
  792. $date = new DateTime($today);
  793. $tzb = get_option('gmt_offset');
  794. $tzn = abs($tzb) * 3600;
  795. $tzh = intval(gmdate("H", $tzn));
  796. $tzm = intval(gmdate("i", $tzn));
  797. if ( intval($tzb) < 0) {
  798. $date->sub(new DateInterval('P0DT'.$tzh.'H'.$tzm.'M'));
  799. }
  800. else
  801. {
  802. $date->add(new DateInterval('P0DT'.$tzh.'H'.$tzm.'M'));}
  803. $today = $date->format('Y-m-d H:i:s');
  804. $today = strtotime ($today);
  805. return array("tz" => $tz, "today" => $today);
  806. }
  807. public static function get_base_url(){
  808. return plugins_url( '', __FILE__ );
  809. }
  810. public function version(){
  811. return '1.7.1';
  812. }
  813. public function Add_HANNANStd_Field_By_HANNANStd( $field_groups ) {
  814. foreach( $field_groups as &$group ){
  815. if( $group["name"] == "advanced_fields" ){
  816. $group["fields"][] = array(
  817. "class"=>"button",
  818. "value" => "کد ملی",
  819. "onclick" => "StartAddField('mellicart');"
  820. );
  821. /*
  822. $group["fields"][] = array(
  823. "class"=>"button",
  824. "value" => "کیبورد",
  825. "onclick" => "StartAddField('keyboard');"
  826. );
  827. */
  828. break;
  829. }
  830. }
  831. return $field_groups;
  832. }
  833. public function Add_HANNANStd_Field_Title_By_HANNANStd($type) {
  834. if ($type == 'mellicart') {
  835. return 'کد ملی';
  836. }
  837. // if ($type == 'keyboard') {
  838. // return 'کیبورد';
  839. // }
  840. }
  841. public function Add_HANNANStd_Field_Label_By_HANNANStd(){
  842. ?>
  843. case "mellicart" :
  844. field.label = 'کد ملی';
  845. break;
  846. <?php /*
  847. case "keyboard" :
  848. field.label = 'کیبورد';
  849. break;
  850. <?php
  851. */
  852. }
  853. public function Add_Melli_Cart_Field_Input_By_HANNANStd($input, $field, $value, $lead_id, $form_id ){
  854. if ( $field["type"] == "mellicart" ) {
  855. $id = $field["id"];
  856. $field_id = IS_ADMIN || $form_id == 0 ? "input_$id" : "input_" . $form_id . "_$id";
  857. $form_id = IS_ADMIN && empty($form_id) ? rgget("id") : $form_id;
  858. $size = rgar($field, "size");
  859. $disabled_text = (IS_ADMIN && RG_CURRENT_VIEW != "entry") ? "disabled='disabled'" : "";
  860. $class_suffix = RG_CURRENT_VIEW == "entry" ? "_admin" : "";
  861. $class = $size . $class_suffix;
  862. $currency = "";
  863. if(RG_CURRENT_VIEW == "entry")
  864. {
  865. $lead = RGFormsModel::get_lead($lead_id);
  866. $post_id = $lead["post_id"];
  867. $post_link = "";
  868. if(is_numeric($post_id) && GFCommon::is_post_field($field))
  869. {
  870. $post_link = "You can <a href='post.php?action=edit&post=$post_id'>edit this post</a> from the post page.";
  871. }
  872. $currency = $lead["currency"];
  873. }
  874. $max_length = "";
  875. $html5_attributes = "";
  876. if(empty($html_input_type))
  877. $html_input_type = "text";
  878. $max_length = "maxlength=10";
  879. $tabindex = GFCommon::get_tabindex();
  880. return sprintf("<div class='ginput_container'><input onblur='MelliCard_Checker_Javascript_By_HANNANStd_%d(this);' name='input_%d' id='%s' type='%s' value='%s' class='melli_cart %s' $max_length $tabindex $html5_attributes %s/></div><p class='city mellicart' id='city_%d'></p>", $id, $id, $field_id, $html_input_type, esc_attr($value), esc_attr($class), $disabled_text, $id);
  881. }
  882. if ( $field["type"] == "keyboard" ) {
  883. $id = $field["id"];
  884. $field_id = IS_ADMIN || $form_id == 0 ? "input_$id" : "input_" . $form_id . "_$id";
  885. $form_id = IS_ADMIN && empty($form_id) ? rgget("id") : $form_id;
  886.  
  887. if(RG_CURRENT_VIEW == "entry")
  888. {
  889. $lead = RGFormsModel::get_lead($lead_id);
  890. $post_id = $lead["post_id"];
  891. $post_link = "";
  892. if(is_numeric($post_id) && GFCommon::is_post_field($field))
  893. {
  894. $post_link = "You can <a href='post.php?action=edit&post=$post_id'>edit this post</a> from the post page.";
  895. }
  896. }
  897. return sprintf("<input name='input_%d' id='%s' type='hidden' value=''/>", $id, $id);
  898. }
  899. return $input;
  900. }
  901. public function Add_Melli_Cart_Field_Setting_By_HANNANStd( $position, $form_id ){
  902. if( $position == 50 ){
  903. ?>
  904. <li class="mellicart_setting field_setting">
  905. <hr/>
  906. <input type="checkbox" id="field_mellicart" onclick="SetFieldProperty('field_mellicart', this.checked);" />
  907. <label for="field_mellicart" class="inline">
  908. <?php _e("نمایش زیر نویس فیلد", "Persian_Gravityforms_By_HANNANStd"); ?>
  909. <?php gform_tooltip("form_field_mellicart"); ?>
  910. </label>
  911. <br/>
  912. <input type="checkbox" id="field_mellicart_sp" onclick="SetFieldProperty('field_mellicart_sp', this.checked);" />
  913. <label for="field_mellicart_sp" class="inline">
  914. <?php _e("جدا سازی خودکار ارقام توسط خط فاصله", "Persian_Gravityforms_By_HANNANStd"); ?>
  915. <?php gform_tooltip("form_field_mellicart_sp"); ?>
  916. </label>
  917. <br/>
  918. <hr/>
  919. <label class="inline">
  920. <?php _e("متن پیغام خطا هنگامی که موارد زیر رخ دهد", "Persian_Gravityforms_By_HANNANStd"); ?>
  921. <?php gform_tooltip("form_field_mellicart_header"); ?>
  922. </label>
  923. <br/>
  924. <br/>
  925. <label for="field_mellicart_sp1" class="inline">
  926. <?php _e("مقدار وارد شده شامل کاراکتر غیر عددی باشد", "Persian_Gravityforms_By_HANNANStd"); ?>
  927. <?php gform_tooltip("form_field_mellicart_sp1"); ?>
  928. </label>
  929. <br/>
  930. <input type="text" id="field_mellicart_sp1" size="35" onkeyup="SetFieldProperty('field_mellicart_sp1', this.value);" />
  931. <br/>
  932. <label for="field_mellicart_sp2" class="inline">
  933. <?php _e("تعداد ارقام وارد شده استاندارد نباشد", "Persian_Gravityforms_By_HANNANStd"); ?>
  934. <?php gform_tooltip("form_field_mellicart_sp2"); ?>
  935. </label>
  936. <br/>
  937. <input type="text" id="field_mellicart_sp2" size="35" onkeyup="SetFieldProperty('field_mellicart_sp2', this.value);" />
  938. <br/>
  939. <label for="field_mellicart_sp3" class="inline">
  940. <?php _e("کد ملی وارد شده قبلا ثبت شده باشد", "Persian_Gravityforms_By_HANNANStd"); ?>
  941. <?php gform_tooltip("form_field_mellicart_sp3"); ?>
  942. </label>
  943. <br/>
  944. <input type="text" id="field_mellicart_sp3" size="35" onkeyup="SetFieldProperty('field_mellicart_sp3', this.value);" />
  945. <br/>
  946. <label for="field_mellicart_sp4" class="inline">
  947. <?php _e("کد ملی وارد شده مطابق با الگوی ملی نباشد", "Persian_Gravityforms_By_HANNANStd"); ?>
  948. <?php gform_tooltip("form_field_mellicart_sp4"); ?>
  949. </label>
  950. <br/>
  951. <input type="text" id="field_mellicart_sp4" size="35" onkeyup="SetFieldProperty('field_mellicart_sp4', this.value);" />
  952. <hr/>
  953. </li>
  954. <?php
  955. }
  956. }
  957. public function Add_Melli_Cart_Field_Class_By_HANNANStd($classes, $field, $form){
  958. if( $field["type"] == "mellicart" ){
  959. $classes .= " gform_mellicart";
  960. }
  961. return $classes;
  962. }
  963. public function Add_Melli_Cart_PHP_Checker_By_HANNANStd($meli_code='',$setting){
  964. if (!empty($meli_code)) {
  965. if ($setting == 1) {
  966. $meli_code = str_replace('-','',$meli_code);
  967. }
  968. if($meli_code == '1111111111' ||
  969. $meli_code == '0000000000' ||
  970. $meli_code == '2222222222' ||
  971. $meli_code == '3333333333' ||
  972. $meli_code == '4444444444' ||
  973. $meli_code == '5555555555' ||
  974. $meli_code == '6666666666' ||
  975. $meli_code == '7777777777' ||
  976. $meli_code == '8888888888' ||
  977. $meli_code == '9999999999')
  978. {
  979. return 2;
  980. }
  981. if(!is_numeric($meli_code))
  982. return 4;
  983. $meli_code = (string) preg_replace('/[^0-9]/','',$meli_code);
  984. if(strlen($meli_code)>10 or strlen($meli_code)<8)
  985. return 3;
  986. if(strlen($meli_code)==8)
  987. $meli_code = "00".$meli_code;
  988. if(strlen($meli_code)==9)
  989. $meli_code = "0".$meli_code;
  990. $list_code = str_split($meli_code);
  991. $last = (int) $list_code[9];
  992. unset($list_code[9]);
  993. $i = 10;
  994. $sum = 0;
  995. foreach($list_code as $key=>$_)
  996. {
  997. $sum += intval($_) * $i;$i--;
  998. }
  999. $mod =(int) $sum % 11;
  1000. if($mod >= 2)
  1001. $mod = 11 - $mod;
  1002. if ($mod != $last)
  1003. return 2;
  1004. else
  1005. return 1;
  1006. }
  1007. return;
  1008. }
  1009. public function Add_Melli_Cart_Field_JavaScript_Checker_By_HANNANStd($content, $field, $value, $lead_id, $form_id){
  1010. if ( $field["type"] == "mellicart" && (rgget("field_mellicart", $field) || rgget("field_mellicart_sp", $field) ) && !IS_ADMIN )
  1011. {
  1012. $pm1= rgget("field_mellicart_sp1", $field);
  1013. $pm2= rgget("field_mellicart_sp2", $field);
  1014. $pm3= rgget("field_mellicart_sp4", $field);
  1015. ?>
  1016. <script>
  1017. function MelliCard_Checker_Javascript_By_HANNANStd_<?php echo $field["id"]; ?>(meli_code) {
  1018. if (meli_code.value == '')
  1019. {
  1020. return false;
  1021. }
  1022. <?php
  1023. if(rgget("field_mellicart_sp", $field)) { ?>
  1024. meli_code.value = meli_code.value.replace("-", "").replace("-", "");
  1025. <?php
  1026. }
  1027. if(rgget("field_mellicart", $field)) {?>
  1028. if (isNaN(meli_code.value)) {
  1029. <?php
  1030. if ($pm1)
  1031. {
  1032. ?>
  1033. var pm1 = "<?php echo $pm1 ?>";
  1034. <?php
  1035. }
  1036. else
  1037. { ?>
  1038. var pm1 = "کد ملی فقط باید به صورت عدد وارد شود . ";
  1039. <?php
  1040. } ?>
  1041. document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm1;
  1042. return false;
  1043. }
  1044. if (meli_code.value == '0000000000' ||
  1045. meli_code.value == '1111111111' ||
  1046. meli_code.value == '2222222222' ||
  1047. meli_code.value == '3333333333' ||
  1048. meli_code.value == '4444444444' ||
  1049. meli_code.value == '5555555555' ||
  1050. meli_code.value == '6666666666' ||
  1051. meli_code.value == '7777777777' ||
  1052. meli_code.value == '8888888888' ||
  1053. meli_code.value == '9999999999') {
  1054. <?php
  1055. if ($pm3)
  1056. {
  1057. ?>
  1058. var pm3 = "<?php echo $pm3 ?>";
  1059. <?php
  1060. }
  1061. else
  1062. {
  1063. ?>
  1064. var pm3 = 'کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .';
  1065. <?php
  1066. }
  1067. ?>
  1068. document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm3;
  1069. return false;
  1070. }
  1071. if (meli_code.value.length > 10 || meli_code.value.length < 8)
  1072. {
  1073. <?php
  1074. if ($pm2)
  1075. {
  1076. ?>
  1077. var pm2 = "<?php echo $pm2 ?>";
  1078. <?php
  1079. }
  1080. else
  1081. {
  1082. ?>
  1083. var pm2 = 'کد ملی می بایست 10 رقمی باشد . تنها در صورتی مجاز به استفاده از کد های 8 یا 9 رقمی هستید که ارقام سمت چپ 0 باشند . ';
  1084. <?php
  1085. }
  1086. ?>
  1087. document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm2;
  1088. return false;
  1089. }
  1090. <?php
  1091. }
  1092. ?>
  1093. if (meli_code.value.length == 8) {
  1094. meli_code.value = "00"+meli_code.value;
  1095. }
  1096. if (meli_code.value.length == 9) {
  1097. meli_code.value = "0"+meli_code.value;
  1098. }
  1099. city = meli_code.value.substring(0,3);
  1100. c = parseInt(meli_code.value.charAt(9));
  1101. n = parseInt(meli_code.value.charAt(0)) * 10 +
  1102. parseInt(meli_code.value.charAt(1)) * 9 +
  1103. parseInt(meli_code.value.charAt(2)) * 8 +
  1104. parseInt(meli_code.value.charAt(3)) * 7 +
  1105. parseInt(meli_code.value.charAt(4)) * 6 +
  1106. parseInt(meli_code.value.charAt(5)) * 5 +
  1107. parseInt(meli_code.value.charAt(6)) * 4 +
  1108. parseInt(meli_code.value.charAt(7)) * 3 +
  1109. parseInt(meli_code.value.charAt(8)) * 2;
  1110. r = n - parseInt(n / 11) * 11;
  1111. if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
  1112. {
  1113. <?php
  1114. if(rgget("field_mellicart", $field))
  1115. {
  1116. ?>
  1117. if(city=="169")cityN="استان آذربايجان شرقي - شهر آذر شهر";if(city=="170")cityN="استان آذربايجان شرقي - شهر اسکو";if(city=="149"||city=="150")cityN="استان آذربايجان شرقي - شهر اهر";if(city=="171")cityN="استان آذربايجان شرقي - شهر بستان آباد";if(city=="168")cityN="استان آذربايجان شرقي - شهر بناب";if(city=="136"||city=="137"||city=="138")cityN="استان آذربايجان شرقي - شهر تبريز";if(city=="545")cityN="استان آذربايجان شرقي - شهر ترکمانچاي";if(city=="505")cityN="استان آذربايجان شرقي - شهر جلفا";if(city=="636")cityN="استان آذربايجان شرقي - شهر چاروايماق";if(city=="164"||city=="165")cityN="استان آذربايجان شرقي - شهر سراب";if(city=="172")cityN="استان آذربايجان شرقي - شهر شبستر";if(city=="623")cityN="استان آذربايجان شرقي - شهر صوفيان";if(city=="506")cityN="استان آذربايجان شرقي - شهر عجب شير";if(city=="519")cityN="استان آذربايجان شرقي - شهر کليبر";if(city=="154"||city=="155")cityN="استان آذربايجان شرقي - شهر مراغه";if(city=="567")cityN="استان آذربايجان شرقي - شهر ورزقان";if(city=="173")cityN="استان آذربايجان شرقي - شهر هريس";if(city=="159"||city=="160")cityN="استان آذربايجان شرقي - شهر هشترود";if(city=="604")cityN="استان آذربايجان شرقي - شهر هوراند";if(city=="274"||city=="275")cityN="استان آذربايجان غربي - شهر اروميه";if(city=="295")cityN="استان آذربايجان غربي - شهر اشنويه";if(city=="637")cityN="استان آذربايجان غربي - شهر انزل";if(city=="292")cityN="استان آذربايجان غربي - شهر بوکان";if(city=="492")cityN="استان آذربايجان غربي - شهر پلدشت";if(city=="289")cityN="استان آذربايجان غربي - شهر پيرانشهر";if(city=="677")cityN="استان آذربايجان غربي - شهر تخت سليمان";if(city=="294")cityN="استان آذربايجان غربي - شهر تکاب";if(city=="493")cityN="استان آذربايجان غربي - شهر چايپاره";if(city=="279"||city=="280")cityN="استان آذربايجان غربي - شهر خوي";if(city=="288")cityN="استان آذربايجان غربي - شهر سردشت";if(city=="284"||city=="285")cityN="استان آذربايجان غربي - شهر سلماس";if(city=="638")cityN="استان آذربايجان غربي - شهر سيلوانه";if(city=="291")cityN="استان آذربايجان غربي - شهر سيه چشمه(چالدران)";if(city=="640")cityN="استان آذربايجان غربي - شهر شوط";if(city=="293")cityN="استان آذربايجان غربي - شهر شاهين دژ";if(city=="675")cityN="استان آذربايجان غربي - شهر کشاورز";if(city=="282"||city=="283")cityN="استان آذربايجان غربي - شهر ماکو";if(city=="286"||city=="287")cityN="استان آذربايجان غربي - شهر مهاباد";if(city=="296"||city=="297")cityN="استان آذربايجان غربي - شهر مياندوآب";if(city=="290")cityN="استان آذربايجان غربي - شهر نقده";if(city=="400"||city=="401")cityN="استان همدان - شهر اسدآباد";if(city=="404"||city=="405")cityN="استان همدان - شهر بهار";if(city=="397")cityN="استان همدان - شهر تويسرکان";if(city=="398"||city=="399")cityN="استان همدان - شهر رزن";if(city=="647")cityN="استان همدان - شهر شراء و پيشخوار";if(city=="502")cityN="استان همدان - شهر فامنين";if(city=="584")cityN="استان همدان - شهر قلقل رود";if(city=="402"||city=="403")cityN="استان همدان - شهر کبودرآهنگ";if(city=="392"||city=="393")cityN="استان همدان - شهر ملاير";if(city=="395"||city=="396")cityN="استان همدان - شهر نهاوند";if(city=="386"||city=="387")cityN="استان همدان - شهر همدان";if(city=="503")cityN="استان يزد - شهر ابرکوه";if(city=="444")cityN="استان يزد - شهر اردکان";if(city=="551")cityN="استان يزد - شهر اشکذر";if(city=="447")cityN="استان يزد - شهر بافق";if(city=="561")cityN="استان يزد - شهر بهاباد";if(city=="445")cityN="استان يزد - شهر تفت";if(city=="718")cityN="استان يزد - شهر دستگردان";if(city=="083")cityN="استان يزد - شهر طبس";if(city=="446")cityN="استان يزد - شهر مهريز";if(city=="448")cityN="استان يزد - شهر ميبد";if(city=="552")cityN="استان يزد - شهر نير";if(city=="543")cityN="استان يزد - شهر هرات و مروست";if(city=="442"||city=="443")cityN="استان يزد - شهر يزد";if(city=="051")cityN="استان مرکزي - شهر آشتيان";if(city=="052"||city=="053")cityN="استان مرکزي - شهر اراک";if(city=="058")cityN="استان مرکزي - شهر تفرش";if(city=="055")cityN="استان مرکزي - شهر خمين";if(city=="617")cityN="استان مرکزي - شهر خنداب";if(city=="057")cityN="استان مرکزي - شهر دليجان";if(city=="618")cityN="استان مرکزي - شهر زرند مرکزي";if(city=="059"||city=="060")cityN="استان مرکزي - شهر ساوه";if(city=="061"||city=="062")cityN="استان مرکزي - شهر سربند";if(city=="544")cityN="استان مرکزي - شهر فراهان";if(city=="056")cityN="استان مرکزي - شهر محلات";if(city=="571")cityN="استان مرکزي - شهر وفس";if(city=="593")cityN="استان مرکزي - شهر هندودر";if(city=="667")cityN="استان هرمزگان - شهر ابوموسي";if(city=="348")cityN="استان هرمزگان - شهر بستک";if(city=="586")cityN="استان هرمزگان - شهر بشاگرد";if(city=="338"||city=="339")cityN="استان هرمزگان - شهر بندرعباس";if(city=="343"||city=="344")cityN="استان هرمزگان - شهر بندرلنگه";if(city=="346")cityN="استان هرمزگان - شهر جاسک";if(city=="337")cityN="استان هرمزگان - شهر حاجي آباد";if(city=="554")cityN="استان هرمزگان - شهر خمير";if(city=="469")cityN="استان هرمزگان - شهر رودان";if(city=="537")cityN="استان هرمزگان - شهر فين";if(city=="345")cityN="استان هرمزگان - شهر قشم";if(city=="470")cityN="استان هرمزگان - شهر گاوبندي";if(city=="341"||city=="342")cityN="استان هرمزگان - شهر ميناب";if(city=="483"||city=="484")cityN="استان لرستان - شهر ازنا";if(city=="557")cityN="استان لرستان - شهر اشترينان";if(city=="418")cityN="استان لرستان - شهر الشتر";if(city=="416"||city=="417")cityN="استان لرستان - شهر اليگودرز";if(city=="412"||city=="413")cityN="استان لرستان - شهر بروجرد";if(city=="592")cityN="استان لرستان - شهر پاپي";if(city=="612")cityN="استان لرستان - شهر چغلوندي";if(city=="613")cityN="استان لرستان - شهر چگني";if(city=="406"||city=="407")cityN="استان لرستان - شهر خرم آباد";if(city=="421")cityN="استان لرستان - شهر دورود";if(city=="598")cityN="استان لرستان - شهر رومشکان";if(city=="419")cityN="استان لرستان - شهر کوهدشت";if(city=="385")cityN="استان لرستان - شهر ملاوي(پلدختر)";if(city=="420")cityN="استان لرستان - شهر نورآباد(دلفان)";if(city=="528")cityN="استان لرستان - شهر ويسيان";if(city=="213"||city=="214")cityN="استان مازندران - شهر آمل";if(city=="205"||city=="206")cityN="استان مازندران - شهر بابل";if(city=="498")cityN="استان مازندران - شهر بابل";if(city=="568")cityN="استان مازندران - شهر بندپي";if(city=="711")cityN="استان مازندران - شهر بندپي شرقي";if(city=="217"||city=="218")cityN="استان مازندران - شهر بهشهر";if(city=="221")cityN="استان مازندران - شهر تنکابن";if(city=="582")cityN="استان مازندران - شهر جويبار";if(city=="483")cityN="استان مازندران - شهر چالوس";if(city=="625")cityN="استان مازندران - شهر چمستان";if(city=="576")cityN="استان مازندران - شهر چهاردانگه";if(city=="578")cityN="استان مازندران - شهر دودانگه";if(city=="227")cityN="استان مازندران - شهر رامسر";if(city=="208"||city=="209")cityN="استان مازندران - شهر ساري";if(city=="225")cityN="استان مازندران - شهر سوادکوه";if(city=="577")cityN="استان مازندران - شهر شيرگاه";if(city=="712")cityN="استان مازندران - شهر عباس آباد";if(city=="215"||city=="216")cityN="استان مازندران - شهر قائمشهر";if(city=="626")cityN="استان مازندران - شهر کجور";if(city=="627")cityN="استان مازندران - شهر کلاردشت";if(city=="579")cityN="استان مازندران - شهر گلوگاه";if(city=="713")cityN="استان مازندران - شهر مياندورود";if(city=="499")cityN="استان مازندران - شهر نکاء";if(city=="222")cityN="استان مازندران - شهر نور";if(city=="219"||city=="220")cityN="استان مازندران - شهر نوشهر";if(city=="500"||city=="501")cityN="استان مازندران - شهر هراز و محمودآباد";if(city=="623")cityN="استان گلستان - شهر آزادشهر";if(city=="497")cityN="استان گلستان - شهر آق قلا";if(city=="223")cityN="استان گلستان - شهر بندرترکمن";if(city=="689")cityN="استان گلستان - شهر بندرگز";if(city=="487")cityN="استان گلستان - شهر راميان";if(city=="226")cityN="استان گلستان - شهر علي آباد";if(city=="224")cityN="استان گلستان - شهر کردکوي";if(city=="386")cityN="استان گلستان - شهر کلاله";if(city=="211"||city=="212")cityN="استان گلستان - شهر گرگان";if(city=="628")cityN="استان گلستان - شهر گميشان";if(city=="202"||city=="203")cityN="استان گلستان - شهر گنبد کاووس";if(city=="531")cityN="استان گلستان - شهر مراوه تپه";if(city=="288")cityN="استان گلستان - شهر مينودشت";if(city=="261")cityN="استان گيلان - شهر آستارا";if(city=="273")cityN="استان گيلان - شهر آستانه";if(city=="630")cityN="استان گيلان - شهر املش";if(city=="264")cityN="استان گيلان - شهر بندرانزلي";if(city=="518")cityN="استان گيلان - شهر خمام";if(city=="631")cityN="استان گيلان - شهر رحيم آباد";if(city=="258"||city=="259")cityN="استان گيلان - شهر رشت";if(city=="570")cityN="استان گيلان - شهر رضوانشهر";if(city=="265")cityN="استان گيلان - شهر رودبار";if(city=="268"||city=="269")cityN="استان گيلان - شهر رودسر";if(city=="653")cityN="استان گيلان - شهر سنگر";if(city=="517")cityN="استان گيلان - شهر سياهکل";if(city=="569")cityN="استان گيلان - شهر شفت";if(city=="267")cityN="استان گيلان - شهر صومعه سرا";if(city=="262"||city=="263")cityN="استان گيلان - شهر طالش";if(city=="593")cityN="استان گيلان - شهر عمارلو";if(city=="266")cityN="استان گيلان - شهر فومن";if(city=="693")cityN="استان گيلان - شهر کوچصفهان";if(city=="271"||city=="272")cityN="استان گيلان - شهر لاهيجان";if(city=="694")cityN="استان گيلان - شهر لشت نشاء";if(city=="270")cityN="استان گيلان - شهر لنگرود";if(city=="516")cityN="استان گيلان - شهر ماسال و شاندرمن";if(city=="333"||city=="334")cityN="استان کرمانشاه - شهر اسلام آباد";if(city=="691")cityN="استان کرمانشاه - شهر باينگان";if(city=="322"||city=="323")cityN="استان کرمانشاه - شهر پاوه";if(city=="595")cityN="استان کرمانشاه - شهر ثلاث باباجاني";if(city=="395")cityN="استان کرمانشاه - شهر جوانرود";if(city=="641")cityN="استان کرمانشاه - شهر حميل";if(city=="596")cityN="استان کرمانشاه - شهر روانسر";if(city=="336")cityN="استان کرمانشاه - شهر سرپل ذهاب";if(city=="335")cityN="استان کرمانشاه - شهر سنقر";if(city=="496")cityN="استان کرمانشاه - شهر صحنه";if(city=="337")cityN="استان کرمانشاه - شهر قصرشيرين";if(city=="324"||city=="325")cityN="استان کرمانشاه - شهر کرمانشاه";if(city=="394")cityN="استان کرمانشاه - شهر کرند";if(city=="330")cityN="استان کرمانشاه - شهر کنگاور";if(city=="332")cityN="استان کرمانشاه - شهر گيلانغرب";if(city=="331")cityN="استان کرمانشاه - شهر هرسين";if(city=="687")cityN="استان کهکيلويه و بويراحمد - شهر باشت";if(city=="422"||city=="423")cityN="استان کهکيلويه و بويراحمد - شهر بويراحمد(ياسوج)";if(city=="599")cityN="استان کهکيلويه و بويراحمد - شهر بهمني";if(city=="600")cityN="استان کهکيلويه و بويراحمد - شهر چاروسا";if(city=="688")cityN="استان کهکيلويه و بويراحمد - شهر دروهان";if(city=="424"||city=="425")cityN="استان کهکيلويه و بويراحمد - شهر کهکيلويه(دهدشت)";if(city=="426")cityN="استان کهکيلويه و بويراحمد - شهر گچساران(دوگنبدان)";if(city=="550")cityN="استان کهکيلويه و بويراحمد - شهر لنده";if(city=="697")cityN="استان کهکيلويه و بويراحمد - شهر مارگون";if(city=="384")cityN="استان کردستان - شهر بانه";if(city=="377"||city=="378")cityN="استان کردستان - شهر بيجار";if(city=="558")cityN="استان کردستان - شهر دهگلان";if(city=="385")cityN="استان کردستان - شهر ديواندره";if(city=="646")cityN="استان کردستان - شهر سروآباد";if(city=="375"||city=="376")cityN="استان کردستان - شهر سقز";if(city=="372"||city=="373")cityN="استان کردستان - شهر سنندج";if(city=="379"||city=="380")cityN="استان کردستان - شهر قروه";if(city=="383")cityN="استان کردستان - شهر کامياران";if(city=="674")cityN="استان کردستان - شهر کراني";if(city=="381"||city=="382")cityN="استان کردستان - شهر مريوان";if(city=="676")cityN="استان کردستان - شهر نمشير";if(city=="722")cityN="استان کرمان - شهر ارزونيه";if(city=="542")cityN="استان کرمان - شهر انار";if(city=="312"||city=="313")cityN="استان کرمان - شهر بافت";if(city=="317")cityN="استان کرمان - شهر بردسير";if(city=="310"||city=="311")cityN="استان کرمان - شهر بم";if(city=="302"||city=="303")cityN="استان کرمان - شهر جيرفت";if(city=="583")cityN="استان کرمان - شهر رابر";if(city=="321")cityN="استان کرمان - شهر راور";if(city=="382")cityN="استان کرمان - شهر راين";if(city=="304"||city=="305")cityN="استان کرمان - شهر رفسنجان";if(city=="536")cityN="استان کرمان - شهر رودبار کهنوج";if(city=="605")cityN="استان کرمان - شهر ريگان";if(city=="308"||city=="309")cityN="استان کرمان - شهر زرند";if(city=="306"||city=="307")cityN="استان کرمان - شهر سيرجان";if(city=="319")cityN="استان کرمان - شهر شهداد";if(city=="313"||city=="314")cityN="استان کرمان - شهر شهربابک";if(city=="606")cityN="استان کرمان - شهر عنبرآباد";if(city=="320")cityN="استان کرمان - شهر فهرج";if(city=="698")cityN="استان کرمان - شهر قلعه گنج";if(city=="298"||city=="299")cityN="استان کرمان - شهر کرمان";if(city=="535")cityN="استان کرمان - شهر کوهبنان";if(city=="315"||city=="316")cityN="استان کرمان - شهر کهنوج";if(city=="318")cityN="استان کرمان - شهر گلباف";if(city=="607")cityN="استان کرمان - شهر ماهان";if(city=="608")cityN="استان کرمان - شهر منوجان";if(city=="508")cityN="استان قزوين - شهر آبيک";if(city=="538")cityN="استان قزوين - شهر آوج";if(city=="728")cityN="استان قزوين - شهر البرز";if(city=="509")cityN="استان قزوين - شهر بوئين زهرا";if(city=="438"||city=="439")cityN="استان قزوين - شهر تاکستان";if(city=="580")cityN="استان قزوين - شهر رودبار الموت";if(city=="590")cityN="استان قزوين - شهر رودبار شهرستان";if(city=="559")cityN="استان قزوين - شهر ضياءآباد";if(city=="588")cityN="استان قزوين - شهر طارم سفلي";if(city=="431"||city=="432")cityN="استان قزوين - شهر قزوين";if(city=="037"||city=="038")cityN="استان قم - شهر قم";if(city=="702")cityN="استان قم - شهر کهک";if(city=="240"||city=="241")cityN="استان فارس - شهر آباده";if(city=="670")cityN="استان فارس - شهر آباده طشک";if(city=="648")cityN="استان فارس - شهر ارسنجان";if(city=="252")cityN="استان فارس - شهر استهبان";if(city=="678")cityN="استان فارس - شهر اشکنان";if(city=="253")cityN="استان فارس - شهر اقليد";if(city=="649")cityN="استان فارس - شهر اوز";if(city=="513")cityN="استان فارس - شهر بوانات";if(city=="546")cityN="استان فارس - شهر بيضا";if(city=="671")cityN="استان فارس - شهر جويم";if(city=="246"||city=="247")cityN="استان فارس - شهر جهرم";if(city=="654")cityN="استان فارس - شهر حاجي آباد(زرين دشت)";if(city=="548")cityN="استان فارس - شهر خرامه";if(city=="547")cityN="استان فارس - شهر خشت و کمارج";if(city=="655")cityN="استان فارس - شهر خفر";if(city=="248"||city=="249")cityN="استان فارس - شهر داراب";if(city=="253")cityN="استان فارس - شهر سپيدان";if(city=="514")cityN="استان فارس - شهر سروستان";if(city=="665")cityN="استان فارس - شهر سعادت آباد";if(city=="673")cityN="استان فارس - شهر شيبکوه";if(city=="228"||city=="229"||city=="230")cityN="استان فارس - شهر شيراز";if(city=="679")cityN="استان فارس - شهر فراشبند";if(city=="256"||city=="257")cityN="استان فارس - شهر فسا";if(city=="244"||city=="245")cityN="استان فارس - شهر فيروزآباد";if(city=="681")cityN="استان فارس - شهر قنقري(خرم بيد)";if(city=="723")cityN="استان فارس - شهر قيروکارزين";if(city=="236"||city=="237")cityN="استان فارس - شهر کازرون";if(city=="683")cityN="استان فارس - شهر کوار";if(city=="656")cityN="استان فارس - شهر کراش";if(city=="250"||city=="251")cityN="استان فارس - شهر لارستان";if(city=="515")cityN="استان فارس - شهر لامرد";if(city=="242"||city=="243")cityN="استان فارس - شهر مرودشت";if(city=="238"||city=="239")cityN="استان فارس - شهر ممسني";if(city=="657")cityN="استان فارس - شهر مهر";if(city=="255")cityN="استان فارس - شهر ني ريز";if(city=="684")cityN="استان سمنان - شهر ايوانکي";if(city=="700")cityN="استان سمنان - شهر بسطام";if(city=="642")cityN="استان سمنان - شهر بيارجمند";if(city=="457")cityN="استان سمنان - شهر دامغان";if(city=="456")cityN="استان سمنان - شهر سمنان";if(city=="458"||city=="459")cityN="استان سمنان - شهر شاهرود";if(city=="460")cityN="استان سمنان - شهر گرمسار";if(city=="530")cityN="استان سمنان - شهر مهديشهر";if(city=="520")cityN="استان سمنان - شهر ميامي";if(city=="358"||city=="359")cityN="استان سيستان و بلوچستان - شهر ايرانشهر";if(city=="682")cityN="استان سيستان و بلوچستان - شهر بزمان";if(city=="703")cityN="استان سيستان و بلوچستان - شهر بمپور";if(city=="364"||city=="365")cityN="استان سيستان و بلوچستان - شهر چابهار";if(city=="371")cityN="استان سيستان و بلوچستان - شهر خاش";if(city=="701")cityN="استان سيستان و بلوچستان - شهر دشتياري";if(city=="720")cityN="استان سيستان و بلوچستان - شهر راسک";if(city=="366"||city=="367")cityN="استان سيستان و بلوچستان - شهر زابل";if(city=="704")cityN="استان سيستان و بلوچستان - شهر زابلي";if(city=="361"||city=="362")cityN="استان سيستان و بلوچستان - شهر زاهدان";if(city=="369"||city=="370")cityN="استان سيستان و بلوچستان - شهر سراوان";if(city=="635")cityN="استان سيستان و بلوچستان - شهر سرباز";if(city=="668")cityN="استان سيستان و بلوچستان - شهر سيب و سوران";if(city=="533")cityN="استان سيستان و بلوچستان - شهر شهرکي و ناروئي(زهک)";if(city=="705")cityN="استان سيستان و بلوچستان - شهر شيب آب";if(city=="699")cityN="استان سيستان و بلوچستان - شهر فنوج";if(city=="669")cityN="استان سيستان و بلوچستان - شهر قصرقند";if(city=="725")cityN="استان سيستان و بلوچستان - شهر کنارک";if(city=="597")cityN="استان سيستان و بلوچستان - شهر لاشار(اسپکه)";if(city=="611")cityN="استان سيستان و بلوچستان - شهر ميرجاوه";if(city=="525")cityN="استان سيستان و بلوچستان - شهر نيک شهر";if(city=="181")cityN="استان خوزستان - شهر آبادان";if(city=="527")cityN="استان خوزستان - شهر آغاجاري";if(city=="585")cityN="استان خوزستان - شهر اروندکنار";if(city=="685")cityN="استان خوزستان - شهر اميديه";if(city=="663")cityN="استان خوزستان - شهر انديکا";if(city=="192"||city=="193")cityN="استان خوزستان - شهر انديمشک";if(city=="174"||city=="175")cityN="استان خوزستان - شهر اهواز";if(city=="183"||city=="184")cityN="استان خوزستان - شهر ايذه";if(city=="481")cityN="استان خوزستان - شهر باغ ملک";if(city=="706")cityN="استان خوزستان - شهر بندر امام خميني";if(city=="194"||city=="195")cityN="استان خوزستان - شهر بندرماهشهر";if(city=="185"||city=="186")cityN="استان خوزستان - شهر بهبهان";if(city=="182")cityN="استان خوزستان - شهر خرمشهر";if(city=="199"||city=="200")cityN="استان خوزستان - شهر دزفول";if(city=="198")cityN="استان خوزستان - شهر دشت آزادگان";if(city=="662")cityN="استان خوزستان - شهر رامشير";if(city=="190"||city=="191")cityN="استان خوزستان - شهر رامهرمز";if(city=="692")cityN="استان خوزستان - شهر سردشت";if(city=="189")cityN="استان خوزستان - شهر شادگان";if(city=="707")cityN="استان خوزستان - شهر شاوور";if(city=="526")cityN="استان خوزستان - شهر شوش";if(city=="187"||city=="188")cityN="استان خوزستان - شهر شوشتر";if(city=="729")cityN="استان خوزستان - شهر گتوند";if(city=="730")cityN="استان خوزستان - شهر لالي";if(city=="196"||city=="197")cityN="استان خوزستان - شهر مسجدسليمان";if(city=="661")cityN="استان خوزستان - شهر هنديجان";if(city=="680")cityN="استان خوزستان - شهر هويزه";if(city=="643")cityN="استان خراسان رضوي - شهر احمدآباد";if(city=="562")cityN="استان خراسان رضوي - شهر بجستان";if(city=="572")cityN="استان خراسان رضوي - شهر بردسکن";if(city=="074")cityN="استان خراسان رضوي - شهر تايباد";if(city=="644")cityN="استان خراسان رضوي - شهر تخت جلگه";if(city=="072"||city=="073")cityN="استان خراسان رضوي - شهر تربت جام";if(city=="069"||city=="070")cityN="استان خراسان رضوي - شهر تربت حيدريه";if(city=="521")cityN="استان خراسان رضوي - شهر جغتاي";if(city=="573")cityN="استان خراسان رضوي - شهر جوين";if(city=="522")cityN="استان خراسان رضوي - شهر چناران";if(city=="724")cityN="استان خراسان رضوي - شهر خليل آباد";if(city=="076")cityN="استان خراسان رضوي - شهر خواف";if(city=="077")cityN="استان خراسان رضوي - شهر درگز";if(city=="650")cityN="استان خراسان رضوي - شهر رشتخوار";if(city=="574")cityN="استان خراسان رضوي - شهر زبرخان";if(city=="078"||city=="079")cityN="استان خراسان رضوي - شهر سبزوار";if(city=="081")cityN="استان خراسان رضوي - شهر سرخس";if(city=="084")cityN="استان خراسان رضوي - شهر فريمان";if(city=="651")cityN="استان خراسان رضوي - شهر فيض آباد";if(city=="086"||city=="087")cityN="استان خراسان رضوي - شهر قوچان";if(city=="089"||city=="090")cityN="استان خراسان رضوي - شهر کاشمر";if(city=="553")cityN="استان خراسان رضوي - شهر کلات";if(city=="091")cityN="استان خراسان رضوي - شهر گناباد";if(city=="092"||city=="093"||city=="094")cityN="استان خراسان رضوي - شهر مشهد";if(city=="097")cityN="استان خراسان رضوي - شهر مشهد منطقه2";if(city=="098")cityN="استان خراسان رضوي - شهر مشهد منطقه3";if(city=="096")cityN="استان خراسان رضوي - شهر مشهد منطقه1";if(city=="105"||city=="106")cityN="استان خراسان رضوي - شهر نيشابور";if(city=="063")cityN="استان خراسان شمالي - شهر اسفراين";if(city=="067"||city=="068")cityN="استان خراسان شمالي - شهر بجنورد";if(city=="075")cityN="استان خراسان شمالي - شهر جاجرم";if(city=="591")cityN="استان خراسان شمالي - شهر رازوجرکلان";if(city=="082")cityN="استان خراسان شمالي - شهر شيروان";if(city=="635")cityN="استان خراسان شمالي - شهر فاروج";if(city=="524")cityN="استان خراسان شمالي - شهر مانه و سملقان";if(city=="468")cityN="استان چهارمحال و بختياري - شهر اردل";if(city=="465")cityN="استان چهارمحال و بختياري - شهر بروجن";if(city=="461"||city=="462")cityN="استان چهارمحال و بختياري - شهر شهرکرد";if(city=="467")cityN="استان چهارمحال و بختياري - شهر فارسان";if(city=="555")cityN="استان چهارمحال و بختياري - شهر کوهرنگ";if(city=="633")cityN="استان چهارمحال و بختياري - شهر کيار";if(city=="629")cityN="استان چهارمحال و بختياري - شهر گندمان";if(city=="466")cityN="استان چهارمحال و بختياري - شهر لردگان";if(city=="696")cityN="استان چهارمحال و بختياري - شهر ميانکوه";if(city=="721")cityN="استان خراسان جنوبي - شهر بشرويه";if(city=="064"||city=="065")cityN="استان خراسان جنوبي - شهر بيرجند";if(city=="523")cityN="استان خراسان جنوبي - شهر درميان";if(city=="652")cityN="استان خراسان جنوبي - شهر زيرکوه";if(city=="719")cityN="استان خراسان جنوبي - شهر سرايان";if(city=="716")cityN="استان خراسان جنوبي - شهر سربيشه";if(city=="085")cityN="استان خراسان جنوبي - شهر فردوس";if(city=="088")cityN="استان خراسان جنوبي - شهر قائنات";if(city=="563")cityN="استان خراسان جنوبي - شهر نهبندان";if(city=="529")cityN="استان بوشهر - شهر بندر ديلم";if(city=="353")cityN="استان بوشهر - شهر بندر گناوه";if(city=="349"||city=="350")cityN="استان بوشهر - شهر بوشهر";if(city=="355")cityN="استان بوشهر - شهر تنگستان";if(city=="609")cityN="استان بوشهر - شهر جم";if(city=="351"||city=="352")cityN="استان بوشهر - شهر دشتستان";if(city=="354")cityN="استان بوشهر - شهر دشتي";if(city=="732")cityN="استان بوشهر - شهر دلوار";if(city=="357")cityN="استان بوشهر - شهر دير";if(city=="532")cityN="استان بوشهر - شهر سعد آباد";if(city=="610")cityN="استان بوشهر - شهر شبانکاره";if(city=="356")cityN="استان بوشهر - شهر کنگان";if(city=="556")cityN="استان تهران - شهر اسلامشهر";if(city=="658")cityN="استان تهران - شهر پاکدشت";if(city=="001"||city=="002"||city=="003"||city=="004"||city=="005"||city=="006"||city=="007"||city=="008")cityN="استان تهران - شهر تهران مرکزي";if(city=="011")cityN="استان تهران - شهر تهران جنوب";if(city=="020")cityN="استان تهران - شهر تهران شرق";if(city=="025")cityN="استان تهران - شهر تهرانشمال";if(city=="015")cityN="استان تهران - شهر تهران غرب";if(city=="043")cityN="استان تهران - شهر دماوند";if(city=="666")cityN="استان تهران - شهر رباط کريم";if(city=="489")cityN="استان تهران - شهر ساوجبلاغ";if(city=="044"||city=="045")cityN="استان تهران - شهر شميران";if(city=="048"||city=="049")cityN="استان تهران - شهر شهرري";if(city=="490"||city=="491")cityN="استان تهران - شهر شهريار";if(city=="695")cityN="استان تهران - شهر طالقان";if(city=="659")cityN="استان تهران - شهر فيروزکوه";if(city=="031"||city=="032")cityN="استان تهران - شهر کرج";if(city=="664")cityN="استان تهران - شهر کهريزک";if(city=="717")cityN="استان تهران - شهر نظرآباد";if(city=="041"||city=="042")cityN="استان تهران - شهر ورامين";if(city=="471"||city=="472")cityN=" امور خارجه - امور خارجه";if(city=="454")cityN="استان ايلام - شهر آبدانان";if(city=="581")cityN="استان ايلام - شهر ارکوازي(ملکشاهي)";if(city=="449"||city=="450")cityN="استان ايلام - شهر ايلام";if(city=="616")cityN="استان ايلام - شهر ايوان";if(city=="534")cityN="استان ايلام - شهر بدره";if(city=="455")cityN="استان ايلام - شهر دره شهر";if(city=="451")cityN="استان ايلام - شهر دهلران";if(city=="726")cityN="استان ايلام - شهر زرين آباد";if(city=="634")cityN="استان ايلام - شهر شيروان لومار";if(city=="453")cityN="استان ايلام - شهر شيروان و چرداول";if(city=="727")cityN="استان ايلام - شهر موسيان";if(city=="452")cityN="استان ايلام - شهر مهران";if(city=="145"||city=="146")cityN="استان اردبيل - شهر اردبيل";if(city=="731")cityN="استان اردبيل - شهر ارشق";if(city=="690")cityN="استان اردبيل - شهر انگوت";if(city=="601")cityN="استان اردبيل - شهر بيله سوار";if(city=="504")cityN="استان اردبيل - شهر پارس آباد";if(city=="163")cityN="استان اردبيل - شهر خلخال";if(city=="714")cityN="استان اردبيل - شهر خورش رستم";if(city=="715")cityN="استان اردبيل - شهر سرعين";if(city=="566")cityN="استان اردبيل - شهر سنجبد(کوثر)";if(city=="166"||city=="167")cityN="استان اردبيل - شهر مشکين شهر";if(city=="161"||city=="162")cityN="استان اردبيل - شهر مغان";if(city=="686")cityN="استان اردبيل - شهر نمين";if(city=="603")cityN="استان اردبيل - شهر نير";if(city=="619")cityN="استان اصفهان - شهر آران و بيدگل";if(city=="118")cityN="استان اصفهان - شهر اردستان";if(city=="127"||city=="128"||city=="129")cityN="استان اصفهان - شهر اصفهان";if(city=="620")cityN="استان اصفهان - شهر باغ بهادران";if(city=="621")cityN="استان اصفهان - شهر بوئين و مياندشت";if(city=="549")cityN="استان اصفهان - شهر تيران و کرون";if(city=="564")cityN="استان اصفهان - شهر جرقويه";if(city=="575")cityN="استان اصفهان - شهر چادگان";if(city=="113"||city=="114")cityN="استان اصفهان - شهر خميني شهر";if(city=="122")cityN="استان اصفهان - شهر خوانسار";if(city=="540")cityN="استان اصفهان - شهر خور و بيابانک";if(city=="660")cityN="استان اصفهان - شهر دولت آباد";if(city=="120")cityN="استان اصفهان - شهر سميرم";if(city=="512")cityN="استان اصفهان - شهر سميرم سفلي (دهاقان)";if(city=="510"||city=="511")cityN="استان اصفهان - شهر شاهين شهر";if(city=="119")cityN="استان اصفهان - شهر شهرضا";if(city=="115")cityN="استان اصفهان - شهر فريدن";if(city=="112")cityN="استان اصفهان - شهر فريدونشهر";if(city=="110"||city=="111")cityN="استان اصفهان - شهر فلاورجان";if(city=="125"||city=="126")cityN="استان اصفهان - شهر کاشان";if(city=="565")cityN="استان اصفهان - شهر کوهپايه";if(city=="121")cityN="استان اصفهان - شهر گلپايگان";if(city=="116"||city=="117")cityN="استان اصفهان - شهر لنجان(زرينشهر)";if(city=="541")cityN="استان اصفهان - شهر مبارکه";if(city=="622")cityN="استان اصفهان - شهر ميمه";if(city=="124")cityN="استان اصفهان - شهر نائين";if(city=="108"||city=="109")cityN="استان اصفهان - شهر نجف آباد";if(city=="123")cityN="استان اصفهان - شهر نطنز";if(city=="427"||city=="428")cityN="استان زنجان - شهر زنجان";if(city=="507")cityN="استان آذربايجان شرقي - شهر ملکان";if(city=="158")cityN="استان آذربايجان شرقي - شهر مرند";if(city=="152"||city=="153")cityN="استان آذربايجان شرقي - شهر ميانه";if(city=="615")cityN="استان قزوين - شهر ابهر و خرمدره"
  1118. document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = cityN;
  1119. <?php
  1120. }
  1121. if(rgget("field_mellicart_sp", $field)) {
  1122. ?>
  1123. meli_code.value = meli_code.value.substring(0,3)+"-"+meli_code.value.substring(3,9)+"-"+meli_code.value.substring(9,10);
  1124. <?php
  1125. }
  1126. ?>
  1127. return true;
  1128. }
  1129. <?php
  1130. if(rgget("field_mellicart", $field))
  1131. {
  1132. ?>
  1133. else
  1134. {
  1135. <?php
  1136. if ($pm3)
  1137. {
  1138. ?>
  1139. var pm3 = "<?php echo $pm3 ?>";
  1140. <?php
  1141. }
  1142. else
  1143. {
  1144. ?>
  1145. var pm3 = 'کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .';
  1146. <?php
  1147. }
  1148. ?>
  1149. document.getElementById("city_<?php echo $field["id"]; ?>").innerHTML = pm3;
  1150. return false;
  1151. }
  1152. <?php
  1153. }
  1154. ?>
  1155. }
  1156. </script>
  1157. <?php
  1158. }
  1159. return $content;
  1160. }
  1161. public static function checkdate($month, $day, $year){
  1162. if(empty($month) || !is_numeric($month) || empty($day) || !is_numeric($day) || empty($year) || !is_numeric($year) || strlen($year) != 4)
  1163. return false;
  1164. return checkdate($month, $day, $year);
  1165. }
  1166. public function Input_Valid_Checker_By_HANNANStd($result, $value, $form, $field){
  1167. //shamsi date formtat validator
  1168. if ( $field["type"] == "date" )
  1169. {
  1170. if (rgget("check_jalali", $field))
  1171. {
  1172. if(is_array($value) && rgempty(0, $value) && rgempty(1, $value)&& rgempty(2, $value))
  1173. $value = null;
  1174. if(!empty($value))
  1175. {
  1176. $format = empty($field["dateFormat"]) ? "mdy" : $field["dateFormat"];
  1177. $date = GFCommon::parse_date($value, $format);
  1178. if (!empty($date) )
  1179. {
  1180. if ( intval($date["month"]) >= 1 && intval($date["month"]) <=12 )
  1181. {
  1182. $min = 1;
  1183. if ( intval($date["month"]) >= 1 && intval($date["month"]) <=6 )
  1184. $max = 31;
  1185. if ( intval($date["month"]) >= 7 && intval($date["month"]) <=12 )
  1186. $max = 30;
  1187. if ( intval($date["month"]) == 12 && intval($date["day"]) >= 1 && intval($date["day"]) <= 30 ) {
  1188. $j_g = GF_jalali_to_gregorian($date["year"],$date["month"],$date["day"]);
  1189. $day = $j_g[2];
  1190. $month = $j_g[1];
  1191. $year = $j_g[0];
  1192. $target = new DateTime("$year-$month-$day 09:00:00");
  1193. $target = $target->format('Y-m-d H:i:s');
  1194. $target = strtotime ($target);
  1195. $leap_year = GF_jdate('L',$target,'','','en');
  1196. if ( $leap_year != 1 )
  1197. $max = 29;
  1198. }
  1199. if ( intval($date["day"]) >= $min && intval($date["day"]) <= $max ) {
  1200. $j_g = GF_jalali_to_gregorian($date["year"],$date["month"],$date["day"]);
  1201. $day = $j_g[2];
  1202. $month = $j_g[1];
  1203. $year = $j_g[0];
  1204. $result["is_valid"] = self::checkdate($month, $day, $year);
  1205. }
  1206. else
  1207. $result["is_valid"] = false;
  1208. }
  1209. else
  1210. $result["is_valid"] = false;
  1211. }
  1212. else
  1213. $result["is_valid"] = false;
  1214. if(empty($date) || !$result["is_valid"] )
  1215. {
  1216. $format_name = "";
  1217. switch($format)
  1218. {
  1219. case "mdy" :
  1220. $format_name = "mm/dd/yyyy";
  1221. break;
  1222. case "dmy" :
  1223. $format_name = "dd/mm/yyyy";
  1224. break;
  1225. case "dmy_dash" :
  1226. $format_name = "dd-mm-yyyy";
  1227. break;
  1228. case "dmy_dot" :
  1229. $format_name = "dd.mm.yyyy";
  1230. break;
  1231. case "ymd_slash" :
  1232. $format_name = "yyyy/mm/dd";
  1233. break;
  1234. case "ymd_dash" :
  1235. $format_name = "yyyy-mm-dd";
  1236. break;
  1237. case "ymd_dot" :
  1238. $format_name = "yyyy.mm.dd";
  1239. break;
  1240. }
  1241. $result["is_valid"] = false;
  1242. $message = $field["dateType"] == "datepicker" ? sprintf(__("Please enter a valid date in the format (%s).", "gravityforms"), $format_name) : __("Please enter a valid date.", "gravityforms");
  1243. $result["message"] = empty($field["errorMessage"]) ? $message : $field["errorMessage"];
  1244. }
  1245. else
  1246. $result["is_valid"] = true;
  1247. }
  1248. }
  1249. }
  1250. //melli cart validator
  1251. if ( $field["type"] == "mellicart" )
  1252. {
  1253. $pm1= rgget("field_mellicart_sp1", $field);
  1254. $pm2= rgget("field_mellicart_sp2", $field);
  1255. $pm3= rgget("field_mellicart_sp3", $field);
  1256. $pm4= rgget("field_mellicart_sp4", $field);
  1257. if(rgget("field_mellicart_sp", $field))
  1258. $setting = 1;
  1259. else
  1260. $setting = 0;
  1261. if (self::Add_Melli_Cart_PHP_Checker_By_HANNANStd($value,$setting) == 4)
  1262. {
  1263. $result["is_valid"] = false;
  1264. if ($pm1)
  1265. $result["message"] = $pm1;
  1266. else
  1267. $result["message"] = "کد ملی فقط باید به صورت عدد وارد شود . ";
  1268. }
  1269. if (self::Add_Melli_Cart_PHP_Checker_By_HANNANStd($value,$setting) == 3)
  1270. {
  1271. $result["is_valid"] = false;
  1272. if ($pm2)
  1273. $result["message"] = $pm2;
  1274. else
  1275. $result["message"] = 'کد ملی می بایست 10 رقمی باشد . تنها در صورتی مجاز به استفاده از کد های 8 یا 9 رقمی هستید که ارقام سمت چپ 0 باشند . ';
  1276. }
  1277. if (self::Add_Melli_Cart_PHP_Checker_By_HANNANStd($value,$setting) == 2)
  1278. {
  1279. $result["is_valid"] = false;
  1280. if ($pm4)
  1281. $result["message"] = $pm4;
  1282. else
  1283. $result["message"] = 'کد ملی وارد شده مطابق با استانداردهای کشور نمی باشد .';
  1284. }
  1285. if ($field["noDuplicates"] && RGFormsModel::is_duplicate($form["id"], $field, $value))
  1286. {
  1287. $result["is_valid"] = false;
  1288. if ($pm3)
  1289. $result["message"] = $pm3;
  1290. else
  1291. $result["message"] = 'این کد ملی توسط فرد دیگری ثبت شده است .';
  1292. }
  1293. }
  1294. //else return result
  1295. return $result;
  1296. }
  1297.  
  1298. }
  1299. global $Persian_Gravityforms_By_HANNANStd_plugin;
  1300. $Persian_Gravityforms_By_HANNANStd_plugin = new GravityFormsPersian( __FILE__ );
  1301. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement