restore-progress.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. /*
  3. * Used to restore the progress of a user.
  4. * If the global processing variable $ninja_forms_processing is set, filter the default_value for each field.
  5. *
  6. */
  7. function ninja_forms_filter_restore_progress( $data, $field_id ){
  8. global $ninja_forms_loading, $ninja_forms_processing, $ninja_forms_fields;
  9. if ( isset ( $ninja_forms_loading ) ) {
  10. $field_row = $ninja_forms_loading->get_field_settings( $field_id );
  11. } else if ( isset ( $ninja_forms_processing ) ) {
  12. $field_row = $ninja_forms_processing->get_field_settings( $field_id );
  13. }
  14. if ( isset ( $field_row['type'] ) ) {
  15. $field_type = $field_row['type'];
  16. } else {
  17. $field_type = '';
  18. }
  19. if ( isset( $ninja_forms_fields[$field_type]['esc_html'] ) ) {
  20. $esc_html = $ninja_forms_fields[$field_type]['esc_html'];
  21. } else {
  22. $esc_html = true;
  23. }
  24. if ( is_object( $ninja_forms_processing ) ) {
  25. $clear_form = $ninja_forms_processing->get_form_setting( 'clear_complete' );
  26. $process_complete = $ninja_forms_processing->get_form_setting( 'processing_complete' );
  27. if ( $process_complete != 1 OR ( $process_complete == 1 AND $clear_form != 1 ) ) {
  28. if ( $ninja_forms_processing->get_field_value( $field_id ) !== false ) {
  29. if ( $esc_html ) {
  30. if( is_array( $ninja_forms_processing->get_field_value( $field_id ) ) ){
  31. $default_value = ninja_forms_esc_html_deep( $ninja_forms_processing->get_field_value( $field_id ) );
  32. } else {
  33. $default_value = esc_html( $ninja_forms_processing->get_field_value( $field_id ) );
  34. }
  35. } else {
  36. $default_value = $ninja_forms_processing->get_field_value( $field_id );
  37. }
  38. $data['default_value'] = $default_value;
  39. }
  40. }
  41. }
  42. return $data;
  43. }
  44. add_filter( 'ninja_forms_field', 'ninja_forms_filter_restore_progress', 8, 2 );