Completed
Pull Request — master (#836)
by Zack
18:24
created
includes/class-frontend-views.php 1 patch
Doc Comments   +5 added lines, -6 removed lines patch added patch discarded remove patch
@@ -153,7 +153,7 @@  discard block
 block discarded – undo
153 153
 
154 154
 	/**
155 155
 	 * Sets the single entry ID and also the entry
156
-	 * @param bool|int|string $single_entry
156
+	 * @param boolean|string $single_entry
157 157
 	 */
158 158
 	public function setSingleEntry( $single_entry ) {
159 159
 
@@ -170,7 +170,7 @@  discard block
 block discarded – undo
170 170
 
171 171
 	/**
172 172
 	 * Set the current entry
173
-	 * @param array|int $entry Entry array or entry slug or ID
173
+	 * @param boolean|string $entry Entry array or entry slug or ID
174 174
 	 */
175 175
 	public function setEntry( $entry ) {
176 176
 
@@ -228,7 +228,7 @@  discard block
 block discarded – undo
228 228
 	 *
229 229
 	 *
230 230
 	 *
231
-	 * @param null $view_id
231
+	 * @param string $view_id
232 232
 	 */
233 233
 	public function set_context_view_id( $view_id = null ) {
234 234
 
@@ -1105,7 +1105,7 @@  discard block
 block discarded – undo
1105 1105
 	 *
1106 1106
 	 * @uses  gravityview_get_entries()
1107 1107
 	 * @access public
1108
-	 * @param array $args\n
1108
+	 * @param array $args
1109 1109
 	 *   - $id - View id
1110 1110
 	 *   - $page_size - Page
1111 1111
 	 *   - $sort_field - form field id to sort
@@ -1193,7 +1193,6 @@  discard block
 block discarded – undo
1193 1193
 	 * @since 1.19.5
1194 1194
 	 *
1195 1195
 	 * @param $args
1196
-	 * @param int $form_id
1197 1196
 	 */
1198 1197
 	public static function get_search_criteria_paging( $args ) {
1199 1198
 
@@ -1588,7 +1587,7 @@  discard block
 block discarded – undo
1588 1587
 	/**
1589 1588
 	 * Checks if field (column) is sortable
1590 1589
 	 *
1591
-	 * @param string $field Field settings
1590
+	 * @param string $field_id Field settings
1592 1591
 	 * @param array $form Gravity Forms form array
1593 1592
 	 *
1594 1593
 	 * @since 1.7
Please login to merge, or discard this patch.
includes/class-gvlogic-shortcode.php 1 patch
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -232,7 +232,7 @@
 block discarded – undo
232 232
 	 * Does the if and the comparison match?
233 233
 	 * @uses GVCommon::matches_operation
234 234
 	 *
235
-	 * @return boolean True: yep; false: nope
235
+	 * @return boolean|null True: yep; false: nope
236 236
 	 */
237 237
 	private function set_is_match() {
238 238
 		$this->is_match = GVCommon::matches_operation( $this->if, $this->comparison, $this->operation );
Please login to merge, or discard this patch.
includes/fields/class-gravityview-field.php 1 patch
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -245,7 +245,7 @@
 block discarded – undo
245 245
 	 * @param bool $url_encode Whether to URL-encode output
246 246
 	 * @param bool $esc_html Whether to apply `esc_html()` to output
247 247
 	 *
248
-	 * @return mixed
248
+	 * @return string
249 249
 	 */
250 250
 	public function replace_merge_tag( $matches = array(), $text = '', $form = array(), $entry = array(), $url_encode = false, $esc_html = false ) {
251 251
 
Please login to merge, or discard this patch.
includes/fields/class-gravityview-fields.php 1 patch
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -77,7 +77,7 @@
 block discarded – undo
77 77
 	/**
78 78
 	 * Alias for get_instance()
79 79
 	 *
80
-	 * @param $field_name
80
+	 * @param string $field_name
81 81
 	 *
82 82
 	 * @return GravityView_Field|false
83 83
 	 */
Please login to merge, or discard this patch.
includes/fields/class-gravityview-field-date.php 1 patch
Indentation   -1 removed lines patch added patch discarded remove patch
@@ -40,7 +40,6 @@
 block discarded – undo
40 40
 	 * Get the default date format for a field based on the field ID and the time format setting
41 41
 	 *
42 42
 	 * @since 1.16.4
43
-
44 43
 	 * @param string $date_format The Gravity Forms date format for the field. Default: "mdy"
45 44
 	 * @param int $field_id The ID of the field. Used to figure out full date/day/month/year
46 45
 	 *
Please login to merge, or discard this patch.
includes/class-common.php 1 patch
Indentation   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -306,12 +306,12 @@  discard block
 block discarded – undo
306 306
 						}
307 307
 
308 308
 						/**
309
-                         * @hack
310
-                         * In case of email/email confirmation, the input for email has the same id as the parent field
311
-                         */
309
+						 * @hack
310
+						 * In case of email/email confirmation, the input for email has the same id as the parent field
311
+						 */
312 312
 						if( 'email' === $field['type'] && false === strpos( $input['id'], '.' ) ) {
313
-                            continue;
314
-                        }
313
+							continue;
314
+						}
315 315
 						$fields["{$input['id']}"] = array(
316 316
 							'label' => rgar( $input, 'label' ),
317 317
 							'customLabel' => rgar( $input, 'customLabel' ),
@@ -488,7 +488,7 @@  discard block
 block discarded – undo
488 488
 		} elseif ( 'delete' === GFForms::get( 'action' ) ) {
489 489
 			$criteria['context_view_id'] = isset( $_GET['view_id'] ) ? intval( $_GET['view_id'] ) : null;
490 490
 		} elseif( !isset( $criteria['context_view_id'] ) ) {
491
-            // Prevent overriding the Context View ID: Some widgets could set the context_view_id (e.g. Recent Entries widget)
491
+			// Prevent overriding the Context View ID: Some widgets could set the context_view_id (e.g. Recent Entries widget)
492 492
 			$criteria['context_view_id'] = null;
493 493
 		}
494 494
 
@@ -1251,7 +1251,7 @@  discard block
 block discarded – undo
1251 1251
 			),
1252 1252
 		);
1253 1253
 
1254
-        $fields = $date_created + $fields;
1254
+		$fields = $date_created + $fields;
1255 1255
 
1256 1256
 		$blacklist_field_types = apply_filters( 'gravityview_blacklist_field_types', $blacklist, NULL );
1257 1257
 
@@ -1263,13 +1263,13 @@  discard block
 block discarded – undo
1263 1263
 			}
1264 1264
 		}
1265 1265
 
1266
-        /**
1267
-         * @filter `gravityview/common/sortable_fields` Filter the sortable fields
1268
-         * @since 1.12
1269
-         * @param array $fields Sub-set of GF form fields that are sortable
1270
-         * @param int $formid The Gravity Forms form ID that the fields are from
1271
-         */
1272
-        $fields = apply_filters( 'gravityview/common/sortable_fields', $fields, $formid );
1266
+		/**
1267
+		 * @filter `gravityview/common/sortable_fields` Filter the sortable fields
1268
+		 * @since 1.12
1269
+		 * @param array $fields Sub-set of GF form fields that are sortable
1270
+		 * @param int $formid The Gravity Forms form ID that the fields are from
1271
+		 */
1272
+		$fields = apply_filters( 'gravityview/common/sortable_fields', $fields, $formid );
1273 1273
 
1274 1274
 		return $fields;
1275 1275
 	}
