/**
  * Update the WordPress user profile based on the GF User Registration create feed
  *
  * @since 1.11
  *
  * @param array $form Gravity Forms form array
  * @param string $entry_id Gravity Forms entry ID
  * @return void
  */
 public function update_user($form = array(), $entry_id = 0)
 {
     if (!class_exists('GFAPI') || !class_exists('GFUser') || empty($entry_id)) {
         return;
     }
     // support for GF User Registration 3.x
     $gf_user_3 = class_exists('GF_User_Registration') ? true : false;
     if ($gf_user_3) {
         $gf_user_registration = GF_User_Registration::get_instance();
     }
     $entry = GFAPI::get_entry($entry_id);
     /**
      * @filter `gravityview/edit_entry/user_registration/entry` Modify entry details before updating the user via User Registration add-on
      * @since 1.11
      * @param array $entry Gravity Forms entry
      * @param array $form Gravity Forms form
      */
     $entry = apply_filters('gravityview/edit_entry/user_registration/entry', $entry, $form);
     /**
      * @since 1.14
      */
     if ($gf_user_3) {
         $config = $gf_user_registration->get_single_submission_feed($entry, $form);
     } else {
         $config = GFUser::get_active_config($form, $entry);
     }
     /**
      * @filter `gravityview/edit_entry/user_registration/preserve_role` Keep the current user role or override with the role defined in the Create feed
      * @since 1.15
      * @param[in,out] boolean $preserve_role Preserve current user role Default: true
      * @param[in] array $config Gravity Forms User Registration feed configuration for the form
      * @param[in] array $form Gravity Forms form array
      * @param[in] array $entry Gravity Forms entry being edited
      */
     $preserve_role = apply_filters('gravityview/edit_entry/user_registration/preserve_role', true, $config, $form, $entry);
     if ($preserve_role) {
         $config['meta']['role'] = 'gfur_preserve_role';
     }
     /**
      * Make sure the current display name is not changed with the update user method.
      * @since 1.15
      */
     $config['meta']['displayname'] = $this->match_current_display_name($entry['created_by']);
     /**
      * @filter `gravityview/edit_entry/user_registration/config` Modify the User Registration Addon feed configuration
      * @since 1.14
      * @param[in,out] array $config Gravity Forms User Registration feed configuration for the form
      * @param[in] array $form Gravity Forms form array
      * @param[in] array $entry Gravity Forms entry being edited
      */
     $config = apply_filters('gravityview/edit_entry/user_registration/config', $config, $form, $entry);
     $feed_pos = $gf_user_3 ? 'meta/feedType' : 'meta/feed_type';
     $is_create_feed = $config && rgars($config, $feed_pos) === 'create';
     // Only update if it's a create feed
     if (!$is_create_feed) {
         return;
     }
     // The priority is set to 3 so that default priority (10) will still override it
     add_filter('send_password_change_email', '__return_false', 3);
     add_filter('send_email_change_email', '__return_false', 3);
     // Trigger the User Registration update user method
     if ($gf_user_3) {
         $gf_user_registration->update_user($entry, $form, $config);
     } else {
         GFUser::update_user($entry, $form, $config);
     }
     remove_filter('send_password_change_email', '__return_false', 3);
     remove_filter('send_email_change_email', '__return_false', 3);
 }
 /**
  * Process validation for a edit entry submission
  *
  * Sets the `is_valid` object var
  *
  * @return void
  */
 function validate()
 {
     /**
      * If using GF User Registration Add-on, remove the validation step, otherwise generates error when updating the entry
      * GF User Registration Add-on version > 3.x has a different class name
      * @since 1.16.2
      */
     if (class_exists('GF_User_Registration')) {
         remove_filter('gform_validation', array(GF_User_Registration::get_instance(), 'validate'));
     } else {
         if (class_exists('GFUser')) {
             remove_filter('gform_validation', array('GFUser', 'user_registration_validation'));
         }
     }
     /**
      * For some crazy reason, Gravity Forms doesn't validate Edit Entry form submissions.
      * You can enter whatever you want!
      * We try validating, and customize the results using `self::custom_validation()`
      */
     add_filter('gform_validation_' . $this->form_id, array($this, 'custom_validation'), 10, 4);
     // Needed by the validate funtion
     $failed_validation_page = NULL;
     $field_values = RGForms::post('gform_field_values');
     // Prevent entry limit from running when editing an entry, also
     // prevent form scheduling from preventing editing
     unset($this->form['limitEntries'], $this->form['scheduleForm']);
     // Hide fields depending on Edit Entry settings
     $this->form['fields'] = $this->get_configured_edit_fields($this->form, $this->view_id);
     $this->is_valid = GFFormDisplay::validate($this->form, $field_values, 1, $failed_validation_page);
     remove_filter('gform_validation_' . $this->form_id, array($this, 'custom_validation'), 10);
 }