Completed
Pull Request — master (#1399)
by Zack
06:00
created
includes/class-ajax.php 2 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
 	 * @since 1.15
29 29
 	 * @param bool|false $mixed
30 30
 	 *
31
-	 * @return bool
31
+	 * @return boolean|null
32 32
 	 */
33 33
 	private function _exit( $mixed = NULL ) {
34 34
 
@@ -200,7 +200,7 @@  discard block
 block discarded – undo
200 200
 	 * Import Gravity Form XML or JSON
201 201
 	 *
202 202
 	 * @param  string $xml_or_json_path Path to form XML or JSON file
203
-	 * @return int|bool       Imported form ID or false
203
+	 * @return false|string       Imported form ID or false
204 204
 	 */
205 205
 	function import_form( $xml_or_json_path = '' ) {
206 206
 
Please login to merge, or discard this patch.
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -138,7 +138,7 @@  discard block
 block discarded – undo
138 138
 
139 139
 		// template areas
140 140
 		$template_areas_directory = apply_filters( 'gravityview_template_active_areas', array(), $template_id, 'directory' );
141
-        $template_areas_single = apply_filters( 'gravityview_template_active_areas', array(), $template_id, 'single' );
141
+		$template_areas_single = apply_filters( 'gravityview_template_active_areas', array(), $template_id, 'single' );
142 142
 
143 143
 		// widget areas
144 144
 		$default_widget_areas = \GV\Widget::get_default_widget_areas();
@@ -331,40 +331,40 @@  discard block
 block discarded – undo
331 331
 		// load file
332 332
 		$xmlstr = file_get_contents( $form_file );
333 333
 
334
-        $options = array(
335
-            "page" => array("unserialize_as_array" => true),
336
-            "form"=> array("unserialize_as_array" => true),
337
-            "field"=> array("unserialize_as_array" => true),
338
-            "rule"=> array("unserialize_as_array" => true),
339
-            "choice"=> array("unserialize_as_array" => true),
340
-            "input"=> array("unserialize_as_array" => true),
341
-            "routing_item"=> array("unserialize_as_array" => true),
342
-            "creditCard"=> array("unserialize_as_array" => true),
343
-            "routin"=> array("unserialize_as_array" => true),
344
-            "confirmation" => array("unserialize_as_array" => true),
345
-            "notification" => array("unserialize_as_array" => true)
346
-        );
334
+		$options = array(
335
+			"page" => array("unserialize_as_array" => true),
336
+			"form"=> array("unserialize_as_array" => true),
337
+			"field"=> array("unserialize_as_array" => true),
338
+			"rule"=> array("unserialize_as_array" => true),
339
+			"choice"=> array("unserialize_as_array" => true),
340
+			"input"=> array("unserialize_as_array" => true),
341
+			"routing_item"=> array("unserialize_as_array" => true),
342
+			"creditCard"=> array("unserialize_as_array" => true),
343
+			"routin"=> array("unserialize_as_array" => true),
344
+			"confirmation" => array("unserialize_as_array" => true),
345
+			"notification" => array("unserialize_as_array" => true)
346
+		);
347 347
 
348 348
 		$xml = new RGXML($options);
349
-        $forms = $xml->unserialize($xmlstr);
349
+		$forms = $xml->unserialize($xmlstr);
350 350
 
351
-        if( !$forms ) {
352
-        	gravityview()->log->error( 'Importing Form Fields for preset [{template_id}]. Error importing file. (File) {path}', array( 'template_id' => $template_id, 'path' => $form_file ) );
353
-        	return false;
354
-        }
351
+		if( !$forms ) {
352
+			gravityview()->log->error( 'Importing Form Fields for preset [{template_id}]. Error importing file. (File) {path}', array( 'template_id' => $template_id, 'path' => $form_file ) );
353
+			return false;
354
+		}
355 355
 
356
-        if( !empty( $forms[0] ) && is_array( $forms[0] ) ) {
357
-        	$form = $forms[0];
358
-        }
356
+		if( !empty( $forms[0] ) && is_array( $forms[0] ) ) {
357
+			$form = $forms[0];
358
+		}
359 359
 
360
-        if( empty( $form ) ) {
361
-        	gravityview()->log->error( '$form not set.', array( 'data' => $forms ) );
362
-        	return false;
363
-        }
360
+		if( empty( $form ) ) {
361
+			gravityview()->log->error( '$form not set.', array( 'data' => $forms ) );
362
+			return false;
363
+		}
364 364
 
365
-        gravityview()->log->debug( '[pre_get_available_fields] Importing Form Fields for preset [{template_id}]. (Form)', array( 'template_id' => $template_id, 'data' => $form ) );
365
+		gravityview()->log->debug( '[pre_get_available_fields] Importing Form Fields for preset [{template_id}]. (Form)', array( 'template_id' => $template_id, 'data' => $form ) );
366 366
 
367
-        return $form;
367
+		return $form;
368 368
 
369 369
 	}
370 370
 
Please login to merge, or discard this patch.
includes/class-gravityview-admin-duplicate-view.php 1 patch
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -195,7 +195,7 @@
 block discarded – undo
195 195
 	 *
196 196
 	 * @since 1.6
197 197
 	 *
198
-	 * @param int $new_view_id The ID of the newly created View
198
+	 * @param int $new_id The ID of the newly created View
199 199
 	 * @param WP_Post $post The View that was just cloned
200 200
 	 *
201 201
 	 * @return void
Please login to merge, or discard this patch.
includes/class-gravityview-compatibility.php 2 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -116,7 +116,7 @@
 block discarded – undo
116 116
 
117 117
 	/**
118 118
 	 * @since 1.12
119
-	 * @return bool
119
+	 * @return boolean|null
120 120
 	 */
121 121
 	private function add_fallback_shortcode() {
122 122
 
Please login to merge, or discard this patch.
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -204,7 +204,7 @@
 block discarded – undo
204 204
 			self::$notices['wp_version'] = array(
205 205
 				'class' => 'error',
206 206
 				'message' => sprintf( __( "%sGravityView requires WordPress %s or newer.%s \n\nYou're using Version %s. Please upgrade your WordPress installation.", 'gravityview' ), '<h3>', GV_MIN_WP_VERSION, "</h3>\n\n", '<span style="font-family: Consolas, Courier, monospace;">'.$wp_version.'</span>' ),
207
-			    'cap' => 'update_core',
207
+				'cap' => 'update_core',
208 208
 				'dismiss' => 'wp_version',
209 209
 			);
210 210
 
Please login to merge, or discard this patch.
includes/class-gravityview-entry-link-shortcode.php 1 patch
Doc Comments   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -221,7 +221,6 @@  discard block
 block discarded – undo
221 221
 	 *
222 222
 	 * @since 1.15
223 223
 	 *
224
-	 * @param string|null $content Content inside shortcode, if defined
225 224
 	 *
226 225
 	 * @return string|boolean If URL is fetched, the URL to the entry link. If not found, returns false.
227 226
 	 */
@@ -316,7 +315,7 @@  discard block
 block discarded – undo
316 315
 	 *
317 316
 	 * @since 1.15
318 317
 	 *
319
-	 * @param string $href URL
318
+	 * @param string|null $url
320 319
 	 */
321 320
 	private function maybe_add_field_values_query_args( $url ) {
322 321
 
Please login to merge, or discard this patch.
includes/class-gravityview-roles-capabilities.php 2 patches
Doc Comments   -1 removed lines patch added patch discarded remove patch
@@ -67,7 +67,6 @@
 block discarded – undo
67 67
 	 *
68 68
 	 * @since 1.15
69 69
 	 *
70
-	 * @param array   $allcaps An array of all the user's capabilities.
71 70
 	 * @param array   $caps    Actual capabilities for meta capability.
72 71
 	 * @param array   $args    Optional parameters passed to has_cap(), typically object ID.
73 72
 	 * @param WP_User|null $user    The user object, in WordPress 3.7.0 or higher
Please login to merge, or discard this patch.
Indentation   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -56,7 +56,7 @@  discard block
 block discarded – undo
56 56
 		add_filter( 'members_get_capabilities', array( 'GravityView_Roles_Capabilities', 'merge_with_all_caps' ) );
57 57
 		add_action( 'members_register_cap_groups', array( $this, 'members_register_cap_group' ), 20 );
58 58
 		add_filter( 'user_has_cap', array( $this, 'filter_user_has_cap' ), 10, 4 );
59
-        add_action( 'admin_init', array( $this, 'add_caps') );
59
+		add_action( 'admin_init', array( $this, 'add_caps') );
60 60
 	}
61 61
 
62 62
 
@@ -360,7 +360,6 @@  discard block
 block discarded – undo
360 360
 	 * Add Gravity Forms and GravityView's "full access" caps when any other caps are checked against.
361 361
 	 *
362 362
 	 * @since 1.15
363
-
364 363
 	 * @param array $caps_to_check
365 364
 	 *
366 365
 	 * @return array
Please login to merge, or discard this patch.
includes/class-gravityview-template.php 1 patch
Doc Comments   +8 added lines, -2 removed lines patch added patch discarded remove patch
@@ -37,6 +37,9 @@  discard block
 block discarded – undo
37 37
 	public $active_areas;
38 38
 
39 39
 
40
+	/**
41
+	 * @param string $id
42
+	 */
40 43
 	function __construct( $id, $settings = array(), $field_options = array(), $areas = array() ) {
41 44
 
42 45
 		if ( empty( $id ) ) {
@@ -144,6 +147,9 @@  discard block
 block discarded – undo
144 147
 		return $areas;
145 148
 	}
146 149
 
150
+	/**
151
+	 * @param string $context
152
+	 */
147 153
 	public function get_active_areas( $context ) {
148 154
 		if ( isset( $this->active_areas[ $context ] ) ) {
149 155
 			return $this->active_areas[ $context ];
@@ -156,8 +162,8 @@  discard block
 block discarded – undo
156 162
 	/**
157 163
 	 * Assign template specific field options
158 164
 	 *
159
-	 * @param array $options (default: array())
160
-	 * @param string $template (default: '')
165
+	 * @param array $field_options (default: array())
166
+	 * @param string $template_id (default: '')
161 167
 	 * @param string $field_id key for the field
162 168
 	 * @param  string|array $context Context for the field; `directory` or `single` for example.
163 169
 	 *
Please login to merge, or discard this patch.
includes/extensions/edit-entry/class-edit-entry-admin.php 2 patches
Doc Comments   -1 removed lines patch added patch discarded remove patch
@@ -69,7 +69,6 @@
 block discarded – undo
69 69
      * Change wording for the Edit context to read Entry Creator
70 70
      *
71 71
      * @param  array 	   $visibility_caps        Array of capabilities to display in field dropdown.
72
-     * @param  string      $field_type  Type of field options to render (`field` or `widget`)
73 72
      * @param  string      $template_id Table slug
74 73
      * @param  float       $field_id    GF Field ID - Example: `3`, `5.2`, `entry_link`, `created_by`
75 74
      * @param  string      $context     What context are we in? Example: `single` or `directory`
Please login to merge, or discard this patch.
Indentation   +158 added lines, -158 removed lines patch added patch discarded remove patch
@@ -10,175 +10,175 @@
 block discarded – undo
10 10
  */
11 11
 
12 12
 if ( ! defined( 'WPINC' ) ) {
13
-    die;
13
+	die;
14 14
 }
15 15
 
16 16
 
17 17
 class GravityView_Edit_Entry_Admin {
18 18
 
19
-    protected $loader;
19
+	protected $loader;
20 20
 
21
-    function __construct( GravityView_Edit_Entry $loader ) {
22
-        $this->loader = $loader;
23
-    }
21
+	function __construct( GravityView_Edit_Entry $loader ) {
22
+		$this->loader = $loader;
23
+	}
24 24
 
25
-    function load() {
26
-
27
-        if( !is_admin() ) {
28
-            return;
29
-        }
30
-
31
-        // Add Edit Link as a default field, outside those set in the Gravity Form form
32
-        add_filter( 'gravityview_entry_default_fields', array( $this, 'add_default_field' ), 10, 3 );
33
-
34
-        // For the Edit Entry Link, you don't want visible to all users.
35
-        add_filter( 'gravityview_field_visibility_caps', array( $this, 'modify_visibility_caps' ), 10, 5 );
25
+	function load() {
26
+
27
+		if( !is_admin() ) {
28
+			return;
29
+		}
30
+
31
+		// Add Edit Link as a default field, outside those set in the Gravity Form form
32
+		add_filter( 'gravityview_entry_default_fields', array( $this, 'add_default_field' ), 10, 3 );
33
+
34
+		// For the Edit Entry Link, you don't want visible to all users.
35
+		add_filter( 'gravityview_field_visibility_caps', array( $this, 'modify_visibility_caps' ), 10, 5 );
36 36
 
37
-        // Modify the field options based on the name of the field type
38
-        add_filter( 'gravityview_template_edit_link_options', array( $this, 'edit_link_field_options' ), 10, 5 );
37
+		// Modify the field options based on the name of the field type
38
+		add_filter( 'gravityview_template_edit_link_options', array( $this, 'edit_link_field_options' ), 10, 5 );
39 39
 
40
-        // add tooltips
41
-        add_filter( 'gravityview/metaboxes/tooltips', array( $this, 'tooltips') );
42
-
43
-        // custom fields' options for zone EDIT
44
-        add_filter( 'gravityview_template_field_options', array( $this, 'field_options' ), 10, 6 );
45
-    }
46
-
47
-    /**
48
-     * Add Edit Link as a default field, outside those set in the Gravity Form form
49
-     * @param array $entry_default_fields Existing fields
50
-     * @param  string|array $form form_ID or form object
51
-     * @param  string $zone   Either 'single', 'directory', 'header', 'footer'
52
-     */
53
-    function add_default_field( $entry_default_fields, $form = array(), $zone = '' ) {
54
-
55
-        if( $zone !== 'edit' ) {
56
-
57
-            $entry_default_fields['edit_link'] = array(
58
-                'label' => __('Edit Entry', 'gravityview'),
59
-                'type' => 'edit_link',
60
-                'desc'	=> __('A link to edit the entry. Visible based on View settings.', 'gravityview'),
61
-            );
62
-
63
-        }
64
-
65
-        return $entry_default_fields;
66
-    }
67
-
68
-    /**
69
-     * Change wording for the Edit context to read Entry Creator
70
-     *
71
-     * @param  array 	   $visibility_caps        Array of capabilities to display in field dropdown.
72
-     * @param  string      $field_type  Type of field options to render (`field` or `widget`)
73
-     * @param  string      $template_id Table slug
74
-     * @param  float       $field_id    GF Field ID - Example: `3`, `5.2`, `entry_link`, `created_by`
75
-     * @param  string      $context     What context are we in? Example: `single` or `directory`
76
-     * @param  string      $input_type  (textarea, list, select, etc.)
77
-     * @return array                   Array of field options with `label`, `value`, `type`, `default` keys
78
-     */
79
-    function modify_visibility_caps( $visibility_caps = array(), $template_id = '', $field_id = '', $context = '', $input_type = '' ) {
80
-
81
-        $caps = $visibility_caps;
82
-
83
-        // If we're configuring fields in the edit context, we want a limited selection
84
-        if( $context === 'edit' ) {
85
-
86
-            // Remove other built-in caps.
87
-            unset( $caps['publish_posts'], $caps['gravityforms_view_entries'], $caps['delete_others_posts'] );
88
-
89
-            $caps['read'] = _x('Entry Creator','User capability', 'gravityview');
90
-        }
91
-
92
-        return $caps;
93
-    }
94
-
95
-    /**
96
-     * Add "Edit Link Text" setting to the edit_link field settings
97
-     * @param  [type] $field_options [description]
98
-     * @param  [type] $template_id   [description]
99
-     * @param  [type] $field_id      [description]
100
-     * @param  [type] $context       [description]
101
-     * @param  [type] $input_type    [description]
102
-     * @return [type]                [description]
103
-     */
104
-    function edit_link_field_options( $field_options, $template_id, $field_id, $context, $input_type ) {
105
-
106
-        // Always a link, never a filter
107
-        unset( $field_options['show_as_link'], $field_options['search_filter'] );
108
-
109
-        // Edit Entry link should only appear to visitors capable of editing entries
110
-        unset( $field_options['only_loggedin'], $field_options['only_loggedin_cap'] );
111
-
112
-        $add_option['edit_link'] = array(
113
-            'type' => 'text',
114
-            'label' => __( 'Edit Link Text', 'gravityview' ),
115
-            'desc' => NULL,
116
-            'value' => __('Edit Entry', 'gravityview'),
117
-            'merge_tags' => true,
118
-        );
119
-
120
-        return array_merge( $add_option, $field_options );
121
-    }
122
-
123
-    /**
124
-     * Add tooltips
125
-     * @param  array $tooltips Existing tooltips
126
-     * @return array           Modified tooltips
127
-     */
128
-    function tooltips( $tooltips ) {
129
-
130
-        $return = $tooltips;
131
-
132
-        $return['allow_edit_cap'] = array(
133
-            'title' => __('Limiting Edit Access', 'gravityview'),
134
-            'value' => __('Change this setting if you don\'t want the user who created the entry to be able to edit this field.', 'gravityview'),
135
-        );
136
-
137
-        return $return;
138
-    }
139
-
140
-    /**
141
-     * Manipulate the fields' options for the EDIT ENTRY screen
142
-     * @param  [type] $field_options [description]
143
-     * @param  [type] $template_id   [description]
144
-     * @param  [type] $field_id      [description]
145
-     * @param  [type] $context       [description]
146
-     * @param  [type] $input_type    [description]
147
-     * @return [type]                [description]
148
-     */
40
+		// add tooltips
41
+		add_filter( 'gravityview/metaboxes/tooltips', array( $this, 'tooltips') );
42
+
43
+		// custom fields' options for zone EDIT
44
+		add_filter( 'gravityview_template_field_options', array( $this, 'field_options' ), 10, 6 );
45
+	}
46
+
47
+	/**
48
+	 * Add Edit Link as a default field, outside those set in the Gravity Form form
49
+	 * @param array $entry_default_fields Existing fields
50
+	 * @param  string|array $form form_ID or form object
51
+	 * @param  string $zone   Either 'single', 'directory', 'header', 'footer'
52
+	 */
53
+	function add_default_field( $entry_default_fields, $form = array(), $zone = '' ) {
54
+
55
+		if( $zone !== 'edit' ) {
56
+
57
+			$entry_default_fields['edit_link'] = array(
58
+				'label' => __('Edit Entry', 'gravityview'),
59
+				'type' => 'edit_link',
60
+				'desc'	=> __('A link to edit the entry. Visible based on View settings.', 'gravityview'),
61
+			);
62
+
63
+		}
64
+
65
+		return $entry_default_fields;
66
+	}
67
+
68
+	/**
69
+	 * Change wording for the Edit context to read Entry Creator
70
+	 *
71
+	 * @param  array 	   $visibility_caps        Array of capabilities to display in field dropdown.
72
+	 * @param  string      $field_type  Type of field options to render (`field` or `widget`)
73
+	 * @param  string      $template_id Table slug
74
+	 * @param  float       $field_id    GF Field ID - Example: `3`, `5.2`, `entry_link`, `created_by`
75
+	 * @param  string      $context     What context are we in? Example: `single` or `directory`
76
+	 * @param  string      $input_type  (textarea, list, select, etc.)
77
+	 * @return array                   Array of field options with `label`, `value`, `type`, `default` keys
78
+	 */
79
+	function modify_visibility_caps( $visibility_caps = array(), $template_id = '', $field_id = '', $context = '', $input_type = '' ) {
80
+
81
+		$caps = $visibility_caps;
82
+
83
+		// If we're configuring fields in the edit context, we want a limited selection
84
+		if( $context === 'edit' ) {
85
+
86
+			// Remove other built-in caps.
87
+			unset( $caps['publish_posts'], $caps['gravityforms_view_entries'], $caps['delete_others_posts'] );
88
+
89
+			$caps['read'] = _x('Entry Creator','User capability', 'gravityview');
90
+		}
91
+
92
+		return $caps;
93
+	}
94
+
95
+	/**
96
+	 * Add "Edit Link Text" setting to the edit_link field settings
97
+	 * @param  [type] $field_options [description]
98
+	 * @param  [type] $template_id   [description]
99
+	 * @param  [type] $field_id      [description]
100
+	 * @param  [type] $context       [description]
101
+	 * @param  [type] $input_type    [description]
102
+	 * @return [type]                [description]
103
+	 */
104
+	function edit_link_field_options( $field_options, $template_id, $field_id, $context, $input_type ) {
105
+
106
+		// Always a link, never a filter
107
+		unset( $field_options['show_as_link'], $field_options['search_filter'] );
108
+
109
+		// Edit Entry link should only appear to visitors capable of editing entries
110
+		unset( $field_options['only_loggedin'], $field_options['only_loggedin_cap'] );
111
+
112
+		$add_option['edit_link'] = array(
113
+			'type' => 'text',
114
+			'label' => __( 'Edit Link Text', 'gravityview' ),
115
+			'desc' => NULL,
116
+			'value' => __('Edit Entry', 'gravityview'),
117
+			'merge_tags' => true,
118
+		);
119
+
120
+		return array_merge( $add_option, $field_options );
121
+	}
122
+
123
+	/**
124
+	 * Add tooltips
125
+	 * @param  array $tooltips Existing tooltips
126
+	 * @return array           Modified tooltips
127
+	 */
128
+	function tooltips( $tooltips ) {
129
+
130
+		$return = $tooltips;
131
+
132
+		$return['allow_edit_cap'] = array(
133
+			'title' => __('Limiting Edit Access', 'gravityview'),
134
+			'value' => __('Change this setting if you don\'t want the user who created the entry to be able to edit this field.', 'gravityview'),
135
+		);
136
+
137
+		return $return;
138
+	}
139
+
140
+	/**
141
+	 * Manipulate the fields' options for the EDIT ENTRY screen
142
+	 * @param  [type] $field_options [description]
143
+	 * @param  [type] $template_id   [description]
144
+	 * @param  [type] $field_id      [description]
145
+	 * @param  [type] $context       [description]
146
+	 * @param  [type] $input_type    [description]
147
+	 * @return [type]                [description]
148
+	 */
149 149
 	public function field_options( $field_options, $template_id, $field_id, $context, $input_type, $form_id ) {
150 150
 
151
-        // We only want to modify the settings for the edit context
152
-        if( 'edit' !== $context ) {
153
-
154
-            /**
155
-             * @since 1.8.4
156
-             */
157
-            $field_options['new_window'] = array(
158
-                'type' => 'checkbox',
159
-                'label' => __( 'Open link in a new tab or window?', 'gravityview' ),
160
-                'value' => false,
161
-            );
162
-
163
-            return $field_options;
164
-        }
165
-
166
-        //  Entry field is only for logged in users
167
-        unset( $field_options['only_loggedin'], $field_options['only_loggedin_cap'] );
168
-
169
-        $add_options = array(
170
-            'allow_edit_cap' => array(
171
-                'type' => 'select',
172
-                'label' => __( 'Make field editable to:', 'gravityview' ),
173
-                'choices' => GravityView_Render_Settings::get_cap_choices( $template_id, $field_id, $context, $input_type ),
174
-                'tooltip' => 'allow_edit_cap',
175
-                'class' => 'widefat',
176
-                'value' => 'read', // Default: entry creator
177
-            ),
178
-        );
179
-
180
-        return array_merge( $field_options, $add_options );
181
-    }
151
+		// We only want to modify the settings for the edit context
152
+		if( 'edit' !== $context ) {
153
+
154
+			/**
155
+			 * @since 1.8.4
156
+			 */
157
+			$field_options['new_window'] = array(
158
+				'type' => 'checkbox',
159
+				'label' => __( 'Open link in a new tab or window?', 'gravityview' ),
160
+				'value' => false,
161
+			);
162
+
163
+			return $field_options;
164
+		}
165
+
166
+		//  Entry field is only for logged in users
167
+		unset( $field_options['only_loggedin'], $field_options['only_loggedin_cap'] );
168
+
169
+		$add_options = array(
170
+			'allow_edit_cap' => array(
171
+				'type' => 'select',
172
+				'label' => __( 'Make field editable to:', 'gravityview' ),
173
+				'choices' => GravityView_Render_Settings::get_cap_choices( $template_id, $field_id, $context, $input_type ),
174
+				'tooltip' => 'allow_edit_cap',
175
+				'class' => 'widefat',
176
+				'value' => 'read', // Default: entry creator
177
+			),
178
+		);
179
+
180
+		return array_merge( $field_options, $add_options );
181
+	}
182 182
 
183 183
 
184 184
 } // end class
185 185
\ No newline at end of file
Please login to merge, or discard this patch.
includes/extensions/edit-entry/class-edit-entry-user-registration.php 2 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -57,7 +57,7 @@
 block discarded – undo
57 57
      * @since 1.11
58 58
      *
59 59
      * @param array $form Gravity Forms form array
60
-     * @param string $entry_id Gravity Forms entry ID
60
+     * @param integer $entry_id Gravity Forms entry ID
61 61
      * @return void
62 62
      */
63 63
     public function update_user( $form = array(), $entry_id = 0 ) {
Please login to merge, or discard this patch.
Indentation   +259 added lines, -259 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,104 +22,104 @@  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
-	        gravityview()->log->error( 'GFAPI or User Registration class not found; not updating the user' );
77
-	        return;
78
-        } elseif( empty( $entry_id ) ) {
79
-        	gravityview()->log->error( 'Entry ID is empty [{entry_id}]; not updating the user', array( 'entry_id' => $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 ( ! \GV\Utils::get( $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
+			gravityview()->log->error( 'GFAPI or User Registration class not found; not updating the user' );
100 77
 			return;
101
-	    }
78
+		} elseif( empty( $entry_id ) ) {
79
+			gravityview()->log->error( 'Entry ID is empty [{entry_id}]; not updating the user', array( 'entry_id' => $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 ( \GV\Utils::get( $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 ( ! \GV\Utils::get( $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 ( \GV\Utils::get( $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
-        // Prevent double-triggering by removing the hook
121
-	    remove_action( 'gravityview/edit_entry/after_update' , array( $this, 'update_user' ), 10 );
122
-    }
117
+		remove_filter( 'send_password_change_email', '__return_false', 3 );
118
+		remove_filter( 'send_email_change_email', '__return_false', 3 );
119
+
120
+		// Prevent double-triggering by removing the hook
121
+		remove_action( 'gravityview/edit_entry/after_update' , array( $this, 'update_user' ), 10 );
122
+	}
123 123
 
124 124
 	/**
125 125
 	 * Get the User Registration feed configuration for the entry & form
@@ -134,185 +134,185 @@  discard block
 block discarded – undo
134 134
 	 *
135 135
 	 * @return array
136 136
 	 */
137
-    public function get_feed_configuration( $entry, $form ) {
138
-
139
-	    /** @var GF_User_Registration $gf_user_registration */
140
-	    $gf_user_registration = GF_User_Registration::get_instance();
141
-
142
-	    $config = $gf_user_registration->get_single_submission_feed( $entry, $form );
143
-
144
-	    /**
145
-	     * @filter `gravityview/edit_entry/user_registration/preserve_role` Keep the current user role or override with the role defined in the Create feed
146
-	     * @since 1.15
147
-	     * @param[in,out] boolean $preserve_role Preserve current user role Default: true
148
-	     * @param[in] array $config Gravity Forms User Registration feed configuration for the form
149
-	     * @param[in] array $form Gravity Forms form array
150
-	     * @param[in] array $entry Gravity Forms entry being edited
151
-	     */
152
-	    $preserve_role = apply_filters( 'gravityview/edit_entry/user_registration/preserve_role', true, $config, $form, $entry );
153
-
154
-	    if( $preserve_role ) {
155
-		    $config['meta']['role'] = 'gfur_preserve_role';
156
-	    }
157
-
158
-	    $displayname = $this->match_current_display_name( $entry['created_by'] );
159
-
160
-	    /**
161
-	     * Make sure the current display name is not changed with the update user method.
162
-	     * @since 1.15
163
-	     */
164
-	    $config['meta']['displayname'] = $displayname ? $displayname : $config['meta']['displayname'];
165
-
166
-	    /**
167
-	     * @filter `gravityview/edit_entry/user_registration/config` Modify the User Registration Addon feed configuration
168
-	     * @since 1.14
169
-	     * @param[in,out] array $config Gravity Forms User Registration feed configuration for the form
170
-	     * @param[in] array $form Gravity Forms form array
171
-	     * @param[in] array $entry Gravity Forms entry being edited
172
-	     */
173
-	    $config = apply_filters( 'gravityview/edit_entry/user_registration/config', $config, $form, $entry );
174
-
175
-	    return $config;
176
-    }
177
-
178
-    /**
179
-     * Calculate the user display name format
180
-     *
181
-     * @since 1.15
182
-     * @since 1.20 Returns false if user not found at $user_id
183
-     *
184
-     * @param int $user_id WP User ID
185
-     * @return false|string Display name format as used inside Gravity Forms User Registration. Returns false if user not found.
186
-     */
187
-    public function match_current_display_name( $user_id ) {
188
-
189
-        $user = get_userdata( $user_id );
190
-
191
-        if( ! $user ) {
192
-        	return false;
193
-        }
194
-
195
-        $names = $this->generate_display_names( $user );
196
-
197
-        $format = array_search( $user->display_name, $names, true );
198
-
199
-        /**
200
-         * In case we can't find the current display name format, trigger last resort method at the 'gform_user_updated' hook
201
-         * @see restore_display_name
202
-         */
203
-        if( false === $format ) {
204
-            $this->_user_before_update = $user;
205
-        }
206
-
207
-        return $format;
208
-    }
209
-
210
-    /**
211
-     * Generate an array of all the user display names possibilities
212
-     *
213
-     * @since 1.15
214
-     *
215
-     * @param object $profileuser WP_User object
216
-     * @return array List all the possible display names for a certain User object
217
-     */
218
-    public function generate_display_names( $profileuser ) {
219
-
220
-        $public_display = array();
221
-        $public_display['nickname']  = $profileuser->nickname;
222
-        $public_display['username']  = $profileuser->user_login;
223
-
224
-        if ( !empty($profileuser->first_name) ) {
225
-	        $public_display['firstname'] = $profileuser->first_name;
226
-        }
227
-
228
-        if ( !empty($profileuser->last_name) ) {
229
-	        $public_display['lastname'] = $profileuser->last_name;
230
-        }
231
-
232
-        if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
233
-            $public_display['firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
234
-            $public_display['lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
235
-        }
236
-
237
-        $public_display = array_map( 'trim', $public_display );
238
-        $public_display = array_unique( $public_display );
239
-
240
-        return $public_display;
241
-    }
242
-
243
-
244
-    /**
245
-     * Restore the Display Name and roles of a user after being updated by Gravity Forms User Registration Addon
246
-     *
247
-     * @see GFUser::update_user()
248
-     * @param int $user_id WP User ID that was updated by Gravity Forms User Registration Addon
249
-     * @param array $config Gravity Forms User Registration Addon form feed configuration
250
-     * @param array $entry The Gravity Forms entry that was just updated
251
-     * @param string $password User password
252
-     * @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
253
-     */
254
-    public function restore_display_name( $user_id = 0, $config = array(), $entry = array(), $password = '' ) {
255
-
256
-        /**
257
-         * @filter `gravityview/edit_entry/restore_display_name` Whether display names should be restored to before updating an entry.
258
-         * Otherwise, display names will be reset to the format specified in Gravity Forms User Registration "Update" feed
259
-         * @since 1.14.4
260
-         * @param boolean $restore_display_name Restore Display Name? Default: true
261
-         */
262
-        $restore_display_name = apply_filters( 'gravityview/edit_entry/restore_display_name', true );
263
-
264
-        $is_update_feed = ( $config && \GV\Utils::get( $config, 'meta/feed_type' ) === 'update' );
265
-
266
-        /**
267
-         * Don't restore display name:
268
-         *   - either disabled,
269
-         *   - or it is an Update feed (we only care about Create feed)
270
-         *   - or we don't need as we found the correct format before updating user.
271
-         * @since 1.14.4
272
-         */
273
-        if( ! $restore_display_name || $is_update_feed || is_null( $this->_user_before_update ) ) {
274
-            return null;
275
-        }
276
-
277
-        $user_after_update = get_userdata( $user_id );
278
-
279
-        // User not found
280
-	    if ( ! $user_after_update ) {
281
-	    	gravityview()->log->error( 'User not found at $user_id #{user_id}', array( 'user_id' => $user_id ) );
282
-		    return false;
283
-	    }
284
-
285
-        $restored_user = $user_after_update;
286
-
287
-	    // Restore previous display_name
288
-        $restored_user->display_name = $this->_user_before_update->display_name;
289
-
290
-	    // Don't have WP update the password.
291
-	    unset( $restored_user->data->user_pass, $restored_user->user_pass );
292
-
293
-        /**
294
-         * Modify the user data after updated by Gravity Forms User Registration but before restored by GravityView
295
-         * @since 1.14
296
-         * @param WP_User $restored_user The user with restored details about to be updated by wp_update_user()
297
-         * @param WP_User $user_before_update The user before being updated by Gravity Forms User Registration
298
-         * @param WP_User $user_after_update The user after being updated by Gravity Forms User Registration
299
-         * @param array   $entry The Gravity Forms entry that was just updated
300
-         */
301
-        $restored_user = apply_filters( 'gravityview/edit_entry/user_registration/restored_user', $restored_user, $this->_user_before_update, $user_after_update, $entry );
302
-
303
-        $updated = wp_update_user( $restored_user );
304
-
305
-        if( is_wp_error( $updated ) ) {
306
-            gravityview()->log->error( 'There was an error updating user #{user_id} details', array( 'user_id' => $user_id, 'data' => $updated ) );
307
-        } else {
308
-            gravityview()->log->debug( 'User #{user_id} details restored', array( 'user_id' => $user_id ) );
309
-        }
310
-
311
-        $this->_user_before_update = null;
312
-
313
-        unset( $restored_user, $user_after_update );
314
-
315
-        return $updated;
316
-    }
137
+	public function get_feed_configuration( $entry, $form ) {
138
+
139
+		/** @var GF_User_Registration $gf_user_registration */
140
+		$gf_user_registration = GF_User_Registration::get_instance();
141
+
142
+		$config = $gf_user_registration->get_single_submission_feed( $entry, $form );
143
+
144
+		/**
145
+		 * @filter `gravityview/edit_entry/user_registration/preserve_role` Keep the current user role or override with the role defined in the Create feed
146
+		 * @since 1.15
147
+		 * @param[in,out] boolean $preserve_role Preserve current user role Default: true
148
+		 * @param[in] array $config Gravity Forms User Registration feed configuration for the form
149
+		 * @param[in] array $form Gravity Forms form array
150
+		 * @param[in] array $entry Gravity Forms entry being edited
151
+		 */
152
+		$preserve_role = apply_filters( 'gravityview/edit_entry/user_registration/preserve_role', true, $config, $form, $entry );
153
+
154
+		if( $preserve_role ) {
155
+			$config['meta']['role'] = 'gfur_preserve_role';
156
+		}
157
+
158
+		$displayname = $this->match_current_display_name( $entry['created_by'] );
159
+
160
+		/**
161
+		 * Make sure the current display name is not changed with the update user method.
162
+		 * @since 1.15
163
+		 */
164
+		$config['meta']['displayname'] = $displayname ? $displayname : $config['meta']['displayname'];
165
+
166
+		/**
167
+		 * @filter `gravityview/edit_entry/user_registration/config` Modify the User Registration Addon feed configuration
168
+		 * @since 1.14
169
+		 * @param[in,out] array $config Gravity Forms User Registration feed configuration for the form
170
+		 * @param[in] array $form Gravity Forms form array
171
+		 * @param[in] array $entry Gravity Forms entry being edited
172
+		 */
173
+		$config = apply_filters( 'gravityview/edit_entry/user_registration/config', $config, $form, $entry );
174
+
175
+		return $config;
176
+	}
177
+
178
+	/**
179
+	 * Calculate the user display name format
180
+	 *
181
+	 * @since 1.15
182
+	 * @since 1.20 Returns false if user not found at $user_id
183
+	 *
184
+	 * @param int $user_id WP User ID
185
+	 * @return false|string Display name format as used inside Gravity Forms User Registration. Returns false if user not found.
186
+	 */
187
+	public function match_current_display_name( $user_id ) {
188
+
189
+		$user = get_userdata( $user_id );
190
+
191
+		if( ! $user ) {
192
+			return false;
193
+		}
194
+
195
+		$names = $this->generate_display_names( $user );
196
+
197
+		$format = array_search( $user->display_name, $names, true );
198
+
199
+		/**
200
+		 * In case we can't find the current display name format, trigger last resort method at the 'gform_user_updated' hook
201
+		 * @see restore_display_name
202
+		 */
203
+		if( false === $format ) {
204
+			$this->_user_before_update = $user;
205
+		}
206
+
207
+		return $format;
208
+	}
209
+
210
+	/**
211
+	 * Generate an array of all the user display names possibilities
212
+	 *
213
+	 * @since 1.15
214
+	 *
215
+	 * @param object $profileuser WP_User object
216
+	 * @return array List all the possible display names for a certain User object
217
+	 */
218
+	public function generate_display_names( $profileuser ) {
219
+
220
+		$public_display = array();
221
+		$public_display['nickname']  = $profileuser->nickname;
222
+		$public_display['username']  = $profileuser->user_login;
223
+
224
+		if ( !empty($profileuser->first_name) ) {
225
+			$public_display['firstname'] = $profileuser->first_name;
226
+		}
227
+
228
+		if ( !empty($profileuser->last_name) ) {
229
+			$public_display['lastname'] = $profileuser->last_name;
230
+		}
231
+
232
+		if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
233
+			$public_display['firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
234
+			$public_display['lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
235
+		}
236
+
237
+		$public_display = array_map( 'trim', $public_display );
238
+		$public_display = array_unique( $public_display );
239
+
240
+		return $public_display;
241
+	}
242
+
243
+
244
+	/**
245
+	 * Restore the Display Name and roles of a user after being updated by Gravity Forms User Registration Addon
246
+	 *
247
+	 * @see GFUser::update_user()
248
+	 * @param int $user_id WP User ID that was updated by Gravity Forms User Registration Addon
249
+	 * @param array $config Gravity Forms User Registration Addon form feed configuration
250
+	 * @param array $entry The Gravity Forms entry that was just updated
251
+	 * @param string $password User password
252
+	 * @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
253
+	 */
254
+	public function restore_display_name( $user_id = 0, $config = array(), $entry = array(), $password = '' ) {
255
+
256
+		/**
257
+		 * @filter `gravityview/edit_entry/restore_display_name` Whether display names should be restored to before updating an entry.
258
+		 * Otherwise, display names will be reset to the format specified in Gravity Forms User Registration "Update" feed
259
+		 * @since 1.14.4
260
+		 * @param boolean $restore_display_name Restore Display Name? Default: true
261
+		 */
262
+		$restore_display_name = apply_filters( 'gravityview/edit_entry/restore_display_name', true );
263
+
264
+		$is_update_feed = ( $config && \GV\Utils::get( $config, 'meta/feed_type' ) === 'update' );
265
+
266
+		/**
267
+		 * Don't restore display name:
268
+		 *   - either disabled,
269
+		 *   - or it is an Update feed (we only care about Create feed)
270
+		 *   - or we don't need as we found the correct format before updating user.
271
+		 * @since 1.14.4
272
+		 */
273
+		if( ! $restore_display_name || $is_update_feed || is_null( $this->_user_before_update ) ) {
274
+			return null;
275
+		}
276
+
277
+		$user_after_update = get_userdata( $user_id );
278
+
279
+		// User not found
280
+		if ( ! $user_after_update ) {
281
+			gravityview()->log->error( 'User not found at $user_id #{user_id}', array( 'user_id' => $user_id ) );
282
+			return false;
283
+		}
284
+
285
+		$restored_user = $user_after_update;
286
+
287
+		// Restore previous display_name
288
+		$restored_user->display_name = $this->_user_before_update->display_name;
289
+
290
+		// Don't have WP update the password.
291
+		unset( $restored_user->data->user_pass, $restored_user->user_pass );
292
+
293
+		/**
294
+		 * Modify the user data after updated by Gravity Forms User Registration but before restored by GravityView
295
+		 * @since 1.14
296
+		 * @param WP_User $restored_user The user with restored details about to be updated by wp_update_user()
297
+		 * @param WP_User $user_before_update The user before being updated by Gravity Forms User Registration
298
+		 * @param WP_User $user_after_update The user after being updated by Gravity Forms User Registration
299
+		 * @param array   $entry The Gravity Forms entry that was just updated
300
+		 */
301
+		$restored_user = apply_filters( 'gravityview/edit_entry/user_registration/restored_user', $restored_user, $this->_user_before_update, $user_after_update, $entry );
302
+
303
+		$updated = wp_update_user( $restored_user );
304
+
305
+		if( is_wp_error( $updated ) ) {
306
+			gravityview()->log->error( 'There was an error updating user #{user_id} details', array( 'user_id' => $user_id, 'data' => $updated ) );
307
+		} else {
308
+			gravityview()->log->debug( 'User #{user_id} details restored', array( 'user_id' => $user_id ) );
309
+		}
310
+
311
+		$this->_user_before_update = null;
312
+
313
+		unset( $restored_user, $user_after_update );
314
+
315
+		return $updated;
316
+	}
317 317
 
318 318
 } //end class
Please login to merge, or discard this patch.
includes/extensions/edit-entry/class-edit-entry.php 2 patches
Doc Comments   +4 added lines, -1 removed lines patch added patch discarded remove patch
@@ -65,6 +65,9 @@  discard block
 block discarded – undo
65 65
     }
66 66
 
67 67
 
68
+    /**
69
+     * @param string $component
70
+     */
68 71
     private function load_components( $component ) {
69 72
 
70 73
         $dir = trailingslashit( self::$file );
@@ -141,7 +144,7 @@  discard block
 block discarded – undo
141 144
      * "You can edit this post from the post page" fields, for example.
142 145
      *
143 146
      * @param $entry array Gravity Forms entry object
144
-     * @param $view_id int GravityView view id
147
+     * @param integer $view_id int GravityView view id
145 148
      * @param $post_id int GravityView Post ID where View may be embedded {@since 1.9.2}
146 149
      * @param string|array $field_values Parameters to pass in to the Edit Entry form to prefill data. Uses the same format as Gravity Forms "Allow field to be populated dynamically" {@since 1.9.2} {@see https://www.gravityhelp.com/documentation/article/allow-field-to-be-populated-dynamically/ }
147 150
      * @return string
Please login to merge, or discard this patch.
Indentation   +156 added lines, -156 removed lines patch added patch discarded remove patch
@@ -18,82 +18,82 @@  discard block
 block discarded – undo
18 18
 
19 19
 class GravityView_Edit_Entry {
20 20
 
21
-    /**
22
-     * @var string
23
-     */
21
+	/**
22
+	 * @var string
23
+	 */
24 24
 	static $file;
25 25
 
26 26
 	static $instance;
27 27
 
28
-    /**
29
-     * Component instances.
30
-     * @var array
31
-     */
32
-    public $instances = array();
28
+	/**
29
+	 * Component instances.
30
+	 * @var array
31
+	 */
32
+	public $instances = array();
33 33
 
34 34
 
35 35
 	function __construct() {
36 36
 
37
-        self::$file = plugin_dir_path( __FILE__ );
37
+		self::$file = plugin_dir_path( __FILE__ );
38 38
 
39
-        if( is_admin() ) {
40
-            $this->load_components( 'admin' );
41
-        }
39
+		if( is_admin() ) {
40
+			$this->load_components( 'admin' );
41
+		}
42 42
 
43 43
 
44
-        $this->load_components( 'render' );
44
+		$this->load_components( 'render' );
45 45
 
46
-        // If GF User Registration Add-on exists
47
-        $this->load_components( 'user-registration' );
46
+		// If GF User Registration Add-on exists
47
+		$this->load_components( 'user-registration' );
48 48
 
49
-        $this->add_hooks();
49
+		$this->add_hooks();
50 50
 
51 51
 		// Process hooks for addons that may or may not be present
52 52
 		$this->addon_specific_hooks();
53 53
 	}
54 54
 
55 55
 
56
-    static function getInstance() {
56
+	static function getInstance() {
57 57
 
58
-        if( empty( self::$instance ) ) {
59
-            self::$instance = new GravityView_Edit_Entry;
60
-        }
58
+		if( empty( self::$instance ) ) {
59
+			self::$instance = new GravityView_Edit_Entry;
60
+		}
61 61
 
62
-        return self::$instance;
63
-    }
62
+		return self::$instance;
63
+	}
64 64
 
65 65
 
66
-    private function load_components( $component ) {
66
+	private function load_components( $component ) {
67 67
 
68
-        $dir = trailingslashit( self::$file );
68
+		$dir = trailingslashit( self::$file );
69 69
 
70
-        $filename  = $dir . 'class-edit-entry-' . $component . '.php';
71
-        $classname = 'GravityView_Edit_Entry_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $component ) ) );
70
+		$filename  = $dir . 'class-edit-entry-' . $component . '.php';
71
+		$classname = 'GravityView_Edit_Entry_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $component ) ) );
72 72
 
73
-        // Loads component and pass extension's instance so that component can
74
-        // talk each other.
75
-        require_once $filename;
76
-        $this->instances[ $component ] = new $classname( $this );
77
-        $this->instances[ $component ]->load();
73
+		// Loads component and pass extension's instance so that component can
74
+		// talk each other.
75
+		require_once $filename;
76
+		$this->instances[ $component ] = new $classname( $this );
77
+		$this->instances[ $component ]->load();
78 78
 
79
-    }
79
+	}
80 80
 
81
-    private function add_hooks() {
81
+	private function add_hooks() {
82 82
 
83
-        // Add front-end access to Gravity Forms delete file action
84
-        add_action( 'wp_ajax_nopriv_rg_delete_file', array( 'GFForms', 'delete_file') );
83
+		// Add front-end access to Gravity Forms delete file action
84
+		add_action( 'wp_ajax_nopriv_rg_delete_file', array( 'GFForms', 'delete_file') );
85 85
 
86
-        // Make sure this hook is run for non-admins
87
-        add_action( 'wp_ajax_rg_delete_file', array( 'GFForms', 'delete_file') );
86
+		// Make sure this hook is run for non-admins
87
+		add_action( 'wp_ajax_rg_delete_file', array( 'GFForms', 'delete_file') );
88 88
 
89
-        add_filter( 'gravityview_blacklist_field_types', array( $this, 'modify_field_blacklist' ), 10, 2 );
89
+		add_filter( 'gravityview_blacklist_field_types', array( $this, 'modify_field_blacklist' ), 10, 2 );
90 90
 
91
-        // add template path to check for field
92
-        add_filter( 'gravityview_template_paths', array( $this, 'add_template_path' ) );
91
+		// add template path to check for field
92
+		add_filter( 'gravityview_template_paths', array( $this, 'add_template_path' ) );
93 93
 
94 94
 		add_filter( 'gravityview/field/is_visible', array( $this, 'maybe_not_visible' ), 10, 3 );
95 95
 
96
-    }
96
+	}
97 97
 
98 98
 	/**
99 99
 	 * Trigger hooks that are normally run in the admin for Addons, but need to be triggered manually because we're not in the admin
@@ -151,74 +151,74 @@  discard block
 block discarded – undo
151 151
 		return false;
152 152
 	}
153 153
 
154
-    /**
155
-     * Include this extension templates path
156
-     * @param array $file_paths List of template paths ordered
157
-     */
158
-    public function add_template_path( $file_paths ) {
159
-
160
-        // Index 100 is the default GravityView template path.
161
-        $file_paths[ 110 ] = self::$file;
162
-
163
-        return $file_paths;
164
-    }
165
-
166
-    /**
167
-     *
168
-     * Return a well formatted nonce key according to GravityView Edit Entry protocol
169
-     *
170
-     * @param $view_id int GravityView view id
171
-     * @param $form_id int Gravity Forms form id
172
-     * @param $entry_id int Gravity Forms entry id
173
-     * @return string
174
-     */
175
-    public static function get_nonce_key( $view_id, $form_id, $entry_id ) {
176
-        return sprintf( 'edit_%d_%d_%d', $view_id, $form_id, $entry_id );
177
-    }
178
-
179
-
180
-    /**
181
-     * The edit entry link creates a secure link with a nonce
182
-     *
183
-     * It also mimics the URL structure Gravity Forms expects to have so that
184
-     * it formats the display of the edit form like it does in the backend, like
185
-     * "You can edit this post from the post page" fields, for example.
186
-     *
187
-     * @param $entry array Gravity Forms entry object
188
-     * @param $view_id int GravityView view id
189
-     * @param $post_id int GravityView Post ID where View may be embedded {@since 1.9.2}
190
-     * @param string|array $field_values Parameters to pass in to the Edit Entry form to prefill data. Uses the same format as Gravity Forms "Allow field to be populated dynamically" {@since 1.9.2} {@see https://www.gravityhelp.com/documentation/article/allow-field-to-be-populated-dynamically/ }
191
-     * @return string
192
-     */
193
-    public static function get_edit_link( $entry, $view_id, $post_id = null, $field_values = '' ) {
194
-
195
-        $nonce_key = self::get_nonce_key( $view_id, $entry['form_id'], $entry['id']  );
196
-
197
-        $base = gv_entry_link( $entry, $post_id ? : $view_id  );
198
-
199
-        $url = add_query_arg( array(
200
-            'edit' => wp_create_nonce( $nonce_key )
201
-        ), $base );
202
-
203
-        if( $post_id ) {
204
-	        $url = add_query_arg( array( 'gvid' => $view_id ), $url );
205
-        }
206
-
207
-	    /**
208
-	     * Allow passing params to dynamically populate entry with values
209
-	     * @since 1.9.2
210
-	     */
211
-	    if( !empty( $field_values ) ) {
212
-
213
-		    if( is_array( $field_values ) ) {
214
-			    // If already an array, no parse_str() needed
215
-			    $params = $field_values;
216
-		    } else {
217
-			    parse_str( $field_values, $params );
218
-		    }
219
-
220
-		    $url = add_query_arg( $params, $url );
221
-	    }
154
+	/**
155
+	 * Include this extension templates path
156
+	 * @param array $file_paths List of template paths ordered
157
+	 */
158
+	public function add_template_path( $file_paths ) {
159
+
160
+		// Index 100 is the default GravityView template path.
161
+		$file_paths[ 110 ] = self::$file;
162
+
163
+		return $file_paths;
164
+	}
165
+
166
+	/**
167
+	 *
168
+	 * Return a well formatted nonce key according to GravityView Edit Entry protocol
169
+	 *
170
+	 * @param $view_id int GravityView view id
171
+	 * @param $form_id int Gravity Forms form id
172
+	 * @param $entry_id int Gravity Forms entry id
173
+	 * @return string
174
+	 */
175
+	public static function get_nonce_key( $view_id, $form_id, $entry_id ) {
176
+		return sprintf( 'edit_%d_%d_%d', $view_id, $form_id, $entry_id );
177
+	}
178
+
179
+
180
+	/**
181
+	 * The edit entry link creates a secure link with a nonce
182
+	 *
183
+	 * It also mimics the URL structure Gravity Forms expects to have so that
184
+	 * it formats the display of the edit form like it does in the backend, like
185
+	 * "You can edit this post from the post page" fields, for example.
186
+	 *
187
+	 * @param $entry array Gravity Forms entry object
188
+	 * @param $view_id int GravityView view id
189
+	 * @param $post_id int GravityView Post ID where View may be embedded {@since 1.9.2}
190
+	 * @param string|array $field_values Parameters to pass in to the Edit Entry form to prefill data. Uses the same format as Gravity Forms "Allow field to be populated dynamically" {@since 1.9.2} {@see https://www.gravityhelp.com/documentation/article/allow-field-to-be-populated-dynamically/ }
191
+	 * @return string
192
+	 */
193
+	public static function get_edit_link( $entry, $view_id, $post_id = null, $field_values = '' ) {
194
+
195
+		$nonce_key = self::get_nonce_key( $view_id, $entry['form_id'], $entry['id']  );
196
+
197
+		$base = gv_entry_link( $entry, $post_id ? : $view_id  );
198
+
199
+		$url = add_query_arg( array(
200
+			'edit' => wp_create_nonce( $nonce_key )
201
+		), $base );
202
+
203
+		if( $post_id ) {
204
+			$url = add_query_arg( array( 'gvid' => $view_id ), $url );
205
+		}
206
+
207
+		/**
208
+		 * Allow passing params to dynamically populate entry with values
209
+		 * @since 1.9.2
210
+		 */
211
+		if( !empty( $field_values ) ) {
212
+
213
+			if( is_array( $field_values ) ) {
214
+				// If already an array, no parse_str() needed
215
+				$params = $field_values;
216
+			} else {
217
+				parse_str( $field_values, $params );
218
+			}
219
+
220
+			$url = add_query_arg( $params, $url );
221
+		}
222 222
 
223 223
 		/**
224 224
 		 * @filter `gravityview/edit/link` Filter the edit URL link.
@@ -227,7 +227,7 @@  discard block
 block discarded – undo
227 227
 		 * @param \GV\View $view The View.
228 228
 		 */
229 229
 		return apply_filters( 'gravityview/edit/link', $url, $entry, \GV\View::by_id( $view_id  ) );
230
-    }
230
+	}
231 231
 
232 232
 	/**
233 233
 	 * Edit mode doesn't allow certain field types.
@@ -282,19 +282,19 @@  discard block
 block discarded – undo
282 282
 	}
283 283
 
284 284
 
285
-    /**
286
-     * checks if user has permissions to edit a specific entry
287
-     *
288
-     * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_entry for maximum security!!
289
-     *
290
-     * @param  array $entry Gravity Forms entry array
291
-     * @param \GV\View int $view_id ID of the view you want to check visibility against {@since 1.9.2}. Required since 2.0
292
-     * @return bool
293
-     */
294
-    public static function check_user_cap_edit_entry( $entry, $view = 0 ) {
285
+	/**
286
+	 * checks if user has permissions to edit a specific entry
287
+	 *
288
+	 * Needs to be used combined with GravityView_Edit_Entry::user_can_edit_entry for maximum security!!
289
+	 *
290
+	 * @param  array $entry Gravity Forms entry array
291
+	 * @param \GV\View int $view_id ID of the view you want to check visibility against {@since 1.9.2}. Required since 2.0
292
+	 * @return bool
293
+	 */
294
+	public static function check_user_cap_edit_entry( $entry, $view = 0 ) {
295 295
 
296
-        // No permission by default
297
-        $user_can_edit = false;
296
+		// No permission by default
297
+		$user_can_edit = false;
298 298
 
299 299
 		// get user_edit setting
300 300
 		if ( empty( $view ) ) {
@@ -312,59 +312,59 @@  discard block
 block discarded – undo
312 312
 			$user_edit = GVCommon::get_template_setting( $view_id, 'user_edit' );
313 313
 		}
314 314
 
315
-        // If they can edit any entries (as defined in Gravity Forms)
316
-        // Or if they can edit other people's entries
317
-        // Then we're good.
318
-        if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ), $entry['id'] ) ) {
315
+		// If they can edit any entries (as defined in Gravity Forms)
316
+		// Or if they can edit other people's entries
317
+		// Then we're good.
318
+		if( GVCommon::has_cap( array( 'gravityforms_edit_entries', 'gravityview_edit_others_entries' ), $entry['id'] ) ) {
319 319
 
320
-            gravityview()->log->debug( 'User has ability to edit all entries.' );
320
+			gravityview()->log->debug( 'User has ability to edit all entries.' );
321 321
 
322
-            $user_can_edit = true;
322
+			$user_can_edit = true;
323 323
 
324
-        } else if( !isset( $entry['created_by'] ) ) {
324
+		} else if( !isset( $entry['created_by'] ) ) {
325 325
 
326
-            gravityview()->log->error( 'Entry `created_by` doesn\'t exist.');
326
+			gravityview()->log->error( 'Entry `created_by` doesn\'t exist.');
327 327
 
328
-            $user_can_edit = false;
328
+			$user_can_edit = false;
329 329
 
330
-        } else {
330
+		} else {
331 331
 
332 332
 
333
-            $current_user = wp_get_current_user();
333
+			$current_user = wp_get_current_user();
334 334
 
335
-            // User edit is disabled
336
-            if( empty( $user_edit ) ) {
335
+			// User edit is disabled
336
+			if( empty( $user_edit ) ) {
337 337
 
338
-                gravityview()->log->debug( 'User Edit is disabled. Returning false.' );
338
+				gravityview()->log->debug( 'User Edit is disabled. Returning false.' );
339 339
 
340
-                $user_can_edit = false;
341
-            }
340
+				$user_can_edit = false;
341
+			}
342 342
 
343
-            // User edit is enabled and the logged-in user is the same as the user who created the entry. We're good.
344
-            else if( is_user_logged_in() && intval( $current_user->ID ) === intval( $entry['created_by'] ) ) {
343
+			// User edit is enabled and the logged-in user is the same as the user who created the entry. We're good.
344
+			else if( is_user_logged_in() && intval( $current_user->ID ) === intval( $entry['created_by'] ) ) {
345 345
 
346
-                gravityview()->log->debug( 'User {user_id} created the entry.', array( 'user_id', $current_user->ID ) );
346
+				gravityview()->log->debug( 'User {user_id} created the entry.', array( 'user_id', $current_user->ID ) );
347 347
 
348
-                $user_can_edit = true;
348
+				$user_can_edit = true;
349 349
 
350
-            } else if( ! is_user_logged_in() ) {
350
+			} else if( ! is_user_logged_in() ) {
351 351
 
352
-                gravityview()->log->debug( 'No user defined; edit entry requires logged in user' );
353
-            }
352
+				gravityview()->log->debug( 'No user defined; edit entry requires logged in user' );
353
+			}
354 354
 
355
-        }
355
+		}
356 356
 
357
-        /**
358
-         * @filter `gravityview/edit_entry/user_can_edit_entry` Modify whether user can edit an entry.
359
-         * @since 1.15 Added `$entry` and `$view_id` parameters
360
-         * @param[in,out] boolean $user_can_edit Can the current user edit the current entry? (Default: false)
361
-         * @param[in] array $entry Gravity Forms entry array {@since 1.15}
362
-         * @param[in] int $view_id ID of the view you want to check visibility against {@since 1.15}
363
-         */
364
-        $user_can_edit = apply_filters( 'gravityview/edit_entry/user_can_edit_entry', $user_can_edit, $entry, $view_id );
357
+		/**
358
+		 * @filter `gravityview/edit_entry/user_can_edit_entry` Modify whether user can edit an entry.
359
+		 * @since 1.15 Added `$entry` and `$view_id` parameters
360
+		 * @param[in,out] boolean $user_can_edit Can the current user edit the current entry? (Default: false)
361
+		 * @param[in] array $entry Gravity Forms entry array {@since 1.15}
362
+		 * @param[in] int $view_id ID of the view you want to check visibility against {@since 1.15}
363
+		 */
364
+		$user_can_edit = apply_filters( 'gravityview/edit_entry/user_can_edit_entry', $user_can_edit, $entry, $view_id );
365 365
 
366
-        return (bool)$user_can_edit;
367
-    }
366
+		return (bool)$user_can_edit;
367
+	}
368 368
 
369 369
 
370 370
 
Please login to merge, or discard this patch.