@@ -1561,26 +1561,26 @@  discard block
 block discarded – undo
1561 1561
 	}
1562 1562
 
1563 1563
 
1564
-    /**
1565
-     * Display updated/error notice
1566
-     *
1567
-     * @since 1.19.2 Added $cap and $object_id parameters
1568
-     *
1569
-     * @param string $notice text/HTML of notice
1570
-     * @param string $class CSS class for notice (`updated` or `error`)
1571
-     * @param string $cap [Optional] Define a capability required to show a notice. If not set, displays to all caps.
1572
-     *
1573
-     * @return string
1574
-     */
1575
-    public static function generate_notice( $notice, $class = '', $cap = '', $object_id = null ) {
1576
-
1577
-    	// If $cap is defined, only show notice if user has capability
1578
-    	if( $cap && ! GVCommon::has_cap( $cap, $object_id ) ) {
1579
-    		return '';
1580
-	    }
1581
-
1582
-        return '<div class="gv-notice '.gravityview_sanitize_html_class( $class ) .'">'. $notice .'</div>';
1583
-    }
1564
+	/**
1565
+	 * Display updated/error notice
1566
+	 *
1567
+	 * @since 1.19.2 Added $cap and $object_id parameters
1568
+	 *
1569
+	 * @param string $notice text/HTML of notice
1570
+	 * @param string $class CSS class for notice (`updated` or `error`)
1571
+	 * @param string $cap [Optional] Define a capability required to show a notice. If not set, displays to all caps.
1572
+	 *
1573
+	 * @return string
1574
+	 */
1575
+	public static function generate_notice( $notice, $class = '', $cap = '', $object_id = null ) {
1576
+
1577
+		// If $cap is defined, only show notice if user has capability
1578
+		if( $cap && ! GVCommon::has_cap( $cap, $object_id ) ) {
1579
+			return '';
1580
+		}
1581
+
1582
+		return '<div class="gv-notice '.gravityview_sanitize_html_class( $class ) .'">'. $notice .'</div>';
1583
+	}
1584 1584
 
