public static function show() { FrmAppHelper::permission_check('frm_view_reports'); remove_action('frm_form_action_reports', 'FrmStatisticsController::list_reports'); add_filter('frm_form_stop_action_reports', '__return_true'); global $wpdb; $form = false; if (isset($_REQUEST['form'])) { $form = FrmForm::getOne($_REQUEST['form']); } if (!$form) { require FrmAppHelper::plugin_path() . '/pro/classes/views/frmpro-statistics/select.php'; return; } $exclude_types = FrmField::no_save_fields(); $exclude_types = array_merge($exclude_types, array('rte', 'textarea', 'file', 'grid', 'signature', 'form', 'table')); $fields = FrmField::getAll(array('fi.form_id' => (int) $form->id, 'fi.type not' => $exclude_types), 'field_order'); $js = ''; $data = array(); $colors = '#21759B,#EF8C08,#C6C6C6'; $data['time'] = self::get_daily_entries($form, array('is3d' => true, 'colors' => $colors, 'bg_color' => 'transparent')); $data['month'] = self::get_daily_entries($form, array('is3d' => true, 'colors' => $colors, 'bg_color' => 'transparent', 'width' => '100%'), 'MONTH'); foreach ($fields as $field) { $this_data = self::graph_shortcode(array('id' => $field->id, 'field' => $field, 'is3d' => true, 'min' => 0, 'colors' => $colors, 'width' => 650, 'bg_color' => 'transparent')); if (strpos($this_data, 'frm_no_data_graph') === false) { $data[$field->id] = $this_data; } unset($field, $this_data); } $entries = FrmDb::get_col($wpdb->prefix . 'frm_items', array('form_id' => $form->id), 'created_at'); // trigger the scripts to load global $frm_vars; $frm_vars['forms_loaded'][] = true; include FrmAppHelper::plugin_path() . '/pro/classes/views/frmpro-statistics/show.php'; }
public static function get_licenses() { FrmAppHelper::permission_check('frm_change_settings'); check_ajax_referer('frm_ajax', 'nonce'); $license = get_option('frmpro-credentials'); if ($license && is_array($license) && isset($license['license'])) { $url = 'http://formidablepro.com/frm-edd-api/licenses?l=' . urlencode(base64_encode($license['license'])); $licenses = self::send_api_request($url, array('name' => 'frm_api_licence', 'expires' => 60 * 60 * 5)); echo json_encode($licenses); } wp_die(); }
public static function destroy() { FrmAppHelper::permission_check('frm_delete_entries'); $params = FrmForm::get_admin_params(); if (isset($params['keep_post']) && $params['keep_post']) { //unlink entry from post global $wpdb; $wpdb->update($wpdb->prefix . 'frm_items', array('post_id' => ''), array('id' => $params['id'])); } $message = ''; if (FrmEntry::destroy($params['id'])) { $message = __('Entry was Successfully Destroyed', 'formidable'); } self::display_list($message); }
public static function route() { $action = isset($_REQUEST['frm_action']) ? 'frm_action' : 'action'; $vars = array(); if (isset($_POST['frm_compact_fields'])) { FrmAppHelper::permission_check('frm_edit_forms'); $json_vars = htmlspecialchars_decode(nl2br(stripslashes(str_replace('"', '\\\\"', $_POST['frm_compact_fields'])))); $json_vars = json_decode($json_vars, true); if (empty($json_vars)) { // json decoding failed so we should return an error message $action = FrmAppHelper::get_param($action, '', 'get', 'sanitize_title'); if ('edit' == $action) { $action = 'update'; } add_filter('frm_validate_form', 'FrmFormsController::json_error'); } else { $vars = FrmAppHelper::json_to_array($json_vars); $action = $vars[$action]; unset($_REQUEST['frm_compact_fields'], $_POST['frm_compact_fields']); $_REQUEST = array_merge($_REQUEST, $vars); $_POST = array_merge($_POST, $_REQUEST); } } else { $action = FrmAppHelper::get_param($action, '', 'get', 'sanitize_title'); if (isset($_REQUEST['delete_all'])) { // override the action for this page $action = 'delete_all'; } } add_action('frm_load_form_hooks', 'FrmHooksController::trigger_load_form_hooks'); FrmAppHelper::trigger_hook_load('form'); switch ($action) { case 'new': return self::new_form($vars); case 'create': case 'edit': case 'update': case 'duplicate': case 'trash': case 'untrash': case 'destroy': case 'delete_all': case 'settings': case 'update_settings': return self::$action($vars); default: do_action('frm_form_action_' . $action); if (apply_filters('frm_form_stop_action_' . $action, false)) { return; } $action = FrmAppHelper::get_param('action', '', 'get', 'sanitize_text_field'); if ($action == -1) { $action = FrmAppHelper::get_param('action2', '', 'get', 'sanitize_title'); } if (strpos($action, 'bulk_') === 0) { FrmAppHelper::remove_get_action(); return self::list_form(); } return self::display_forms_list(); } }
/** * Export to CSV * @since 2.0.19 */ public static function csv($form_id = false, $search = '', $fid = '') { FrmAppHelper::permission_check('frm_view_entries'); if (!$form_id) { $form_id = FrmAppHelper::get_param('form', '', 'get', 'sanitize_text_field'); $search = FrmAppHelper::get_param(isset($_REQUEST['s']) ? 's' : 'search', '', 'get', 'sanitize_text_field'); $fid = FrmAppHelper::get_param('fid', '', 'get', 'sanitize_text_field'); } if (!ini_get('safe_mode')) { set_time_limit(0); //Remove time limit to execute this function $mem_limit = str_replace('M', '', ini_get('memory_limit')); if ((int) $mem_limit < 256) { ini_set('memory_limit', '256M'); } } global $wpdb; $form = FrmForm::getOne($form_id); $form_id = $form->id; $form_cols = self::get_fields_for_csv_export($form_id, $form); $item_id = FrmAppHelper::get_param('item_id', 0, 'get', 'sanitize_text_field'); if (!empty($item_id)) { $item_id = explode(',', $item_id); } $query = array('form_id' => $form_id); if ($item_id) { $query['id'] = $item_id; } /** * Allows the query to be changed for fetching the entry ids to include in the export * * $query is the array of options to be filtered. It includes form_id, and maybe id (array of entry ids), * and the search query. This should return an array, but it can be handled as a string as well. */ $query = apply_filters('frm_csv_where', $query, compact('form_id', 'search', 'fid', 'item_id')); $entry_ids = FrmDb::get_col($wpdb->prefix . 'frm_items it', $query); unset($query); if (empty($entry_ids)) { esc_html_e('There are no entries for that form.', 'formidable'); } else { FrmCSVExportHelper::generate_csv(compact('form', 'entry_ids', 'form_cols')); } wp_die(); }
public static function deactivate() { FrmAppHelper::permission_check('frm_change_settings'); check_ajax_referer('frm_ajax', 'nonce'); $plugin_slug = sanitize_text_field($_POST['plugin']); $this_plugin = self::get_addon($plugin_slug); $license = $this_plugin->get_license(); $response = array('success' => false, 'message' => ''); try { // $license_data->license will be either "deactivated" or "failed" $license_data = $this_plugin->send_mothership_request('deactivate_license', $license); if (is_array($license_data) && $license_data['license'] == 'deactivated') { $response['success'] = true; $response['message'] = __('That license was removed successfully', 'formidable'); } else { $response['message'] = __('There was an error deactivating your license.', 'formidable'); } } catch (Exception $e) { $response['message'] = $e->getMessage(); } $this_plugin->clear_license(); echo json_encode($response); wp_die(); }
public static function fill_action() { FrmAppHelper::permission_check('frm_edit_forms'); check_ajax_referer('frm_ajax', 'nonce'); $action_key = absint($_POST['action_id']); $action_type = sanitize_text_field($_POST['action_type']); $action_control = self::get_form_actions($action_type); if (empty($action_control)) { wp_die(); } $form_action = $action_control->get_single_action($action_key); $values = array(); $form = self::fields_to_values($form_action->menu_order, $values); include FrmAppHelper::plugin_path() . '/classes/views/frm-form-actions/_action_inside.php'; wp_die(); }
public static function _logic_row() { check_ajax_referer('frm_ajax', 'nonce'); FrmAppHelper::permission_check('frm_edit_forms', 'show'); $meta_name = FrmAppHelper::get_post_param('meta_name', '', 'absint'); $field_id = FrmAppHelper::get_post_param('field_id', '', 'absint'); $form_id = FrmAppHelper::get_post_param('form_id', '', 'absint'); $hide_field = ''; $field = FrmField::getOne($field_id); $field = FrmFieldsHelper::setup_edit_vars($field); $form_fields = FrmField::get_all_for_form($form_id); if (!isset($field['hide_field_cond'][$meta_name])) { $field['hide_field_cond'][$meta_name] = '=='; } include FrmAppHelper::plugin_path() . '/pro/classes/views/frmpro-fields/_logic_row.php'; wp_die(); }
public static function update_order() { FrmAppHelper::permission_check('frm_edit_forms'); check_ajax_referer('frm_ajax', 'nonce'); $fields = FrmAppHelper::get_post_param('frm_field_id'); foreach ((array) $fields as $position => $item) { FrmField::update(absint($item), array('field_order' => absint($position))); } wp_die(); }
public static function reset_styling() { FrmAppHelper::permission_check('frm_change_settings'); check_ajax_referer('frm_ajax', 'nonce'); $frm_style = new FrmStyle(); $defaults = $frm_style->get_defaults(); echo json_encode($defaults); wp_die(); }
public static function deauthorize() { FrmAppHelper::permission_check('frm_change_settings'); check_ajax_referer('frm_ajax', 'nonce'); delete_option('frmpro-credentials'); delete_option('frmpro-authorized'); delete_site_option('frmpro-credentials'); delete_site_option('frmpro-authorized'); wp_die(); }
public static function import_csv_entries() { check_ajax_referer('frm_ajax', 'nonce'); FrmAppHelper::permission_check('frm_create_entries'); $opts = get_option('frm_import_options'); if (!$opts) { $opts = array(); } $vars = $_POST; $file_id = $vars['frm_import_file']; $current_path = get_attached_file($file_id); $start_row = isset($opts[$file_id]) ? $opts[$file_id]['imported'] : 1; $imported = FrmProXMLHelper::import_csv($current_path, $vars['form_id'], $vars['data_array'], 0, $start_row + 1, $vars['csv_del'], $vars['max']); $opts[$file_id] = array('row' => $vars['row'], 'imported' => $imported); echo $remaining = (int) $vars['row'] - (int) $imported; // check if the import is complete if (!$remaining) { unset($opts[$file_id]); // since we are finished with this csv, delete it wp_delete_attachment($file_id, true); } update_option('frm_import_options', $opts); wp_die(); }