Changeset 1346400
- Timestamp:
- 02/09/2016 01:18:35 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gravity-forms-data-persistence-add-on-reloaded/trunk/gravity-forms-data-persistence-add-on-reloaded.php
r1346266 r1346400 12 12 define( 'GFDPVERSION', '3.3.0' ); 13 13 14 register_activation_hook( __FILE__, 'ri_gfdp_install' ); 15 function ri_gfdp_install() { 16 if(!get_option('gfdp_version')) { 17 $users = get_users(); 18 $forms = RGFormsModel::get_forms(); 19 foreach($users as $user) { 20 foreach($forms as $form) { 21 $form = get_object_vars($form); 22 if($entry = get_option(ri_getFormOptionKeyForGF($form, $user->data))) { 23 set_transient(ri_gfdp_getFormTransientKeyForGF($form, $user->data), $entry, YEAR_IN_SECONDS); 24 delete_option(ri_getFormOptionKeyForGF($form, $user->data)); 25 } 26 27 28 } 29 } 30 update_option('gfdp_version', GFDPVERSION); 31 } elseif (get_option('gfdp_version') < GFDPVERSION) { 32 33 update_option('gfdp_version', GFDPVERSION); 34 } 35 } 36 14 37 add_action( 'init', 'ri_gfdp_cookie' ); 15 38 function ri_gfdp_cookie() { … … 39 62 $current_page = GFFormDisplay::get_current_page( $form["id"] ); 40 63 if ( $current_page == 1 ) { 41 $option_key = ri_getFormOptionKeyForGF( $form ); 42 if ( get_option( $option_key ) ) { 43 $_POST = json_decode( get_option( $option_key ), true ); 64 if ($data = get_transient( ri_gfdp_getFormTransientKeyForGF( $form ) ) ) { 65 $_POST = json_decode( $data, true ); 44 66 foreach ( $form['fields'] as $field ) { 45 67 if ( rgar( $field, "allowsPrepopulate" ) ) { … … 138 160 function ri_gfdp_ajax_save( $form, $coming_from_page = '', $current_page = '' ) { 139 161 if ( $form['ri_gfdp_persist'] == 'ajax' ) { 140 $ option_key = ri_getFormOptionKeyForGF( $form );162 $transient_key = ri_gfdp_getFormTransientKeyForGF( $form ); 141 163 parse_str( $_POST['form'], $data ); 142 164 $data = ri_gfdp_sanitize_data( $data, $form ); 143 update_option( $option_key, json_encode( $data ));165 set_transient( $transient_key, json_encode( $data ), YEAR_IN_SECONDS ); 144 166 } 145 167 } … … 167 189 if ( gfdp_is_persistent( $form ) ) { 168 190 169 $ option_key = ri_getFormOptionKeyForGF( $form );191 $transient_key = ri_gfdp_getFormTransientKeyForGF( $form ); 170 192 $data = ri_gfdp_sanitize_data( $_POST, $form ); 171 update_option( $option_key, json_encode( $data ));193 set_transient( $transient_key, json_encode( $data ), YEAR_IN_SECONDS ); 172 194 } 173 195 } … … 178 200 if ( gfdp_is_persistent( $form ) ) { 179 201 //Update form data in wp_options table 180 $ option_key = ri_getFormOptionKeyForGF( $form );202 $transient_key = ri_gfdp_getFormTransientKeyForGF( $form ); 181 203 182 204 if ( $form['isEnablePersistentClear'] || $form['ri_gfdp_persist_clear'] ) { 183 delete_ option( $option_key );205 delete_transient( $transient_key ); 184 206 } else { 185 207 $data = ri_gfdp_sanitize_data( $_POST, $form ); 186 update_option( $option_key, json_encode( $data ));208 set_transient( $transient_key, json_encode( $data ), YEAR_IN_SECONDS ); 187 209 } 188 210 … … 208 230 209 231 // Create and return option table key for a form and user 210 function ri_g etFormOptionKeyForGF( $form, $cookie = false) {232 function ri_gfdp_getFormTransientKeyForGF( $form, $user = '' ) { 211 233 global $current_user; 212 234 get_currentuserinfo(); 213 235 236 if(!$user) { 237 $user = $current_user; 238 } 214 239 if ( is_user_logged_in() ) { 215 $option_key = $current_user->user_login . '_GF_' . $form['id']; 240 $transiet_key = 'gfdp_' . $form['id'] .'_'.$user->user_login; 241 242 return $transiet_key; 243 } else { 244 if ( isset( $_COOKIE['gfdp'] ) ) { 245 $transiet_key = 'gfdp_' . $form['id'] . '_' . $_COOKIE['gfdp']; 246 247 return $transiet_key; 248 } 249 } 250 } 251 252 // Create and return option table key for a form and user 253 function ri_getFormOptionKeyForGF( $form, $user = '' ) { 254 global $current_user; 255 get_currentuserinfo(); 256 257 if(!$user) { 258 $user = $current_user; 259 } 260 261 if ( is_user_logged_in() ) { 262 $option_key = $user->user_login . '_GF_' . $form['id']; 216 263 217 264 return $option_key; … … 226 273 227 274 // Create and return option table key for user form entry 228 function ri_getEntryOptionKeyForGF( $form, $ cookie = false) {275 function ri_getEntryOptionKeyForGF( $form, $user = '' ) { 229 276 global $current_user; 230 277 get_currentuserinfo(); 231 278 279 if(!$user) { 280 $user = $current_user; 281 } 282 232 283 if ( is_user_logged_in() ) { 233 $option_key = $ current_user->user_login . '_GF_' . $form['id'] . '_entry';284 $option_key = $user->user_login . '_GF_' . $form['id'] . '_entry'; 234 285 235 286 return $option_key; … … 292 343 </tr>'; 293 344 345 $tr_persistent .= ' 346 <tr> 347 <th>Purge Data' . gform_tooltip( "ri_gfdp_purge_data", '', true ) . ' </th> 348 349 <td> 350 <button id="purge_data" type="button">PURGE</button> 351 <script type="text/javascript"> 352 353 function gfdp_purge_ajax($) { 354 355 if(confirm("Are you sure you want to delete all persistent data for this form?")) { 356 var data = { 357 "action": "gfdp_purge", 358 "form_id": "' . $form['id'] . '" 359 }; 360 361 jQuery.ajax({ 362 url: "' . admin_url( 'admin-ajax.php' ) . '", 363 type: "POST", 364 data: data, 365 success: function (response) { 366 alert("All data purged for this form"); 367 } 368 }) 369 } 370 }; 371 jQuery("#purge_data").click(gfdp_purge_ajax); 372 </script> 373 </td> 374 </tr>'; 375 294 376 $form_settings["Form Options"]['persistent'] = $tr_persistent; 295 377 return $form_settings; … … 400 482 return false; 401 483 } 484 485 486 add_action( 'wp_ajax_gfdp_purge', 'ri_gfdp_purge_data' ); 487 function ri_gfdp_purge_data() { 488 $users = get_users(); 489 490 foreach($users as $user) { 491 $form['id'] = $_POST['form_id']; 492 delete_transient(ri_gfdp_getFormTransientKeyForGF($form, $user->data)); 493 494 } 495 echo "purged"; 496 die(); 497 }
Note: See TracChangeset
for help on using the changeset viewer.