1585 1585
 	/**
1586 1586
 	 * Inspired on \GFCommon::encode_shortcodes, reverse the encoding by replacing the ascii characters by the shortcode brackets
Please login to merge, or discard this patch.
future/includes/class-gv-shortcode.php 1 patch
Indentation   -1 removed lines patch added patch discarded remove patch
@@ -50,7 +50,6 @@
 block discarded – undo
50 50
 	 *
51 51
 	 * @throws \ErrorException if shortcode with this name has already been registered elsewhere.
52 52
 	 * @internal
53
-
54 53
 	 * @return \GV\Shortcode The only internally registered instance of this shortcode.
55 54
 	 */
56 55
 	public static function add() {
Please login to merge, or discard this patch.
includes/extensions/edit-entry/class-edit-entry-user-registration.php 1 patch
Indentation   +257 added lines, -257 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
  */
12 12
 
13 13
 if ( ! defined( 'WPINC' ) ) {
14
-    die;
14
+	die;
15 15
 }
16 16
 
17 17
 /**
@@ -22,102 +22,102 @@  discard block
 block discarded – undo
22 22
 	/**
23 23
 	 * @var GravityView_Edit_Entry
24 24
 	 */
25
-    protected $loader;
25
+	protected $loader;
26 26
 
27
-    /**
28
-     * @var WP_User|null Temporary storage used by restore_user_details()
29
-     */
30
-    private $_user_before_update = null;
27
+	/**
28
+	 * @var WP_User|null Temporary storage used by restore_user_details()
29
+	 */
30
+	private $_user_before_update = null;
31 31
 
32
-    function __construct( GravityView_Edit_Entry $loader ) {
33
-        $this->loader = $loader;
34
-    }
32
+	function __construct( GravityView_Edit_Entry $loader ) {
33
+		$this->loader = $loader;
34
+	}
35 35
 
36 36
 	/**
37 37
 	 * @since 1.11
38 38
 	 */
39 39
 	public function load() {
40 40
 		add_action( 'wp', array( $this, 'add_hooks' ), 10 );
41
-    }
41
+	}
42 42
 
43 43
 	/**
44 44
 	 * Add hooks to trigger updating the user
45 45
 	 *
46 46
 	 * @since 1.18
47 47
 	 */
