| 1 |  |  | <?php | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 2 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 3 |  |  | class FrmDb { | 
            
                                                                        
                            
            
                                    
            
            
                | 4 |  |  |     var $fields; | 
            
                                                                        
                            
            
                                    
            
            
                | 5 |  |  |     var $forms; | 
            
                                                                        
                            
            
                                    
            
            
                | 6 |  |  |     var $entries; | 
            
                                                                        
                            
            
                                    
            
            
                | 7 |  |  |     var $entry_metas; | 
            
                                                                        
                            
            
                                    
            
            
                | 8 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  |     public function __construct() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  |         if ( ! defined('ABSPATH') ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  |             die('You are not allowed to call this page directly.'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 |  |  |         global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 |  |  |         $this->fields         = $wpdb->prefix . 'frm_fields'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 |  |  |         $this->forms          = $wpdb->prefix . 'frm_forms'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 |  |  |         $this->entries        = $wpdb->prefix . 'frm_items'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 |  |  |         $this->entry_metas    = $wpdb->prefix . 'frm_item_metas'; | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 19 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 20 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 21 |  |  |     public function upgrade( $old_db_version = false ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 |  |  |         global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 23 |  |  |         //$frm_db_version is the version of the database we're moving to | 
            
                                                                                                            
                            
            
                                    
            
            
                | 24 |  |  |         $frm_db_version = FrmAppHelper::$db_version; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 25 |  |  |         $old_db_version = (float) $old_db_version; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 26 |  |  |         if ( ! $old_db_version ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 27 |  |  |             $old_db_version = get_option('frm_db_version'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 28 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 29 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 30 |  |  |         if ( $frm_db_version != $old_db_version ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 31 |  |  | 			// update rewrite rules for views and other custom post types | 
            
                                                                                                            
                            
            
                                    
            
            
                | 32 |  |  | 			flush_rewrite_rules(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 33 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 34 |  |  | 			require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 35 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 36 |  |  |             $this->create_tables(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 37 |  |  |             $this->migrate_data($frm_db_version, $old_db_version); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 38 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 39 |  |  |             /***** SAVE DB VERSION *****/ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 40 |  |  |             update_option('frm_db_version', $frm_db_version); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 41 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 42 |  |  |             /**** ADD/UPDATE DEFAULT TEMPLATES ****/ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 43 |  |  |             FrmXMLController::add_default_templates(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 44 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 45 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 46 |  |  |         do_action('frm_after_install'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 47 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 48 |  |  |         /**** update the styling settings ****/ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 49 |  |  | 		if ( is_admin() && function_exists( 'get_filesystem_method' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 50 |  |  | 			$frm_style = new FrmStyle(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 51 |  |  | 			$frm_style->update( 'default' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 |  |  | 		} | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 53 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 54 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 55 |  |  |     public function collation() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 56 |  |  |         global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 57 |  |  |         if ( ! $wpdb->has_cap( 'collation' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 58 |  |  |             return ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 59 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 60 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 61 |  |  |         $charset_collate = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 62 |  |  | 		if ( ! empty( $wpdb->charset ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 63 |  |  | 			$charset_collate .= ' DEFAULT CHARACTER SET '. $wpdb->charset; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 64 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 65 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 66 |  |  |         if ( ! empty($wpdb->collate) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 67 |  |  |             $charset_collate .= ' COLLATE '. $wpdb->collate; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 68 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 69 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 70 |  |  |         return $charset_collate; | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 71 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 72 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 73 |  |  |     private function create_tables() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 74 |  |  |         $charset_collate = $this->collation(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 75 |  |  |         $sql = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 76 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 77 |  |  |         /* Create/Upgrade Fields Table */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 78 |  |  |         $sql[] = 'CREATE TABLE '. $this->fields .' ( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 79 |  |  |                 id int(11) NOT NULL auto_increment, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 80 |  |  | 				field_key varchar(100) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 81 |  |  |                 name text default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 82 |  |  |                 description longtext default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 83 |  |  |                 type text default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 84 |  |  |                 default_value longtext default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 85 |  |  |                 options longtext default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 86 |  |  |                 field_order int(11) default 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 87 |  |  |                 required int(1) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 88 |  |  |                 field_options longtext default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 89 |  |  |                 form_id int(11) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 90 |  |  |                 created_at datetime NOT NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 91 |  |  |                 PRIMARY KEY  (id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 92 |  |  |                 KEY form_id (form_id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 93 |  |  |                 UNIQUE KEY field_key (field_key) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 94 |  |  |         )'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 95 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 96 |  |  |         /* Create/Upgrade Forms Table */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 97 |  |  |         $sql[] = 'CREATE TABLE '. $this->forms .' ( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 98 |  |  |                 id int(11) NOT NULL auto_increment, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 99 |  |  | 				form_key varchar(100) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 100 |  |  |                 name varchar(255) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 101 |  |  |                 description text default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 102 |  |  |                 parent_form_id int(11) default 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 103 |  |  |                 logged_in tinyint(1) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 104 |  |  |                 editable tinyint(1) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 105 |  |  |                 is_template tinyint(1) default 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 106 |  |  |                 default_template tinyint(1) default 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 107 |  |  |                 status varchar(255) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 108 |  |  |                 options longtext default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 109 |  |  |                 created_at datetime NOT NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 110 |  |  |                 PRIMARY KEY  (id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 111 |  |  |                 UNIQUE KEY form_key (form_key) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 112 |  |  |         )'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 113 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 114 |  |  |         /* Create/Upgrade Items Table */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 115 |  |  |         $sql[] = 'CREATE TABLE '. $this->entries .' ( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 116 |  |  |                 id int(11) NOT NULL auto_increment, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 117 |  |  | 				item_key varchar(100) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 118 |  |  |                 name varchar(255) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 119 |  |  |                 description text default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 120 |  |  |                 ip text default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 121 |  |  |                 form_id int(11) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 122 |  |  |                 post_id int(11) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 123 |  |  |                 user_id int(11) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 124 |  |  |                 parent_item_id int(11) default 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 125 |  |  |                 is_draft tinyint(1) default 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 126 |  |  |                 updated_by int(11) default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 127 |  |  |                 created_at datetime NOT NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 128 |  |  |                 updated_at datetime NOT NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 129 |  |  |                 PRIMARY KEY  (id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 130 |  |  |                 KEY form_id (form_id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 131 |  |  |                 KEY post_id (post_id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 132 |  |  |                 KEY user_id (user_id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 133 |  |  |                 KEY parent_item_id (parent_item_id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 134 |  |  |                 UNIQUE KEY item_key (item_key) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 135 |  |  |         )'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 136 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 137 |  |  |         /* Create/Upgrade Meta Table */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 138 |  |  |         $sql[] = 'CREATE TABLE '. $this->entry_metas .' ( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 139 |  |  |                 id int(11) NOT NULL auto_increment, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 140 |  |  |                 meta_value longtext default NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 141 |  |  |                 field_id int(11) NOT NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 142 |  |  |                 item_id int(11) NOT NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 143 |  |  |                 created_at datetime NOT NULL, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 144 |  |  |                 PRIMARY KEY  (id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 145 |  |  |                 KEY field_id (field_id), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 146 |  |  |                 KEY item_id (item_id) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 147 |  |  |         )'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 148 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 149 |  |  |         foreach ( $sql as $q ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 150 |  |  | 			if ( function_exists( 'dbDelta' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 151 |  |  | 				dbDelta( $q . $charset_collate .';' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 152 |  |  | 			} else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 153 |  |  | 				global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 154 |  |  | 				$wpdb->query( $q . $charset_collate ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 155 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 156 |  |  |             unset($q); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 157 |  |  |         } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 158 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 159 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 160 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 161 |  |  |      * @param integer $frm_db_version | 
            
                                                                        
                            
            
                                    
            
            
                | 162 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 163 |  |  | 	private function migrate_data( $frm_db_version, $old_db_version ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 164 |  |  | 		$migrations = array( 4, 6, 11, 16, 17, 23, 25 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 165 |  |  |         foreach ( $migrations as $migration ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 166 |  |  |             if ( $frm_db_version >= $migration && $old_db_version < $migration ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 167 |  |  |                 $function_name = 'migrate_to_'. $migration; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 168 |  |  |                 $this->$function_name(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 169 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 170 |  |  |         } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 171 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 172 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 173 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 174 |  |  |      * Change array into format $wpdb->prepare can use | 
            
                                                                        
                            
            
                                    
            
            
                | 175 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 176 |  |  |     public static function get_where_clause_and_values( &$args, $starts_with = ' WHERE ' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 177 |  |  |         if ( empty($args) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 178 |  |  | 			// add an arg to prevent prepare from failing | 
            
                                                                                                            
                            
            
                                    
            
            
                | 179 |  |  | 			$args = array( 'where' => $starts_with . '1=%d', 'values' => array( 1 ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 180 |  |  | 			return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 181 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 182 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 183 |  |  | 		$where = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 184 |  |  | 		$values = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 185 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 186 |  |  | 		if ( is_array( $args ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 187 |  |  | 			$base_where = $starts_with; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 188 |  |  | 			self::parse_where_from_array( $args, $base_where, $where, $values ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 189 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 190 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 191 |  |  | 		$args = compact( 'where', 'values' ); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 192 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 193 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 194 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 195 |  |  |      * @param string $base_where | 
            
                                                                        
                            
            
                                    
            
            
                | 196 |  |  |      * @param string $where | 
            
                                                                        
                            
            
                                    
            
            
                | 197 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 198 |  |  |     public static function parse_where_from_array( $args, $base_where, &$where, &$values ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 199 |  |  |         $condition = ' AND'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 200 |  |  |         if ( isset( $args['or'] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 201 |  |  |             $condition = ' OR'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 202 |  |  |             unset( $args['or'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 203 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 204 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 205 |  |  |         foreach ( $args as $key => $value ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 206 |  |  |             $where .= empty( $where ) ? $base_where : $condition; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 207 |  |  |             $array_inc_null = ( ! is_numeric( $key ) && is_array( $value ) && in_array( null, $value ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 208 |  |  |             if ( is_numeric( $key ) || $array_inc_null ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 209 |  |  |                 $where .= ' ( '; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 210 |  |  |                 $nested_where = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 211 |  |  |                 if ( $array_inc_null ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 212 |  |  |                     foreach ( $value as $val ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 213 |  |  |                         self::parse_where_from_array( array( $key => $val, 'or' => 1 ), '', $nested_where, $values ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 214 |  |  |                     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 215 |  |  |                 } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 216 |  |  |                     self::parse_where_from_array( $value, '', $nested_where, $values ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 217 |  |  |                 } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 218 |  |  |                 $where .= $nested_where; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 219 |  |  |                 $where .= ' ) '; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 220 |  |  |             } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 221 |  |  |                 self::interpret_array_to_sql( $key, $value, $where, $values ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 222 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 223 |  |  |         } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 224 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 225 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 226 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 227 |  |  |      * @param string $key | 
            
                                                                        
                            
            
                                    
            
            
                | 228 |  |  |      * @param string $where | 
            
                                                                        
                            
            
                                    
            
            
                | 229 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 230 |  |  |     private static function interpret_array_to_sql( $key, $value, &$where, &$values ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 231 |  |  | 		$key = trim( $key ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 232 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 233 |  |  |         if ( strpos( $key, 'created_at' ) !== false || strpos( $key, 'updated_at' ) !== false  ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 234 |  |  |             $k = explode(' ', $key); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 235 |  |  |             $where .= ' DATE_FORMAT(' . reset( $k ) . ', %s) ' . str_replace( reset( $k ), '', $key ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 236 |  |  |             $values[] = '%Y-%m-%d %H:%i:%s'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 237 |  |  |         } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 238 |  |  |             $where .= ' '. $key; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 239 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 240 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 241 |  |  | 		$lowercase_key = explode( ' ', strtolower( $key ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 242 |  |  | 		$lowercase_key = end( $lowercase_key ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 243 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 244 |  |  |         if ( is_array( $value ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 245 |  |  |             // translate array of values to "in" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 246 |  |  | 			if ( strpos( $lowercase_key, 'like' ) !== false ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 247 |  |  | 				$where = rtrim( $where, $key ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 248 |  |  | 				$where .= '('; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 249 |  |  | 				$start = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 250 |  |  | 				foreach ( $value as $v ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 251 |  |  | 					if ( ! $start ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 252 |  |  | 						$where .= ' OR '; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 253 |  |  | 					} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 254 |  |  | 					$start = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 255 |  |  | 					$where .= $key . ' %s'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 256 |  |  | 					$values[] = '%' . FrmAppHelper::esc_like( $v ) . '%'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 257 |  |  | 				} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 258 |  |  | 				$where .= ')'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 259 |  |  | 			} else if ( ! empty( $value ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 260 |  |  |             	$where .= ' in ('. FrmAppHelper::prepare_array_values( $value, '%s' ) .')'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 261 |  |  | 				$values = array_merge( $values, $value ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 262 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 263 |  |  |         } else if ( strpos( $lowercase_key, 'like' ) !== false ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 264 |  |  | 			/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 265 |  |  | 			 * Allow string to start or end with the value | 
            
                                                                                                            
                            
            
                                    
            
            
                | 266 |  |  | 			 * If the key is like% then skip the first % for starts with | 
            
                                                                                                            
                            
            
                                    
            
            
                | 267 |  |  | 			 * If the key is %like then skip the last % for ends with | 
            
                                                                                                            
                            
            
                                    
            
            
                | 268 |  |  | 			 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 269 |  |  | 			$start = $end = '%'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 270 |  |  | 			if ( $lowercase_key == 'like%' ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 271 |  |  | 				$start = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 272 |  |  | 				$where = rtrim( $where, '%' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 273 |  |  | 			} else if ( $lowercase_key == '%like' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 274 |  |  | 				$end = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 275 |  |  | 				$where = rtrim( rtrim( $where, '%like' ), '%LIKE' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 276 |  |  | 				$where .= 'like'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 277 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 278 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 279 |  |  | 			$where .= ' %s'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 280 |  |  | 			$values[] = $start . FrmAppHelper::esc_like( $value ) . $end; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 281 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 282 |  |  |         } else if ( $value === null ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 283 |  |  |             $where .= ' IS NULL'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 284 |  |  |         } else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 285 |  |  | 			// allow a - to prevent = from being added | 
            
                                                                                                            
                            
            
                                    
            
            
                | 286 |  |  | 			if ( substr( $key, -1 ) == '-' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 287 |  |  | 				$where = rtrim( $where, '-' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 288 |  |  | 			} else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 289 |  |  | 				$where .= '='; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 290 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 291 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 292 |  |  |             $where .= is_numeric( $value ) ? ( strpos( $value, '.' ) !== false ? '%f' : '%d' ) : '%s'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 293 |  |  |             $values[] = $value; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 294 |  |  |         } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 295 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 296 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 297 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 298 |  |  |      * @param string $table | 
            
                                                                        
                            
            
                                    
            
            
                | 299 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 300 |  |  |     public static function get_count( $table, $where = array(), $args = array() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 301 |  |  |         $count = self::get_var( $table, $where, 'COUNT(*)', $args ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 302 |  |  |         return $count; | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 303 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 304 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 305 |  |  |     public static function get_var( $table, $where = array(), $field = 'id', $args = array(), $limit = '', $type = 'var' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 306 |  |  |         $group = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 307 |  |  |         self::get_group_and_table_name( $table, $group ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 308 |  |  | 		self::convert_options_to_array( $args, '', $limit ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 309 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 310 |  |  | 		$query = 'SELECT ' . $field . ' FROM ' . $table; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 311 |  |  | 		if ( is_array( $where ) || empty( $where ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 312 |  |  | 			// only separate into array values and query string if is array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 313 |  |  |         	self::get_where_clause_and_values( $where ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 314 |  |  | 			global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 315 |  |  | 			$query = $wpdb->prepare( $query . $where['where'] . ' ' . implode( ' ', $args ), $where['values'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 316 |  |  | 		} else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 317 |  |  | 			/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 318 |  |  | 			 * Allow the $where to be prepared before we recieve it here. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 319 |  |  | 			 * This is a fallback for reverse compatability, but is not recommended | 
            
                                                                                                            
                            
            
                                    
            
            
                | 320 |  |  | 			 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 321 |  |  | 			_deprecated_argument( 'where', '2.0', __( 'Use the query in an array format so it can be properly prepared.', 'formidable' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 322 |  |  | 			$query .= $where . ' ' . implode( ' ', $args ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 323 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 324 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 325 |  |  |         $cache_key = str_replace( array( ' ', ',' ), '_', trim( implode('_', FrmAppHelper::array_flatten( $where ) ) . implode( '_', $args ) . $field .'_'. $type, ' WHERE' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 326 |  |  |         $results = FrmAppHelper::check_cache( $cache_key, $group, $query, 'get_'. $type ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 327 |  |  |         return $results; | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 328 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 329 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 330 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 331 |  |  |      * @param string $table | 
            
                                                                        
                            
            
                                    
            
            
                | 332 |  |  |      * @param array $where | 
            
                                                                        
                            
            
                                    
            
            
                | 333 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 334 |  |  |     public static function get_col( $table, $where = array(), $field = 'id', $args = array(), $limit = '' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 335 |  |  |         return self::get_var( $table, $where, $field, $args, $limit, 'col' ); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 336 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 337 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 338 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 339 |  |  |      * @since 2.0 | 
            
                                                                        
                            
            
                                    
            
            
                | 340 |  |  |      * @param string $table | 
            
                                                                        
                            
            
                                    
            
            
                | 341 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 342 |  |  |     public static function get_row( $table, $where = array(), $fields = '*', $args = array() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 343 |  |  |         $args['limit'] = 1; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 344 |  |  |         return self::get_var( $table, $where, $fields, $args, '', 'row' ); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 345 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 346 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 347 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 348 |  |  |      * @param string $table | 
            
                                                                        
                            
            
                                    
            
            
                | 349 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 350 |  |  |     public static function get_one_record( $table, $args = array(), $fields = '*', $order_by = '' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 351 |  |  |         _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_row' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 352 |  |  | 		return self::get_var( $table, $args, $fields, array( 'order_by' => $order_by, 'limit' => 1 ), '', 'row' ); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 353 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 354 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 355 |  |  |     public static function get_records( $table, $args = array(), $order_by = '', $limit = '', $fields = '*' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 356 |  |  |         _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_results' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 357 |  |  |         return self::get_results( $table, $args, $fields, compact('order_by', 'limit') ); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 358 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 359 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 360 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 361 |  |  |      * Prepare a key/value array before DB call | 
            
                                                                        
                            
            
                                    
            
            
                | 362 |  |  |      * @since 2.0 | 
            
                                                                        
                            
            
                                    
            
            
                | 363 |  |  |      * @param string $table | 
            
                                                                        
                            
            
                                    
            
            
                | 364 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 365 |  |  |     public static function get_results( $table, $where = array(), $fields = '*', $args = array() ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 366 |  |  |         return self::get_var( $table, $where, $fields, $args, '', 'results' ); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 367 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 368 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 369 |  |  | 	/** | 
            
                                                                        
                            
            
                                    
            
            
                | 370 |  |  | 	 * Check for like, not like, in, not in, =, !=, >, <, <=, >= | 
            
                                                                        
                            
            
                                    
            
            
                | 371 |  |  | 	 * Return a value to append to the where array key | 
            
                                                                        
                            
            
                                    
            
            
                | 372 |  |  | 	 * | 
            
                                                                        
                            
            
                                    
            
            
                | 373 |  |  | 	 * @return string | 
            
                                                                        
                            
            
                                    
            
            
                | 374 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 375 |  |  | 	public static function append_where_is( $where_is ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 376 |  |  | 		$switch_to = array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 377 |  |  | 			'='		=> '', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 378 |  |  | 			'!=' 	=> '!', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 379 |  |  | 			'<='	=> '<', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 380 |  |  | 			'>='	=> '>', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 381 |  |  | 			'like'	=> 'like', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 382 |  |  | 			'not like' => 'not like', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 383 |  |  | 			'in'	=> '', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 384 |  |  | 			'not in' => 'not', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 385 |  |  | 			'like%'	=> 'like%', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 386 |  |  | 			'%like'	=> '%like', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 387 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 388 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 389 |  |  | 		$where_is = strtolower( $where_is ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 390 |  |  | 		if ( isset( $switch_to[ $where_is ] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 391 |  |  | 			return ' ' . $switch_to[ $where_is ]; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 392 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 393 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 394 |  |  | 		// > and < need a little more work since we don't want them switched to >= and <= | 
            
                                                                                                            
                            
            
                                    
            
            
                | 395 |  |  | 		if ( $where_is == '>' || $where_is == '<' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 396 |  |  | 			return ' ' . $where_is . '-'; // the - indicates that the = should not be added later | 
            
                                                                                                            
                            
            
                                    
            
            
                | 397 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 398 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 399 |  |  | 		// fallback to = if the query is none of these | 
            
                                                                                                            
                            
            
                                    
            
            
                | 400 |  |  | 		return ''; | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 401 |  |  | 	} | 
            
                                                                        
                            
            
                                    
            
            
                | 402 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 403 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 404 |  |  |      * Get 'frm_forms' from wp_frm_forms or a longer table param that includes a join | 
            
                                                                        
                            
            
                                    
            
            
                | 405 |  |  |      * Also add the wpdb->prefix to the table if it's missing | 
            
                                                                        
                            
            
                                    
            
            
                | 406 |  |  |      * | 
            
                                                                        
                            
            
                                    
            
            
                | 407 |  |  |      * @param string $table | 
            
                                                                        
                            
            
                                    
            
            
                | 408 |  |  |      * @param string $group | 
            
                                                                        
                            
            
                                    
            
            
                | 409 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 410 |  |  |     private static function get_group_and_table_name( &$table, &$group ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 411 |  |  | 		global $wpdb, $wpmuBaseTablePrefix; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 412 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 413 |  |  |         $table_parts = explode(' ', $table); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 414 |  |  |         $group = reset($table_parts); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 415 |  |  |         $group = str_replace( $wpdb->prefix, '', $group ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 416 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 417 |  |  | 		$prefix = $wpmuBaseTablePrefix ? $wpmuBaseTablePrefix : $wpdb->base_prefix; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 418 |  |  | 		$group = str_replace( $prefix, '', $group ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 419 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 420 |  |  |         if ( $group == $table ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 421 |  |  |             $table = $wpdb->prefix . $table; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 422 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 423 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 424 |  |  | 		// switch to singular group name | 
            
                                                                                                            
                            
            
                                    
            
            
                | 425 |  |  | 		$group = rtrim( $group, 's' ); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 426 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 427 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 428 |  |  |     private static function convert_options_to_array( &$args, $order_by = '', $limit = '' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 429 |  |  |         if ( ! is_array($args) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 430 |  |  | 			$args = array( 'order_by' => $args ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 431 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 432 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 433 |  |  |         if ( ! empty( $order_by ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 434 |  |  |             $args['order_by'] = $order_by; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 435 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 436 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 437 |  |  |         if ( ! empty( $limit ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 438 |  |  |             $args['limit'] = $limit; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 439 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 440 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 441 |  |  |         $temp_args = $args; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 442 |  |  |         foreach ( $temp_args as $k => $v ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 443 |  |  |             if ( $v == '' ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 444 |  |  | 				unset( $args[ $k ] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 445 |  |  |                 continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 446 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 447 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 448 |  |  |             if ( $k == 'limit' ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 449 |  |  | 				$args[ $k ] = FrmAppHelper::esc_limit( $v ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 450 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 451 |  |  |             $db_name = strtoupper( str_replace( '_', ' ', $k ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 452 |  |  |             if ( strpos( $v, $db_name ) === false ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 453 |  |  | 				$args[ $k ] = $db_name . ' ' . $v; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 454 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 455 |  |  |         } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 456 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 457 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 458 |  |  |     public function uninstall() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 459 |  |  | 		if ( ! current_user_can( 'administrator' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 460 |  |  |             $frm_settings = FrmAppHelper::get_settings(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 461 |  |  |             wp_die($frm_settings->admin_permission); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 462 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 463 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 464 |  |  |         global $wpdb, $wp_roles; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 465 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 466 |  |  |         $wpdb->query( 'DROP TABLE IF EXISTS '. $this->fields ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 467 |  |  |         $wpdb->query( 'DROP TABLE IF EXISTS '. $this->forms ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 468 |  |  |         $wpdb->query( 'DROP TABLE IF EXISTS '. $this->entries ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 469 |  |  |         $wpdb->query( 'DROP TABLE IF EXISTS '. $this->entry_metas ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 470 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 471 |  |  |         delete_option('frm_options'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 472 |  |  |         delete_option('frm_db_version'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 473 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 474 |  |  |         //delete roles | 
            
                                                                                                            
                            
            
                                    
            
            
                | 475 |  |  |         $frm_roles = FrmAppHelper::frm_capabilities(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 476 |  |  |         $roles = get_editable_roles(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 477 |  |  |         foreach ( $frm_roles as $frm_role => $frm_role_description ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 478 |  |  |             foreach ( $roles as $role => $details ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 479 |  |  |                 $wp_roles->remove_cap( $role, $frm_role ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 480 |  |  |                 unset($role, $details); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 481 |  |  |     		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 482 |  |  |     		unset($frm_role, $frm_role_description); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 483 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 484 |  |  | 		unset($roles, $frm_roles); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 485 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 486 |  |  | 		// delete actions, views, and styles | 
            
                                                                                                            
                            
            
                                    
            
            
                | 487 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 488 |  |  | 		// prevent the post deletion from triggering entries to be deleted | 
            
                                                                                                            
                            
            
                                    
            
            
                | 489 |  |  | 		remove_action( 'before_delete_post', 'FrmProDisplaysController::before_delete_post' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 490 |  |  | 		remove_action( 'deleted_post', 'FrmProEntriesController::delete_entry' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 491 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 492 |  |  | 		$post_ids = $wpdb->get_col( $wpdb->prepare( 'SELECT ID FROM ' . $wpdb->posts .' WHERE post_type in (%s, %s, %s)', FrmFormActionsController::$action_post_type, FrmStylesController::$post_type, 'frm_display' ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 493 |  |  | 		foreach ( $post_ids as $post_id ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 494 |  |  | 			// Delete's each post. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 495 |  |  | 			wp_delete_post( $post_id, true ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 496 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 497 |  |  | 		unset( $post_ids ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 498 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 499 |  |  | 		// delete transients | 
            
                                                                                                            
                            
            
                                    
            
            
                | 500 |  |  | 		delete_transient( 'frmpro_css' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 501 |  |  | 		delete_transient( 'frm_options' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 502 |  |  | 		delete_transient( 'frmpro_options' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 503 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 504 |  |  | 		$wpdb->query( $wpdb->prepare( 'DELETE FROM '. $wpdb->options .' WHERE option_name LIKE %s OR option_name LIKE %s', '_transient_timeout_frm_form_fields_%', '_transient_frm_form_fields_%' ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 505 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 506 |  |  |         do_action('frm_after_uninstall'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 507 |  |  |         return true; | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 508 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 509 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 510 |  |  | 	/** | 
            
                                                                        
                            
            
                                    
            
            
                | 511 |  |  | 	 * Migrate old styling settings. If sites are using the old | 
            
                                                                        
                            
            
                                    
            
            
                | 512 |  |  | 	 * default 400px field width, switch it to 100% | 
            
                                                                        
                            
            
                                    
            
            
                | 513 |  |  | 	 * | 
            
                                                                        
                            
            
                                    
            
            
                | 514 |  |  | 	 * @since 2.0.4 | 
            
                                                                        
                            
            
                                    
            
            
                | 515 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 516 |  |  | 	private function migrate_to_25() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 517 |  |  | 		// get the style that was created with the style migration | 
            
                                                                                                            
                            
            
                                    
            
            
                | 518 |  |  | 		$frm_style = new FrmStyle(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 519 |  |  | 		$styles = $frm_style->get_all( 'post_date', 'ASC', 1 ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 520 |  |  | 		if ( empty( $styles ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 521 |  |  | 			return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 522 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 523 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 524 |  |  | 		foreach ( $styles as $style ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 525 |  |  | 			if ( $style->post_content['field_width'] == '400px' ) { | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 526 |  |  | 				$style->post_content['field_width'] = '100%'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 527 |  |  | 				$frm_style->save( (array) $style ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 528 |  |  | 				return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 529 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 530 |  |  | 		} | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 531 |  |  | 	} | 
            
                                                                        
                            
            
                                    
            
            
                | 532 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 533 |  |  | 	/** | 
            
                                                                        
                            
            
                                    
            
            
                | 534 |  |  | 	 * Check if the parent_form_id columns exists. | 
            
                                                                        
                            
            
                                    
            
            
                | 535 |  |  | 	 * If not, try and add it again | 
            
                                                                        
                            
            
                                    
            
            
                | 536 |  |  | 	 * | 
            
                                                                        
                            
            
                                    
            
            
                | 537 |  |  | 	 * @since 2.0.2 | 
            
                                                                        
                            
            
                                    
            
            
                | 538 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 539 |  |  | 	private function migrate_to_23() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 540 |  |  | 		global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 541 |  |  | 		$exists = $wpdb->get_row( 'SHOW COLUMNS FROM '. $this->forms .' LIKE "parent_form_id"' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 542 |  |  | 		if ( empty( $exists ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 543 |  |  | 			$wpdb->query( 'ALTER TABLE '. $this->forms .' ADD parent_form_id int(11) default 0' ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                            
                                                                                            
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 544 |  |  | 		} | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 545 |  |  | 	} | 
            
                                                                        
                            
            
                                    
            
            
                | 546 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 547 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 548 |  |  |      * Change field size from character to pixel -- Multiply by 9 | 
            
                                                                        
                            
            
                                    
            
            
                | 549 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 550 |  |  |     private function migrate_to_17() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 551 |  |  |         global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 552 |  |  | 		$pixel_conversion = 9; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 553 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 554 |  |  |         // Get query arguments | 
            
                                                                                                            
                            
            
                                    
            
            
                | 555 |  |  | 		$field_types = array( 'textarea', 'text', 'number', 'email', 'url', 'rte', 'date', 'phone', 'password', 'image', 'tag', 'file' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 556 |  |  | 		$query = array( 'type' => $field_types, 'field_options like' => 's:4:"size";', 'field_options not like' => 's:4:"size";s:0:' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 557 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 558 |  |  |         // Get results | 
            
                                                                                                            
                            
            
                                    
            
            
                | 559 |  |  | 		$fields = FrmDb::get_results( $this->fields, $query, 'id, field_options' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 560 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 561 |  |  |         $updated = 0; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 562 |  |  |         foreach ( $fields as $f ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 563 |  |  |             $f->field_options = maybe_unserialize($f->field_options); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 564 |  |  |             if ( empty($f->field_options['size']) || ! is_numeric($f->field_options['size']) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 565 |  |  |                 continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 566 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 567 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 568 |  |  | 			$f->field_options['size'] = round( $pixel_conversion * (int) $f->field_options['size'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 569 |  |  |             $f->field_options['size'] .= 'px'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 570 |  |  |             $u = FrmField::update( $f->id, array( 'field_options' => $f->field_options ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 571 |  |  |             if ( $u ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 572 |  |  |                 $updated++; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 573 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 574 |  |  |             unset($f); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 575 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 576 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 577 |  |  |         // Change the characters in widgets to pixels | 
            
                                                                                                            
                            
            
                                    
            
            
                | 578 |  |  |         $widgets = get_option('widget_frm_show_form'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 579 |  |  |         if ( empty($widgets) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 580 |  |  |             return; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 581 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 582 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 583 |  |  |         $widgets = maybe_unserialize($widgets); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 584 |  |  |         foreach ( $widgets as $k => $widget ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 585 |  |  |             if ( ! is_array($widget) || ! isset($widget['size']) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 586 |  |  |                 continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 587 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 588 |  |  | 			$size = round( $pixel_conversion * (int) $widget['size'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 589 |  |  |             $size .= 'px'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 590 |  |  | 			$widgets[ $k ]['size'] = $size; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 591 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 592 |  |  |         update_option('widget_frm_show_form', $widgets); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 593 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 594 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 595 |  |  |     /** | 
            
                                                                        
                            
            
                                    
            
            
                | 596 |  |  |      * Migrate post and email notification settings into actions | 
            
                                                                        
                            
            
                                    
            
            
                | 597 |  |  |      */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 598 |  |  |     private function migrate_to_16() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 599 |  |  |         global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 600 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 601 |  |  |         $forms = FrmDb::get_results( $this->forms, array(), 'id, options, is_template, default_template' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 602 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 603 |  |  |         /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 604 |  |  |         * Old email settings format: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 605 |  |  |         * email_to: Email or field id | 
            
                                                                                                            
                            
            
                                    
            
            
                | 606 |  |  |         * also_email_to: array of fields ids | 
            
                                                                                                            
                            
            
                                    
            
            
                | 607 |  |  |         * reply_to: Email, field id, 'custom' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 608 |  |  |         * cust_reply_to: string | 
            
                                                                                                            
                            
            
                                    
            
            
                | 609 |  |  |         * reply_to_name: field id, 'custom' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 610 |  |  |         * cust_reply_to_name: string | 
            
                                                                                                            
                            
            
                                    
            
            
                | 611 |  |  |         * plain_text: 0|1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 612 |  |  |         * email_message: string or '' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 613 |  |  |         * email_subject: string or '' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 614 |  |  |         * inc_user_info: 0|1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 615 |  |  |         * update_email: 0, 1, 2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 616 |  |  |         * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 617 |  |  |         * Old autoresponder settings format: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 618 |  |  |         * auto_responder: 0|1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 619 |  |  |         * ar_email_message: string or '' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 620 |  |  |         * ar_email_to: field id | 
            
                                                                                                            
                            
            
                                    
            
            
                | 621 |  |  |         * ar_plain_text: 0|1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 622 |  |  |         * ar_reply_to_name: string | 
            
                                                                                                            
                            
            
                                    
            
            
                | 623 |  |  |         * ar_reply_to: string | 
            
                                                                                                            
                            
            
                                    
            
            
                | 624 |  |  |         * ar_email_subject: string | 
            
                                                                                                            
                            
            
                                    
            
            
                | 625 |  |  |         * ar_update_email: 0, 1, 2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 626 |  |  |         * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 627 |  |  |         * New email settings: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 628 |  |  |         * post_content: json settings | 
            
                                                                                                            
                            
            
                                    
            
            
                | 629 |  |  |         * post_title: form id | 
            
                                                                                                            
                            
            
                                    
            
            
                | 630 |  |  |         * post_excerpt: message | 
            
                                                                                                            
                            
            
                                    
            
            
                | 631 |  |  |         * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 632 |  |  |         */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 633 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 634 |  |  |         foreach ( $forms as $form ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 635 |  |  | 			if ( $form->is_template && $form->default_template ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 636 |  |  | 				// don't migrate the default templates since the email will be added anyway | 
            
                                                                                                            
                            
            
                                    
            
            
                | 637 |  |  | 				continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 638 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 639 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 640 |  |  |             // Format form options | 
            
                                                                                                            
                            
            
                                    
            
            
                | 641 |  |  |             $form_options = maybe_unserialize($form->options); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 642 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 643 |  |  |             // Migrate settings to actions | 
            
                                                                                                            
                            
            
                                    
            
            
                | 644 |  |  |             FrmXMLHelper::migrate_form_settings_to_actions( $form_options, $form->id ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 645 |  |  |         } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 646 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 647 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 648 |  |  |     private function migrate_to_11() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 649 |  |  |         global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 650 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 651 |  |  |         $forms = FrmDb::get_results( $this->forms, array(), 'id, options'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 652 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 653 |  |  |         $sending = __( 'Sending', 'formidable' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 654 |  |  |         $img = FrmAppHelper::plugin_url() .'/images/ajax_loader.gif'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 655 |  |  |         $old_default_html = <<<DEFAULT_HTML | 
            
                                                                                                            
                            
            
                                    
            
            
                | 656 |  |  | <div class="frm_submit"> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 657 |  |  | [if back_button]<input type="submit" value="[back_label]" name="frm_prev_page" formnovalidate="formnovalidate" [back_hook] />[/if back_button] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 658 |  |  | <input type="submit" value="[button_label]" [button_action] /> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 659 |  |  | <img class="frm_ajax_loading" src="$img" alt="$sending" style="visibility:hidden;" /> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 660 |  |  | </div> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 661 |  |  | DEFAULT_HTML; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 662 |  |  |         unset($sending, $img); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 663 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 664 |  |  |         $new_default_html = FrmFormsHelper::get_default_html('submit'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 665 |  |  |         $draft_link = FrmFormsHelper::get_draft_link(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 666 |  |  | 		foreach ( $forms as $form ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 667 |  |  |             $form->options = maybe_unserialize($form->options); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 668 |  |  |             if ( ! isset($form->options['submit_html']) || empty($form->options['submit_html']) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 669 |  |  |                 continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 670 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 671 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 672 |  |  |             if ( $form->options['submit_html'] != $new_default_html && $form->options['submit_html'] == $old_default_html ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 673 |  |  |                 $form->options['submit_html'] = $new_default_html; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 674 |  |  | 				$wpdb->update( $this->forms, array( 'options' => serialize( $form->options ) ), array( 'id' => $form->id ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 675 |  |  | 			} else if ( ! strpos( $form->options['submit_html'], 'save_draft' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 676 |  |  |                 $form->options['submit_html'] = preg_replace('~\<\/div\>(?!.*\<\/div\>)~', $draft_link ."\r\n</div>", $form->options['submit_html']); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 677 |  |  | 				$wpdb->update( $this->forms, array( 'options' => serialize( $form->options ) ), array( 'id' => $form->id ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 678 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 679 |  |  |             unset($form); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 680 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 681 |  |  |         unset($forms); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 682 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 683 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 684 |  |  |     private function migrate_to_6() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 685 |  |  |         global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 686 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 687 |  |  | 		$no_save = array_merge( FrmField::no_save_fields(), array( 'form', 'hidden', 'user_id' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 688 |  |  | 		$fields = FrmDb::get_results( $this->fields, array( 'type NOT' => $no_save ), 'id, field_options' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 689 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 690 |  |  |         $default_html = <<<DEFAULT_HTML | 
            
                                                                                                            
                            
            
                                    
            
            
                | 691 |  |  | <div id="frm_field_[id]_container" class="form-field [required_class] [error_class]"> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 692 |  |  |     <label class="frm_pos_[label_position]">[field_name] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 693 |  |  |         <span class="frm_required">[required_label]</span> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 694 |  |  |     </label> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 695 |  |  |     [input] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 696 |  |  |     [if description]<div class="frm_description">[description]</div>[/if description] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 697 |  |  | </div> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 698 |  |  | DEFAULT_HTML; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 699 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 700 |  |  |         $old_default_html = <<<DEFAULT_HTML | 
            
                                                                                                            
                            
            
                                    
            
            
                | 701 |  |  | <div id="frm_field_[id]_container" class="form-field [required_class] [error_class]"> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 702 |  |  |     <label class="frm_pos_[label_position]">[field_name] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 703 |  |  |         <span class="frm_required">[required_label]</span> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 704 |  |  |     </label> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 705 |  |  |     [input] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 706 |  |  |     [if description]<p class="frm_description">[description]</p>[/if description] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 707 |  |  | </div> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 708 |  |  | DEFAULT_HTML; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 709 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 710 |  |  |         $new_default_html = FrmFieldsHelper::get_default_html('text'); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 711 |  |  |         foreach ( $fields as $field ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 712 |  |  |             $field->field_options = maybe_unserialize($field->field_options); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 713 |  |  | 			if ( ! FrmField::is_option_empty( $field, 'custom_html' ) || $field->field_options['custom_html'] == $default_html || $field->field_options['custom_html'] == $old_default_html ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 714 |  |  |                 $field->field_options['custom_html'] = $new_default_html; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 715 |  |  | 				$wpdb->update( $this->fields, array( 'field_options' => maybe_serialize( $field->field_options ) ), array( 'id' => $field->id ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 716 |  |  |             } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 717 |  |  |             unset($field); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 718 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 719 |  |  |         unset($default_html, $old_default_html, $fields); | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 720 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 721 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 722 |  |  |     private function migrate_to_4() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 723 |  |  |         global $wpdb; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 724 |  |  | 		$user_ids = FrmEntryMeta::getAll( array( 'fi.type' => 'user_id' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 725 |  |  |         foreach ( $user_ids as $user_id ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 726 |  |  | 			$wpdb->update( $this->entries, array( 'user_id' => $user_id->meta_value ), array( 'id' => $user_id->item_id ) ); | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 727 |  |  |         } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 728 |  |  |     } | 
            
                                                        
            
                                    
            
            
                | 729 |  |  | } | 
            
                                                        
            
                                    
            
            
                | 730 |  |  |  |