public function ajax_save_form()
 {
     $data = array();
     $fmb_data = isset($_POST['form_data']) ? urldecode(Uiform_Form_Helper::sanitizeInput_html($_POST['form_data'])) : '';
     $fmb_data = str_replace("\\'", "'", $fmb_data);
     $fmb_data = isset($fmb_data) && $fmb_data ? array_map(array('Uiform_Form_Helper', 'sanitizeRecursive_html'), json_decode($fmb_data, true)) : array();
     $data['fmb_data'] = json_encode($fmb_data);
     $data['fmb_data2'] = isset($fmb_data['onsubm']) ? json_encode($fmb_data['onsubm']) : '';
     $data['fmb_name'] = !empty($_POST['uifm_frm_main_title']) ? Uiform_Form_Helper::sanitizeInput(trim($_POST['uifm_frm_main_title'])) : '';
     $data['created_ip'] = $_SERVER['REMOTE_ADDR'];
     $data['created_by'] = 1;
     $data['created_date'] = date('Y-m-d h:i:s');
     $fmb_id = isset($_POST['uifm_frm_main_id']) ? Uiform_Form_Helper::sanitizeInput(trim($_POST['uifm_frm_main_id'])) : 0;
     $json = array();
     if (intval($fmb_id) > 0) {
         $where = array('fmb_id' => $fmb_id);
         $this->wpdb->update($this->formsmodel->table, $data, $where);
         $json['status'] = 'updated';
         $json['id'] = $fmb_id;
     } else {
         $this->wpdb->insert($this->formsmodel->table, $data);
         $idActivate = $this->wpdb->insert_id;
         $json['status'] = 'created';
         $json['id'] = $idActivate;
     }
     if (intval($json['id']) > 0) {
         $where = array('fmb_id' => $json['id']);
         //save fields to table
         $this->save_data_fields($json['id']);
         //save fields to table
         $this->save_form_clogic();
         //generate form html
         $gen_return = $this->generate_form_html($json['id']);
         $data = array();
         $data['fmb_html'] = $gen_return['output_html'];
         $data['fmb_html_css'] = $gen_return['output_css'];
         //get global style
         $data2 = array();
         $data2['idform'] = $json['id'];
         $data2['addition_css'] = $this->current_data_main['add_css'];
         $data2['skin'] = $this->current_data_skin;
         $gen_return['output_css'] .= self::render_template('formbuilder/views/forms/formhtml_css_global.php', $data2);
         $this->wpdb->update($this->formsmodel->table, $data, $where);
         //generate form css
         ob_start();
         $pathCssFile = UIFORM_FORMS_DIR . '/assets/frontend/css/rockfm_form' . $json['id'] . '.css';
         $f = fopen($pathCssFile, "w");
         fwrite($f, $gen_return['output_css']);
         fclose($f);
         ob_end_clean();
     }
     //return data to ajax callback
     header('Content-Type: application/json');
     echo json_encode($json);
     wp_die();
 }
 /**
  * Sanitize recursive
  * 
  * @param string $data array
  * 
  * @return array
  */
 public static function sanitizeRecursive_html($data)
 {
     if (is_array($data)) {
         return array_map(array('Uiform_Form_Helper', 'sanitizeRecursive_html'), $data);
     } else {
         return Uiform_Form_Helper::sanitizeInput_html($data);
     }
 }
 public function get_form_shortcode($attributes, $content = null)
 {
     extract(shortcode_atts(array('id' => 1, 'ajax' => false), $attributes));
     $shortcode_string = "";
     $data_form = $this->formsmodel->getAvailableFormById($id);
     if (empty($data_form)) {
         return;
     }
     $shortcode_string = stripslashes($data_form->fmb_html);
     //load resources
     $this->load_form_resources($id);
     ob_start();
     // check for external shortcodes
     $shortcode_string = do_shortcode($shortcode_string);
     //adding alert message
     if (isset($_POST['_rockfm_type_submit']) && absint($_POST['_rockfm_type_submit']) === 0 && absint($_POST['_rockfm_form_id']) === intval($id)) {
         if (isset($this->flag_submitted) && intval($this->flag_submitted) > 0) {
             echo isset($_POST['_rockfm_onsubm_smsg']) ? Uiform_Form_Helper::base64url_decode(Uiform_Form_Helper::sanitizeInput_html($_POST['_rockfm_onsubm_smsg'])) : __('Success! your form was submitted', 'frocket_front');
         } else {
             echo __('warning! Form was not submitted', 'frocket_front');
         }
     }
     if (!file_exists(UIFORM_FORMS_DIR . '/assets/frontend/css/rockfm_form' . $id . '.css')) {
         ob_start();
         ?>
         <style type="text/css">
         <?php 
         echo $data_form->fmb_html_css;
         ?>
         </style> 
         <?php 
         $css_string = ob_get_clean();
         ob_end_clean();
         echo $css_string;
     }
     echo $shortcode_string;
     $output = ob_get_clean();
     return $output;
 }