User Role Editor - Version 4.56

Version Description

Download this release

Release Info

Developer shinephp
Plugin Icon 128x128 User Role Editor
Version 4.56
Comparing to
See all releases

Code changes from version 4.55.1 to 4.56

changelog.txt CHANGED
@@ -1,5 +1,15 @@
1
  CHANGES LOG (full version).
2
  ===========================
 
 
 
 
 
 
 
 
 
 
3
  = [4.55] 03.06.2020 =
4
  * Update: User Role Editor uninstallation was refactored. It fully removes the ('ure_%') user capabilities from the user roles data.
5
 
1
  CHANGES LOG (full version).
2
  ===========================
3
+ = [4.56] 09.08.2020 =
4
+ * New: User capabilities 'install_languages', 'resume_plugins', 'resume_themes', 'view_site_health_checks' were added to the list of supported WordPress built-in user capabilities.
5
+ * Update: Single site WordPress installation: URE automatically grants all existing user capabilities to WordPress built-in 'administrator' role before opening its page "Users->User Role Editor".
6
+ * Fix: Extra slash was removed between URE_PLUGIN_URL and the image resource when outputting URE_PLUGIN_URL .'/images/ajax-loader.gif' at 'Users->User Role Editor' page.
7
+ * Info: Marked as compatible with WordPress 5.5.
8
+
9
+ = [4.55.1] 06.06.2020 =
10
+ * Security fix: User with 'edit_users' capability could assign to another user a role not included into the editable roles list. This fix is required to install ASAP for all sites which have user(s) with 'edit_users' capability granted not via 'administrator' role.
11
+ * Update: URE_Uninstall class properties were made 'protected' to be accessible in URE_Uninstall_Pro class included into the Pro version.
12
+
13
  = [4.55] 03.06.2020 =
14
  * Update: User Role Editor uninstallation was refactored. It fully removes the ('ure_%') user capabilities from the user roles data.
15
 
includes/classes/capabilities-groups-manager.php CHANGED
@@ -225,7 +225,13 @@ class URE_Capabilities_Groups_Manager {
225
  $caps['manage_network_options'] = array('core', 'multisite', 'general');
226
  $caps['upgrade_network'] = array('core', 'multisite', 'general');
227
  }
228
-
 
 
 
 
 
 
229
  $caps = apply_filters('ure_built_in_wp_caps', $caps);
230
 
231
  $this->built_in_wp_caps = $caps;
225
  $caps['manage_network_options'] = array('core', 'multisite', 'general');
226
  $caps['upgrade_network'] = array('core', 'multisite', 'general');
227
  }
228
+
229
+ $caps['install_languages'] = array('core', 'general');
230
+ $caps['resume_plugins'] = array('core', 'plugins');
231
+ $caps['resume_themes'] = array('core', 'themes');
232
+ $caps['view_site_health_checks'] = array('core', 'general');
233
+
234
+
235
  $caps = apply_filters('ure_built_in_wp_caps', $caps);
236
 
237
  $this->built_in_wp_caps = $caps;
