/**
  * Cache the form meta.
  *
  * @param int $form_id The form ID.
  *
  * @return mixed
  */
 public function get_form_meta($form_id)
 {
     if (!isset($this->_form_meta_by_id[$form_id])) {
         $forms = GFFormsModel::get_form_meta_by_id($form_id);
         $this->_form_meta_by_id[$form_id] = array_shift($forms);
     }
     return $this->_form_meta_by_id[$form_id];
 }
 function check_force($id)
 {
     if (get_option('gform_force_ssl_all') == '1') {
         return true;
     }
     $form_meta = GFFormsModel::get_form_meta_by_id($id);
     if (!empty($form_meta[0]['force_ssl'])) {
         return $form_meta[0]['force_ssl'];
     }
     return false;
 }
 /**
  * Removes all settings and deactivates the Add-On.
  *
  * Not intended to be overridden or called directly by Add-Ons.
  *
  * @ignore
  */
 public function uninstall_addon()
 {
     if (!$this->current_user_can_any($this->_capabilities_uninstall)) {
         die(__("You don't have adequate permission to uninstall this addon: " . $this->_title, "gravityforms"));
     }
     $continue = $this->uninstall();
     if (false === $continue) {
         return false;
     }
     global $wpdb;
     $lead_meta_table = GFFormsModel::get_lead_meta_table_name();
     $forms = GFFormsModel::get_forms();
     $all_form_ids = array();
     // remove entry meta
     foreach ($forms as $form) {
         $all_form_ids[] = $form->id;
         $entry_meta = $this->get_entry_meta(array(), $form->id);
         if (is_array($entry_meta)) {
             foreach (array_keys($entry_meta) as $meta_key) {
                 $sql = $wpdb->prepare("DELETE from {$lead_meta_table} WHERE meta_key=%s", $meta_key);
                 $wpdb->query($sql);
             }
         }
     }
     //remove form settings
     $form_metas = GFFormsModel::get_form_meta_by_id($all_form_ids);
     require_once GFCommon::get_base_path() . '/form_detail.php';
     foreach ($form_metas as $form_meta) {
         if (isset($form_meta[$this->_slug])) {
             unset($form_meta[$this->_slug]);
             $form_json = json_encode($form_meta);
             GFFormDetail::save_form_info($form_meta["id"], addslashes($form_json));
         }
     }
     //removing options
     delete_option("gravityformsaddon_" . $this->_slug . "_settings");
     delete_option("gravityformsaddon_" . $this->_slug . "_version");
     //Deactivating plugin
     deactivate_plugins($this->_path);
     update_option('recently_activated', array($this->_path => time()) + (array) get_option('recently_activated'));
     return true;
 }
