Ultimate Member – User Profile & Membership Plugin - Version 2.0.50

Version Description

Download this release

Release Info

Developer nsinelnikov
Plugin Icon 128x128 Ultimate Member – User Profile & Membership Plugin
Version 2.0.50
Comparing to
See all releases

Code changes from version 2.0.49 to 2.0.50

includes/class-config.php CHANGED
@@ -1,8 +1,10 @@
1
  <?php
2
  namespace um;
3
 
 
4
  if ( ! defined( 'ABSPATH' ) ) exit;
5
 
 
6
  if ( ! class_exists( 'um\Config' ) ) {
7
 
8
 
@@ -539,6 +541,8 @@ if ( ! class_exists( 'um\Config' ) ) {
539
  'rest_api_version' => '2.0'
540
  );
541
 
 
 
542
  $tabs = UM()->profile()->tabs_primary();
543
  foreach ( $tabs as $id => $tab ) {
544
  $this->settings_defaults['profile_tab_' . $id] = 1;
1
  <?php
2
  namespace um;
3
 
4
+
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
+
8
  if ( ! class_exists( 'um\Config' ) ) {
9
 
10
 
541
  'rest_api_version' => '2.0'
542
  );
543
 
544
+ add_filter( 'um_get_tabs_from_config', '__return_true' );
545
+
546
  $tabs = UM()->profile()->tabs_primary();
547
  foreach ( $tabs as $id => $tab ) {
548
  $this->settings_defaults['profile_tab_' . $id] = 1;
includes/core/class-access.php CHANGED
@@ -372,15 +372,22 @@ if ( ! class_exists( 'um\core\Access' ) ) {
372
  * Old global restrict content logic
373
  */
374
  function template_redirect() {
375
- global $post;
376
 
377
  //if we logged by administrator it can access to all content
378
  if ( current_user_can( 'administrator' ) )
379
  return;
380
 
 
 
 
 
 
 
381
  //if we use individual restrict content options skip this function
382
- if ( $this->singular_page )
383
  return;
 
384
 
385
  //also skip if we currently at wp-admin or 404 page
386
  if ( is_admin() || is_404() )
372
  * Old global restrict content logic
373
  */
374
  function template_redirect() {
375
+ global $post, $wp_query;
376
 
377
  //if we logged by administrator it can access to all content
378
  if ( current_user_can( 'administrator' ) )
379
  return;
380
 
381
+ if ( is_object( $wp_query ) ) {
382
+ $is_singular = $wp_query->is_singular();
383
+ } else {
384
+ $is_singular = ! empty( $wp_query->is_singular ) ? true : false;
385
+ }
386
+
387
  //if we use individual restrict content options skip this function
388
+ if ( $is_singular && $this->singular_page ) {
389
  return;
390
+ }
391
 
392
  //also skip if we currently at wp-admin or 404 page
393
  if ( is_admin() || is_404() )
includes/core/class-external-integrations.php CHANGED
@@ -286,13 +286,6 @@ if ( ! class_exists( 'um\core\External_Integrations' ) ) {
286
  if ( function_exists( 'icl_get_current_language' ) && icl_get_current_language() != icl_get_default_language() ) {
287
  $url = $this->get_url_for_language( UM()->config()->permalinks[ $slug ], icl_get_current_language() );
288
 
289
- /*if ( get_post_meta( get_the_ID(), '_um_wpml_account', true ) == 1 ) {
290
- $url = get_permalink( get_the_ID() );
291
- }
292
- if ( get_post_meta( get_the_ID(), '_um_wpml_user', true ) == 1 ) {
293
- $url = $this->get_url_for_language( UM()->config()->permalinks[ $slug ], icl_get_current_language() );
294
- }*/
295
-
296
  if ( $updated ) {
297
  $url = add_query_arg( 'updated', esc_attr( $updated ), $url );
298
  }
286
  if ( function_exists( 'icl_get_current_language' ) && icl_get_current_language() != icl_get_default_language() ) {
287
  $url = $this->get_url_for_language( UM()->config()->permalinks[ $slug ], icl_get_current_language() );
288
 
 
 
 
 
 
 
 
289
  if ( $updated ) {
290
  $url = add_query_arg( 'updated', esc_attr( $updated ), $url );
291
  }
includes/core/class-validation.php CHANGED
@@ -73,7 +73,11 @@ if ( ! class_exists( 'um\core\Validation' ) ) {
73
  }
74
 
75
  //validation of correct values from options in wp-admin
76
- $stripslashes = stripslashes( $value );
 
 
 
 
77
  if ( in_array( $fields[ $key ]['type'], array( 'select' ) ) &&
78
  ! empty( $stripslashes ) && ! empty( $fields[ $key ]['options'] ) &&
79
  ! in_array( $stripslashes, array_map( 'trim', $fields[ $key ]['options'] ) ) ) {
73
  }
74
 
75
  //validation of correct values from options in wp-admin
76
+ $stripslashes = $value;
77
+ if( is_string( $value ) ){
78
+ $stripslashes = stripslashes( $value );
79
+ }
80
+
81
  if ( in_array( $fields[ $key ]['type'], array( 'select' ) ) &&
82
  ! empty( $stripslashes ) && ! empty( $fields[ $key ]['options'] ) &&
83
  ! in_array( $stripslashes, array_map( 'trim', $fields[ $key ]['options'] ) ) ) {
includes/core/um-filters-members.php CHANGED
@@ -378,7 +378,7 @@ function um_prepare_user_query_args( $query_args, $args ) {
378
 
379
  } elseif ( 'display_name' == $sortby ) {
380
 
381
- /*$display_name = UM()->options()->get( 'display_name' );
382
  if ( $display_name == 'username' ) {
383
  $query_args['orderby'] = 'user_login';
384
  $order = 'ASC';
@@ -397,22 +397,7 @@ function um_prepare_user_query_args( $query_args, $args ) {
397
 
398
  $query_args['orderby'] = 'full_name, display_name';
399
  $order = 'ASC';
400
- }*/
401
-
402
- $query_args['meta_query'][] = array(
403
- 'relation' => 'OR',
404
- 'full_name' => array(
405
- 'key' => 'full_name',
406
- 'compare' => 'EXISTS'
407
- ),
408
- array(
409
- 'key' => 'full_name',
410
- 'compare' => 'NOT EXISTS'
411
- )
412
- );
413
-
414
- $query_args['orderby'] = 'full_name, display_name';
415
- $order = 'ASC';
416
 
417
  } elseif ( in_array( $sortby, array( 'last_name', 'first_name' ) ) ) {
418
 
378
 
379
  } elseif ( 'display_name' == $sortby ) {
380
 
381
+ $display_name = UM()->options()->get( 'display_name' );
382
  if ( $display_name == 'username' ) {
383
  $query_args['orderby'] = 'user_login';
384
  $order = 'ASC';
397
 
398
  $query_args['orderby'] = 'full_name, display_name';
399
  $order = 'ASC';
400
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
401
 
402
  } elseif ( in_array( $sortby, array( 'last_name', 'first_name' ) ) ) {
403
 
includes/um-short-functions.php CHANGED
@@ -1442,20 +1442,24 @@ function um_can_view_field( $data ) {
1442
  $current_user_roles = um_user( 'roles' );
1443
  um_fetch_user( $previous_user );
1444
 
1445
- if ( $data['public'] == '-3' && ! um_is_user_himself() && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) )
1446
  return false;
 
1447
 
1448
- if ( ! um_is_user_himself() && $data['public'] == '-1' && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) )
1449
  return false;
 
1450
 
1451
- if ( $data['public'] == '-2' && $data['roles'] )
1452
- if ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 )
1453
  return false;
 
 
1454
  }
1455
 
1456
  }
1457
 
1458
- return true;
1459
  }
1460
 
1461
 
1442
  $current_user_roles = um_user( 'roles' );
1443
  um_fetch_user( $previous_user );
1444
 
1445
+ if ( $data['public'] == '-3' && ! um_is_user_himself() && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) ) {
1446
  return false;
1447
+ }
1448
 
1449
+ if ( ! um_is_user_himself() && $data['public'] == '-1' && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) {
1450
  return false;
1451
+ }
1452
 
1453
+ if ( $data['public'] == '-2' && $data['roles'] ) {
1454
+ if ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) {
1455
  return false;
1456
+ }
1457
+ }
1458
  }
1459
 
1460
  }
1461
 
1462
+ return apply_filters( 'um_can_view_field', true, $data );
1463
  }
1464
 
1465
 
languages/ultimate-member-en_US.mo CHANGED
Binary file
languages/ultimate-member-en_US.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Ultimate Member\n"
4
- "POT-Creation-Date: 2019-05-29 18:50+0300\n"
5
- "PO-Revision-Date: 2019-05-29 18:50+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
@@ -1706,7 +1706,7 @@ msgid ""
1706
  msgstr ""
1707
 
1708
  #: includes/admin/core/class-admin-settings.php:436
1709
- #: includes/class-config.php:134 includes/class-config.php:746
1710
  #: includes/core/class-account.php:92
1711
  msgid "Account"
1712
  msgstr ""
@@ -3229,7 +3229,7 @@ msgid ""
3229
  msgstr ""
3230
 
3231
  #: includes/admin/templates/directory/search.php:95
3232
- #: includes/class-config.php:153 includes/class-config.php:248
3233
  msgid "{total_users} Members"
3234
  msgstr ""
3235
 
@@ -3242,7 +3242,7 @@ msgid "Same as above but in case of 1 user found only"
3242
  msgstr ""
3243
 
3244
  #: includes/admin/templates/directory/search.php:103
3245
- #: includes/class-config.php:154 includes/class-config.php:249
3246
  msgid "{total_users} Member"
3247
  msgstr ""
3248
 
@@ -3256,7 +3256,7 @@ msgid ""
3256
  msgstr ""
3257
 
3258
  #: includes/admin/templates/directory/search.php:111
3259
- #: includes/class-config.php:155
3260
  msgid "We are sorry. We cannot find any users who match your search criteria."
3261
  msgstr ""
3262
 
@@ -3964,145 +3964,145 @@ msgstr ""
3964
  msgid "Check All"
3965
  msgstr ""
3966
 
3967
- #: includes/class-config.php:129 includes/class-config.php:741
3968
  msgid "User"
3969
  msgstr ""
3970
 
3971
- #: includes/class-config.php:130 includes/class-config.php:235
3972
- #: includes/class-config.php:241 includes/class-config.php:742
3973
  msgid "Login"
3974
  msgstr ""
3975
 
3976
- #: includes/class-config.php:131 includes/class-config.php:233
3977
- #: includes/class-config.php:245 includes/class-config.php:743
3978
  msgid "Register"
3979
  msgstr ""
3980
 
3981
- #: includes/class-config.php:132 includes/class-config.php:744
3982
  msgid "Members"
3983
  msgstr ""
3984
 
3985
- #: includes/class-config.php:133 includes/class-config.php:745
3986
  #: includes/core/um-actions-profile.php:1138
3987
  #: includes/core/um-actions-user.php:15
3988
  msgid "Logout"
3989
  msgstr ""
3990
 
3991
- #: includes/class-config.php:135 includes/class-config.php:747
3992
  msgid "Password Reset"
3993
  msgstr ""
3994
 
3995
- #: includes/class-config.php:308
3996
  msgid "Account Welcome Email"
3997
  msgstr ""
3998
 
3999
- #: includes/class-config.php:319
4000
  msgid ""
4001
  "Whether to send the user an email when his account is automatically approved"
4002
  msgstr ""
4003
 
4004
- #: includes/class-config.php:325
4005
  msgid "Account Activation Email"
4006
  msgstr ""
4007
 
4008
- #: includes/class-config.php:333
4009
  msgid ""
4010
  "Whether to send the user an email when his account needs e-mail activation"
4011
  msgstr ""
4012
 
4013
- #: includes/class-config.php:338
4014
  msgid "Your account is pending review"
4015
  msgstr ""
4016
 
4017
- #: includes/class-config.php:346
4018
  msgid "Whether to send the user an email when his account needs admin review"
4019
  msgstr ""
4020
 
4021
- #: includes/class-config.php:351
4022
  msgid "Account Approved Email"
4023
  msgstr ""
4024
 
4025
- #: includes/class-config.php:363
4026
  msgid "Whether to send the user an email when his account is approved"
4027
  msgstr ""
4028
 
4029
- #: includes/class-config.php:368
4030
  msgid "Account Rejected Email"
4031
  msgstr ""
4032
 
4033
- #: includes/class-config.php:375
4034
  msgid "Whether to send the user an email when his account is rejected"
4035
  msgstr ""
4036
 
4037
- #: includes/class-config.php:380
4038
  msgid "Account Deactivated Email"
4039
  msgstr ""
4040
 
4041
- #: includes/class-config.php:387
4042
  msgid "Whether to send the user an email when his account is deactivated"
4043
  msgstr ""
4044
 
4045
- #: includes/class-config.php:393
4046
  msgid "Account Deleted Email"
4047
  msgstr ""
4048
 
4049
- #: includes/class-config.php:400
4050
  msgid "Whether to send the user an email when his account is deleted"
4051
  msgstr ""
4052
 
4053
- #: includes/class-config.php:406
4054
  msgid "Password Reset Email"
4055
  msgstr ""
4056
 
4057
- #: includes/class-config.php:414
4058
  msgid ""
4059
  "Whether to send an email when users changed their password (Recommended, "
4060
  "please keep on)"
4061
  msgstr ""
4062
 
4063
- #: includes/class-config.php:420
4064
  msgid "Password Changed Email"
4065
  msgstr ""
4066
 
4067
- #: includes/class-config.php:427
4068
  msgid ""
4069
  "Whether to send the user an email when he request to reset password "
4070
  "(Recommended, please keep on)"
4071
  msgstr ""
4072
 
4073
- #: includes/class-config.php:433
4074
  msgid "Account Updated Email"
4075
  msgstr ""
4076
 
4077
- #: includes/class-config.php:440
4078
  msgid "Whether to send the user an email when he updated their account"
4079
  msgstr ""
4080
 
4081
- #: includes/class-config.php:446
4082
  msgid "New User Notification"
4083
  msgstr ""
4084
 
4085
- #: includes/class-config.php:452
4086
  msgid "Whether to receive notification when a new user account is approved"
4087
  msgstr ""
4088
 
4089
- #: includes/class-config.php:458
4090
  msgid "Account Needs Review Notification"
4091
  msgstr ""
4092
 
4093
- #: includes/class-config.php:465
4094
  msgid "Whether to receive notification when an account needs admin review"
4095
  msgstr ""
4096
 
4097
- #: includes/class-config.php:470
4098
  msgid "Account Deletion Notification"
4099
  msgstr ""
4100
 
4101
- #: includes/class-config.php:473
4102
  msgid "Whether to receive notification when an account is deleted"
4103
  msgstr ""
4104
 
4105
- #: includes/class-config.php:496
4106
  msgid ""
4107
  "Are you sure you want to delete your account? This will erase all of your "
4108
  "account data from the site. To delete your account enter your password below"
@@ -6309,12 +6309,12 @@ msgstr ""
6309
  msgid "Less than 1 year old"
6310
  msgstr ""
6311
 
6312
- #: includes/core/class-external-integrations.php:494
6313
  #, php-format
6314
  msgid "Edit the %s translation"
6315
  msgstr ""
6316
 
6317
- #: includes/core/class-external-integrations.php:501
6318
  #, php-format
6319
  msgid "Add translation to %s"
6320
  msgstr ""
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Ultimate Member\n"
4
+ "POT-Creation-Date: 2019-07-01 14:36+0300\n"
5
+ "PO-Revision-Date: 2019-07-01 14:36+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
1706
  msgstr ""
1707
 
1708
  #: includes/admin/core/class-admin-settings.php:436
1709
+ #: includes/class-config.php:136 includes/class-config.php:750
1710
  #: includes/core/class-account.php:92
1711
  msgid "Account"
1712
  msgstr ""
3229
  msgstr ""
3230
 
3231
  #: includes/admin/templates/directory/search.php:95
3232
+ #: includes/class-config.php:155 includes/class-config.php:250
3233
  msgid "{total_users} Members"
3234
  msgstr ""
3235
 
3242
  msgstr ""
3243
 
3244
  #: includes/admin/templates/directory/search.php:103
3245
+ #: includes/class-config.php:156 includes/class-config.php:251
3246
  msgid "{total_users} Member"
3247
  msgstr ""
3248
 
3256
  msgstr ""
3257
 
3258
  #: includes/admin/templates/directory/search.php:111
3259
+ #: includes/class-config.php:157
3260
  msgid "We are sorry. We cannot find any users who match your search criteria."
3261
  msgstr ""
3262
 
3964
  msgid "Check All"
3965
  msgstr ""
3966
 
3967
+ #: includes/class-config.php:131 includes/class-config.php:745
3968
  msgid "User"
3969
  msgstr ""
3970
 
3971
+ #: includes/class-config.php:132 includes/class-config.php:237
3972
+ #: includes/class-config.php:243 includes/class-config.php:746
3973
  msgid "Login"
3974
  msgstr ""
3975
 
3976
+ #: includes/class-config.php:133 includes/class-config.php:235
3977
+ #: includes/class-config.php:247 includes/class-config.php:747
3978
  msgid "Register"
3979
  msgstr ""
3980
 
3981
+ #: includes/class-config.php:134 includes/class-config.php:748
3982
  msgid "Members"
3983
  msgstr ""
3984
 
3985
+ #: includes/class-config.php:135 includes/class-config.php:749
3986
  #: includes/core/um-actions-profile.php:1138
3987
  #: includes/core/um-actions-user.php:15
3988
  msgid "Logout"
3989
  msgstr ""
3990
 
3991
+ #: includes/class-config.php:137 includes/class-config.php:751
3992
  msgid "Password Reset"
3993
  msgstr ""
3994
 
3995
+ #: includes/class-config.php:310
3996
  msgid "Account Welcome Email"
3997
  msgstr ""
3998
 
3999
+ #: includes/class-config.php:321
4000
  msgid ""
4001
  "Whether to send the user an email when his account is automatically approved"
4002
  msgstr ""
4003
 
4004
+ #: includes/class-config.php:327
4005
  msgid "Account Activation Email"
4006
  msgstr ""
4007
 
4008
+ #: includes/class-config.php:335
4009
  msgid ""
4010
  "Whether to send the user an email when his account needs e-mail activation"
4011
  msgstr ""
4012
 
4013
+ #: includes/class-config.php:340
4014
  msgid "Your account is pending review"
4015
  msgstr ""
4016
 
4017
+ #: includes/class-config.php:348
4018
  msgid "Whether to send the user an email when his account needs admin review"
4019
  msgstr ""
4020
 
4021
+ #: includes/class-config.php:353
4022
  msgid "Account Approved Email"
4023
  msgstr ""
4024
 
4025
+ #: includes/class-config.php:365
4026
  msgid "Whether to send the user an email when his account is approved"
4027
  msgstr ""
4028
 
4029
+ #: includes/class-config.php:370
4030
  msgid "Account Rejected Email"
4031
  msgstr ""
4032
 
4033
+ #: includes/class-config.php:377
4034
  msgid "Whether to send the user an email when his account is rejected"
4035
  msgstr ""
4036
 
4037
+ #: includes/class-config.php:382
4038
  msgid "Account Deactivated Email"
4039
  msgstr ""
4040
 
4041
+ #: includes/class-config.php:389
4042
  msgid "Whether to send the user an email when his account is deactivated"
4043
  msgstr ""
4044
 
4045
+ #: includes/class-config.php:395
4046
  msgid "Account Deleted Email"
4047
  msgstr ""
4048
 
4049
+ #: includes/class-config.php:402
4050
  msgid "Whether to send the user an email when his account is deleted"
4051
  msgstr ""
4052
 
4053
+ #: includes/class-config.php:408
4054
  msgid "Password Reset Email"
4055
  msgstr ""
4056
 
4057
+ #: includes/class-config.php:416
4058
  msgid ""
4059
  "Whether to send an email when users changed their password (Recommended, "
4060
  "please keep on)"
4061
  msgstr ""
4062
 
4063
+ #: includes/class-config.php:422
4064
  msgid "Password Changed Email"
4065
  msgstr ""
4066
 
4067
+ #: includes/class-config.php:429
4068
  msgid ""
4069
  "Whether to send the user an email when he request to reset password "
4070
  "(Recommended, please keep on)"
4071
  msgstr ""
4072
 
4073
+ #: includes/class-config.php:435
4074
  msgid "Account Updated Email"
4075
  msgstr ""
4076
 
4077
+ #: includes/class-config.php:442
4078
  msgid "Whether to send the user an email when he updated their account"
4079
  msgstr ""
4080
 
4081
+ #: includes/class-config.php:448
4082
  msgid "New User Notification"
4083
  msgstr ""
4084
 
4085
+ #: includes/class-config.php:454
4086
  msgid "Whether to receive notification when a new user account is approved"
4087
  msgstr ""
4088
 
4089
+ #: includes/class-config.php:460
4090
  msgid "Account Needs Review Notification"
4091
  msgstr ""
4092
 
4093
+ #: includes/class-config.php:467
4094
  msgid "Whether to receive notification when an account needs admin review"
4095
  msgstr ""
4096
 
4097
+ #: includes/class-config.php:472
4098
  msgid "Account Deletion Notification"
4099
  msgstr ""
4100
 
4101
+ #: includes/class-config.php:475
4102
  msgid "Whether to receive notification when an account is deleted"
4103
  msgstr ""
4104
 
4105
+ #: includes/class-config.php:498
4106
  msgid ""
4107
  "Are you sure you want to delete your account? This will erase all of your "
4108
  "account data from the site. To delete your account enter your password below"
6309
  msgid "Less than 1 year old"
6310
  msgstr ""
6311
 
6312
+ #: includes/core/class-external-integrations.php:487
6313
  #, php-format
6314
  msgid "Edit the %s translation"
6315
  msgstr ""
6316
 
6317
+ #: includes/core/class-external-integrations.php:494
6318
  #, php-format
6319
  msgid "Add translation to %s"
6320
  msgstr ""
readme.txt CHANGED
@@ -6,7 +6,7 @@ Donate link:
6
  Tags: community, member, membership, user-profile, user-registration
7
  Requires at least: 4.9
8
  Tested up to: 5.2
9
- Stable tag: 2.0.49
10
  License: GNU Version 2 or Any Later Version
11
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
12
 
@@ -71,6 +71,10 @@ Ultimate Member has a range of extensions that allow you to extend the power of
71
 
72
  Our official [theme](https://ultimatemember.com/theme/) is purpose built for websites that have logged in and out users. The [theme](https://ultimatemember.com/theme/) has deep integration with Ultimate Member plugin and the extensions, different header designs for logged-in/out users and works alongside the Beaver Builder and Elementor page builders.
73
 
 
 
 
 
74
  = Development * Translations =
75
 
76
  If you're a developer and would like to contribute to the source code of the plugin you can do so via our [GitHub Repository](https://github.com/ultimatemember/ultimatemember).
@@ -133,6 +137,16 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
133
 
134
  = Important: UM2.0+ is a significant update to the code base from 1.3.88. Please make sure you take a full-site backup with restore point before updating the plugin =
135
 
 
 
 
 
 
 
 
 
 
 
136
  = 2.0.49: May 29, 2019 =
137
 
138
  * Enhancements:
6
  Tags: community, member, membership, user-profile, user-registration
7
  Requires at least: 4.9
8
  Tested up to: 5.2
9
+ Stable tag: 2.0.50
10
  License: GNU Version 2 or Any Later Version
11
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
12
 
71
 
72
  Our official [theme](https://ultimatemember.com/theme/) is purpose built for websites that have logged in and out users. The [theme](https://ultimatemember.com/theme/) has deep integration with Ultimate Member plugin and the extensions, different header designs for logged-in/out users and works alongside the Beaver Builder and Elementor page builders.
73
 
74
+ = ForumWP =
75
+
76
+ In addition to Ultimate Member we also have another plugin called [ForumWP](https://forumwpplugin.com/). ForumWP is a forum plugin which adds an online forum to your website, allowing users to create topics and write replies. Forums are a great way to build and grow an online community.
77
+
78
  = Development * Translations =
79
 
80
  If you're a developer and would like to contribute to the source code of the plugin you can do so via our [GitHub Repository](https://github.com/ultimatemember/ultimatemember).
137
 
138
  = Important: UM2.0+ is a significant update to the code base from 1.3.88. Please make sure you take a full-site backup with restore point before updating the plugin =
139
 
140
+ = 2.0.50: July 02, 2019 =
141
+
142
+ * Enhancements:
143
+ - Extended hooks for 3rd party integrations
144
+
145
+ * Bugfixes:
146
+ - Fixed PHP notices when runs validation
147
+ - Fixed loop issue with Profile tabs
148
+ - Fixed home page restrictions
149
+
150
  = 2.0.49: May 29, 2019 =
151
 
152
  * Enhancements:
ultimate-member.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Ultimate Member
4
  Plugin URI: http://ultimatemember.com/
5
  Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
6
- Version: 2.0.49
7
  Author: Ultimate Member
8
  Author URI: http://ultimatemember.com/
9
  Text Domain: ultimate-member
3
  Plugin Name: Ultimate Member
4
  Plugin URI: http://ultimatemember.com/
5
  Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
6
+ Version: 2.0.50
7
  Author: Ultimate Member
8
  Author URI: http://ultimatemember.com/
9
  Text Domain: ultimate-member