includes/classes/capabilities.php CHANGED
@@ -52,7 +52,7 @@ class URE_Capabilities {
52
 
53
  $cap = array();
54
  $cap['inner'] = $cap_id;
55
- $cap['human'] = esc_html__( $this->convert_cap_to_readable( $cap_id) , 'user-role-editor' );
56
  if ( isset( $this->built_in_wp_caps[$cap_id] ) ) {
57
  $cap['wp_core'] = true;
58
  } else {
@@ -76,8 +76,8 @@ class URE_Capabilities {
76
  if (!isset($role['capabilities']) || !is_array($role['capabilities'])) {
77
  continue;
78
  }
79
- foreach (array_keys($role['capabilities']) as $cap) {
80
- $this->add_capability_to_full_caps_list($cap, $full_list );
81
  }
82
  }
83
 
@@ -149,8 +149,8 @@ class URE_Capabilities {
149
  $editor = URE_Editor::get_instance();
150
  $user = $editor->get('user_to_edit');
151
  $roles = $editor->get('roles');
152
- foreach(array_keys($user->caps) as $cap) {
153
- if (!isset($roles[$cap])) { // it is the user capability, not role
154
  $this->add_capability_to_full_caps_list( $cap, $full_list );
155
  }
156
  }
@@ -187,12 +187,12 @@ class URE_Capabilities {
187
 
188
 
189
  public static function add_cap_to_roles( $roles, $cap ) {
190
- global $wp_roles;
191
 
192
  if ( !is_array( $roles ) || count( $roles )==0 ) {
193
  return;
194
  }
195
 
 
196
  foreach( $roles as $role ) {
197
  if ( isset( $wp_roles->role_objects[$role] ) &&
198
  !isset( $wp_roles->role_objects[$role]->capabilities[$cap] ) ) {
@@ -205,7 +205,6 @@ class URE_Capabilities {
205
 
206
 
207
  protected function add_custom_post_type_caps( &$full_list ) {
208
- global $wp_roles;
209
 
210
  $multisite = $this->lib->get( 'multisite' );
211
  // admin should be capable to edit any posts
@@ -237,11 +236,12 @@ class URE_Capabilities {
237
  }
238
  }
239
 
 
240
  if ( !$multisite && isset( $wp_roles->role_objects['administrator'] ) ) {
241
  // admin should be capable to create posts and pages
242
  foreach( array( 'post', 'page' ) as $post_type_name ) {
243
  $this->add_create_cap_to_admin( $post_type_name );
244
- }
245
  }
246
 
247
  }
@@ -255,7 +255,7 @@ class URE_Capabilities {
255
  protected function add_ure_caps( &$full_list ) {
256
 
257
  $key_cap = URE_Own_Capabilities::get_key_capability();
258
- if ( !current_user_can( $key_cap ) ) {
259
  return;
260
  }
261
  $ure_caps = URE_Own_Capabilities::get_caps();
@@ -267,6 +267,45 @@ class URE_Capabilities {
267
  // end of add_ure_caps()
268
 
269
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
270
  public function init_full_list( $ure_object ) {
271
 
272
  $full_list = array();
@@ -282,6 +321,7 @@ class URE_Capabilities {
282
  $this->add_ure_caps( $full_list );
283
  asort( $full_list );
284
  $full_list = apply_filters('ure_full_capabilites', $full_list);
 
285
 
286
  return $full_list;
287
  }
@@ -295,12 +335,12 @@ class URE_Capabilities {
295
  $wp_roles = wp_roles();
296
  // build full capabilities list from all roles
297
  $full_caps_list = array();
298
- foreach ($wp_roles->roles as $role) {
299
  // validate if capabilities is an array
300
- if (isset($role['capabilities']) && is_array($role['capabilities'])) {
301
  foreach ($role['capabilities'] as $capability => $value) {
302
- if (!isset($full_caps_list[$capability])) {
303
- $full_caps_list[$capability] = 1;
304
  }
305
  }
306
  }
@@ -322,7 +362,7 @@ class URE_Capabilities {
322
  $caps[$cap] = 1;
323
  }
324
  }
325
-
326
  return $caps;
327
  }
328
  // end of get_visual_composer_caps()
52
 
53
  $cap = array();
54
  $cap['inner'] = $cap_id;
55
+ $cap['human'] = esc_html__( $this->convert_cap_to_readable( $cap_id ) , 'user-role-editor' );
56
  if ( isset( $this->built_in_wp_caps[$cap_id] ) ) {
57
  $cap['wp_core'] = true;
58
  } else {
76
  if (!isset($role['capabilities']) || !is_array($role['capabilities'])) {
77
  continue;
78
  }
79
+ foreach ( array_keys( $role['capabilities'] ) as $cap ) {
80
+ $this->add_capability_to_full_caps_list( $cap, $full_list );
81
  }
82
  }
83
 
149
  $editor = URE_Editor::get_instance();
150
  $user = $editor->get('user_to_edit');
151
  $roles = $editor->get('roles');
152
+ foreach( array_keys( $user->caps ) as $cap ) {
153
+ if ( !isset( $roles[$cap] ) ) { // it is the user capability, not role
154
  $this->add_capability_to_full_caps_list( $cap, $full_list );
155
  }
156
  }
187
 
188
 
189
  public static function add_cap_to_roles( $roles, $cap ) {
 
190
 
191
  if ( !is_array( $roles ) || count( $roles )==0 ) {
192
  return;
193
  }
194
 
195
+ $wp_roles = wp_roles();
196
  foreach( $roles as $role ) {
197
  if ( isset( $wp_roles->role_objects[$role] ) &&
198
  !isset( $wp_roles->role_objects[$role]->capabilities[$cap] ) ) {
205
 
206
 
207
  protected function add_custom_post_type_caps( &$full_list ) {
 
208
 
209
  $multisite = $this->lib->get( 'multisite' );
210
  // admin should be capable to edit any posts
236
  }
237
  }
238
 
239
+ $wp_roles = wp_roles();
240
  if ( !$multisite && isset( $wp_roles->role_objects['administrator'] ) ) {
241
  // admin should be capable to create posts and pages
242
  foreach( array( 'post', 'page' ) as $post_type_name ) {
243
  $this->add_create_cap_to_admin( $post_type_name );
244
+ }
245
  }
246
 
247
  }
255
  protected function add_ure_caps( &$full_list ) {
256
 
257
  $key_cap = URE_Own_Capabilities::get_key_capability();
258
+ if ( !current_user_can( $key_cap ) ) {
259
  return;
260
  }
261
  $ure_caps = URE_Own_Capabilities::get_caps();
267
  // end of add_ure_caps()
268
 
269
 
270
+ // Under the single site WordPress installation administrator role should have all existing capabilities included
271
+ protected function grant_all_caps_to_admin( $full_list ) {
272
+
273
+ $multisite = $this->lib->get( 'multisite' );
274
+ if ( $multisite ) {
275
+ // There is a superadmin user under WP multisite, so single site administrator role may do not have full list of capabilities.
276
+ return;
277
+ }
278
+
279
+ $wp_roles = wp_roles();
280
+ if ( !isset( $wp_roles->role_objects['administrator'] ) ) {
281
+ return;
282
+ }
283
+
284
+ // Use this filter as the last chance to stop this
285
+ $grant = apply_filters('ure_grant_all_caps_to_admin', true );
286
+ if ( empty( $grant) ) {
287
+ return;
288
+ }
289
+
290
+ $admin_role = $wp_roles->role_objects['administrator'];
291
+ $updated = false;
292
+ foreach( $full_list as $capability ) {
293
+ $cap = $capability['inner'];
294
+ if ( !$admin_role->has_cap( $cap ) ) {
295
+ $admin_role->add_cap( $cap );
296
+ $updated = true;
297
+ }
298
+ }
299
+ if ( $updated ) { // Flush the changes to the database
300
+ $use_db = $wp_roles->use_db;
301
+ $wp_roles->use_db = true;
302
+ $admin_role->add_cap('read'); // administrator always should can 'read'
303
+ $wp_roles->use_db = $use_db;
304
+ }
305
+ }
306
+ // end of grant_all_caps_to_admin()
307
+
308
+
309
  public function init_full_list( $ure_object ) {
310
 
311
  $full_list = array();
321
  $this->add_ure_caps( $full_list );
322
  asort( $full_list );
323
  $full_list = apply_filters('ure_full_capabilites', $full_list);
324
+ $this->grant_all_caps_to_admin( $full_list );
325
 
326
  return $full_list;
327
  }
335
  $wp_roles = wp_roles();
336
  // build full capabilities list from all roles
337
  $full_caps_list = array();
338
+ foreach ( $wp_roles->roles as $role ) {
339
  // validate if capabilities is an array
340
+ if ( isset( $role['capabilities'] ) && is_array( $role['capabilities'] ) ) {
341
  foreach ($role['capabilities'] as $capability => $value) {
342
+ if ( !isset( $full_caps_list[$capability] ) ) {
343
+ $full_caps_list[$capability] = true;
344
  }
345
  }
346
  }
362
  $caps[$cap] = 1;
363
  }
364
  }
365
+
366
  return $caps;
367
  }
368
  // end of get_visual_composer_caps()
includes/classes/own-capabilities.php CHANGED
@@ -62,12 +62,12 @@ class URE_Own_Capabilities {
62
  }
63
 
64
  $multisite = $lib->get('multisite');
65
- if (!$multisite) {
66
  $key_cap = URE_KEY_CAPABILITY;
67
  } else {
68
  $enable_simple_admin_for_multisite = $lib->get_option('enable_simple_admin_for_multisite', 0);
69
- if ( (defined('URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE') && URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE == 1) ||
70
- $enable_simple_admin_for_multisite) {
71
  $key_cap = URE_KEY_CAPABILITY;
72
  } else {
73
  $key_cap = 'manage_network_plugins';
@@ -89,7 +89,7 @@ class URE_Own_Capabilities {
89
 
90
  $lib = URE_Lib::get_instance();
91
  $settings_cap = $lib->get('settings_capability');
92
- if (!empty($settings_cap)) {
93
  return $settings_cap;
94
  }
95
 
@@ -98,14 +98,14 @@ class URE_Own_Capabilities {
98
  $settings_cap = 'ure_manage_options';
99
  } else {
100
  $enable_simple_admin_for_multisite = $lib->get_option('enable_simple_admin_for_multisite', 0);
101
- if ((defined('URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE') && URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE == 1) ||
102
- $enable_simple_admin_for_multisite) {
103
  $settings_cap = 'ure_manage_options';
104
  } else {
105
  $settings_cap = self::get_key_capability();
106
  }
107
  }
108
- $lib->set('settings_capability', $settings_cap);
109
 
110
  return $settings_cap;
111
  }
@@ -113,13 +113,9 @@ class URE_Own_Capabilities {
113
 
114
 
115
  public static function init_caps() {
116
- global $wp_roles;
117
-
118
- if (!isset($wp_roles)) {
119
- $wp_roles = new WP_Roles();
120
- }
121
 
122
- if (!isset($wp_roles->roles['administrator'])) {
 
123
  return;
124
  }
125
 
@@ -132,9 +128,9 @@ class URE_Own_Capabilities {
132
  $wp_roles->use_db = true;
133
  $administrator = $wp_roles->role_objects['administrator'];
134
  $ure_caps = self::get_caps();
135
- foreach(array_keys($ure_caps) as $cap) {
136
- if (!$administrator->has_cap($cap)) {
137
- $administrator->add_cap($cap, $turn_on);
138
  }
139
  }
140
  $wp_roles->use_db = $old_use_db;
@@ -149,10 +145,9 @@ class URE_Own_Capabilities {
149
  */
150
  public static function get_caps_groups() {
151
 
152
- $ure_caps = self::get_caps();
153
-
154
  $caps = array();
155
- foreach($ure_caps as $ure_cap=>$value) {
156
  $caps[$ure_cap] = array('custom', 'user_role_editor');
157
  }
158
 
62
  }
63
 
64
  $multisite = $lib->get('multisite');
65
+ if ( !$multisite ) {
66
  $key_cap = URE_KEY_CAPABILITY;
67
  } else {
68
  $enable_simple_admin_for_multisite = $lib->get_option('enable_simple_admin_for_multisite', 0);
69
+ if ( ( defined('URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE') && URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE == 1 ) ||
70
+ $enable_simple_admin_for_multisite ) {
71
  $key_cap = URE_KEY_CAPABILITY;
72
  } else {
73
  $key_cap = 'manage_network_plugins';
89
 
90
  $lib = URE_Lib::get_instance();
91
  $settings_cap = $lib->get('settings_capability');
92
+ if ( !empty( $settings_cap ) ) {
93
  return $settings_cap;
94
  }
95
 
98
  $settings_cap = 'ure_manage_options';
99
  } else {
100
  $enable_simple_admin_for_multisite = $lib->get_option('enable_simple_admin_for_multisite', 0);
101
+ if ( ( defined('URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE' ) && URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE == 1 ) ||
102
+ $enable_simple_admin_for_multisite ) {
103
  $settings_cap = 'ure_manage_options';
104
  } else {
105
  $settings_cap = self::get_key_capability();
106
  }
107
  }
108
+ $lib->set('settings_capability', $settings_cap );
109
 
110
  return $settings_cap;
111
  }
113
 
114
 
115
  public static function init_caps() {
 
 
 
 
 
116
 
117
+ $wp_roles = wp_roles();
118
+ if ( !isset( $wp_roles->roles['administrator'] ) ) {
119
  return;
120
  }
121
 
128
  $wp_roles->use_db = true;
129
  $administrator = $wp_roles->role_objects['administrator'];
130
  $ure_caps = self::get_caps();
131
+ foreach( array_keys( $ure_caps ) as $cap ) {
132
+ if ( !$administrator->has_cap( $cap ) ) {
133
+ $administrator->add_cap( $cap, $turn_on );
134
  }
135
  }
136
  $wp_roles->use_db = $old_use_db;
145
  */
146
  public static function get_caps_groups() {
147
 
148
+ $ure_caps = self::get_caps();
 
149
  $caps = array();
150
+ foreach( array_keys( $ure_caps ) as $ure_cap ) {
151
  $caps[$ure_cap] = array('custom', 'user_role_editor');
152
  }
153
 
includes/classes/view.php CHANGED
@@ -286,7 +286,7 @@ class URE_View {
286
  public static function output_task_status_div() {
287
  ?>
288
  <div id="ure_task_status" style="display:none;position:absolute;top:10px;right:10px;padding:10px;background-color:#000000;color:#ffffff;">
289
- <img src="<?php echo URE_PLUGIN_URL .'/images/ajax-loader.gif';?>" width="16" height="16"/> <?php esc_html_e('Working...','user-role-editor');?>
290
  </div>
291
  <?php
292
  }
286
  public static function output_task_status_div() {
287
  ?>
288
  <div id="ure_task_status" style="display:none;position:absolute;top:10px;right:10px;padding:10px;background-color:#000000;color:#ffffff;">
289
+ <img src="<?php echo URE_PLUGIN_URL .'images/ajax-loader.gif';?>" width="16" height="16"/> <?php esc_html_e('Working...','user-role-editor');?>
290
  </div>
291
  <?php
292
  }
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: shinephp
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=vladimir%40shinephp%2ecom&lc=RU&item_name=ShinePHP%2ecom&item_number=User%20Role%20Editor%20WordPress%20plugin&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
4
  Tags: user, role, editor, security, access, permission, capability
5
  Requires at least: 4.0
6
- Tested up to: 5.4.1
7
- Stable tag: 4.55.1
8
  Requires PHP: 5.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -80,6 +80,12 @@ https://translate.wordpress.org/projects/wp-plugins/user-role-editor/
80
 
81
 
82
  == Changelog =
 
 
 
 
 
 
83
  = [4.55.1] 06.06.2020 =
84
  * Security fix: User with 'edit_users' capability could assign to another user a role not included into the editable roles list. This fix is required to install ASAP for all sites which have user(s) with 'edit_users' capability granted not via 'administrator' role.
85
  * Update: URE_Uninstall class properties were made 'protected' to be accessible in URE_Uninstall_Pro class included into the Pro version.
@@ -87,20 +93,6 @@ https://translate.wordpress.org/projects/wp-plugins/user-role-editor/
87
  = [4.55] 03.06.2020 =
88
  * Update: User Role Editor uninstallation was refactored. It fully removes the ('ure_%') user capabilities from the user roles data.
89
 
90
- = [4.54] 02.05.2020 =
91
- * New: Quick filter hides capabilities, which do not contain search string
92
- * Update: CSS enhancement: When site has many custom post types capabilities list section maximal height is limited by real height of the left side (capabilities groups) section, not by 720px as earlier.
93
-
94
- = [4.53.2] 03.04.2020 =
95
- * Fix: Empty list of capabilities (0/0) was shown for custom post types (CPT) which are defined with the same capability type as another CPT.
96
- For example courses CPT from LearnDash plugin is defined with 'course' capability type (edit_courses, etc.) and other CPT from LearnDash were shown with 0/0 capabilities (lessons, topics, quizzes, certificates).
97
-
98
- = [4.53.1] 22.03.2020 =
99
- * New: "Hide Pro banner" checkbox works via AJAX without full page refresh.
100
- * Fix: Undefined variable: $message at wp-content/plugins/user-role-editor/includes/classes/editor.php:898
101
- * Update: Few English grammar enhancements.
102
-
103
-
104
  File changelog.txt contains the full list of changes.
105
 
106
  == Additional Documentation ==
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=vladimir%40shinephp%2ecom&lc=RU&item_name=ShinePHP%2ecom&item_number=User%20Role%20Editor%20WordPress%20plugin&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
4
  Tags: user, role, editor, security, access, permission, capability
5
  Requires at least: 4.0
6
+ Tested up to: 5.5
7
+ Stable tag: 4.56
8
  Requires PHP: 5.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
80
 
81
 
82
  == Changelog =
83
+ = [4.56] 09.08.2020 =
84
+ * New: User capabilities 'install_languages', 'resume_plugins', 'resume_themes', 'view_site_health_checks' were added to the list of supported WordPress built-in user capabilities.
85
+ * Update: Single site WordPress installation: URE automatically grants all existing user capabilities to WordPress built-in 'administrator' role before opening its page "Users->User Role Editor".
86
+ * Fix: Extra slash was removed between URE_PLUGIN_URL and the image resource when outputting URE_PLUGIN_URL .'/images/ajax-loader.gif' at 'Users->User Role Editor' page.
87
+ * Info: Marked as compatible with WordPress 5.5.
88
+
89
  = [4.55.1] 06.06.2020 =
90
  * Security fix: User with 'edit_users' capability could assign to another user a role not included into the editable roles list. This fix is required to install ASAP for all sites which have user(s) with 'edit_users' capability granted not via 'administrator' role.
91
  * Update: URE_Uninstall class properties were made 'protected' to be accessible in URE_Uninstall_Pro class included into the Pro version.
93
  = [4.55] 03.06.2020 =
94
  * Update: User Role Editor uninstallation was refactored. It fully removes the ('ure_%') user capabilities from the user roles data.
95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  File changelog.txt contains the full list of changes.
97
 
98
  == Additional Documentation ==
user-role-editor.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: User Role Editor
4
  Plugin URI: https://www.role-editor.com
5
  Description: Change/add/delete WordPress user roles and capabilities.
6
- Version: 4.55.1
7
  Author: Vladimir Garagulya
8
  Author URI: https://www.role-editor.com
9
  Text Domain: user-role-editor
@@ -23,7 +23,7 @@ if ( defined( 'URE_PLUGIN_URL' ) ) {
23
  wp_die( 'It seems that other version of User Role Editor is active. Please deactivate it before use this version' );
24
  }
25
 
26
- define( 'URE_VERSION', '4.55.1' );
27
  define( 'URE_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
28
  define( 'URE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
29
  define( 'URE_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );
3
  Plugin Name: User Role Editor
4
  Plugin URI: https://www.role-editor.com
5
  Description: Change/add/delete WordPress user roles and capabilities.
6
+ Version: 4.56
7
  Author: Vladimir Garagulya
8
  Author URI: https://www.role-editor.com
9
  Text Domain: user-role-editor
23
  wp_die( 'It seems that other version of User Role Editor is active. Please deactivate it before use this version' );
24
  }
25
 
26
+ define( 'URE_VERSION', '4.56' );
27
  define( 'URE_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
28
  define( 'URE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
29
  define( 'URE_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );