clear-complete.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. /**
  3. * Function that resets the field values to default if the form has been submitted.
  4. *
  5. * @since 2.5
  6. * @return void
  7. */
  8. function nf_clear_complete( $form_id ) {
  9. global $ninja_forms_processing, $current_user, $post;
  10. if ( ! isset ( $ninja_forms_processing ) or $ninja_forms_processing->get_form_setting( 'clear_complete' ) == 0 or $ninja_forms_processing->get_form_setting( 'processing_complete' ) != 1 )
  11. return false;
  12. $all_fields = $ninja_forms_processing->get_all_fields();
  13. foreach ( $all_fields as $field_id => $user_value ) {
  14. $default_value = $ninja_forms_processing->get_field_setting( $field_id, 'default_value' );
  15. wp_get_current_user();
  16. $user_ID = $current_user->ID;
  17. if ( $user_ID and !empty( $user_ID ) ) {
  18. $user_firstname = $current_user->user_firstname;
  19. $user_lastname = $current_user->user_lastname;
  20. $user_display_name = $current_user->display_name;
  21. $user_email = $current_user->user_email;
  22. } else {
  23. $user_ID = '';
  24. $user_firstname = '';
  25. $user_lastname = '';
  26. $user_display_name = '';
  27. $user_email = '';
  28. }
  29. if ( is_object ( $post ) ) {
  30. $post_ID = $post->ID;
  31. $post_title = $post->post_title;
  32. $post_url = get_permalink( $post_ID );
  33. } else {
  34. $post_ID = '';
  35. $post_title = '';
  36. $post_url = '';
  37. }
  38. switch( $default_value ){
  39. case '_user_id':
  40. $default_value = $user_ID;
  41. break;
  42. case '_user_firstname':
  43. $default_value = $user_firstname;
  44. break;
  45. case '_user_lastname':
  46. $default_value = $user_lastname;
  47. break;
  48. case '_user_display_name':
  49. $default_value = $user_display_name;
  50. break;
  51. case '_user_email':
  52. $default_value = $user_email;
  53. break;
  54. case 'post_id':
  55. $default_value = $post_ID;
  56. break;
  57. case 'post_title':
  58. $default_value = $post_title;
  59. break;
  60. case 'post_url':
  61. $default_value = $post_url;
  62. break;
  63. case 'today':
  64. $plugin_settings = nf_get_settings();
  65. if ( isset ( $plugin_settings['date_format'] ) ) {
  66. $date_format = $plugin_settings['date_format'];
  67. } else {
  68. $date_format = 'm/d/Y';
  69. }
  70. $default_value = date( $date_format, current_time( 'timestamp' ) );
  71. break;
  72. }
  73. $ninja_forms_processing->update_field_value( $field_id, $default_value );
  74. }
  75. }
  76. add_action( 'ninja_forms_display_init', 'nf_clear_complete', 999 );