public static function ajax_create() { global $frm_entry; $frm_form = new FrmForm(); $form = $frm_form->getOne($_POST['form_id']); if (!$form) { echo false; die; } $no_ajax_fields = array('file'); $errors = $frm_entry->validate($_POST, $no_ajax_fields); if (empty($errors)) { global $wpdb; $where = $wpdb->prepare("form_id=%d", $form->id); if (isset($_POST['frm_page_order_' . $form->id])) { $where .= $wpdb->prepare(" AND field_order < %d", $_POST['frm_page_order_' . $form->id]); } $ajax = isset($form->options['ajax_submit']) ? $form->options['ajax_submit'] : 0; //ajax submit if no file, rte, captcha if ($ajax) { $no_ajax = $wpdb->get_var("SELECT id FROM {$wpdb->prefix}frm_fields WHERE type in ('" . implode("','", $no_ajax_fields) . "') AND {$where} LIMIT 1"); if ($no_ajax) { $ajax = false; } } if ($ajax) { global $frm_vars; $frm_vars['ajax'] = true; $frm_vars['css_loaded'] = true; if (!isset($_POST['frm_page_order_' . $form->id]) && !FrmProFormsHelper::going_to_prev($form->id) || FrmProFormsHelper::saving_draft($form->id)) { $processed = true; FrmEntriesController::process_entry($errors, true); } echo FrmFormsController::show_form($form->id); // trigger the footer scripts if there is a form to show if ($errors || !isset($form->options['show_form']) || $form->options['show_form'] || !isset($processed)) { self::register_scripts(); FrmProEntriesController::enqueue_footer_js(); wp_deregister_script('formidable'); global $wp_scripts, $wp_styles; foreach (array('jquery', 'jquery-ui-core', 'jquery-migrate', 'thickbox') as $s) { if (isset($wp_scripts->registered[$s])) { $wp_scripts->done[] = $s; } unset($s); } $keep_styles = apply_filters('frm_ajax_load_styles', array('dashicons', 'jquery-theme')); foreach ($wp_styles->registered as $s => $info) { if (!is_array($keep_styles) || !in_array($s, $keep_styles)) { $wp_styles->done[] = $s; } unset($s); } wp_print_footer_scripts(); FrmProEntriesController::footer_js(); } } else { echo false; } } else { $errors = str_replace('"', '"', $errors); $obj = array(); foreach ($errors as $field => $error) { $field_id = str_replace('field', '', $field); $obj[$field_id] = $error; } echo json_encode($obj); } die; }