48
-    public function add_hooks() {
49
-
50
-	    /**
51
-	     * @filter `gravityview/edit_entry/user_registration/trigger_update` Choose whether to update user information via User Registration add-on when an entry is updated?
52
-	     * @since 1.11
53
-	     * @param boolean $boolean Whether to trigger update on user registration (default: true)
54
-	     */
55
-	    if( apply_filters( 'gravityview/edit_entry/user_registration/trigger_update', true ) ) {
56
-
57
-	    	add_action( 'gravityview/edit_entry/after_update' , array( $this, 'update_user' ), 10, 2 );
58
-
59
-		    // last resort in case the current user display name don't match any of the defaults
60
-		    add_action( 'gform_user_updated', array( $this, 'restore_display_name' ), 10, 4 );
61
-	    }
62
-    }
63
-
64
-    /**
65
-     * Update the WordPress user profile based on the GF User Registration create feed
66
-     *
67
-     * @since 1.11
68
-     *
69
-     * @param array $form Gravity Forms form array
70
-     * @param string $entry_id Gravity Forms entry ID
71
-     * @return void
72
-     */
73
-    public function update_user( $form = array(), $entry_id = 0 ) {
74
-
75
-        if( ! class_exists( 'GFAPI' ) || ! class_exists( 'GF_User_Registration' ) ) {
76
-	        do_action( 'gravityview_log_error', __METHOD__ . ': GFAPI or User Registration class not found; not updating the user' );
77
-	        return;
78
-        } elseif( empty( $entry_id ) ) {
79
-        	do_action( 'gravityview_log_error', __METHOD__ . ': Entry ID is empty; not updating the user', $entry_id );
80
-	        return;
81
-        }
82
-
83
-        /** @var GF_User_Registration $gf_user_registration */
84
-        $gf_user_registration = GF_User_Registration::get_instance();
85
-
86
-        $entry = GFAPI::get_entry( $entry_id );
87
-
88
-	    /**
89
-	     * @filter `gravityview/edit_entry/user_registration/entry` Modify entry details before updating the user via User Registration add-on
90
-	     * @since 1.11
91
-	     * @param array $entry Gravity Forms entry
92
-	     * @param array $form Gravity Forms form
93
-	     */
94
-        $entry = apply_filters( 'gravityview/edit_entry/user_registration/entry', $entry, $form );
95
-
96
-	    $config = $this->get_feed_configuration( $entry, $form );
97
-
98
-        // Make sure the feed is active
99
-	    if ( ! rgar( $config, 'is_active', false ) ) {
48
+	public function add_hooks() {
49
+
50
+		/**
51
+		 * @filter `gravityview/edit_entry/user_registration/trigger_update` Choose whether to update user information via User Registration add-on when an entry is updated?
52
+		 * @since 1.11
53
+		 * @param boolean $boolean Whether to trigger update on user registration (default: true)
54
+		 */
55
+		if( apply_filters( 'gravityview/edit_entry/user_registration/trigger_update', true ) ) {
56
+
57
+			add_action( 'gravityview/edit_entry/after_update' , array( $this, 'update_user' ), 10, 2 );
58
+
59
+			// last resort in case the current user display name don't match any of the defaults
60
+			add_action( 'gform_user_updated', array( $this, 'restore_display_name' ), 10, 4 );
61
+		}
62
+	}
63
+
64
+	/**
65
+	 * Update the WordPress user profile based on the GF User Registration create feed
66
+	 *
67
+	 * @since 1.11
68
+	 *
69
+	 * @param array $form Gravity Forms form array
70
+	 * @param string $entry_id Gravity Forms entry ID
71
+	 * @return void
72
+	 */
73
+	public function update_user( $form = array(), $entry_id = 0 ) {
74
+
75
+		if( ! class_exists( 'GFAPI' ) || ! class_exists( 'GF_User_Registration' ) ) {
76
+			do_action( 'gravityview_log_error', __METHOD__ . ': GFAPI or User Registration class not found; not updating the user' );
100 77
 			return;
101
-	    }
78
+		} elseif( empty( $entry_id ) ) {
79
+			do_action( 'gravityview_log_error', __METHOD__ . ': Entry ID is empty; not updating the user', $entry_id );
80
+			return;
81
+		}
82
+
83
+		/** @var GF_User_Registration $gf_user_registration */
84
+		$gf_user_registration = GF_User_Registration::get_instance();
85
+
86
+		$entry = GFAPI::get_entry( $entry_id );
102 87
 
103
-	    // If an Update feed, make sure the conditions are met.
104
-	    if( rgars( $config, 'meta/feedType' ) === 'update' ) {
105
-	    	if( ! $gf_user_registration->is_feed_condition_met( $config, $form, $entry ) ) {
106
-			    return;
107
-		    }
108
-	    }
88
+		/**
89
+		 * @filter `gravityview/edit_entry/user_registration/entry` Modify entry details before updating the user via User Registration add-on
90
+		 * @since 1.11
91
+		 * @param array $entry Gravity Forms entry
92
+		 * @param array $form Gravity Forms form
93
+		 */
94
+		$entry = apply_filters( 'gravityview/edit_entry/user_registration/entry', $entry, $form );
95
+
96
+		$config = $this->get_feed_configuration( $entry, $form );
97
+
98
+		// Make sure the feed is active
99
+		if ( ! rgar( $config, 'is_active', false ) ) {
100
+			return;
101
+		}
109 102
 
110
-        // The priority is set to 3 so that default priority (10) will still override it
111
-        add_filter( 'send_password_change_email', '__return_false', 3 );
112
-        add_filter( 'send_email_change_email', '__return_false', 3 );
103
+		// If an Update feed, make sure the conditions are met.
104
+		if( rgars( $config, 'meta/feedType' ) === 'update' ) {
105
+			if( ! $gf_user_registration->is_feed_condition_met( $config, $form, $entry ) ) {
106
+				return;
107
+			}
108
+		}
113 109
 
114
-        // Trigger the User Registration update user method
115
-        $gf_user_registration->update_user( $entry, $form, $config );
110
+		// The priority is set to 3 so that default priority (10) will still override it
111
+		add_filter( 'send_password_change_email', '__return_false', 3 );
112
+		add_filter( 'send_email_change_email', '__return_false', 3 );
116 113
 
117
-        remove_filter( 'send_password_change_email', '__return_false', 3 );
118
-        remove_filter( 'send_email_change_email', '__return_false', 3 );
114
+		// Trigger the User Registration update user method
115
+		$gf_user_registration->update_user( $entry, $form, $config );
119 116
 
120
-    }
117
+		remove_filter( 'send_password_change_email', '__return_false', 3 );
118
+		remove_filter( 'send_email_change_email', '__return_false', 3 );
119
+
120
+	}
121 121
 
