Esempio n. 1
0
 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);
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
 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];
 }
Esempio n. 5
0
 /**
  * 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;
 }