save.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. function ninja_forms_admin_save(){
  3. global $ninja_forms_tabs, $ninja_forms_sidebars, $ninja_forms_tabs_metaboxes, $ninja_forms_admin_update_message;
  4. if(!empty($_POST) AND !empty($_POST['_ninja_forms_admin_submit']) AND $_POST['_ninja_forms_admin_submit'] != ''){
  5. if(wp_verify_nonce($_POST['_ninja_forms_admin_submit'],'_ninja_forms_save') AND check_admin_referer('_ninja_forms_save','_ninja_forms_admin_submit')){
  6. $current_page = esc_html( $_REQUEST['page'] );
  7. $current_tab = ninja_forms_get_current_tab();
  8. $data_array = array();
  9. if ( isset( $_REQUEST['form_id'] ) and $_REQUEST['form_id'] != 'new' ) {
  10. $form_id = absint( $_REQUEST['form_id'] );
  11. // Dump our current form transient.
  12. delete_transient( 'nf_form_' . $form_id );
  13. } else if ( isset ( $_REQUEST['form_id'] ) and $_REQUEST['form_id'] == 'new' ) {
  14. $form_id = 'new';
  15. } else {
  16. $form_id = '';
  17. }
  18. foreach ( $_POST as $key => $val ) {
  19. if ( substr($key, 0, 1) != '_') {
  20. $data_array[$key] = $val;
  21. }
  22. }
  23. $data_array = ninja_forms_stripslashes_deep( $data_array );
  24. //$data_array = ninja_forms_esc_html_deep( $data_array );
  25. //Call any save functions registered to metaboxes
  26. if( isset( $ninja_forms_tabs_metaboxes[$current_page][$current_tab] ) AND is_array( $ninja_forms_tabs_metaboxes[$current_page][$current_tab] ) AND !empty( $ninja_forms_tabs_metaboxes[$current_page][$current_tab] ) ){
  27. foreach( $ninja_forms_tabs_metaboxes[$current_page][$current_tab] as $slug => $opts ){
  28. // Get the save function of our options, if set, and call them, passing the data that has been posted.
  29. if( isset( $opts['settings'] ) AND !empty( $opts['settings'] ) ){
  30. foreach( $opts['settings'] as $setting ){
  31. if( isset( $setting['save_function'] ) ){
  32. if( isset( $form_id ) and $form_id != '' ){
  33. $arguments['form_id'] = $form_id;
  34. }
  35. $arguments['data'] = $data_array;
  36. if( $setting['save_function'] != '' ){
  37. if( $ninja_forms_admin_update_message != '' ){
  38. $ninja_forms_admin_update_message .= ' ';
  39. }
  40. $ninja_forms_admin_update_message .= call_user_func_array($setting['save_function'], $arguments);
  41. do_action( 'ninja_forms_save_admin_metabox_option', $setting, $form_id, $data_array );
  42. }
  43. }
  44. }
  45. }
  46. if( isset( $opts['save_function'] ) ){
  47. $save_function = $opts['save_function'];
  48. $arguments = func_get_args();
  49. array_shift($arguments); // We need to remove the first arg ($function_name)
  50. if ( isset( $form_id ) and $form_id != '' ) {
  51. $arguments['form_id'] = $form_id;
  52. }
  53. $arguments['data'] = $data_array;
  54. if($save_function != ''){
  55. if( $ninja_forms_admin_update_message != '' ){
  56. $ninja_forms_admin_update_message .= ' ';
  57. }
  58. $ninja_forms_admin_update_message .= call_user_func_array($save_function, $arguments);
  59. do_action( 'ninja_forms_save_admin_metabox', $slug, $form_id, $data_array );
  60. }
  61. }
  62. }
  63. }
  64. // Get the save function of our current sidebars, if present, and call them, passing the data that has been posted.
  65. if(isset($ninja_forms_sidebars[$current_page][$current_tab]) AND is_array($ninja_forms_sidebars[$current_page][$current_tab])){
  66. foreach($ninja_forms_sidebars[$current_page][$current_tab] as $slug => $sidebar){
  67. if($sidebar['save_function'] != ''){
  68. $save_function = $sidebar['save_function'];
  69. $arguments = func_get_args();
  70. array_shift($arguments); // We need to remove the first arg ($function_name)
  71. if ( isset( $form_id ) and $form_id != '' ){
  72. $arguments['form_id'] = $form_id;
  73. }
  74. $arguments['data'] = $data_array;
  75. if($save_function != ''){
  76. if( $ninja_forms_admin_update_message != '' ){
  77. $ninja_forms_admin_update_message .= ' ';
  78. }
  79. $ninja_forms_admin_update_message .= call_user_func_array($save_function, $arguments);
  80. do_action( 'ninja_forms_save_admin_sidebar', $slug, $form_id, $data_array );
  81. }
  82. }
  83. }
  84. }
  85. // Get the save function of our current tab and call it, passing the data that has been posted.
  86. $save_function = $ninja_forms_tabs[$current_page][$current_tab]['save_function'];
  87. $tab_reload = $ninja_forms_tabs[$current_page][$current_tab]['tab_reload'];
  88. $arguments = func_get_args();
  89. array_shift($arguments); // We need to remove the first arg ($function_name)
  90. if ( isset( $form_id ) and $form_id != '' ) {
  91. $arguments['form_id'] = $form_id;
  92. }
  93. $arguments['data'] = $data_array;
  94. if($save_function != ''){
  95. $ninja_forms_admin_update_message = call_user_func_array($save_function, $arguments);
  96. do_action( 'ninja_forms_save_admin_tab', $current_tab, $form_id, $data_array );
  97. }
  98. if ( $tab_reload ) {
  99. $redirect_array = array( 'update_message' => urlencode( $ninja_forms_admin_update_message ) );
  100. $url = esc_url_raw( add_query_arg( $redirect_array ) );
  101. wp_redirect( $url );
  102. }
  103. }
  104. }
  105. }
  106. add_action( 'admin_init', 'ninja_forms_admin_save', 999 );