122 122
 	/**
123 123
 	 * Get the User Registration feed configuration for the entry & form
@@ -132,185 +132,185 @@  discard block
 block discarded – undo
132 132
 	 *
133 133
 	 * @return array
134 134
 	 */
135
-    public function get_feed_configuration( $entry, $form ) {
136
-
137
-	    /** @var GF_User_Registration $gf_user_registration */
138
-	    $gf_user_registration = GF_User_Registration::get_instance();
139
-
140
-	    $config = $gf_user_registration->get_single_submission_feed( $entry, $form );
141
-
142
-	    /**
143
-	     * @filter `gravityview/edit_entry/user_registration/preserve_role` Keep the current user role or override with the role defined in the Create feed
144
-	     * @since 1.15
145
-	     * @param[in,out] boolean $preserve_role Preserve current user role Default: true
146
-	     * @param[in] array $config Gravity Forms User Registration feed configuration for the form
147
-	     * @param[in] array $form Gravity Forms form array
148
-	     * @param[in] array $entry Gravity Forms entry being edited
149
-	     */
150
-	    $preserve_role = apply_filters( 'gravityview/edit_entry/user_registration/preserve_role', true, $config, $form, $entry );
151
-
152
-	    if( $preserve_role ) {
153
-		    $config['meta']['role'] = 'gfur_preserve_role';
154
-	    }
155
-
156
-	    $displayname = $this->match_current_display_name( $entry['created_by'] );
157
-
158
-	    /**
159
-	     * Make sure the current display name is not changed with the update user method.
160
-	     * @since 1.15
161
-	     */
162
-	    $config['meta']['displayname'] = $displayname ? $displayname : $config['meta']['displayname'];
163
-
164
-	    /**
165
-	     * @filter `gravityview/edit_entry/user_registration/config` Modify the User Registration Addon feed configuration
166
-	     * @since 1.14
167
-	     * @param[in,out] array $config Gravity Forms User Registration feed configuration for the form
168
-	     * @param[in] array $form Gravity Forms form array
169
-	     * @param[in] array $entry Gravity Forms entry being edited
170
-	     */
171
-	    $config = apply_filters( 'gravityview/edit_entry/user_registration/config', $config, $form, $entry );
172
-
173
-	    return $config;
174
-    }
175
-
176
-    /**
177
-     * Calculate the user display name format
178
-     *
179
-     * @since 1.15
180
-     * @since 1.20 Returns false if user not found at $user_id
181
-     *
182
-     * @param int $user_id WP User ID
183
-     * @return false|string Display name format as used inside Gravity Forms User Registration. Returns false if user not found.
184
-     */
185
-    public function match_current_display_name( $user_id ) {
186
-
187
-        $user = get_userdata( $user_id );
188
-
189
-        if( ! $user ) {
190
-        	return false;
191
-        }
192
-
193
-        $names = $this->generate_display_names( $user );
194
-
195
-        $format = array_search( $user->display_name, $names, true );
196
-
197
-        /**
198
-         * In case we can't find the current display name format, trigger last resort method at the 'gform_user_updated' hook
199
-         * @see restore_display_name
200
-         */
201
-        if( false === $format ) {
202
-            $this->_user_before_update = $user;
203
-        }
204
-
205
-        return $format;
206
-    }
207
-
208
-    /**
209
-     * Generate an array of all the user display names possibilities
210
-     *
211
-     * @since 1.15
212
-     *
213
-     * @param object $profileuser WP_User object
214
-     * @return array List all the possible display names for a certain User object
215
-     */
216
-    public function generate_display_names( $profileuser ) {
217
-
218
-        $public_display = array();
219
-        $public_display['nickname']  = $profileuser->nickname;
220
-        $public_display['username']  = $profileuser->user_login;
221
-
222
-        if ( !empty($profileuser->first_name) ) {
223
-	        $public_display['firstname'] = $profileuser->first_name;
224
-        }
225
-
226
-        if ( !empty($profileuser->last_name) ) {
227
-	        $public_display['lastname'] = $profileuser->last_name;
228
-        }
229
-
230
-        if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
231
-            $public_display['firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
232
-            $public_display['lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
233
-        }
234
-
235
-        $public_display = array_map( 'trim', $public_display );
236
-        $public_display = array_unique( $public_display );
237
-
238
-        return $public_display;
239
-    }
240
-
241
-
242
-    /**
243
-     * Restore the Display Name and roles of a user after being updated by Gravity Forms User Registration Addon
244
-     *
245
-     * @see GFUser::update_user()
246
-     * @param int $user_id WP User ID that was updated by Gravity Forms User Registration Addon
247
-     * @param array $config Gravity Forms User Registration Addon form feed configuration
248
-     * @param array $entry The Gravity Forms entry that was just updated
249
-     * @param string $password User password
250
-     * @return int|false|WP_Error|null True: User updated; False: $user_id not a valid User ID; WP_Error: User update error; Null: Method didn't process
251
-     */
252
-    public function restore_display_name( $user_id = 0, $config = array(), $entry = array(), $password = '' ) {
253
-
254
-        /**
255
-         * @filter `gravityview/edit_entry/restore_display_name` Whether display names should be restored to before updating an entry.
256
-         * Otherwise, display names will be reset to the format specified in Gravity Forms User Registration "Update" feed
257
-         * @since 1.14.4
258
-         * @param boolean $restore_display_name Restore Display Name? Default: true
259
-         */
260
-        $restore_display_name = apply_filters( 'gravityview/edit_entry/restore_display_name', true );
261
-
262
-        $is_update_feed = ( $config && rgars( $config, 'meta/feed_type') === 'update' );
263
-
264
-        /**
265
-         * Don't restore display name:
266
-         *   - either disabled,
267
-         *   - or it is an Update feed (we only care about Create feed)
268
-         *   - or we don't need as we found the correct format before updating user.
269
-         * @since 1.14.4
270
-         */
271
-        if( ! $restore_display_name || $is_update_feed || is_null( $this->_user_before_update ) ) {
272
-            return null;
273
-        }
274
-
275
-        $user_after_update = get_userdata( $user_id );
276
-
277
-        // User not found
278
-	    if ( ! $user_after_update ) {
279
-	    	do_action('gravityview_log_error', __METHOD__ . sprintf( ' - User not found at $user_id #%d', $user_id ) );
280
-		    return false;
281
-	    }
282
-
283
-        $restored_user = $user_after_update;
284
-
285
-	    // Restore previous display_name
286
-        $restored_user->display_name = $this->_user_before_update->display_name;
287
-
288
-	    // Don't have WP update the password.
289
-	    unset( $restored_user->data->user_pass, $restored_user->user_pass );
290
-
291
-        /**
292
-         * Modify the user data after updated by Gravity Forms User Registration but before restored by GravityView
293
-         * @since 1.14
294
-         * @param WP_User $restored_user The user with restored details about to be updated by wp_update_user()
295
-         * @param WP_User $user_before_update The user before being updated by Gravity Forms User Registration
296
-         * @param WP_User $user_after_update The user after being updated by Gravity Forms User Registration
297
-         * @param array   $entry The Gravity Forms entry that was just updated
298
-         */
299
-        $restored_user = apply_filters( 'gravityview/edit_entry/user_registration/restored_user', $restored_user, $this->_user_before_update, $user_after_update, $entry );
300
-
301
-        $updated = wp_update_user( $restored_user );
302
-
303
-        if( is_wp_error( $updated ) ) {
304
-            do_action('gravityview_log_error', __METHOD__ . sprintf( ' - There was an error updating user #%d details', $user_id ), $updated );
305
-        } else {
306
-            do_action('gravityview_log_debug', __METHOD__ . sprintf( ' - User #%d details restored', $user_id ) );
307
-        }
308
-
309
-        $this->_user_before_update = null;
310
-
311
-        unset( $restored_user, $user_after_update );
312
-
313
-        return $updated;
314
-    }
135
+	public function get_feed_configuration( $entry, $form ) {
136
+
137
+		/** @var GF_User_Registration $gf_user_registration */
138
+		$gf_user_registration = GF_User_Registration::get_instance();
139
+
140
+		$config = $gf_user_registration->get_single_submission_feed( $entry, $form );
141
+
142
+		/**
143
+		 * @filter `gravityview/edit_entry/user_registration/preserve_role` Keep the current user role or override with the role defined in the Create feed
144
+		 * @since 1.15
145
+		 * @param[in,out] boolean $preserve_role Preserve current user role Default: true
146
+		 * @param[in] array $config Gravity Forms User Registration feed configuration for the form
147
+		 * @param[in] array $form Gravity Forms form array
148
+		 * @param[in] array $entry Gravity Forms entry being edited
149
+		 */
150
+		$preserve_role = apply_filters( 'gravityview/edit_entry/user_registration/preserve_role', true, $config, $form, $entry );
151
+
152
+		if( $preserve_role ) {
153
+			$config['meta']['role'] = 'gfur_preserve_role';
154
+		}
155
+
156
+		$displayname = $this->match_current_display_name( $entry['created_by'] );
157
+
158
+		/**
159
+		 * Make sure the current display name is not changed with the update user method.
160
+		 * @since 1.15
161
+		 */
162
+		$config['meta']['displayname'] = $displayname ? $displayname : $config['meta']['displayname'];
163
+
164
+		/**
165
+		 * @filter `gravityview/edit_entry/user_registration/config` Modify the User Registration Addon feed configuration
166
+		 * @since 1.14
167
+		 * @param[in,out] array $config Gravity Forms User Registration feed configuration for the form
168
+		 * @param[in] array $form Gravity Forms form array
169
+		 * @param[in] array $entry Gravity Forms entry being edited
170
+		 */
171
+		$config = apply_filters( 'gravityview/edit_entry/user_registration/config', $config, $form, $entry );
172
+
173
+		return $config;
174
+	}
175
+
176
+	/**
177
+	 * Calculate the user display name format
178
+	 *
179
+	 * @since 1.15
180
+	 * @since 1.20 Returns false if user not found at $user_id
181
+	 *
182
+	 * @param int $user_id WP User ID
183
+	 * @return false|string Display name format as used inside Gravity Forms User Registration. Returns false if user not found.
184
+	 */
185
+	public function match_current_display_name( $user_id ) {
186
+
187
+		$user = get_userdata( $user_id );
188
+
189
+		if( ! $user ) {
190
+			return false;
191
+		}
192
+
193
+		$names = $this->generate_display_names( $user );
194
+
195
+		$format = array_search( $user->display_name, $names, true );
196
+
197
+		/**
198
+		 * In case we can't find the current display name format, trigger last resort method at the 'gform_user_updated' hook
199
+		 * @see restore_display_name
200
+		 */
201
+		if( false === $format ) {
202
+			$this->_user_before_update = $user;
203
+		}
204
+
205
+		return $format;
206
+	}
207
+
208
+	/**
209
+	 * Generate an array of all the user display names possibilities
210
+	 *
211
+	 * @since 1.15
212
+	 *
213
+	 * @param object $profileuser WP_User object
214
+	 * @return array List all the possible display names for a certain User object
215
+	 */
216
+	public function generate_display_names( $profileuser ) {
217
+
218
+		$public_display = array();
219
+		$public_display['nickname']  = $profileuser->nickname;
220
+		$public_display['username']  = $profileuser->user_login;
221
+
222
+		if ( !empty($profileuser->first_name) ) {
223
+			$public_display['firstname'] = $profileuser->first_name;
224
+		}
225
+
226
+		if ( !empty($profileuser->last_name) ) {
227
+			$public_display['lastname'] = $profileuser->last_name;
228
+		}
229
+
230
+		if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
231
+			$public_display['firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
232
+			$public_display['lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
233
+		}
234
+
235
+		$public_display = array_map( 'trim', $public_display );
236
+		$public_display = array_unique( $public_display );
237
+
238
+		return $public_display;
239
+	}
240
+
241
+
242
+	/**
243
+	 * Restore the Display Name and roles of a user after being updated by Gravity Forms User Registration Addon
244
+	 *
245
+	 * @see GFUser::update_user()
246
+	 * @param int $user_id WP User ID that was updated by Gravity Forms User Registration Addon
247
+	 * @param array $config Gravity Forms User Registration Addon form feed configuration
248
+	 * @param array $entry The Gravity Forms entry that was just updated
249
+	 * @param string $password User password
250
+	 * @return int|false|WP_Error|null True: User updated; False: $user_id not a valid User ID; WP_Error: User update error; Null: Method didn't process
251
+	 */
252
+	public function restore_display_name( $user_id = 0, $config = array(), $entry = array(), $password = '' ) {
253
+
254
+		/**
255
+		 * @filter `gravityview/edit_entry/restore_display_name` Whether display names should be restored to before updating an entry.
256
+		 * Otherwise, display names will be reset to the format specified in Gravity Forms User Registration "Update" feed
257
+		 * @since 1.14.4
258
+		 * @param boolean $restore_display_name Restore Display Name? Default: true
259
+		 */
260
+		$restore_display_name = apply_filters( 'gravityview/edit_entry/restore_display_name', true );
261
+
262
+		$is_update_feed = ( $config && rgars( $config, 'meta/feed_type') === 'update' );
263
+
264
+		/**
265
+		 * Don't restore display name:
266
+		 *   - either disabled,
267
+		 *   - or it is an Update feed (we only care about Create feed)
268
+		 *   - or we don't need as we found the correct format before updating user.
269
+		 * @since 1.14.4
270
+		 */
271
+		if( ! $restore_display_name || $is_update_feed || is_null( $this->_user_before_update ) ) {
272
+			return null;
273
+		}
274
+
275
+		$user_after_update = get_userdata( $user_id );
276
+
277
+		// User not found
278
+		if ( ! $user_after_update ) {
279
+			do_action('gravityview_log_error', __METHOD__ . sprintf( ' - User not found at $user_id #%d', $user_id ) );
280
+			return false;
281
+		}
282
+
283
+		$restored_user = $user_after_update;
284
+
285
+		// Restore previous display_name
286
+		$restored_user->display_name = $this->_user_before_update->display_name;
287
+
288
+		// Don't have WP update the password.
289
+		unset( $restored_user->data->user_pass, $restored_user->user_pass );
290
+
291
+		/**
292
+		 * Modify the user data after updated by Gravity Forms User Registration but before restored by GravityView
293
+		 * @since 1.14
294
+		 * @param WP_User $restored_user The user with restored details about to be updated by wp_update_user()
295
+		 * @param WP_User $user_before_update The user before being updated by Gravity Forms User Registration
296
+		 * @param WP_User $user_after_update The user after being updated by Gravity Forms User Registration
297
+		 * @param array   $entry The Gravity Forms entry that was just updated
298
+		 */
299
+		$restored_user = apply_filters( 'gravityview/edit_entry/user_registration/restored_user', $restored_user, $this->_user_before_update, $user_after_update, $entry );
300
+
301
+		$updated = wp_update_user( $restored_user );
302
+
303
+		if( is_wp_error( $updated ) ) {
304
+			do_action('gravityview_log_error', __METHOD__ . sprintf( ' - There was an error updating user #%d details', $user_id ), $updated );
305
+		} else {
306
+			do_action('gravityview_log_debug', __METHOD__ . sprintf( ' - User #%d details restored', $user_id ) );
307
+		}
308
+
309
+		$this->_user_before_update = null;
310
+
311
+		unset( $restored_user, $user_after_update );
312
+
313
+		return $updated;
314
+	}
315 315
 
316 316
 } //end class
Please login to merge, or discard this patch.
includes/fields/class-gravityview-field-fileupload.php 1 patch
Doc Comments   -1 removed lines patch added patch discarded remove patch
@@ -45,7 +45,6 @@
 block discarded – undo
45 45
 	 * Trick the GF fileupload field to render with the proper HTML ID to enable the plupload JS to work properly
46 46
 	 *
47 47
 	 * @param array               $form  The Form Object currently being processed.
48
-	 * @param string|array        $value The field value. From default/dynamic population, $_POST, or a resumed incomplete submission.
49 48
 	 * @param null|array          $entry Null or the Entry Object currently being edited.
50 49
 	 * @param GF_Field_FileUpload $field Gravity Forms field
51 50
 	 *
Please login to merge, or discard this patch.