function allow_submit_with_cookie($entry_id) { $form = $this->form; FrmProEntriesController::set_cookie($entry_id, $form->id); $this->assertTrue(isset($_COOKIE['frm_form' . $form->id . '_' . COOKIEHASH]), 'The cookie was not created'); $this->assertFalse(FrmProFormsHelper::user_can_submit_form($form)); }
function process_update_entry($params, $errors, $form) { global $frm_entry, $frm_saved_entries, $frm_created_entry; $form->options = stripslashes_deep(maybe_unserialize($form->options)); if ($params['action'] == 'update' and in_array((int) $params['id'], (array) $frm_saved_entries)) { return; } if ($params['action'] == 'create' and isset($frm_created_entry[$form->id]) and isset($frm_created_entry[$form->id]['entry_id']) and is_numeric($frm_created_entry[$form->id]['entry_id'])) { $entry_id = $params['id'] = $frm_created_entry[$form->id]['entry_id']; FrmProEntriesController::set_cookie($entry_id, $form->id); $conf_method = apply_filters('frm_success_filter', 'message', $form, $form->options); if ($conf_method == 'redirect') { //do_action('frm_success_action', $conf_method, $form, $form->options, $params['id']); $success_url = apply_filters('frm_content', $form->options['success_url'], $form, $entry_id); $success_url = apply_filters('frm_redirect_url', $success_url, $form, $params); wp_redirect($success_url); exit; } } else { if ($params['action'] == 'update') { if (in_array((int) $params['id'], (array) $frm_saved_entries)) { if (isset($_POST['item_meta'])) { unset($_POST['item_meta']); } add_filter('frm_continue_to_new', create_function('', "return {$continue};"), 15); return; } if (empty($errors)) { if (isset($form->options['editable_role']) and !FrmAppHelper::user_has_permission($form->options['editable_role'])) { global $frm_settings; wp_die($frm_settings->login_msg); } if (!isset($_POST['frm_page_order_' . $form->id])) { $frm_entry->update($params['id'], $_POST); //check confirmation method $conf_method = apply_filters('frm_success_filter', 'message', $form); if ($conf_method == 'redirect') { //do_action('frm_success_action', $conf_method, $form, $form->options, $params['id']); $success_url = apply_filters('frm_content', $form->options['success_url'], $form, $params['id']); $success_url = apply_filters('frm_redirect_url', $success_url, $form, $params); wp_redirect($success_url); exit; } } } } else { if ($params['action'] == 'destroy') { //if the user who created the entry is deleting it $this->ajax_destroy($form->id, false, false); } } } }
public static function process_update_entry($params, $errors, $form, $args) { global $frm_entry, $frm_vars; if ($params['action'] == 'update' && isset($frm_vars['saved_entries']) && in_array((int) $params['id'], (array) $frm_vars['saved_entries'])) { return; } if ($params['action'] == 'create' and isset($frm_vars['created_entries'][$form->id]) and isset($frm_vars['created_entries'][$form->id]['entry_id']) and is_numeric($frm_vars['created_entries'][$form->id]['entry_id'])) { $entry_id = $params['id'] = $frm_vars['created_entries'][$form->id]['entry_id']; FrmProEntriesController::set_cookie($entry_id, $form->id); $conf_method = apply_filters('frm_success_filter', 'message', $form, $form->options, $params['action']); if ($conf_method != 'redirect') { return; } $success_args = array('action' => $params['action']); if (isset($args['ajax'])) { $success_args['ajax'] = $args['ajax']; } do_action('frm_success_action', $conf_method, $form, $form->options, $params['id'], $success_args); } else { if ($params['action'] == 'update') { if (isset($frm_vars['saved_entries']) && in_array((int) $params['id'], (array) $frm_vars['saved_entries'])) { if (isset($_POST['item_meta'])) { unset($_POST['item_meta']); } add_filter('frm_continue_to_new', '__return_' . ($continue ? 'true' : 'false'), 15); return; } //don't update if there are validation errors if (!empty($errors)) { return; } //check if user is allowed to update if (!FrmProEntriesHelper::user_can_edit((int) $params['id'], $form)) { global $frm_settings; wp_die(do_shortcode($frm_settings->login_msg)); } //update, but don't check for confirmation if saving draft if (FrmProFormsHelper::saving_draft($form->id)) { $frm_entry->update($params['id'], $_POST); return; } //don't update if going back if (isset($_POST['frm_page_order_' . $form->id]) or FrmProFormsHelper::going_to_prev($form->id)) { return; } $frm_entry->update($params['id'], $_POST); $success_args = array('action' => $params['action']); if ($params['action'] != 'create' && FrmProEntriesHelper::is_new_entry($params['id'])) { $success_args['action'] = 'create'; } //check confirmation method $conf_method = apply_filters('frm_success_filter', 'message', $form, $success_args['action']); if ($conf_method != 'redirect') { return; } if (isset($args['ajax'])) { $success_args['ajax'] = $args['ajax']; } do_action('frm_success_action', $conf_method, $form, $form->options, $params['id'], $success_args); } else { if ($params['action'] == 'destroy') { //if the user who created the entry is deleting it self::ajax_destroy($form->id, false, false); } } } }
function set_cookie($entry_id, $form_id) { //if form options['single] or isset($_POST['frm_single_submit']){ if (defined('WP_IMPORTING') or defined('DOING_AJAX')) { return; } if (isset($_POST) and isset($_POST['frm_skip_cookie'])) { if (!headers_sent()) { FrmProEntriesController::set_cookie($entry_id, $form_id); } return; } ?> <script type="text/javascript"> jQuery(document).ready(function($){ jQuery.ajax({type:"POST",url:"<?php echo FRM_SCRIPT_URL; ?> ", data:"controller=entries&frm_action=ajax_set_cookie&entry_id=<?php echo $entry_id; ?> &form_id=<?php echo $form_id; ?> " }); }); </script> <?php //} }