function ajaxUpdateForms() { global $userMeta; //$userMeta->dump($_REQUEST);die(); $userMeta->verifyAdminNonce('formEditor'); $parse = parse_url($_SERVER['HTTP_REFERER']); parse_str($parse['query'], $query); if (empty($query['action'])) { echo 'Something went wrong!'; die; } if (!empty($_POST['form_key'])) { $formKey = $_POST['form_key']; } else { echo 'Form name is required.'; die; } $forms = $userMeta->getData('forms'); $formBuilder = new umFormBuilder(); if ('edit' == $query['action']) { if (empty($query['form']) || empty($_POST['form_key'])) { echo 'Something went wrong!'; die; } if ($query['form'] != $_POST['form_key']) { if (isset($forms[$_POST['form_key']])) { echo 'Form: "' . $_POST['form_key'] . '" already exists!'; die; } unset($forms[$query['form']]); $query['form'] = $_POST['form_key']; $formBuilder->redirect_to = $parse['scheme'] . '://' . $parse['host'] . $parse['path'] . '?' . http_build_query($query); } } elseif ('new' == $query['action']) { if (isset($forms[$_POST['form_key']])) { echo 'Form: "' . $_POST['form_key'] . '" already exists!'; die; } $query['form'] = $_POST['form_key']; $query['action'] = 'edit'; $formBuilder->redirect_to = $parse['scheme'] . '://' . $parse['host'] . $parse['path'] . '?' . http_build_query($query); } $fields = $formBuilder->getAllFields(); $form = $_POST; $form = stripslashes_deep($_POST); //$form = $userMeta->arrayRemoveEmptyValue( $_POST ); $formFields = isset($form['fields']) ? $form['fields'] : array(); $formFields = $formBuilder->sanitizeFieldsIDs($formFields); foreach ($formFields as $id => $field) { if (is_array($field)) { foreach ($field as $key => $val) { // Process shared fields if (isset($fields[$id][$key])) { if ($fields[$id][$key] == $val) { unset($formFields[$id][$key]); } } else { if (empty($val)) { unset($formFields[$id][$key]); } } } } if (!empty($field['make_field_shared']) && !isset($fields[$id])) { unset($formFields[$id]['make_field_shared']); $fields[$id] = $formFields[$id]; $formFields[$id] = array(); $triggerFieldsUpdate = true; } } $form['fields'] = $formFields; $form = $userMeta->removeAdditional($form); $forms[$formKey] = $form; $forms = apply_filters('user_meta_pre_configuration_update', $forms, 'forms_editor'); $userMeta->updateData('forms', $forms); //$userMeta->dump($fields); if (!empty($triggerFieldsUpdate)) { $userMeta->updateData('fields', $fields); if (empty($formBuilder->redirect_to)) { $formBuilder->redirect_to = $parse['scheme'] . '://' . $parse['host'] . $parse['path'] . '?' . $parse['query']; } } $formBuilder->setMaxFieldID(); if (!empty($formBuilder->redirect_to)) { echo json_encode(array('redirect_to' => $formBuilder->redirect_to)); die; } echo 1; die; }