Exemple #4
0
 public static function get_form_metas()
 {
     $form_ids = array();
     $forms = RGFormsModel::get_forms(true);
     foreach ($forms as $form) {
         $form_ids[] = $form->id;
     }
     $form_metas = GFFormsModel::get_form_meta_by_id($form_ids);
     return $form_metas;
 }
 /**
  * Modifies the top WordPress toolbar to add Gravity Forms menu items.
  *
  * Called from the wp_before_admin_bar_render action.
  *
  * @access public
  * @static
  * @global $wp_admin_bar
  * @see Action: wp_before_admin_bar_render
  *
  */
 public static function admin_bar()
 {
     /**
      * @var  WP_Admin_Bar $wp_admin_bar
      */
     global $wp_admin_bar;
     if (GFCommon::current_user_can_any('gravityforms_create_form')) {
         $wp_admin_bar->add_node(array('id' => 'gravityforms-new-form', 'parent' => 'new-content', 'title' => esc_attr__('Form', 'gravityforms'), 'href' => admin_url('admin.php?page="gf_new_form')));
     }
     if (!get_option('gform_enable_toolbar_menu')) {
         return;
     }
     if (!GFCommon::current_user_can_any(array('gravityforms_edit_forms', 'gravityforms_create_form', 'gravityforms_preview_forms', 'gravityforms_view_entries'))) {
         // The current user can't use anything on the menu so bail.
         return;
     }
     $args = array('id' => 'gform-forms', 'title' => '<div class="ab-item gforms-menu-icon svg" style="background-image: url(\'' . self::get_admin_icon_b64('#888888') . '\');"></div><span class="ab-label">' . esc_html__('Forms', 'gravityforms') . '</span></a>', 'href' => admin_url('admin.php?page=gf_edit_forms'));
     $wp_admin_bar->add_node($args);
     $current_user_id = get_current_user_id();
     $recent_form_ids = get_user_meta($current_user_id, 'gform_recent_forms', true);
     if (empty($recent_form_ids)) {
         $all_form_ids = GFFormsModel::get_form_ids();
         $all_form_ids = array_reverse($all_form_ids);
         $recent_form_ids = array_slice($all_form_ids, 0, 10);
         if ($recent_form_ids) {
             update_user_meta($current_user_id, 'gform_recent_forms', $recent_form_ids);
         }
     }
     if ($recent_form_ids) {
         $forms = GFFormsModel::get_form_meta_by_id($recent_form_ids);
         $wp_admin_bar->add_node(array('id' => 'gform-form-recent-forms', 'parent' => 'gform-forms', 'title' => esc_html__('Recent', 'gravityforms'), 'group' => true));
         foreach ($recent_form_ids as $recent_form_id) {
             foreach ($forms as $form) {
                 if ($form['id'] == $recent_form_id) {
                     $wp_admin_bar->add_node(array('id' => 'gform-form-' . $recent_form_id, 'parent' => 'gform-form-recent-forms', 'title' => $form['title'], 'href' => GFCommon::current_user_can_any('gravityforms_edit_forms') ? admin_url('admin.php?page=gf_edit_forms&id=' . $recent_form_id) : ''));
                     if (GFCommon::current_user_can_any('gravityforms_edit_forms')) {
                         $wp_admin_bar->add_node(array('id' => 'gform-form-' . $recent_form_id . '-edit', 'parent' => 'gform-form-' . $recent_form_id, 'title' => esc_html__('Edit', 'gravityforms'), 'href' => admin_url('admin.php?page=gf_edit_forms&id=' . $recent_form_id)));
                     }
                     if (GFCommon::current_user_can_any('gravityforms_view_entries')) {
                         $wp_admin_bar->add_node(array('id' => 'gform-form-' . $recent_form_id . '-entries', 'parent' => 'gform-form-' . $recent_form_id, 'title' => esc_html__('Entries', 'gravityforms'), 'href' => admin_url('admin.php?page=gf_entries&id=' . $recent_form_id)));
                     }
                     if (GFCommon::current_user_can_any('gravityforms_edit_forms')) {
                         $wp_admin_bar->add_node(array('id' => 'gform-form-' . $recent_form_id . '-settings', 'parent' => 'gform-form-' . $recent_form_id, 'title' => esc_html__('Settings', 'gravityforms'), 'href' => admin_url('admin.php?page=gf_edit_forms&view=settings&subview=settings&id=' . $recent_form_id)));
                     }
                     if (GFCommon::current_user_can_any(array('gravityforms_edit_forms', 'gravityforms_create_form', 'gravityforms_preview_forms'))) {
                         $wp_admin_bar->add_node(array('id' => 'gform-form-' . $recent_form_id . '-preview', 'parent' => 'gform-form-' . $recent_form_id, 'title' => esc_html__('Preview', 'gravityforms'), 'href' => trailingslashit(site_url()) . '?gf_page=preview&id=' . $recent_form_id));
                     }
                 }
             }
         }
     }
     if (GFCommon::current_user_can_any('gravityforms_edit_forms')) {
         $wp_admin_bar->add_node(array('id' => 'gform-forms-view-all', 'parent' => 'gform-forms', 'title' => esc_attr__('All Forms', 'gravityforms'), 'href' => admin_url('admin.php?page=gf_edit_forms')));
     }
     if (GFCommon::current_user_can_any('gravityforms_create_form')) {
         $wp_admin_bar->add_node(array('id' => 'gform-forms-new-form', 'parent' => 'gform-forms', 'title' => esc_attr__('New Form', 'gravityforms'), 'href' => admin_url('admin.php?page=gf_new_form')));
     }
 }
 /**
  * Cache the form meta.
  *
  * @param int $form_id The form ID.
  *
  * @return mixed
  */
 public function get_form_meta($form_id)
 {
     $form_metas = $this->_form_meta_by_id;
     if (empty($form_metas)) {
         $form_ids = array();
         $forms = RGFormsModel::get_forms();
         foreach ($forms as $form) {
             $form_ids[] = $form->id;
         }
         if (method_exists('GFFormsModel', 'get_form_meta_by_id')) {
             $form_metas = GFFormsModel::get_form_meta_by_id($form_ids);
         } else {
             $form_metas = GFFormsModel::get_forms_by_id($form_ids);
         }
         //backwards compatiblity with <1.7
         $this->_form_meta_by_id = $form_metas;
     }
     foreach ($form_metas as $form_meta) {
         if ($form_meta['id'] == $form_id) {
             return $form_meta;
         }
     }
 }
 public static function set_counter_script($script, $form_id, $field_id, $max_length)
 {
     $get_form = GFFormsModel::get_form_meta_by_id($form_id);
     $form = reset($get_form);
     $field_id_num = GF_Field_Repeater::get_field_id_number($field_id);
     if (GF_Field_Repeater::field_is_repeater_child($form, $field_id_num)) {
         $script = '';
     }
     return $script;
 }
 public static function gform_disable_ajax($args)
 {
     $get_form = GFFormsModel::get_form_meta_by_id($args['form_id']);
     $form = reset($get_form);
     if (GF_Field_Repeater::get_field_index($form) !== false) {
         $args['ajax'] = false;
     }
     return $args;
 }
 public function get_form_meta($form_id)
 {
     $form_metas = $this->_form_meta_by_id;
     if (empty($form_metas)) {
         $form_ids = array();
         $forms = RGFormsModel::get_forms();
         foreach ($forms as $form) {
             $form_ids[] = $form->id;
         }
         $form_metas = GFFormsModel::get_form_meta_by_id($form_ids);
         $this->_form_meta_by_id = $form_metas;
     }
     foreach ($form_metas as $form_meta) {
         if ($form_meta['id'] == $form_id) {
             return $form_meta;
         }
     }
 }