private static function fix_leading_and_trailing_spaces() { global $wpdb; $meta_table_name = GFFormsModel::get_meta_table_name(); $lead_details_table = GFFormsModel::get_lead_details_table_name(); $lead_details_long_table = GFFormsModel::get_lead_details_long_table_name(); $result = $wpdb->query("UPDATE {$lead_details_table} SET value = TRIM(value)"); $result = $wpdb->query("UPDATE {$lead_details_long_table} SET value = TRIM(value)"); $results = $wpdb->get_results("SELECT form_id, display_meta, confirmations, notifications FROM {$meta_table_name}", ARRAY_A); foreach ($results as &$result) { $form_id = $result['form_id']; $form = GFFormsModel::unserialize($result['display_meta']); $form_updated = false; $form = GFFormsModel::trim_form_meta_values($form, $form_updated); if ($form_updated) { GFFormsModel::update_form_meta($form_id, $form); } $confirmations = GFFormsModel::unserialize($result['confirmations']); $confirmations_updated = false; $confirmations = GFFormsModel::trim_conditional_logic_values($confirmations, $form, $confirmations_updated); if ($confirmations_updated) { GFFormsModel::update_form_meta($form_id, $confirmations, 'confirmations'); } $notifications = GFFormsModel::unserialize($result['notifications']); $notifications_updated = false; $notifications = GFFormsModel::trim_conditional_logic_values($notifications, $form, $notifications_updated); if ($notifications_updated) { GFFormsModel::update_form_meta($form_id, $notifications, 'notifications'); } } return $results; }
public static function is_valid_table($table_name) { global $wpdb; $tables = array(GFFormsModel::get_form_table_name(), GFFormsModel::get_form_view_table_name(), GFFormsModel::get_meta_table_name(), GFFormsModel::get_lead_table_name(), GFFormsModel::get_lead_notes_table_name(), GFFormsModel::get_lead_details_table_name(), GFFormsModel::get_lead_details_long_table_name(), GFFormsModel::get_lead_meta_table_name(), GFFormsModel::get_incomplete_submissions_table_name(), "{$wpdb->prefix}gf_addon_feed", "{$wpdb->prefix}gf_addon_payment_transaction", "{$wpdb->prefix}gf_addon_payment_callback"); return in_array($table_name, $tables); }
private static function fix_leading_and_trailing_spaces() { global $wpdb; $meta_table_name = GFFormsModel::get_meta_table_name(); $lead_details_table = GFFormsModel::get_lead_details_table_name(); $lead_details_long_table = GFFormsModel::get_lead_details_long_table_name(); //fast but doesn't allow for the gform_trim_input_value filter //$result = $wpdb->query("UPDATE $lead_details_table SET value = TRIM(value)"); //$result = $wpdb->query("UPDATE $lead_details_long_table SET value = TRIM(value)"); $results = $wpdb->get_results("SELECT form_id, display_meta FROM {$meta_table_name}", ARRAY_A); foreach ($results as &$result) { $form_id = $result["form_id"]; $form = GFFormsModel::unserialize($result["display_meta"]); $form_updated = false; if (isset($form["fields"]) && is_array($form["fields"])) { $fields_to_update = array(); foreach ($form["fields"] as &$field) { $trim_value = apply_filters("gform_trim_input_value", true, $form_id, $field); if (!$trim_value) { continue; } if (isset($field["label"]) && $field["label"] != trim($field["label"])) { $field["label"] = trim($field["label"]); $form_updated = true; } if (isset($field["choices"]) && is_array($field["choices"])) { foreach ($field["choices"] as &$choice) { if (isset($choice["text"]) && $choice["text"] != trim($choice["text"])) { $choice["text"] = trim($choice["text"]); $form_updated = true; } if (isset($choice["value"]) && $choice["value"] != trim($choice["value"])) { $choice["value"] = trim($choice["value"]); $form_updated = true; } } } if (isset($field["inputs"]) && is_array($field["inputs"])) { foreach ($field["inputs"] as &$input) { if (isset($input["label"]) && $input["label"] != trim($input["label"])) { $input["label"] = trim($input["label"]); $form_updated = true; } } } $field_id = (int) $field["id"]; $field_number_min = $field_id - 0.001; $field_number_max = $field_id + 0.999; $fields_to_update[] = sprintf("field_number BETWEEN %s AND %s", $field_number_min, $field_number_max); } if (!empty($fields_to_update)) { $fields_to_update_str = join(" OR ", $fields_to_update); //slow - may cause timeouts on sites with high volume of entries $result = $wpdb->query("UPDATE {$lead_details_table} SET value = TRIM(value) WHERE form_id = {$form_id} AND ({$fields_to_update_str})"); $result = $wpdb->query("UPDATE {$lead_details_long_table} SET value = TRIM(value) WHERE lead_detail_id IN (SELECT id FROM {$lead_details_table} WHERE form_id = {$form_id} AND ({$fields_to_update_str}))"); } } if ($form_updated) { GFFormsModel::update_form_meta($form_id, $form); } } return $results; }
public static function get_form_confirmations($form_id) { global $wpdb; if (isset($_confirmations[$form_id])) { return $_confirmations[$form_id]; } $tablename = GFFormsModel::get_meta_table_name(); $sql = $wpdb->prepare("SELECT confirmations FROM {$tablename} WHERE form_id = %d", $form_id); $results = $wpdb->get_results($sql, ARRAY_A); $confirmations = rgars($results, '0/confirmations'); self::$_confirmations[$form_id] = $confirmations ? self::unserialize($confirmations) : array(); return self::$_confirmations[$form_id]; }
/** * Updates the form with a given form object. * * @since 1.8 * @access public * @static * * @param array $form The Form object * @param int $form_id Optional. If specified, then the ID in the Form object will be ignored * * @return mixed True for success, or a WP_Error instance */ public static function update_form($form, $form_id = null) { global $wpdb; if (!$form) { return new WP_Error('invalid', __('Invalid form object', 'gravityforms')); } $form_table_name = $wpdb->prefix . 'rg_form'; if (empty($form_id)) { $form_id = $form['id']; } else { // make sure the form object has the right form id $form['id'] = $form_id; if (isset($form['fields'])) { foreach ($form['fields'] as &$field) { if ($field instanceof GF_Field) { $field->formId = $form_id; } else { $field['formId'] = $form_id; } } } } if (empty($form_id)) { return new WP_Error('missing_form_id', __('Missing form id', 'gravityforms')); } $meta_table_name = GFFormsModel::get_meta_table_name(); if (intval($wpdb->get_var($wpdb->prepare("SELECT count(0) FROM {$meta_table_name} WHERE form_id=%d", $form_id))) == 0) { return new WP_Error('not_found', __('Form not found', 'gravityforms')); } // Strip confirmations and notifications $form_display_meta = $form; unset($form_display_meta['confirmations']); unset($form_display_meta['notifications']); $result = GFFormsModel::update_form_meta($form_id, $form_display_meta); if (false === $result) { return new WP_Error('error_updating_form', __('Error updating form', 'gravityforms'), $wpdb->last_error); } if (isset($form['confirmations']) && is_array($form['confirmations'])) { $result = GFFormsModel::update_form_meta($form_id, $form['confirmations'], 'confirmations'); if (false === $result) { return new WP_Error('error_updating_confirmations', __('Error updating form confirmations', 'gravityforms'), $wpdb->last_error); } } if (isset($form['notifications']) && is_array($form['notifications'])) { $result = GFFormsModel::update_form_meta($form_id, $form['notifications'], 'notifications'); if (false === $result) { return new WP_Error('error_updating_notifications', __('Error updating form notifications', 'gravityforms'), $wpdb->last_error); } } //updating form title and is_active flag $is_active = rgar($form, 'is_active') ? '1' : '0'; $result = $wpdb->query($wpdb->prepare("UPDATE {$form_table_name} SET title=%s, is_active=%s WHERE id=%d", $form['title'], $is_active, $form['id'])); if (false === $result) { return new WP_Error('error_updating_title', __('Error updating title', 'gravityforms'), $wpdb->last_error); } return true; }