Ultimate Member – User Profile & Membership Plugin - Version 2.0.54

Version Description

Download this release

Release Info

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

Code changes from version 2.0.53 to 2.0.54

Files changed (38) hide show
  1. includes/admin/assets/css/um-admin-settings.css +1 -1
  2. includes/admin/core/class-admin-settings.php +69 -55
  3. includes/admin/core/list-tables/roles-list-table.php +11 -9
  4. includes/admin/core/packages/2.0.54/functions.php +14 -0
  5. includes/admin/core/packages/2.0.54/hooks.php +5 -0
  6. includes/admin/core/packages/2.0.54/init.php +31 -0
  7. includes/admin/core/packages/2.0.54/roles.php +21 -0
  8. includes/admin/templates/role/role-edit.php +4 -2
  9. includes/class-config.php +6 -0
  10. includes/class-dependencies.php +1 -1
  11. includes/class-init.php +2 -2
  12. includes/core/class-profile.php +63 -3
  13. includes/core/class-user.php +0 -1
  14. includes/core/um-actions-profile.php +105 -121
  15. includes/core/um-filters-account.php +8 -1
  16. includes/um-short-functions.php +5 -1
  17. languages/ultimate-member-en_US.mo +0 -0
  18. languages/ultimate-member-en_US.po +101 -85
  19. readme.txt +14 -2
  20. templates/account.php +53 -23
  21. templates/gdpr-register.php +21 -15
  22. templates/login-to-view.php +3 -1
  23. templates/login.php +127 -125
  24. templates/logout.php +9 -5
  25. templates/members-grid.php +167 -149
  26. templates/members.php +3 -1
  27. templates/message.php +3 -1
  28. templates/password-change.php +3 -1
  29. templates/password-reset.php +3 -1
  30. templates/profile.php +59 -47
  31. templates/profile/comments-single.php +2 -2
  32. templates/profile/comments.php +14 -8
  33. templates/profile/posts-single.php +6 -4
  34. templates/profile/posts.php +4 -2
  35. templates/register.php +128 -126
  36. templates/restricted-taxonomy.php +1 -1
  37. templates/searchform.php +5 -3
  38. ultimate-member.php +1 -1
includes/admin/assets/css/um-admin-settings.css CHANGED
@@ -109,7 +109,7 @@ th.column-email.column-primary {
109
  width: 30.5%;
110
  max-width: 350px;
111
  padding: 14px;
112
- min-height: 220px;
113
  position: relative;
114
  box-sizing: border-box;
115
  }
109
  width: 30.5%;
110
  max-width: 350px;
111
  padding: 14px;
112
+ min-height: 240px;
113
  position: relative;
114
  box-sizing: border-box;
115
  }
includes/admin/core/class-admin-settings.php CHANGED
@@ -137,7 +137,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
137
 
138
  foreach ( $tabs as $id => $tab ) {
139
 
140
- if ( isset( $tab['hidden'] ) ) {
141
  continue;
142
  }
143
 
@@ -1704,7 +1704,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1704
  return;
1705
 
1706
  foreach ( $_POST['um_options'] as $key => $value ) {
1707
- $this->previous_licenses[$key] = UM()->options()->get( $key );
1708
  }
1709
  }
1710
 
@@ -1713,25 +1713,27 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1713
  *
1714
  */
1715
  function licenses_save() {
1716
- if ( empty( $_POST['um_options'] ) || empty( $_POST['licenses_settings'] ) )
1717
  return;
 
1718
 
1719
  foreach ( $_POST['um_options'] as $key => $value ) {
1720
  $edd_action = '';
1721
  $license_key = '';
1722
- if ( empty( $this->previous_licenses[$key] ) && ! empty( $value ) || ( ! empty( $this->previous_licenses[$key] ) && ! empty( $value ) && $this->previous_licenses[$key] != $value ) ) {
1723
  $edd_action = 'activate_license';
1724
  $license_key = $value;
1725
- } elseif ( ! empty( $this->previous_licenses[$key] ) && empty( $value ) ) {
1726
  $edd_action = 'deactivate_license';
1727
- $license_key = $this->previous_licenses[$key];
1728
- } elseif ( ! empty( $this->previous_licenses[$key] ) && ! empty( $value ) ) {
1729
  $edd_action = 'check_license';
1730
  $license_key = $value;
1731
  }
1732
 
1733
- if ( empty( $edd_action ) )
1734
  continue;
 
1735
 
1736
  $item_name = false;
1737
  $version = false;
@@ -1762,15 +1764,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1762
  )
1763
  );
1764
 
1765
- if ( ! is_wp_error( $request ) )
1766
  $request = json_decode( wp_remote_retrieve_body( $request ) );
 
1767
 
1768
  $request = ( $request ) ? maybe_unserialize( $request ) : false;
1769
 
1770
- if ( $edd_action == 'activate_license' || $edd_action == 'check_license' )
1771
  update_option( "{$key}_edd_answer", $request );
1772
- else
1773
  delete_option( "{$key}_edd_answer" );
 
1774
 
1775
  }
1776
  }
@@ -1884,13 +1888,13 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1884
  <tbody>
1885
  <?php foreach ( $section_fields as $field_data ) {
1886
  $option_value = UM()->options()->get( $field_data['id'] );
1887
- $value = isset( $option_value ) && ! empty( $option_value ) ? $option_value : ( isset( $field_data['default'] ) ? $field_data['default'] : '' );
1888
 
1889
  $license = get_option( "{$field_data['id']}_edd_answer" );
1890
 
1891
  if ( is_object( $license ) && ! empty( $value ) ) {
1892
  // activate_license 'invalid' on anything other than valid, so if there was an error capture it
1893
- if ( false === $license->success ) {
1894
 
1895
  if ( ! empty( $license->error ) ) {
1896
  switch ( $license->error ) {
@@ -1935,16 +1939,16 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1935
  case 'invalid' :
1936
  case 'site_inactive' :
1937
 
1938
- $class = 'error';
1939
- $messages[] = sprintf(
1940
- __( 'Your %s is not active for this URL. Please <a href="%s" target="_blank">visit your account page</a> to manage your license key URLs.', 'ultimate-member' ),
1941
- $field_data['item_name'],
1942
- 'https://ultimatemember.com/account?utm_campaign=admin&utm_source=licenses&utm_medium=invalid'
1943
- );
1944
 
1945
- $license_status = 'license-' . $class . '-notice';
1946
 
1947
- break;
1948
 
1949
  case 'item_name_mismatch' :
1950
 
@@ -1975,7 +1979,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1975
  default :
1976
 
1977
  $class = 'error';
1978
- $error = ! empty( $license->error ) ? $license->error : __( 'unknown_error', 'ultimate-member' );
1979
  $messages[] = sprintf( __( 'There was an error with this license key: %s. Please <a href="%s">contact our support team</a>.', 'ultimate-member' ), $error, 'https://ultimatemember.com/support' );
1980
 
1981
  $license_status = 'license-' . $class . '-notice';
@@ -1983,12 +1987,24 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1983
  }
1984
  } else {
1985
  $class = 'error';
1986
- $error = ! empty( $license->error ) ? $license->error : __( 'unknown_error', 'ultimate-member' );
1987
  $messages[] = sprintf( __( 'There was an error with this license key: %s. Please <a href="%s">contact our support team</a>.', 'ultimate-member' ), $error, 'https://ultimatemember.com/support' );
1988
 
1989
  $license_status = 'license-' . $class . '-notice';
1990
  }
1991
 
 
 
 
 
 
 
 
 
 
 
 
 
1992
  } else {
1993
 
1994
  switch( $license->license ) {
@@ -2033,16 +2049,16 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
2033
  case 'invalid' :
2034
  case 'site_inactive' :
2035
 
2036
- $class = 'error';
2037
- $messages[] = sprintf(
2038
- __( 'Your %s is not active for this URL. Please <a href="%s" target="_blank">visit your account page</a> to manage your license key URLs.', 'ultimate-member' ),
2039
- $field_data['item_name'],
2040
- 'https://ultimatemember.com/account?utm_campaign=admin&utm_source=licenses&utm_medium=invalid'
2041
- );
2042
 
2043
- $license_status = 'license-' . $class . '-notice';
2044
 
2045
- break;
2046
 
2047
  case 'item_name_mismatch' :
2048
 
@@ -2073,39 +2089,39 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
2073
  case 'valid' :
2074
  default:
2075
 
2076
- $class = 'valid';
2077
 
2078
- $now = current_time( 'timestamp' );
2079
- $expiration = strtotime( $license->expires, current_time( 'timestamp' ) );
2080
 
2081
- if( 'lifetime' === $license->expires ) {
2082
 
2083
- $messages[] = __( 'License key never expires.', 'ultimate-member' );
2084
 
2085
- $license_status = 'license-lifetime-notice';
2086
 
2087
- } elseif( $expiration > $now && $expiration - $now < ( DAY_IN_SECONDS * 30 ) ) {
2088
 
2089
- $messages[] = sprintf(
2090
- __( 'Your license key expires soon! It expires on %s. <a href="%s" target="_blank">Renew your license key</a>.', 'ultimate-member' ),
2091
- date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) ),
2092
- 'https://ultimatemember.com/checkout/?edd_license_key=' . $value . '&utm_campaign=admin&utm_source=licenses&utm_medium=renew'
2093
- );
2094
 
2095
- $license_status = 'license-expires-soon-notice';
2096
 
2097
- } else {
2098
 
2099
- $messages[] = sprintf(
2100
- __( 'Your license key expires on %s.', 'ultimate-member' ),
2101
- date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) )
2102
- );
2103
 
2104
- $license_status = 'license-expiration-date-notice';
2105
 
2106
- }
2107
 
2108
- break;
2109
 
2110
  }
2111
 
@@ -2121,9 +2137,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
2121
 
2122
  $license_status = null;
2123
 
2124
- }
2125
-
2126
- ?>
2127
 
2128
  <tr class="um-settings-line">
2129
  <th><label for="um_options_<?php echo $field_data['id'] ?>"><?php echo $field_data['label'] ?></label></th>
137
 
138
  foreach ( $tabs as $id => $tab ) {
139
 
140
+ if ( ! empty( $tab['hidden'] ) ) {
141
  continue;
142
  }
143
 
1704
  return;
1705
 
1706
  foreach ( $_POST['um_options'] as $key => $value ) {
1707
+ $this->previous_licenses[ $key ] = UM()->options()->get( $key );
1708
  }
1709
  }
1710
 
1713
  *
1714
  */
1715
  function licenses_save() {
1716
+ if ( empty( $_POST['um_options'] ) || empty( $_POST['licenses_settings'] ) ) {
1717
  return;
1718
+ }
1719
 
1720
  foreach ( $_POST['um_options'] as $key => $value ) {
1721
  $edd_action = '';
1722
  $license_key = '';
1723
+ if ( empty( $this->previous_licenses[ $key ] ) && ! empty( $value ) || ( ! empty( $this->previous_licenses[ $key ] ) && ! empty( $value ) && $this->previous_licenses[ $key ] != $value ) ) {
1724
  $edd_action = 'activate_license';
1725
  $license_key = $value;
1726
+ } elseif ( ! empty( $this->previous_licenses[ $key ] ) && empty( $value ) ) {
1727
  $edd_action = 'deactivate_license';
1728
+ $license_key = $this->previous_licenses[ $key ];
1729
+ } elseif ( ! empty( $this->previous_licenses[ $key ] ) && ! empty( $value ) ) {
1730
  $edd_action = 'check_license';
1731
  $license_key = $value;
1732
  }
1733
 
1734
+ if ( empty( $edd_action ) ) {
1735
  continue;
1736
+ }
1737
 
1738
  $item_name = false;
1739
  $version = false;
1764
  )
1765
  );
1766
 
1767
+ if ( ! is_wp_error( $request ) ) {
1768
  $request = json_decode( wp_remote_retrieve_body( $request ) );
1769
+ }
1770
 
1771
  $request = ( $request ) ? maybe_unserialize( $request ) : false;
1772
 
1773
+ if ( $edd_action == 'activate_license' || $edd_action == 'check_license' ) {
1774
  update_option( "{$key}_edd_answer", $request );
1775
+ } else {
1776
  delete_option( "{$key}_edd_answer" );
1777
+ }
1778
 
1779
  }
1780
  }
1888
  <tbody>
1889
  <?php foreach ( $section_fields as $field_data ) {
1890
  $option_value = UM()->options()->get( $field_data['id'] );
1891
+ $value = isset( $option_value ) && ! empty( $option_value ) ? $option_value : ( isset( $field_data['default'] ) ? $field_data['default'] : '' );
1892
 
1893
  $license = get_option( "{$field_data['id']}_edd_answer" );
1894
 
1895
  if ( is_object( $license ) && ! empty( $value ) ) {
1896
  // activate_license 'invalid' on anything other than valid, so if there was an error capture it
1897
+ if ( empty( $license->success ) ) {
1898
 
1899
  if ( ! empty( $license->error ) ) {
1900
  switch ( $license->error ) {
1939
  case 'invalid' :
1940
  case 'site_inactive' :
1941
 
1942
+ $class = 'error';
1943
+ $messages[] = sprintf(
1944
+ __( 'Your %s is not active for this URL. Please <a href="%s" target="_blank">visit your account page</a> to manage your license key URLs.', 'ultimate-member' ),
1945
+ $field_data['item_name'],
1946
+ 'https://ultimatemember.com/account?utm_campaign=admin&utm_source=licenses&utm_medium=invalid'
1947
+ );
1948
 
1949
+ $license_status = 'license-' . $class . '-notice';
1950
 
1951
+ break;
1952
 
1953
  case 'item_name_mismatch' :
1954
 
1979
  default :
1980
 
1981
  $class = 'error';
1982
+ $error = ! empty( $license->error ) ? $license->error : __( 'unknown_error', 'ultimate-member' );
1983
  $messages[] = sprintf( __( 'There was an error with this license key: %s. Please <a href="%s">contact our support team</a>.', 'ultimate-member' ), $error, 'https://ultimatemember.com/support' );
1984
 
1985
  $license_status = 'license-' . $class . '-notice';
1987
  }
1988
  } else {
1989
  $class = 'error';
1990
+ $error = ! empty( $license->error ) ? $license->error : __( 'unknown_error', 'ultimate-member' );
1991
  $messages[] = sprintf( __( 'There was an error with this license key: %s. Please <a href="%s">contact our support team</a>.', 'ultimate-member' ), $error, 'https://ultimatemember.com/support' );
1992
 
1993
  $license_status = 'license-' . $class . '-notice';
1994
  }
1995
 
1996
+ } elseif ( ! empty( $license->errors ) ) {
1997
+
1998
+ $errors = array_keys( $license->errors );
1999
+ $errors_data = array_values( $license->errors );
2000
+
2001
+ $class = 'error';
2002
+ $error = ! empty( $errors[0] ) ? $errors[0] : __( 'unknown_error', 'ultimate-member' );
2003
+ $errors_data = ! empty( $errors_data[0][0] ) ? ', ' . $errors_data[0][0] : '';
2004
+ $messages[] = sprintf( __( 'There was an error with this license key: %s%s. Please <a href="%s">contact our support team</a>.', 'ultimate-member' ), $error, $errors_data, 'https://ultimatemember.com/support' );
2005
+
2006
+ $license_status = 'license-' . $class . '-notice';
2007
+
2008
  } else {
2009
 
2010
  switch( $license->license ) {
2049
  case 'invalid' :
2050
  case 'site_inactive' :
2051
 
2052
+ $class = 'error';
2053
+ $messages[] = sprintf(
2054
+ __( 'Your %s is not active for this URL. Please <a href="%s" target="_blank">visit your account page</a> to manage your license key URLs.', 'ultimate-member' ),
2055
+ $field_data['item_name'],
2056
+ 'https://ultimatemember.com/account?utm_campaign=admin&utm_source=licenses&utm_medium=invalid'
2057
+ );
2058
 
2059
+ $license_status = 'license-' . $class . '-notice';
2060
 
2061
+ break;
2062
 
2063
  case 'item_name_mismatch' :
2064
 
2089
  case 'valid' :
2090
  default:
2091
 
2092
+ $class = 'valid';
2093
 
2094
+ $now = current_time( 'timestamp' );
2095
+ $expiration = strtotime( $license->expires, $now );
2096
 
2097
+ if( 'lifetime' === $license->expires ) {
2098
 
2099
+ $messages[] = __( 'License key never expires.', 'ultimate-member' );
2100
 
2101
+ $license_status = 'license-lifetime-notice';
2102
 
2103
+ } elseif( $expiration > $now && $expiration - $now < ( DAY_IN_SECONDS * 30 ) ) {
2104
 
2105
+ $messages[] = sprintf(
2106
+ __( 'Your license key expires soon! It expires on %s. <a href="%s" target="_blank">Renew your license key</a>.', 'ultimate-member' ),
2107
+ date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) ),
2108
+ 'https://ultimatemember.com/checkout/?edd_license_key=' . $value . '&utm_campaign=admin&utm_source=licenses&utm_medium=renew'
2109
+ );
2110
 
2111
+ $license_status = 'license-expires-soon-notice';
2112
 
2113
+ } else {
2114
 
2115
+ $messages[] = sprintf(
2116
+ __( 'Your license key expires on %s.', 'ultimate-member' ),
2117
+ date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) )
2118
+ );
2119
 
2120
+ $license_status = 'license-expiration-date-notice';
2121
 
2122
+ }
2123
 
2124
+ break;
2125
 
2126
  }
2127
 
2137
 
2138
  $license_status = null;
2139
 
2140
+ } ?>
 
 
2141
 
2142
  <tr class="um-settings-line">
2143
  <th><label for="um_options_<?php echo $field_data['id'] ?>"><?php echo $field_data['label'] ?></label></th>
includes/admin/core/list-tables/roles-list-table.php CHANGED
@@ -429,11 +429,11 @@ if ( $role_keys ) {
429
  $role_meta = get_option( "um_role_{$role_key}_meta" );
430
  if ( $role_meta ) {
431
 
432
- $roles['um_' . $role_key] = array(
433
  'key' => $role_key,
434
- 'users' => ! empty( $users_count['avail_roles']['um_' . $role_key] ) ? $users_count['avail_roles']['um_' . $role_key] : 0
435
  );
436
- $roles['um_' . $role_key] = array_merge( $roles['um_' . $role_key], $role_meta );
437
  }
438
  }
439
  }
@@ -441,18 +441,20 @@ if ( $role_keys ) {
441
  global $wp_roles;
442
 
443
  foreach ( $wp_roles->roles as $roleID => $role_data ) {
444
- if ( in_array( $roleID, array_keys( $roles ) ) )
445
  continue;
 
446
 
447
- $roles[$roleID] = array(
448
  'key' => $roleID,
449
- 'users' => ! empty( $users_count['avail_roles'][$roleID] ) ? $users_count['avail_roles'][$roleID] : 0,
450
- 'name' => $role_data['name']
451
  );
452
 
453
  $role_meta = get_option( "um_role_{$roleID}_meta" );
454
- if ( $role_meta )
455
- $roles[$roleID] = array_merge( $roles[$roleID], $role_meta );
 
456
  }
457
 
458
  switch( strtolower( $order ) ) {
429
  $role_meta = get_option( "um_role_{$role_key}_meta" );
430
  if ( $role_meta ) {
431
 
432
+ $roles[ 'um_' . $role_key ] = array(
433
  'key' => $role_key,
434
+ 'users' => ! empty( $users_count['avail_roles'][ 'um_' . $role_key ] ) ? $users_count['avail_roles'][ 'um_' . $role_key ] : 0
435
  );
436
+ $roles[ 'um_' . $role_key ] = array_merge( $roles[ 'um_' . $role_key ], $role_meta );
437
  }
438
  }
439
  }
441
  global $wp_roles;
442
 
443
  foreach ( $wp_roles->roles as $roleID => $role_data ) {
444
+ if ( in_array( $roleID, array_keys( $roles ) ) ) {
445
  continue;
446
+ }
447
 
448
+ $roles[ $roleID ] = array(
449
  'key' => $roleID,
450
+ 'users' => ! empty( $users_count['avail_roles'][ $roleID ] ) ? $users_count['avail_roles'][ $roleID ] : 0,
451
+ 'name' => $role_data['name']
452
  );
453
 
454
  $role_meta = get_option( "um_role_{$roleID}_meta" );
455
+ if ( $role_meta ) {
456
+ $roles[ $roleID ] = array_merge( $roles[ $roleID ], $role_meta );
457
+ }
458
  }
459
 
460
  switch( strtolower( $order ) ) {
includes/admin/core/packages/2.0.54/functions.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+
4
+ function um_upgrade_roles2054() {
5
+ UM()->admin()->check_ajax_nonce();
6
+
7
+ um_maybe_unset_time_limit();
8
+
9
+ include 'roles.php';
10
+
11
+ update_option( 'um_last_version_upgrade', '2.0.54' );
12
+
13
+ wp_send_json_success( array( 'message' => __( 'Roles was upgraded successfully', 'ultimate-member' ) ) );
14
+ }
includes/admin/core/packages/2.0.54/hooks.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+ return array(
4
+ 'roles2054' => 'roles2054',
5
+ );
includes/admin/core/packages/2.0.54/init.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+
4
+ <script type="text/javascript">
5
+ jQuery( document ).ready( function() {
6
+ //upgrade styles
7
+ um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade user roles...', 'ultimate-member' ) ) ?>' );
8
+
9
+ jQuery.ajax({
10
+ url: wp.ajax.settings.url,
11
+ type: 'POST',
12
+ dataType: 'json',
13
+ data: {
14
+ action: 'um_roles2054',
15
+ nonce: um_admin_scripts.nonce
16
+ },
17
+ success: function( response ) {
18
+ if ( typeof response.data != 'undefined' ) {
19
+ um_add_upgrade_log( response.data.message );
20
+ //switch to the next package
21
+ um_run_upgrade();
22
+ } else {
23
+ um_wrong_ajax();
24
+ }
25
+ },
26
+ error: function() {
27
+ um_something_wrong();
28
+ }
29
+ });
30
+ });
31
+ </script>
includes/admin/core/packages/2.0.54/roles.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+ $role_keys = get_option( 'um_roles', array() );
4
+ $role_keys = array_map( function( $item ) {
5
+ return 'um_' . $item;
6
+ }, $role_keys );
7
+
8
+ global $wp_roles;
9
+ foreach ( $wp_roles->roles as $roleID => $role_data ) {
10
+ if ( in_array( $roleID, $role_keys ) ) {
11
+ continue;
12
+ }
13
+
14
+ $role_meta = get_option( "um_role_{$roleID}_meta", array() );
15
+ if ( ! empty( $role_meta ) ) {
16
+ if ( $role_meta['name'] === null ) {
17
+ unset( $role_meta['name'] );
18
+ update_option( "um_role_{$roleID}_meta", $role_meta );
19
+ }
20
+ }
21
+ }
includes/admin/templates/role/role-edit.php CHANGED
@@ -98,9 +98,11 @@ if ( ! empty( $_POST['role'] ) ) {
98
  $id = $_GET['id'];
99
 
100
  $pre_role_meta = get_option( "um_role_{$id}_meta", array() );
101
- $data['name'] = $pre_role_meta['name'];
 
 
102
 
103
- $redirect = add_query_arg( array( 'page' => 'um_roles', 'tab'=>'edit', 'id'=>$id, 'msg'=>'u' ), admin_url( 'admin.php' ) );
104
  }
105
 
106
 
98
  $id = $_GET['id'];
99
 
100
  $pre_role_meta = get_option( "um_role_{$id}_meta", array() );
101
+ if ( isset( $pre_role_meta['name'] ) ) {
102
+ $data['name'] = $pre_role_meta['name'];
103
+ }
104
 
105
+ $redirect = add_query_arg( array( 'page' => 'um_roles', 'tab' => 'edit', 'id' => $id, 'msg'=> 'u' ), admin_url( 'admin.php' ) );
106
  }
107
 
108
 
includes/class-config.php CHANGED
@@ -546,7 +546,13 @@ if ( ! class_exists( 'um\Config' ) ) {
546
  add_filter( 'um_get_tabs_from_config', '__return_true' );
547
 
548
  $tabs = UM()->profile()->tabs();
 
549
  foreach ( $tabs as $id => $tab ) {
 
 
 
 
 
550
  $this->settings_defaults[ 'profile_tab_' . $id ] = 1;
551
 
552
  if ( ! isset( $tab['default_privacy'] ) ) {
546
  add_filter( 'um_get_tabs_from_config', '__return_true' );
547
 
548
  $tabs = UM()->profile()->tabs();
549
+
550
  foreach ( $tabs as $id => $tab ) {
551
+
552
+ if ( ! empty( $tab['hidden'] ) ) {
553
+ continue;
554
+ }
555
+
556
  $this->settings_defaults[ 'profile_tab_' . $id ] = 1;
557
 
558
  if ( ! isset( $tab['default_privacy'] ) ) {
includes/class-dependencies.php CHANGED
@@ -65,7 +65,7 @@ if ( ! class_exists( 'um\Dependencies' ) ) {
65
  'user-notes' => '2.0',
66
  'user-bookmarks' => '2.0',
67
  'unsplash' => '2.0',
68
- 'fmwp' => '2.0.1',
69
  );
70
 
71
 
65
  'user-notes' => '2.0',
66
  'user-bookmarks' => '2.0',
67
  'unsplash' => '2.0',
68
+ 'forumwp' => '2.0.1',
69
  );
70
 
71
 
includes/class-init.php CHANGED
@@ -18,7 +18,7 @@ if ( ! class_exists( 'UM' ) ) {
18
  * @method UM_myCRED_API myCRED_API()
19
  * @method UM_Notices_API Notices_API()
20
  * @method UM_Notifications_API Notifications_API()
21
- * @method UM_Online_API Online_API()
22
  * @method UM_Profile_Completeness_API Profile_Completeness_API()
23
  * @method UM_reCAPTCHA_API reCAPTCHA_API()
24
  * @method UM_Reviews_API Reviews_API()
@@ -36,7 +36,7 @@ if ( ! class_exists( 'UM' ) ) {
36
  * @method UM_Notes Notes()
37
  * @method UM_User_Bookmarks User_Bookmarks()
38
  * @method UM_Unsplash Unsplash()
39
- * @method UM_FMWP FMWP()
40
  */
41
  final class UM extends UM_Functions {
42
 
18
  * @method UM_myCRED_API myCRED_API()
19
  * @method UM_Notices_API Notices_API()
20
  * @method UM_Notifications_API Notifications_API()
21
+ * @method UM_Online Online()
22
  * @method UM_Profile_Completeness_API Profile_Completeness_API()
23
  * @method UM_reCAPTCHA_API reCAPTCHA_API()
24
  * @method UM_Reviews_API Reviews_API()
36
  * @method UM_Notes Notes()
37
  * @method UM_User_Bookmarks User_Bookmarks()
38
  * @method UM_Unsplash Unsplash()
39
+ * @method UM_ForumWP ForumWP()
40
  */
41
  final class UM extends UM_Functions {
42
 
includes/core/class-profile.php CHANGED
@@ -242,6 +242,31 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
242
  }
243
  }
244
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  return $tabs;
246
  }
247
 
@@ -253,10 +278,45 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
253
  */
254
  function active_tab() {
255
 
256
- $this->active_tab = UM()->options()->get('profile_menu_default_tab');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
257
 
258
- if ( get_query_var('profiletab') ) {
259
- $this->active_tab = get_query_var('profiletab');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  }
261
 
262
  /**
242
  }
243
  }
244
 
245
+ if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
246
+ /**
247
+ * UM hook
248
+ *
249
+ * @type filter
250
+ * @title um_user_profile_tabs
251
+ * @description Extend profile tabs
252
+ * @input_vars
253
+ * [{"var":"$tabs","type":"array","desc":"Profile Tabs"}]
254
+ * @change_log
255
+ * ["Since: 2.0"]
256
+ * @usage
257
+ * <?php add_filter( 'um_user_profile_tabs', 'function_name', 10, 1 ); ?>
258
+ * @example
259
+ * <?php
260
+ * add_filter( 'um_user_profile_tabs', 'my_user_profile_tabs', 10, 1 );
261
+ * function my_user_profile_tabs( $tabs ) {
262
+ * // your code here
263
+ * return $tabs;
264
+ * }
265
+ * ?>
266
+ */
267
+ $tabs = apply_filters( 'um_user_profile_tabs', $tabs );
268
+ }
269
+
270
  return $tabs;
271
  }
272
 
278
  */
279
  function active_tab() {
280
 
281
+ // get active tabs
282
+ $tabs = UM()->profile()->tabs_active();
283
+
284
+ if ( ! UM()->options()->get( 'profile_menu' ) ) {
285
+
286
+ $query_arg = get_query_var( 'profiletab' );
287
+ if ( ! empty( $query_arg ) && ! empty( $tabs[ $query_arg ]['hidden'] ) ) {
288
+ $this->active_tab = $query_arg;
289
+ } else {
290
+ if ( ! empty( $tabs ) ) {
291
+ foreach ( $tabs as $k => $tab ) {
292
+ if ( ! empty( $tab['hidden'] ) ) {
293
+ $this->active_tab = $k;
294
+ break;
295
+ }
296
+ }
297
+ }
298
+ }
299
 
300
+ } else {
301
+ $query_arg = get_query_var( 'profiletab' );
302
+ if ( ! empty( $query_arg ) && ! empty( $tabs[ $query_arg ] ) ) {
303
+ $this->active_tab = $query_arg;
304
+ } else {
305
+ $default_tab = UM()->options()->get( 'profile_menu_default_tab' );
306
+
307
+ if ( ! empty( $tabs[ $default_tab ] ) ) {
308
+ $this->active_tab = $default_tab;
309
+ } else {
310
+ if ( ! empty( $tabs ) ) {
311
+ foreach ( $tabs as $k => $tab ) {
312
+ if ( ! empty( $tab['hidden'] ) ) {
313
+ $this->active_tab = $k;
314
+ break;
315
+ }
316
+ }
317
+ }
318
+ }
319
+ }
320
  }
321
 
322
  /**
includes/core/class-user.php CHANGED
@@ -25,7 +25,6 @@ if ( ! class_exists( 'um\core\User' ) ) {
25
  $this->data = null;
26
  $this->profile = null;
27
  $this->cannot_edit = null;
28
- $this->tabs = null;
29
 
30
  $this->banned_keys = array(
31
  'metabox','postbox','meta-box',
25
  $this->data = null;
26
  $this->profile = null;
27
  $this->cannot_edit = null;
 
28
 
29
  $this->banned_keys = array(
30
  'metabox','postbox','meta-box',
includes/core/um-actions-profile.php CHANGED
@@ -1320,160 +1320,144 @@ function um_profile_menu( $args ) {
1320
  // get active tabs
1321
  $tabs = UM()->profile()->tabs_active();
1322
 
1323
- /**
1324
- * UM hook
1325
- *
1326
- * @type filter
1327
- * @title um_user_profile_tabs
1328
- * @description Extend profile tabs
1329
- * @input_vars
1330
- * [{"var":"$tabs","type":"array","desc":"Profile Tabs"}]
1331
- * @change_log
1332
- * ["Since: 2.0"]
1333
- * @usage
1334
- * <?php add_filter( 'um_user_profile_tabs', 'function_name', 10, 1 ); ?>
1335
- * @example
1336
- * <?php
1337
- * add_filter( 'um_user_profile_tabs', 'my_user_profile_tabs', 10, 1 );
1338
- * function my_user_profile_tabs( $tabs ) {
1339
- * // your code here
1340
- * return $tabs;
1341
- * }
1342
- * ?>
1343
- */
1344
- $tabs = apply_filters( 'um_user_profile_tabs', $tabs );
1345
-
1346
- UM()->user()->tabs = $tabs;
1347
 
1348
- // need enough tabs to continue
1349
- if ( count( $tabs ) <= 1 ) {
1350
- return;
1351
- }
 
 
1352
 
1353
  $active_tab = UM()->profile()->active_tab();
1354
-
1355
- if ( ! isset( $tabs[ $active_tab ] ) ) {
1356
  $active_tab = 'main';
1357
  UM()->profile()->active_tab = $active_tab;
1358
  UM()->profile()->active_subnav = null;
1359
  }
1360
 
1361
- // Move default tab priority
1362
- $default_tab = UM()->options()->get( 'profile_menu_default_tab' );
1363
- $dtab = ( isset( $tabs[ $default_tab ] ) ) ? $tabs[ $default_tab ] : 'main';
1364
- if ( isset( $tabs[ $default_tab ] ) ) {
1365
- unset( $tabs[ $default_tab ] );
1366
- $dtabs[ $default_tab ] = $dtab;
1367
- $tabs = $dtabs + $tabs;
1368
  }
1369
 
1370
- $tabs_in_nav = array_filter( $tabs, function( $item ) {
1371
- if ( ! empty( $item['hidden'] ) ) {
1372
- return false;
1373
- }
1374
- return true;
1375
- });
1376
 
1377
- if ( ! empty( $tabs_in_nav ) ) { ?>
 
 
 
 
 
 
 
 
1378
 
1379
- <div class="um-profile-nav">
1380
 
1381
- <?php foreach ( $tabs as $id => $tab ) {
1382
 
1383
- if ( isset( $tab['hidden'] ) ) {
1384
- continue;
1385
- }
1386
 
1387
- $nav_link = UM()->permalinks()->get_current_url( get_option( 'permalink_structure' ) );
1388
- $nav_link = remove_query_arg( 'um_action', $nav_link );
1389
- $nav_link = remove_query_arg( 'subnav', $nav_link );
1390
- $nav_link = add_query_arg( 'profiletab', $id, $nav_link );
1391
 
1392
- /**
1393
- * UM hook
1394
- *
1395
- * @type filter
1396
- * @title um_profile_menu_link_{$id}
1397
- * @description Change profile menu link by tab $id
1398
- * @input_vars
1399
- * [{"var":"$nav_link","type":"string","desc":"Profile Tab Link"}]
1400
- * @change_log
1401
- * ["Since: 2.0"]
1402
- * @usage
1403
- * <?php add_filter( 'um_profile_menu_link_{$id}', 'function_name', 10, 1 ); ?>
1404
- * @example
1405
- * <?php
1406
- * add_filter( 'um_profile_menu_link_{$id}', 'my_profile_menu_link', 10, 1 );
1407
- * function my_profile_menu_link( $nav_link ) {
1408
- * // your code here
1409
- * return $nav_link;
1410
- * }
1411
- * ?>
1412
- */
1413
- $nav_link = apply_filters( "um_profile_menu_link_{$id}", $nav_link );
1414
 
1415
- $profile_nav_class = '';
1416
- if ( ! UM()->options()->get( 'profile_menu_icons' ) ) {
1417
- $profile_nav_class .= ' without-icon';
1418
- }
1419
 
1420
- if ( $id == $active_tab ) {
1421
- $profile_nav_class .= ' active';
1422
- } ?>
1423
 
1424
- <div class="um-profile-nav-item um-profile-nav-<?php echo $id . ' ' . $profile_nav_class; ?>">
1425
- <?php if ( UM()->options()->get( 'profile_menu_icons' ) ) { ?>
1426
- <a href="<?php echo $nav_link; ?>" class="uimob800-show uimob500-show uimob340-show um-tip-n"
1427
- title="<?php echo esc_attr( $tab['name'] ); ?>" original-title="<?php echo esc_attr( $tab['name'] ); ?>">
1428
 
1429
- <i class="<?php echo $tab['icon']; ?>"></i>
1430
 
1431
- <?php if ( isset( $tab['notifier'] ) && $tab['notifier'] > 0 ) { ?>
1432
- <span class="um-tab-notifier uimob800-show uimob500-show uimob340-show"><?php echo $tab['notifier']; ?></span>
1433
- <?php } ?>
1434
 
1435
- <span class="uimob800-hide uimob500-hide uimob340-hide title"><?php echo $tab['name']; ?></span>
1436
- </a>
1437
- <a href="<?php echo $nav_link; ?>" class="uimob800-hide uimob500-hide uimob340-hide"
1438
- title="<?php echo esc_attr( $tab['name'] ); ?>">
1439
 
1440
- <i class="<?php echo $tab['icon']; ?>"></i>
1441
 
1442
- <?php if ( isset( $tab['notifier'] ) && $tab['notifier'] > 0 ) { ?>
1443
- <span class="um-tab-notifier"><?php echo $tab['notifier']; ?></span>
1444
- <?php } ?>
1445
 
1446
- <span class="title"><?php echo $tab['name']; ?></span>
1447
- </a>
1448
- <?php } else { ?>
1449
- <a href="<?php echo $nav_link; ?>" class="uimob800-show uimob500-show uimob340-show um-tip-n"
1450
- title="<?php echo esc_attr( $tab['name'] ); ?>" original-title="<?php echo esc_attr( $tab['name'] ); ?>">
1451
 
1452
- <i class="<?php echo $tab['icon']; ?>"></i>
1453
 
1454
- <?php if ( isset( $tab['notifier'] ) && $tab['notifier'] > 0 ) { ?>
1455
- <span class="um-tab-notifier uimob800-show uimob500-show uimob340-show"><?php echo $tab['notifier']; ?></span>
1456
- <?php } ?>
1457
- </a>
1458
- <a href="<?php echo $nav_link; ?>" class="uimob800-hide uimob500-hide uimob340-hide"
1459
- title="<?php echo esc_attr( $tab['name'] ); ?>">
1460
 
1461
- <?php if ( isset( $tab['notifier'] ) && $tab['notifier'] > 0) { ?>
1462
- <span class="um-tab-notifier"><?php echo $tab['notifier']; ?></span>
1463
- <?php } ?>
1464
 
1465
- <span class="title"><?php echo $tab['name']; ?></span>
1466
- </a>
1467
- <?php } ?>
1468
- </div>
1469
 
1470
- <?php } ?>
1471
 
1472
- <div class="um-clear"></div>
1473
 
1474
- </div>
1475
 
1476
- <?php }
 
1477
 
1478
  foreach ( $tabs as $id => $tab ) {
1479
 
1320
  // get active tabs
1321
  $tabs = UM()->profile()->tabs_active();
1322
 
1323
+ $all_tabs = $tabs;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1324
 
1325
+ $tabs = array_filter( $tabs, function( $item ) {
1326
+ if ( ! empty( $item['hidden'] ) ) {
1327
+ return false;
1328
+ }
1329
+ return true;
1330
+ });
1331
 
1332
  $active_tab = UM()->profile()->active_tab();
1333
+ //check here tabs with hidden also, to make correct check of active tab
1334
+ if ( ! isset( $all_tabs[ $active_tab ] ) ) {
1335
  $active_tab = 'main';
1336
  UM()->profile()->active_tab = $active_tab;
1337
  UM()->profile()->active_subnav = null;
1338
  }
1339
 
1340
+ $has_subnav = false;
1341
+ if ( count( $tabs ) == 1 ) {
1342
+ foreach ( $tabs as $tab ) {
1343
+ if ( isset( $tab['subnav'] ) ) {
1344
+ $has_subnav = true;
1345
+ }
1346
+ }
1347
  }
1348
 
1349
+ // need enough tabs to continue
1350
+ if ( count( $tabs ) <= 1 && ! $has_subnav && count( $all_tabs ) === count( $tabs ) ) {
1351
+ return;
1352
+ }
 
 
1353
 
1354
+ if ( count( $tabs ) > 1 || count( $all_tabs ) > count( $tabs ) ) {
1355
+ // Move default tab priority
1356
+ $default_tab = UM()->options()->get( 'profile_menu_default_tab' );
1357
+ $dtab = ( isset( $tabs[ $default_tab ] ) ) ? $tabs[ $default_tab ] : 'main';
1358
+ if ( isset( $tabs[ $default_tab ] ) ) {
1359
+ unset( $tabs[ $default_tab ] );
1360
+ $dtabs[ $default_tab ] = $dtab;
1361
+ $tabs = $dtabs + $tabs;
1362
+ }
1363
 
1364
+ if ( ! empty( $tabs ) ) { ?>
1365
 
1366
+ <div class="um-profile-nav">
1367
 
1368
+ <?php foreach ( $tabs as $id => $tab ) {
 
 
1369
 
1370
+ $nav_link = UM()->permalinks()->get_current_url( get_option( 'permalink_structure' ) );
1371
+ $nav_link = remove_query_arg( 'um_action', $nav_link );
1372
+ $nav_link = remove_query_arg( 'subnav', $nav_link );
1373
+ $nav_link = add_query_arg( 'profiletab', $id, $nav_link );
1374
 
1375
+ /**
1376
+ * UM hook
1377
+ *
1378
+ * @type filter
1379
+ * @title um_profile_menu_link_{$id}
1380
+ * @description Change profile menu link by tab $id
1381
+ * @input_vars
1382
+ * [{"var":"$nav_link","type":"string","desc":"Profile Tab Link"}]
1383
+ * @change_log
1384
+ * ["Since: 2.0"]
1385
+ * @usage
1386
+ * <?php add_filter( 'um_profile_menu_link_{$id}', 'function_name', 10, 1 ); ?>
1387
+ * @example
1388
+ * <?php
1389
+ * add_filter( 'um_profile_menu_link_{$id}', 'my_profile_menu_link', 10, 1 );
1390
+ * function my_profile_menu_link( $nav_link ) {
1391
+ * // your code here
1392
+ * return $nav_link;
1393
+ * }
1394
+ * ?>
1395
+ */
1396
+ $nav_link = apply_filters( "um_profile_menu_link_{$id}", $nav_link );
1397
 
1398
+ $profile_nav_class = '';
1399
+ if ( ! UM()->options()->get( 'profile_menu_icons' ) ) {
1400
+ $profile_nav_class .= ' without-icon';
1401
+ }
1402
 
1403
+ if ( $id == $active_tab ) {
1404
+ $profile_nav_class .= ' active';
1405
+ } ?>
1406
 
1407
+ <div class="um-profile-nav-item um-profile-nav-<?php echo $id . ' ' . $profile_nav_class; ?>">
1408
+ <?php if ( UM()->options()->get( 'profile_menu_icons' ) ) { ?>
1409
+ <a href="<?php echo $nav_link; ?>" class="uimob800-show uimob500-show uimob340-show um-tip-n"
1410
+ title="<?php echo esc_attr( $tab['name'] ); ?>" original-title="<?php echo esc_attr( $tab['name'] ); ?>">
1411
 
1412
+ <i class="<?php echo $tab['icon']; ?>"></i>
1413
 
1414
+ <?php if ( isset( $tab['notifier'] ) && $tab['notifier'] > 0 ) { ?>
1415
+ <span class="um-tab-notifier uimob800-show uimob500-show uimob340-show"><?php echo $tab['notifier']; ?></span>
1416
+ <?php } ?>
1417
 
1418
+ <span class="uimob800-hide uimob500-hide uimob340-hide title"><?php echo $tab['name']; ?></span>
1419
+ </a>
1420
+ <a href="<?php echo $nav_link; ?>" class="uimob800-hide uimob500-hide uimob340-hide"
1421
+ title="<?php echo esc_attr( $tab['name'] ); ?>">
1422
 
1423
+ <i class="<?php echo $tab['icon']; ?>"></i>
1424
 
1425
+ <?php if ( isset( $tab['notifier'] ) && $tab['notifier'] > 0 ) { ?>
1426
+ <span class="um-tab-notifier"><?php echo $tab['notifier']; ?></span>
1427
+ <?php } ?>
1428
 
1429
+ <span class="title"><?php echo $tab['name']; ?></span>
1430
+ </a>
1431
+ <?php } else { ?>
1432
+ <a href="<?php echo $nav_link; ?>" class="uimob800-show uimob500-show uimob340-show um-tip-n"
1433
+ title="<?php echo esc_attr( $tab['name'] ); ?>" original-title="<?php echo esc_attr( $tab['name'] ); ?>">
1434
 
1435
+ <i class="<?php echo $tab['icon']; ?>"></i>
1436
 
1437
+ <?php if ( isset( $tab['notifier'] ) && $tab['notifier'] > 0 ) { ?>
1438
+ <span class="um-tab-notifier uimob800-show uimob500-show uimob340-show"><?php echo $tab['notifier']; ?></span>
1439
+ <?php } ?>
1440
+ </a>
1441
+ <a href="<?php echo $nav_link; ?>" class="uimob800-hide uimob500-hide uimob340-hide"
1442
+ title="<?php echo esc_attr( $tab['name'] ); ?>">
1443
 
1444
+ <?php if ( isset( $tab['notifier'] ) && $tab['notifier'] > 0) { ?>
1445
+ <span class="um-tab-notifier"><?php echo $tab['notifier']; ?></span>
1446
+ <?php } ?>
1447
 
1448
+ <span class="title"><?php echo $tab['name']; ?></span>
1449
+ </a>
1450
+ <?php } ?>
1451
+ </div>
1452
 
1453
+ <?php } ?>
1454
 
1455
+ <div class="um-clear"></div>
1456
 
1457
+ </div>
1458
 
1459
+ <?php }
1460
+ }
1461
 
1462
  foreach ( $tabs as $id => $tab ) {
1463
 
includes/core/um-filters-account.php CHANGED
@@ -71,7 +71,14 @@ add_filter( "um_get_field__last_name","um_account_disable_name_fields", 10 ,1 );
71
  */
72
  function um_account_sanitize_data( $data ) {
73
  foreach ( $data as $key => $value ) {
74
- $data[ $key ] = trim( esc_html( strip_tags( $value ) ) );
 
 
 
 
 
 
 
75
  }
76
 
77
  return $data;
71
  */
72
  function um_account_sanitize_data( $data ) {
73
  foreach ( $data as $key => $value ) {
74
+ if ( is_array( $value ) ) {
75
+ $data[ $key ] = array_filter( $value, function( $var ) {
76
+ $var = trim( esc_html( strip_tags( $var ) ) );
77
+ return $var;
78
+ });
79
+ } else {
80
+ $data[ $key ] = trim( esc_html( strip_tags( $value ) ) );
81
+ }
82
  }
83
 
84
  return $data;
includes/um-short-functions.php CHANGED
@@ -1284,7 +1284,11 @@ function um_get_display_name( $user_id ) {
1284
  * @return mixed
1285
  */
1286
  function um_members( $argument ) {
1287
- return UM()->members()->results[ $argument ];
 
 
 
 
1288
  }
1289
 
1290
 
1284
  * @return mixed
1285
  */
1286
  function um_members( $argument ) {
1287
+ $result = null;
1288
+ if ( isset( UM()->members()->results[ $argument ] ) ) {
1289
+ $result = UM()->members()->results[ $argument ];
1290
+ }
1291
+ return $result;
1292
  }
1293
 
1294
 
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-07-16 15:14+0300\n"
5
- "PO-Revision-Date: 2019-07-16 15:14+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
@@ -172,7 +172,7 @@ msgstr ""
172
 
173
  #: includes/admin/core/class-admin-columns.php:130
174
  #: includes/admin/core/class-admin-columns.php:150
175
- #: includes/admin/templates/role/role-edit.php:190
176
  msgid "Title"
177
  msgstr ""
178
 
@@ -436,7 +436,7 @@ msgstr ""
436
  #. Plugin Name of the plugin/theme
437
  #. Author of the plugin/theme
438
  #: includes/admin/core/class-admin-menu.php:145
439
- #: includes/core/class-user.php:561
440
  msgid "Ultimate Member"
441
  msgstr ""
442
 
@@ -450,7 +450,7 @@ msgid "Forms"
450
  msgstr ""
451
 
452
  #: includes/admin/core/class-admin-menu.php:159
453
- #: includes/admin/core/list-tables/roles-list-table.php:477
454
  #: includes/admin/core/packages/2.0-beta1/user_roles.php:12
455
  msgid "User Roles"
456
  msgstr ""
@@ -1709,7 +1709,7 @@ msgid ""
1709
  msgstr ""
1710
 
1711
  #: includes/admin/core/class-admin-settings.php:481
1712
- #: includes/class-config.php:136 includes/class-config.php:755
1713
  #: includes/core/class-account.php:92
1714
  msgid "Account"
1715
  msgstr ""
@@ -2457,122 +2457,130 @@ msgstr ""
2457
  msgid "Save Changes"
2458
  msgstr ""
2459
 
2460
- #: includes/admin/core/class-admin-settings.php:1843
2461
  msgid "Subject Line"
2462
  msgstr ""
2463
 
2464
- #: includes/admin/core/class-admin-settings.php:1845
2465
  msgid "This is the subject line of the e-mail"
2466
  msgstr ""
2467
 
2468
- #: includes/admin/core/class-admin-settings.php:1850
2469
  msgid "Message Body"
2470
  msgstr ""
2471
 
2472
- #: includes/admin/core/class-admin-settings.php:1852
2473
  msgid "This is the content of the e-mail"
2474
  msgstr ""
2475
 
2476
- #: includes/admin/core/class-admin-settings.php:1902
2477
- #: includes/admin/core/class-admin-settings.php:2000
2478
  #, php-format
2479
  msgid ""
2480
  "Your license key expired on %s. Please <a href=\"%s\" target=\"_blank"
2481
  "\">renew your license key</a>."
2482
  msgstr ""
2483
 
2484
- #: includes/admin/core/class-admin-settings.php:1915
2485
- #: includes/admin/core/class-admin-settings.php:2013
2486
  #, php-format
2487
  msgid ""
2488
  "Your license key has been disabled. Please <a href=\"%s\" target=\"_blank"
2489
  "\">contact support</a> for more information."
2490
  msgstr ""
2491
 
2492
- #: includes/admin/core/class-admin-settings.php:1927
2493
- #: includes/admin/core/class-admin-settings.php:2025
2494
  #, php-format
2495
  msgid ""
2496
  "Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
2497
  "page</a> and verify it."
2498
  msgstr ""
2499
 
2500
- #: includes/admin/core/class-admin-settings.php:1940
2501
- #: includes/admin/core/class-admin-settings.php:2038
2502
  #, php-format
2503
  msgid ""
2504
  "Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank"
2505
  "\">visit your account page</a> to manage your license key URLs."
2506
  msgstr ""
2507
 
2508
- #: includes/admin/core/class-admin-settings.php:1952
2509
- #: includes/admin/core/class-admin-settings.php:2050
2510
  #, php-format
2511
  msgid "This appears to be an invalid license key for %s."
2512
  msgstr ""
2513
 
2514
- #: includes/admin/core/class-admin-settings.php:1961
2515
- #: includes/admin/core/class-admin-settings.php:2059
2516
  #, php-format
2517
  msgid ""
2518
  "Your license key has reached its activation limit. <a href=\"%s\">View "
2519
  "possible upgrades</a> now."
2520
  msgstr ""
2521
 
2522
- #: includes/admin/core/class-admin-settings.php:1970
2523
- #: includes/admin/core/class-admin-settings.php:2068
2524
  msgid ""
2525
  "The key you entered belongs to a bundle, please use the product specific "
2526
  "license key."
2527
  msgstr ""
2528
 
2529
- #: includes/admin/core/class-admin-settings.php:1978
2530
- #: includes/admin/core/class-admin-settings.php:1986
 
2531
  msgid "unknown_error"
2532
  msgstr ""
2533
 
2534
- #: includes/admin/core/class-admin-settings.php:1979
2535
- #: includes/admin/core/class-admin-settings.php:1987
2536
  #, php-format
2537
  msgid ""
2538
  "There was an error with this license key: %s. Please <a href=\"%s\">contact "
2539
  "our support team</a>."
2540
  msgstr ""
2541
 
2542
- #: includes/admin/core/class-admin-settings.php:2083
 
 
 
 
 
 
 
2543
  msgid "License key never expires."
2544
  msgstr ""
2545
 
2546
- #: includes/admin/core/class-admin-settings.php:2090
2547
  #, php-format
2548
  msgid ""
2549
  "Your license key expires soon! It expires on %s. <a href=\"%s\" target="
2550
  "\"_blank\">Renew your license key</a>."
2551
  msgstr ""
2552
 
2553
- #: includes/admin/core/class-admin-settings.php:2100
2554
  #, php-format
2555
  msgid "Your license key expires on %s."
2556
  msgstr ""
2557
 
2558
- #: includes/admin/core/class-admin-settings.php:2118
2559
  #, php-format
2560
  msgid "To receive updates, please enter your valid %s license key."
2561
  msgstr ""
2562
 
2563
- #: includes/admin/core/class-admin-settings.php:2142
2564
  msgid "Clear License"
2565
  msgstr ""
2566
 
2567
- #: includes/admin/core/class-admin-settings.php:2144
2568
  msgid "Activate"
2569
  msgstr ""
2570
 
2571
- #: includes/admin/core/class-admin-settings.php:2146
2572
  msgid "Re-Activate"
2573
  msgstr ""
2574
 
2575
- #: includes/admin/core/class-admin-settings.php:2198
2576
  msgid ""
2577
  "To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C "
2578
  "(Mac)."
@@ -2675,8 +2683,8 @@ msgstr ""
2675
  msgid "Reactivate"
2676
  msgstr ""
2677
 
2678
- #: includes/admin/core/class-admin-users.php:203 templates/account.php:38
2679
- #: templates/account.php:62
2680
  msgid "View profile"
2681
  msgstr ""
2682
 
@@ -2686,7 +2694,7 @@ msgstr ""
2686
 
2687
  #: includes/admin/core/class-admin-users.php:312
2688
  #: includes/admin/templates/dashboard/users.php:11
2689
- #: includes/core/class-user.php:825
2690
  msgid "Approved"
2691
  msgstr ""
2692
 
@@ -2800,14 +2808,14 @@ msgstr ""
2800
  msgid "Priority"
2801
  msgstr ""
2802
 
2803
- #: includes/admin/core/list-tables/roles-list-table.php:479
2804
  #: includes/admin/core/packages/2.0-beta1/user_roles.php:14
2805
- #: includes/admin/templates/role/role-edit.php:153
2806
  #: includes/core/class-common.php:56 includes/core/class-common.php:86
2807
  msgid "Add New"
2808
  msgstr ""
2809
 
2810
- #: includes/admin/core/list-tables/roles-list-table.php:486
2811
  msgid "User Role <strong>Deleted</strong> Successfully."
2812
  msgstr ""
2813
 
@@ -2990,6 +2998,14 @@ msgstr ""
2990
  msgid "Upgrade predefined metafields..."
2991
  msgstr ""
2992
 
 
 
 
 
 
 
 
 
2993
  #: includes/admin/templates/dashboard/cache.php:9
2994
  msgid "Run this task from time to time to keep your DB clean."
2995
  msgstr ""
@@ -3031,12 +3047,12 @@ msgid "Get latest versions"
3031
  msgstr ""
3032
 
3033
  #: includes/admin/templates/dashboard/users.php:27
3034
- #: includes/core/class-user.php:833
3035
  msgid "Pending Review"
3036
  msgstr ""
3037
 
3038
  #: includes/admin/templates/dashboard/users.php:32
3039
- #: includes/core/class-user.php:829
3040
  msgid "Awaiting E-mail Confirmation"
3041
  msgstr ""
3042
 
@@ -3538,7 +3554,7 @@ msgstr ""
3538
 
3539
  #: includes/admin/templates/form/register_gdpr.php:55
3540
  #: includes/admin/templates/form/register_gdpr.php:56
3541
- #: templates/gdpr-register.php:28
3542
  msgid "Please confirm that you agree to our privacy policy"
3543
  msgstr ""
3544
 
@@ -3548,7 +3564,7 @@ msgstr ""
3548
 
3549
  #: includes/admin/templates/form/register_gdpr.php:63
3550
  #: includes/admin/templates/form/register_gdpr.php:64
3551
- #: templates/gdpr-register.php:37
3552
  msgid "Please confirm your acceptance of our privacy policy"
3553
  msgstr ""
3554
 
@@ -3949,27 +3965,27 @@ msgstr ""
3949
  msgid "Title is empty!"
3950
  msgstr ""
3951
 
3952
- #: includes/admin/templates/role/role-edit.php:110
3953
  msgid "Role already exists!"
3954
  msgstr ""
3955
 
3956
- #: includes/admin/templates/role/role-edit.php:151
3957
  msgid "Add New Role"
3958
  msgstr ""
3959
 
3960
- #: includes/admin/templates/role/role-edit.php:151
3961
  msgid "Edit Role"
3962
  msgstr ""
3963
 
3964
- #: includes/admin/templates/role/role-edit.php:160
3965
  msgid "User Role <strong>Added</strong> Successfully."
3966
  msgstr ""
3967
 
3968
- #: includes/admin/templates/role/role-edit.php:163
3969
  msgid "User Role <strong>Updated</strong> Successfully."
3970
  msgstr ""
3971
 
3972
- #: includes/admin/templates/role/role-edit.php:191
3973
  msgid "Enter Title Here"
3974
  msgstr ""
3975
 
@@ -3982,31 +3998,31 @@ msgstr ""
3982
  msgid "Check All"
3983
  msgstr ""
3984
 
3985
- #: includes/class-config.php:131 includes/class-config.php:750
3986
  msgid "User"
3987
  msgstr ""
3988
 
3989
  #: includes/class-config.php:132 includes/class-config.php:238
3990
- #: includes/class-config.php:244 includes/class-config.php:751
3991
  msgid "Login"
3992
  msgstr ""
3993
 
3994
  #: includes/class-config.php:133 includes/class-config.php:236
3995
- #: includes/class-config.php:248 includes/class-config.php:752
3996
  msgid "Register"
3997
  msgstr ""
3998
 
3999
- #: includes/class-config.php:134 includes/class-config.php:753
4000
  msgid "Members"
4001
  msgstr ""
4002
 
4003
- #: includes/class-config.php:135 includes/class-config.php:754
4004
  #: includes/core/um-actions-profile.php:1165
4005
  #: includes/core/um-actions-user.php:15
4006
  msgid "Logout"
4007
  msgstr ""
4008
 
4009
- #: includes/class-config.php:137 includes/class-config.php:756
4010
  msgid "Password Reset"
4011
  msgstr ""
4012
 
@@ -4269,7 +4285,7 @@ msgstr ""
4269
  msgid "You must add a shortcode to the content area"
4270
  msgstr ""
4271
 
4272
- #: includes/core/class-builtin.php:663 includes/core/class-user.php:1552
4273
  msgid "Only me"
4274
  msgstr ""
4275
 
@@ -6337,7 +6353,7 @@ msgstr ""
6337
  msgid "Add translation to %s"
6338
  msgstr ""
6339
 
6340
- #: includes/core/class-fields.php:1207 templates/message.php:5
6341
  #, php-format
6342
  msgid "%s"
6343
  msgstr ""
@@ -6461,7 +6477,7 @@ msgid "You can not edit this user"
6461
  msgstr ""
6462
 
6463
  #: includes/core/class-mail.php:612 includes/core/class-password.php:701
6464
- #: includes/core/class-profile.php:403
6465
  msgid "Your set password"
6466
  msgstr ""
6467
 
@@ -6595,19 +6611,19 @@ msgstr ""
6595
  msgid "Maximum file size allowed: %s"
6596
  msgstr ""
6597
 
6598
- #: includes/core/class-user.php:619
6599
  msgid "Ultimate Member Role"
6600
  msgstr ""
6601
 
6602
- #: includes/core/class-user.php:622
6603
  msgid "&mdash; No role for Ultimate Member &mdash;"
6604
  msgstr ""
6605
 
6606
- #: includes/core/class-user.php:837
6607
  msgid "Membership Rejected"
6608
  msgstr ""
6609
 
6610
- #: includes/core/class-user.php:841
6611
  msgid "Membership Inactive"
6612
  msgstr ""
6613
 
@@ -7091,36 +7107,36 @@ msgstr ""
7091
  msgid "Title:"
7092
  msgstr ""
7093
 
7094
- #: templates/members-grid.php:66
7095
  msgid "Edit profile"
7096
  msgstr ""
7097
 
7098
- #: templates/password-change.php:43
7099
  msgid "Change my password"
7100
  msgstr ""
7101
 
7102
- #: templates/password-reset.php:8
7103
  msgid ""
7104
  "We have sent you a password reset link to your e-mail. Please check your "
7105
  "inbox."
7106
  msgstr ""
7107
 
7108
- #: templates/password-reset.php:43
7109
  msgid "Your password reset link has expired. Please request a new link below."
7110
  msgstr ""
7111
 
7112
- #: templates/password-reset.php:45
7113
  msgid ""
7114
  "Your password reset link appears to be invalid. Please request a new link "
7115
  "below."
7116
  msgstr ""
7117
 
7118
- #: templates/password-reset.php:54
7119
  msgid ""
7120
  "To reset your password, please enter your email address or username below"
7121
  msgstr ""
7122
 
7123
- #: templates/password-reset.php:92
7124
  msgid "Reset my password"
7125
  msgstr ""
7126
 
@@ -7129,58 +7145,58 @@ msgstr ""
7129
  msgid "On <a href=\"%1$s\">%2$s</a>"
7130
  msgstr ""
7131
 
7132
- #: templates/profile/comments-single.php:34 templates/profile/comments.php:14
7133
  msgid "load more comments"
7134
  msgstr ""
7135
 
7136
- #: templates/profile/comments.php:23
7137
  msgid "You have not made any comments."
7138
  msgstr ""
7139
 
7140
- #: templates/profile/comments.php:23
7141
  msgid "This user has not made any comments."
7142
  msgstr ""
7143
 
7144
- #: templates/profile/posts-single.php:21
7145
  #, php-format
7146
  msgid "%s ago"
7147
  msgstr ""
7148
 
7149
- #: templates/profile/posts-single.php:24
7150
  msgid "in"
7151
  msgstr ""
7152
 
7153
- #: templates/profile/posts-single.php:30
7154
  msgid "no comments"
7155
  msgstr ""
7156
 
7157
- #: templates/profile/posts-single.php:32
7158
  #, php-format
7159
  msgid "%s comments"
7160
  msgstr ""
7161
 
7162
- #: templates/profile/posts-single.php:34
7163
  msgid "1 comment"
7164
  msgstr ""
7165
 
7166
- #: templates/profile/posts.php:21
7167
  msgid "load more posts"
7168
  msgstr ""
7169
 
7170
- #: templates/profile/posts.php:32
7171
  msgid "You have not created any posts."
7172
  msgstr ""
7173
 
7174
- #: templates/profile/posts.php:32
7175
  msgid "This user has not created any posts."
7176
  msgstr ""
7177
 
7178
- #: templates/searchform.php:4 templates/searchform.php:5
7179
  msgctxt "label"
7180
  msgid "Search for:"
7181
  msgstr ""
7182
 
7183
- #: templates/searchform.php:5
7184
  msgctxt "placeholder"
7185
  msgid "Search &hellip;"
7186
  msgstr ""
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Ultimate Member\n"
4
+ "POT-Creation-Date: 2019-07-22 18:18+0300\n"
5
+ "PO-Revision-Date: 2019-07-22 18:18+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
172
 
173
  #: includes/admin/core/class-admin-columns.php:130
174
  #: includes/admin/core/class-admin-columns.php:150
175
+ #: includes/admin/templates/role/role-edit.php:192
176
  msgid "Title"
177
  msgstr ""
178
 
436
  #. Plugin Name of the plugin/theme
437
  #. Author of the plugin/theme
438
  #: includes/admin/core/class-admin-menu.php:145
439
+ #: includes/core/class-user.php:560
440
  msgid "Ultimate Member"
441
  msgstr ""
442
 
450
  msgstr ""
451
 
452
  #: includes/admin/core/class-admin-menu.php:159
453
+ #: includes/admin/core/list-tables/roles-list-table.php:479
454
  #: includes/admin/core/packages/2.0-beta1/user_roles.php:12
455
  msgid "User Roles"
456
  msgstr ""
1709
  msgstr ""
1710
 
1711
  #: includes/admin/core/class-admin-settings.php:481
1712
+ #: includes/class-config.php:136 includes/class-config.php:761
1713
  #: includes/core/class-account.php:92
1714
  msgid "Account"
1715
  msgstr ""
2457
  msgid "Save Changes"
2458
  msgstr ""
2459
 
2460
+ #: includes/admin/core/class-admin-settings.php:1847
2461
  msgid "Subject Line"
2462
  msgstr ""
2463
 
2464
+ #: includes/admin/core/class-admin-settings.php:1849
2465
  msgid "This is the subject line of the e-mail"
2466
  msgstr ""
2467
 
2468
+ #: includes/admin/core/class-admin-settings.php:1854
2469
  msgid "Message Body"
2470
  msgstr ""
2471
 
2472
+ #: includes/admin/core/class-admin-settings.php:1856
2473
  msgid "This is the content of the e-mail"
2474
  msgstr ""
2475
 
2476
+ #: includes/admin/core/class-admin-settings.php:1906
2477
+ #: includes/admin/core/class-admin-settings.php:2016
2478
  #, php-format
2479
  msgid ""
2480
  "Your license key expired on %s. Please <a href=\"%s\" target=\"_blank"
2481
  "\">renew your license key</a>."
2482
  msgstr ""
2483
 
2484
+ #: includes/admin/core/class-admin-settings.php:1919
2485
+ #: includes/admin/core/class-admin-settings.php:2029
2486
  #, php-format
2487
  msgid ""
2488
  "Your license key has been disabled. Please <a href=\"%s\" target=\"_blank"
2489
  "\">contact support</a> for more information."
2490
  msgstr ""
2491
 
2492
+ #: includes/admin/core/class-admin-settings.php:1931
2493
+ #: includes/admin/core/class-admin-settings.php:2041
2494
  #, php-format
2495
  msgid ""
2496
  "Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
2497
  "page</a> and verify it."
2498
  msgstr ""
2499
 
2500
+ #: includes/admin/core/class-admin-settings.php:1944
2501
+ #: includes/admin/core/class-admin-settings.php:2054
2502
  #, php-format
2503
  msgid ""
2504
  "Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank"
2505
  "\">visit your account page</a> to manage your license key URLs."
2506
  msgstr ""
2507
 
2508
+ #: includes/admin/core/class-admin-settings.php:1956
2509
+ #: includes/admin/core/class-admin-settings.php:2066
2510
  #, php-format
2511
  msgid "This appears to be an invalid license key for %s."
2512
  msgstr ""
2513
 
2514
+ #: includes/admin/core/class-admin-settings.php:1965
2515
+ #: includes/admin/core/class-admin-settings.php:2075
2516
  #, php-format
2517
  msgid ""
2518
  "Your license key has reached its activation limit. <a href=\"%s\">View "
2519
  "possible upgrades</a> now."
2520
  msgstr ""
2521
 
2522
+ #: includes/admin/core/class-admin-settings.php:1974
2523
+ #: includes/admin/core/class-admin-settings.php:2084
2524
  msgid ""
2525
  "The key you entered belongs to a bundle, please use the product specific "
2526
  "license key."
2527
  msgstr ""
2528
 
2529
+ #: includes/admin/core/class-admin-settings.php:1982
2530
+ #: includes/admin/core/class-admin-settings.php:1990
2531
+ #: includes/admin/core/class-admin-settings.php:2002
2532
  msgid "unknown_error"
2533
  msgstr ""
2534
 
2535
+ #: includes/admin/core/class-admin-settings.php:1983
2536
+ #: includes/admin/core/class-admin-settings.php:1991
2537
  #, php-format
2538
  msgid ""
2539
  "There was an error with this license key: %s. Please <a href=\"%s\">contact "
2540
  "our support team</a>."
2541
  msgstr ""
2542
 
2543
+ #: includes/admin/core/class-admin-settings.php:2004
2544
+ #, php-format
2545
+ msgid ""
2546
+ "There was an error with this license key: %s%s. Please <a href=\"%s"
2547
+ "\">contact our support team</a>."
2548
+ msgstr ""
2549
+
2550
+ #: includes/admin/core/class-admin-settings.php:2099
2551
  msgid "License key never expires."
2552
  msgstr ""
2553
 
2554
+ #: includes/admin/core/class-admin-settings.php:2106
2555
  #, php-format
2556
  msgid ""
2557
  "Your license key expires soon! It expires on %s. <a href=\"%s\" target="
2558
  "\"_blank\">Renew your license key</a>."
2559
  msgstr ""
2560
 
2561
+ #: includes/admin/core/class-admin-settings.php:2116
2562
  #, php-format
2563
  msgid "Your license key expires on %s."
2564
  msgstr ""
2565
 
2566
+ #: includes/admin/core/class-admin-settings.php:2134
2567
  #, php-format
2568
  msgid "To receive updates, please enter your valid %s license key."
2569
  msgstr ""
2570
 
2571
+ #: includes/admin/core/class-admin-settings.php:2156
2572
  msgid "Clear License"
2573
  msgstr ""
2574
 
2575
+ #: includes/admin/core/class-admin-settings.php:2158
2576
  msgid "Activate"
2577
  msgstr ""
2578
 
2579
+ #: includes/admin/core/class-admin-settings.php:2160
2580
  msgid "Re-Activate"
2581
  msgstr ""
2582
 
2583
+ #: includes/admin/core/class-admin-settings.php:2212
2584
  msgid ""
2585
  "To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C "
2586
  "(Mac)."
2683
  msgid "Reactivate"
2684
  msgstr ""
2685
 
2686
+ #: includes/admin/core/class-admin-users.php:203 templates/account.php:43
2687
+ #: templates/account.php:84
2688
  msgid "View profile"
2689
  msgstr ""
2690
 
2694
 
2695
  #: includes/admin/core/class-admin-users.php:312
2696
  #: includes/admin/templates/dashboard/users.php:11
2697
+ #: includes/core/class-user.php:824
2698
  msgid "Approved"
2699
  msgstr ""
2700
 
2808
  msgid "Priority"
2809
  msgstr ""
2810
 
2811
+ #: includes/admin/core/list-tables/roles-list-table.php:481
2812
  #: includes/admin/core/packages/2.0-beta1/user_roles.php:14
2813
+ #: includes/admin/templates/role/role-edit.php:155
2814
  #: includes/core/class-common.php:56 includes/core/class-common.php:86
2815
  msgid "Add New"
2816
  msgstr ""
2817
 
2818
+ #: includes/admin/core/list-tables/roles-list-table.php:488
2819
  msgid "User Role <strong>Deleted</strong> Successfully."
2820
  msgstr ""
2821
 
2998
  msgid "Upgrade predefined metafields..."
2999
  msgstr ""
3000
 
3001
+ #: includes/admin/core/packages/2.0.54/functions.php:13
3002
+ msgid "Roles was upgraded successfully"
3003
+ msgstr ""
3004
+
3005
+ #: includes/admin/core/packages/2.0.54/init.php:7
3006
+ msgid "Upgrade user roles..."
3007
+ msgstr ""
3008
+
3009
  #: includes/admin/templates/dashboard/cache.php:9
3010
  msgid "Run this task from time to time to keep your DB clean."
3011
  msgstr ""
3047
  msgstr ""
3048
 
3049
  #: includes/admin/templates/dashboard/users.php:27
3050
+ #: includes/core/class-user.php:832
3051
  msgid "Pending Review"
3052
  msgstr ""
3053
 
3054
  #: includes/admin/templates/dashboard/users.php:32
3055
+ #: includes/core/class-user.php:828
3056
  msgid "Awaiting E-mail Confirmation"
3057
  msgstr ""
3058
 
3554
 
3555
  #: includes/admin/templates/form/register_gdpr.php:55
3556
  #: includes/admin/templates/form/register_gdpr.php:56
3557
+ #: templates/gdpr-register.php:27
3558
  msgid "Please confirm that you agree to our privacy policy"
3559
  msgstr ""
3560
 
3564
 
3565
  #: includes/admin/templates/form/register_gdpr.php:63
3566
  #: includes/admin/templates/form/register_gdpr.php:64
3567
+ #: templates/gdpr-register.php:40
3568
  msgid "Please confirm your acceptance of our privacy policy"
3569
  msgstr ""
3570
 
3965
  msgid "Title is empty!"
3966
  msgstr ""
3967
 
3968
+ #: includes/admin/templates/role/role-edit.php:112
3969
  msgid "Role already exists!"
3970
  msgstr ""
3971
 
3972
+ #: includes/admin/templates/role/role-edit.php:153
3973
  msgid "Add New Role"
3974
  msgstr ""
3975
 
3976
+ #: includes/admin/templates/role/role-edit.php:153
3977
  msgid "Edit Role"
3978
  msgstr ""
3979
 
3980
+ #: includes/admin/templates/role/role-edit.php:162
3981
  msgid "User Role <strong>Added</strong> Successfully."
3982
  msgstr ""
3983
 
3984
+ #: includes/admin/templates/role/role-edit.php:165
3985
  msgid "User Role <strong>Updated</strong> Successfully."
3986
  msgstr ""
3987
 
3988
+ #: includes/admin/templates/role/role-edit.php:193
3989
  msgid "Enter Title Here"
3990
  msgstr ""
3991
 
3998
  msgid "Check All"
3999
  msgstr ""
4000
 
4001
+ #: includes/class-config.php:131 includes/class-config.php:756
4002
  msgid "User"
4003
  msgstr ""
4004
 
4005
  #: includes/class-config.php:132 includes/class-config.php:238
4006
+ #: includes/class-config.php:244 includes/class-config.php:757
4007
  msgid "Login"
4008
  msgstr ""
4009
 
4010
  #: includes/class-config.php:133 includes/class-config.php:236
4011
+ #: includes/class-config.php:248 includes/class-config.php:758
4012
  msgid "Register"
4013
  msgstr ""
4014
 
4015
+ #: includes/class-config.php:134 includes/class-config.php:759
4016
  msgid "Members"
4017
  msgstr ""
4018
 
4019
+ #: includes/class-config.php:135 includes/class-config.php:760
4020
  #: includes/core/um-actions-profile.php:1165
4021
  #: includes/core/um-actions-user.php:15
4022
  msgid "Logout"
4023
  msgstr ""
4024
 
4025
+ #: includes/class-config.php:137 includes/class-config.php:762
4026
  msgid "Password Reset"
4027
  msgstr ""
4028
 
4285
  msgid "You must add a shortcode to the content area"
4286
  msgstr ""
4287
 
4288
+ #: includes/core/class-builtin.php:663 includes/core/class-user.php:1551
4289
  msgid "Only me"
4290
  msgstr ""
4291
 
6353
  msgid "Add translation to %s"
6354
  msgstr ""
6355
 
6356
+ #: includes/core/class-fields.php:1207 templates/message.php:7
6357
  #, php-format
6358
  msgid "%s"
6359
  msgstr ""
6477
  msgstr ""
6478
 
6479
  #: includes/core/class-mail.php:612 includes/core/class-password.php:701
6480
+ #: includes/core/class-profile.php:463
6481
  msgid "Your set password"
6482
  msgstr ""
6483
 
6611
  msgid "Maximum file size allowed: %s"
6612
  msgstr ""
6613
 
6614
+ #: includes/core/class-user.php:618
6615
  msgid "Ultimate Member Role"
6616
  msgstr ""
6617
 
6618
+ #: includes/core/class-user.php:621
6619
  msgid "&mdash; No role for Ultimate Member &mdash;"
6620
  msgstr ""
6621
 
6622
+ #: includes/core/class-user.php:836
6623
  msgid "Membership Rejected"
6624
  msgstr ""
6625
 
6626
+ #: includes/core/class-user.php:840
6627
  msgid "Membership Inactive"
6628
  msgstr ""
6629
 
7107
  msgid "Title:"
7108
  msgstr ""
7109
 
7110
+ #: templates/members-grid.php:83
7111
  msgid "Edit profile"
7112
  msgstr ""
7113
 
7114
+ #: templates/password-change.php:45
7115
  msgid "Change my password"
7116
  msgstr ""
7117
 
7118
+ #: templates/password-reset.php:10
7119
  msgid ""
7120
  "We have sent you a password reset link to your e-mail. Please check your "
7121
  "inbox."
7122
  msgstr ""
7123
 
7124
+ #: templates/password-reset.php:45
7125
  msgid "Your password reset link has expired. Please request a new link below."
7126
  msgstr ""
7127
 
7128
+ #: templates/password-reset.php:47
7129
  msgid ""
7130
  "Your password reset link appears to be invalid. Please request a new link "
7131
  "below."
7132
  msgstr ""
7133
 
7134
+ #: templates/password-reset.php:56
7135
  msgid ""
7136
  "To reset your password, please enter your email address or username below"
7137
  msgstr ""
7138
 
7139
+ #: templates/password-reset.php:94
7140
  msgid "Reset my password"
7141
  msgstr ""
7142
 
7145
  msgid "On <a href=\"%1$s\">%2$s</a>"
7146
  msgstr ""
7147
 
7148
+ #: templates/profile/comments-single.php:34 templates/profile/comments.php:17
7149
  msgid "load more comments"
7150
  msgstr ""
7151
 
7152
+ #: templates/profile/comments.php:28
7153
  msgid "You have not made any comments."
7154
  msgstr ""
7155
 
7156
+ #: templates/profile/comments.php:28
7157
  msgid "This user has not made any comments."
7158
  msgstr ""
7159
 
7160
+ #: templates/profile/posts-single.php:23
7161
  #, php-format
7162
  msgid "%s ago"
7163
  msgstr ""
7164
 
7165
+ #: templates/profile/posts-single.php:26
7166
  msgid "in"
7167
  msgstr ""
7168
 
7169
+ #: templates/profile/posts-single.php:32
7170
  msgid "no comments"
7171
  msgstr ""
7172
 
7173
+ #: templates/profile/posts-single.php:34
7174
  #, php-format
7175
  msgid "%s comments"
7176
  msgstr ""
7177
 
7178
+ #: templates/profile/posts-single.php:36
7179
  msgid "1 comment"
7180
  msgstr ""
7181
 
7182
+ #: templates/profile/posts.php:23
7183
  msgid "load more posts"
7184
  msgstr ""
7185
 
7186
+ #: templates/profile/posts.php:34
7187
  msgid "You have not created any posts."
7188
  msgstr ""
7189
 
7190
+ #: templates/profile/posts.php:34
7191
  msgid "This user has not created any posts."
7192
  msgstr ""
7193
 
7194
+ #: templates/searchform.php:6 templates/searchform.php:7
7195
  msgctxt "label"
7196
  msgid "Search for:"
7197
  msgstr ""
7198
 
7199
+ #: templates/searchform.php:7
7200
  msgctxt "placeholder"
7201
  msgid "Search &hellip;"
7202
  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.53
10
  License: GNU Version 2 or Any Later Version
11
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
12
 
@@ -41,6 +41,7 @@ Read about all of the plugin's features at [Ultimate Member](https://ultimatemem
41
 
42
  Ultimate Member has a range of extensions that allow you to extend the power of the plugin. You can purchase all of these extensions at a significant discount with our [All Access Pass](https://ultimatemember.com/pricing/) or you can purchase extensions individually.
43
 
 
44
  * [Private Content](https://ultimatemember.com/extensions/private-content/) - Display private content to logged in users that only they can access
45
  * [Instagram](https://ultimatemember.com/extensions/instagram/) - Allow users to show their Instagram photos on their profile
46
  * [User Tags](https://ultimatemember.com/extensions/user-tags/) - Lets you add a user tag system to your website
@@ -53,7 +54,7 @@ Ultimate Member has a range of extensions that allow you to extend the power of
53
  * [bbPress](https://ultimatemember.com/extensions/bbpress/) - With the bbPress extension you can beautifully integrate Ultimate Member with bbPress
54
  * [MailChimp](https://ultimatemember.com/extensions/mailchimp/) - Allow users to subscribe to your MailChimp lists when they signup on your site and sync user meta to MailChimp
55
  * [User Reviews](https://ultimatemember.com/extensions/user-reviews/) - Allow users to rate & review each other using a 5 star rate/review system
56
- * [Verified Users](https://ultimatemember.com/extensions/verified-users/) - Add a user verficiation system to your site so user accounts can be verified
57
  * [myCRED](https://ultimatemember.com/extensions/mycred/) - With the myCRED extension you can integrate Ultimate Member with the popular myCRED points management plugin
58
  * [Notices](https://ultimatemember.com/extensions/notices/) - Alert users to important information using conditional notices
59
  * [Profile Completeness](https://ultimatemember.com/extensions/profile-completeness/) - Encourage or force users to complete their profiles with the profile completeness extension
@@ -63,6 +64,7 @@ Ultimate Member has a range of extensions that allow you to extend the power of
63
 
64
  = Free Extensions =
65
 
 
66
  * [Terms & Conditions](https://ultimatemember.com/extensions/terms-conditions/) - Add a terms and condition checkbox to your registration forms & require users to agree to your T&Cs before registering on your site.
67
  * [Google reCAPTCHA](https://ultimatemember.com/extensions/google-recaptcha/) - Stop bots on your registration & login forms with Google reCAPTCHA
68
  * [Online Users](https://ultimatemember.com/extensions/online-users/) - Display what users are online with this extension
@@ -137,6 +139,16 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
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.53: July 16, 2019 =
141
 
142
  * 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.54
10
  License: GNU Version 2 or Any Later Version
11
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
12
 
41
 
42
  Ultimate Member has a range of extensions that allow you to extend the power of the plugin. You can purchase all of these extensions at a significant discount with our [All Access Pass](https://ultimatemember.com/pricing/) or you can purchase extensions individually.
43
 
44
+ * [User Bookmarks](https://ultimatemember.com/extensions/user-bookmarks/) - Allow users to bookmark content from your website
45
  * [Private Content](https://ultimatemember.com/extensions/private-content/) - Display private content to logged in users that only they can access
46
  * [Instagram](https://ultimatemember.com/extensions/instagram/) - Allow users to show their Instagram photos on their profile
47
  * [User Tags](https://ultimatemember.com/extensions/user-tags/) - Lets you add a user tag system to your website
54
  * [bbPress](https://ultimatemember.com/extensions/bbpress/) - With the bbPress extension you can beautifully integrate Ultimate Member with bbPress
55
  * [MailChimp](https://ultimatemember.com/extensions/mailchimp/) - Allow users to subscribe to your MailChimp lists when they signup on your site and sync user meta to MailChimp
56
  * [User Reviews](https://ultimatemember.com/extensions/user-reviews/) - Allow users to rate & review each other using a 5 star rate/review system
57
+ * [Verified Users](https://ultimatemember.com/extensions/verified-users/) - Add a user verification system to your site so user accounts can be verified
58
  * [myCRED](https://ultimatemember.com/extensions/mycred/) - With the myCRED extension you can integrate Ultimate Member with the popular myCRED points management plugin
59
  * [Notices](https://ultimatemember.com/extensions/notices/) - Alert users to important information using conditional notices
60
  * [Profile Completeness](https://ultimatemember.com/extensions/profile-completeness/) - Encourage or force users to complete their profiles with the profile completeness extension
64
 
65
  = Free Extensions =
66
 
67
+ * [ForumWP](https://ultimatemember.com/extensions/forumwp/) - This free extension integrates Ultimate Member with the forum plugin [ForumWP](https://forumwpplugin.com).
68
  * [Terms & Conditions](https://ultimatemember.com/extensions/terms-conditions/) - Add a terms and condition checkbox to your registration forms & require users to agree to your T&Cs before registering on your site.
69
  * [Google reCAPTCHA](https://ultimatemember.com/extensions/google-recaptcha/) - Stop bots on your registration & login forms with Google reCAPTCHA
70
  * [Online Users](https://ultimatemember.com/extensions/online-users/) - Display what users are online with this extension
139
 
140
  = 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 =
141
 
142
+ = 2.0.54: July 22, 2019 =
143
+
144
+ * Enhancements:
145
+ - Added security fixes (XSS)
146
+
147
+ * Bugfixes:
148
+ - Fixed update process for not UM custom role
149
+ - Fixed extensions licenses validation handler
150
+ - Fixed profile tabs handlers
151
+
152
  = 2.0.53: July 16, 2019 =
153
 
154
  * Enhancements:
templates/account.php CHANGED
@@ -1,4 +1,6 @@
1
- <div class="um <?php echo $this->get_class( $mode ); ?> um-<?php echo esc_attr( $form_id ); ?>">
 
 
2
 
3
  <div class="um-form">
4
 
@@ -26,16 +28,20 @@
26
  */
27
  do_action( 'um_account_page_hidden_fields', $args ); ?>
28
 
29
- <div class="um-account-meta radius-<?php echo UM()->options()->get( 'profile_photocorner' ); ?> uimob340-show uimob500-show">
30
 
31
  <div class="um-account-meta-img">
32
- <a href="<?php echo um_user_profile_url(); ?>"><?php echo get_avatar( um_user('ID'), 120 ); ?></a>
33
  </div>
34
 
35
  <div class="um-account-name">
36
- <a href="<?php echo um_user_profile_url(); ?>"><?php echo um_user( 'display_name' ); ?></a>
 
 
37
  <div class="um-account-profile-link">
38
- <a href="<?php echo um_user_profile_url(); ?>" class="um-link"><?php _e( 'View profile', 'ultimate-member' ); ?></a>
 
 
39
  </div>
40
  </div>
41
 
@@ -43,23 +49,41 @@
43
 
44
  <div class="um-account-side uimob340-hide uimob500-hide">
45
 
46
- <div class="um-account-meta radius-<?php echo UM()->options()->get('profile_photocorner'); ?>">
47
 
48
- <div class="um-account-meta-img uimob800-hide"><a href="<?php echo um_user_profile_url(); ?>"><?php echo get_avatar( um_user('ID'), 120 ); ?></a></div>
 
 
 
 
49
 
50
  <?php if ( UM()->mobile()->isMobile() ) { ?>
51
 
52
- <div class="um-account-meta-img-b uimob800-show" title="<?php echo um_user( 'display_name' ); ?>"><a href="<?php echo um_user_profile_url(); ?>"><?php echo get_avatar( um_user('ID'), 120 ); ?></a></div>
 
 
 
 
53
 
54
  <?php } else { ?>
55
 
56
- <div class="um-account-meta-img-b uimob800-show um-tip-w" title="<?php echo um_user( 'display_name' ); ?>"><a href="<?php echo um_user_profile_url(); ?>"><?php echo get_avatar( um_user('ID'), 120 ); ?></a></div>
 
 
 
 
57
 
58
  <?php } ?>
59
 
60
  <div class="um-account-name uimob800-hide">
61
- <a href="<?php echo um_user_profile_url(); ?>"><?php echo um_user( 'display_name', 'html' ); ?></a>
62
- <div class="um-account-profile-link"><a href="<?php echo um_user_profile_url(); ?>" class="um-link"><?php _e( 'View profile', 'ultimate-member' ); ?></a></div>
 
 
 
 
 
 
63
  </div>
64
 
65
  </div>
@@ -69,15 +93,21 @@
69
  if ( isset( $info['custom'] ) || UM()->options()->get( "account_tab_{$id}" ) == 1 || $id == 'general' ) { ?>
70
 
71
  <li>
72
- <a data-tab="<?php echo $id ?>" href="<?php echo UM()->account()->tab_link( $id ); ?>" class="um-account-link <?php if ( $id == UM()->account()->current_tab ) echo 'current'; ?>">
73
  <?php if ( UM()->mobile()->isMobile() ) { ?>
74
- <span class="um-account-icontip uimob800-show" title="<?php echo $info['title']; ?>"><i class="<?php echo $info['icon']; ?>"></i></span>
 
 
75
  <?php } else { ?>
76
- <span class="um-account-icontip uimob800-show um-tip-w" title="<?php echo $info['title']; ?>"><i class="<?php echo $info['icon']; ?>"></i></span>
 
 
77
  <?php } ?>
78
 
79
- <span class="um-account-icon uimob800-hide"><i class="<?php echo $info['icon']; ?>"></i></span>
80
- <span class="um-account-title uimob800-hide"><?php echo $info['title']; ?></span>
 
 
81
  <span class="um-account-arrow uimob800-hide">
82
  <i class="<?php if ( is_rtl() ) { ?>um-faicon-angle-left<?php } else { ?>um-faicon-angle-right<?php } ?>"></i>
83
  </span>
@@ -89,7 +119,7 @@
89
  </ul>
90
  </div>
91
 
92
- <div class="um-account-main" data-current_tab="<?php echo UM()->account()->current_tab; ?>">
93
 
94
  <?php
95
  /**
@@ -112,7 +142,7 @@
112
  * ?>
113
  */
114
  do_action( 'um_before_form', $args );
115
-
116
  foreach ( UM()->account()->tabs as $id => $info ) {
117
 
118
  $current_tab = UM()->account()->current_tab;
@@ -120,14 +150,14 @@
120
  if ( isset( $info['custom'] ) || UM()->options()->get( 'account_tab_' . $id ) == 1 || $id == 'general' ) { ?>
121
 
122
  <div class="um-account-nav uimob340-show uimob500-show">
123
- <a href="#" data-tab="<?php echo $id; ?>" class="<?php if ( $id == $current_tab ) echo 'current'; ?>">
124
- <?php echo $info['title']; ?>
125
- <span class="ico"><i class="<?php echo $info['icon']; ?>"></i></span>
126
  <span class="arr"><i class="um-faicon-angle-down"></i></span>
127
  </a>
128
  </div>
129
 
130
- <div class="um-account-tab um-account-tab-<?php echo $id ?>" data-tab="<?php echo $id ?>">
131
  <?php $info['with_header'] = true;
132
  UM()->account()->render_account_tab( $id, $info, $args ); ?>
133
  </div>
@@ -158,7 +188,7 @@
158
  * ?>
159
  */
160
  do_action( 'um_after_account_page_load' ); ?>
161
-
162
  </div>
163
 
164
  </div>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
 
5
  <div class="um-form">
6
 
28
  */
29
  do_action( 'um_account_page_hidden_fields', $args ); ?>
30
 
31
+ <div class="um-account-meta radius-<?php echo esc_attr( UM()->options()->get( 'profile_photocorner' ) ); ?> uimob340-show uimob500-show">
32
 
33
  <div class="um-account-meta-img">
34
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>"><?php echo get_avatar( um_user('ID'), 120 ); ?></a>
35
  </div>
36
 
37
  <div class="um-account-name">
38
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>">
39
+ <?php echo esc_html( um_user( 'display_name' ) ); ?>
40
+ </a>
41
  <div class="um-account-profile-link">
42
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>" class="um-link">
43
+ <?php _e( 'View profile', 'ultimate-member' ); ?>
44
+ </a>
45
  </div>
46
  </div>
47
 
49
 
50
  <div class="um-account-side uimob340-hide uimob500-hide">
51
 
52
+ <div class="um-account-meta radius-<?php echo esc_attr( UM()->options()->get('profile_photocorner') ); ?>">
53
 
54
+ <div class="um-account-meta-img uimob800-hide">
55
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>">
56
+ <?php echo get_avatar( um_user('ID'), 120 ); ?>
57
+ </a>
58
+ </div>
59
 
60
  <?php if ( UM()->mobile()->isMobile() ) { ?>
61
 
62
+ <div class="um-account-meta-img-b uimob800-show" title="<?php echo esc_attr( um_user( 'display_name' ) ); ?>">
63
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>">
64
+ <?php echo get_avatar( um_user('ID'), 120 ); ?>
65
+ </a>
66
+ </div>
67
 
68
  <?php } else { ?>
69
 
70
+ <div class="um-account-meta-img-b uimob800-show um-tip-w" title="<?php echo esc_attr( um_user( 'display_name' ) ); ?>">
71
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>">
72
+ <?php echo get_avatar( um_user('ID'), 120 ); ?>
73
+ </a>
74
+ </div>
75
 
76
  <?php } ?>
77
 
78
  <div class="um-account-name uimob800-hide">
79
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>">
80
+ <?php echo um_user( 'display_name', 'html' ); ?>
81
+ </a>
82
+ <div class="um-account-profile-link">
83
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>" class="um-link">
84
+ <?php _e( 'View profile', 'ultimate-member' ); ?>
85
+ </a>
86
+ </div>
87
  </div>
88
 
89
  </div>
93
  if ( isset( $info['custom'] ) || UM()->options()->get( "account_tab_{$id}" ) == 1 || $id == 'general' ) { ?>
94
 
95
  <li>
96
+ <a data-tab="<?php echo esc_attr( $id )?>" href="<?php echo esc_url( UM()->account()->tab_link( $id ) ); ?>" class="um-account-link <?php if ( $id == UM()->account()->current_tab ) echo 'current'; ?>">
97
  <?php if ( UM()->mobile()->isMobile() ) { ?>
98
+ <span class="um-account-icontip uimob800-show" title="<?php echo esc_attr( $info['title'] ); ?>">
99
+ <i class="<?php echo esc_attr( $info['icon'] ); ?>"></i>
100
+ </span>
101
  <?php } else { ?>
102
+ <span class="um-account-icontip uimob800-show um-tip-w" title="<?php echo esc_attr( $info['title'] ); ?>">
103
+ <i class="<?php echo esc_attr( $info['icon'] ); ?>"></i>
104
+ </span>
105
  <?php } ?>
106
 
107
+ <span class="um-account-icon uimob800-hide">
108
+ <i class="<?php echo esc_attr( $info['icon'] ); ?>"></i>
109
+ </span>
110
+ <span class="um-account-title uimob800-hide"><?php echo esc_html( $info['title'] ); ?></span>
111
  <span class="um-account-arrow uimob800-hide">
112
  <i class="<?php if ( is_rtl() ) { ?>um-faicon-angle-left<?php } else { ?>um-faicon-angle-right<?php } ?>"></i>
113
  </span>
119
  </ul>
120
  </div>
121
 
122
+ <div class="um-account-main" data-current_tab="<?php echo esc_attr( UM()->account()->current_tab ); ?>">
123
 
124
  <?php
125
  /**
142
  * ?>
143
  */
144
  do_action( 'um_before_form', $args );
145
+
146
  foreach ( UM()->account()->tabs as $id => $info ) {
147
 
148
  $current_tab = UM()->account()->current_tab;
150
  if ( isset( $info['custom'] ) || UM()->options()->get( 'account_tab_' . $id ) == 1 || $id == 'general' ) { ?>
151
 
152
  <div class="um-account-nav uimob340-show uimob500-show">
153
+ <a href="#" data-tab="<?php echo esc_attr( $id ); ?>" class="<?php if ( $id == $current_tab ) echo 'current'; ?>">
154
+ <?php echo esc_html( $info['title'] ); ?>
155
+ <span class="ico"><i class="<?php echo esc_attr( $info['icon'] ); ?>"></i></span>
156
  <span class="arr"><i class="um-faicon-angle-down"></i></span>
157
  </a>
158
  </div>
159
 
160
+ <div class="um-account-tab um-account-tab-<?php echo esc_attr( $id ); ?>" data-tab="<?php echo esc_attr( $id )?>">
161
  <?php $info['with_header'] = true;
162
  UM()->account()->render_account_tab( $id, $info, $args ); ?>
163
  </div>
188
  * ?>
189
  */
190
  do_action( 'um_after_account_page_load' ); ?>
191
+
192
  </div>
193
 
194
  </div>
templates/gdpr-register.php CHANGED
@@ -1,9 +1,9 @@
1
- <?php ?>
2
 
3
  <!-- This file should primarily consist of HTML with a little bit of PHP. -->
4
  <div class="um-field um-field-type_terms_conditions" data-key="use_terms_conditions_agreement" style="display:block;padding:0;">
5
  <div class="um-field-area">
6
- <div class='um-gdpr-content' style="display:none;">
7
  <?php if ( ! empty( $args['use_gdpr_content_id'] ) ) {
8
  $um_content_query = get_post( $args['use_gdpr_content_id'] );
9
  if ( isset( $um_content_query ) ) {
@@ -11,22 +11,25 @@
11
  }
12
  } ?>
13
  </div>
14
- <a href="javascript:;" class="um-toggle-gdpr" data-toggle-state="hidden"
15
- data-toggle-show="<?php echo ! empty( $args['use_gdpr_toggle_show'] ) ? $args['use_gdpr_toggle_show'] : __( 'Show privacy policy', 'ultimate-member' ); ?>"
16
- data-toggle-hide="<?php echo ! empty( $args['use_gdpr_toggle_hide'] ) ? $args['use_gdpr_toggle_hide'] : __( 'Hide privacy policy', 'ultimate-member' ); ?>">
17
- <?php echo ! empty( $args['use_gdpr_toggle_show'] ) ? $args['use_gdpr_toggle_show'] : __( 'Show privacy policy', 'ultimate-member' ); ?>
 
 
 
 
 
18
  </a>
19
  </div>
20
  <div class="um-field-area">
21
 
 
 
22
  <label class="um-field-checkbox">
23
  <input type="checkbox" name="use_gdpr_agreement" value="1">
24
- <span class="um-field-checkbox-state">
25
- <i class="um-icon-android-checkbox-outline-blank"></i>
26
- </span>
27
- <span class="um-field-checkbox-option">
28
- <?php echo ! empty( $args['use_gdpr_agreement'] ) ? $args['use_gdpr_agreement'] : __( 'Please confirm that you agree to our privacy policy', 'ultimate-member' ); ?>
29
- </span>
30
  </label>
31
  <div class="um-clear"></div>
32
 
@@ -34,10 +37,13 @@
34
 
35
  if ( isset( $errors['use_gdpr_agreement'] ) ) {
36
 
37
- $error_message = ! empty( $args['use_gdpr_error_text'] ) ? $args['use_gdpr_error_text'] : __( 'Please confirm your acceptance of our privacy policy', 'ultimate-member' );
38
 
39
- echo '<p class="um-notice err"><i class="um-icon-ios-close-empty" onclick="jQuery(this).parent().fadeOut();"></i>' . $error_message . '</p><br/>';
40
- } ?>
 
 
 
41
 
42
  <div class="um-clear"></div>
43
  </div>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
 
3
  <!-- This file should primarily consist of HTML with a little bit of PHP. -->
4
  <div class="um-field um-field-type_terms_conditions" data-key="use_terms_conditions_agreement" style="display:block;padding:0;">
5
  <div class="um-field-area">
6
+ <div class="um-gdpr-content" style="display:none;">
7
  <?php if ( ! empty( $args['use_gdpr_content_id'] ) ) {
8
  $um_content_query = get_post( $args['use_gdpr_content_id'] );
9
  if ( isset( $um_content_query ) ) {
11
  }
12
  } ?>
13
  </div>
14
+
15
+ <?php $toggle_show = ! empty( $args['use_gdpr_toggle_show'] ) ? $args['use_gdpr_toggle_show'] : __( 'Show privacy policy', 'ultimate-member' );
16
+ $toggle_hide = ! empty( $args['use_gdpr_toggle_hide'] ) ? $args['use_gdpr_toggle_hide'] : __( 'Hide privacy policy', 'ultimate-member' );
17
+ $toggle_title = ! empty( $args['use_gdpr_toggle_show'] ) ? $args['use_gdpr_toggle_show'] : __( 'Show privacy policy', 'ultimate-member' ); ?>
18
+
19
+ <a href="javascript:void(0);" class="um-toggle-gdpr" data-toggle-state="hidden"
20
+ data-toggle-show="<?php echo esc_attr( $toggle_show ); ?>"
21
+ data-toggle-hide="<?php echo esc_attr( $toggle_hide ); ?>">
22
+ <?php echo esc_html( $toggle_title ); ?>
23
  </a>
24
  </div>
25
  <div class="um-field-area">
26
 
27
+ <?php $confirm = ! empty( $args['use_gdpr_agreement'] ) ? $args['use_gdpr_agreement'] : __( 'Please confirm that you agree to our privacy policy', 'ultimate-member' ); ?>
28
+
29
  <label class="um-field-checkbox">
30
  <input type="checkbox" name="use_gdpr_agreement" value="1">
31
+ <span class="um-field-checkbox-state"><i class="um-icon-android-checkbox-outline-blank"></i></span>
32
+ <span class="um-field-checkbox-option"><?php echo esc_html( $confirm ); ?></span>
 
 
 
 
33
  </label>
34
  <div class="um-clear"></div>
35
 
37
 
38
  if ( isset( $errors['use_gdpr_agreement'] ) ) {
39
 
40
+ $error_message = ! empty( $args['use_gdpr_error_text'] ) ? $args['use_gdpr_error_text'] : __( 'Please confirm your acceptance of our privacy policy', 'ultimate-member' ); ?>
41
 
42
+ <p class="um-notice err">
43
+ <i class="um-icon-ios-close-empty" onclick="jQuery(this).parent().fadeOut();"></i><?php echo esc_html( $error_message ) ?>
44
+ </p>
45
+ <br/>
46
+ <?php } ?>
47
 
48
  <div class="um-clear"></div>
49
  </div>
templates/login-to-view.php CHANGED
@@ -1,5 +1,7 @@
 
 
1
  <div class="um-locked-content">
2
 
3
- <div class="um-locked-content-msg"><?php echo $lock_text; ?></div>
4
 
5
  </div>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
  <div class="um-locked-content">
4
 
5
+ <div class="um-locked-content-msg"><?php echo esc_html( $lock_text ); ?></div>
6
 
7
  </div>
templates/login.php CHANGED
@@ -1,136 +1,138 @@
1
- <div class="um <?php echo $this->get_class( $mode ); ?> um-<?php echo esc_attr( $form_id ); ?>">
 
 
2
 
3
  <div class="um-form">
4
-
5
  <form method="post" action="" autocomplete="off">
6
-
7
- <?php
8
- /**
9
- * UM hook
10
- *
11
- * @type action
12
- * @title um_before_form
13
- * @description Some actions before login form
14
- * @input_vars
15
- * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
16
- * @change_log
17
- * ["Since: 2.0"]
18
- * @usage add_action( 'um_before_form', 'function_name', 10, 1 );
19
- * @example
20
- * <?php
21
- * add_action( 'um_before_form', 'my_before_form', 10, 1 );
22
- * function my_before_form( $args ) {
23
- * // your code here
24
- * }
25
- * ?>
26
- */
27
- do_action( "um_before_form", $args );
28
 
29
- /**
30
- * UM hook
31
- *
32
- * @type action
33
- * @title um_before_{$mode}_fields
34
- * @description Some actions before login form fields
35
- * @input_vars
36
- * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
37
- * @change_log
38
- * ["Since: 2.0"]
39
- * @usage add_action( 'um_before_{$mode}_fields', 'function_name', 10, 1 );
40
- * @example
41
- * <?php
42
- * add_action( 'um_before_{$mode}_fields', 'my_before_fields', 10, 1 );
43
- * function my_before_form( $args ) {
44
- * // your code here
45
- * }
46
- * ?>
47
- */
48
- do_action( "um_before_{$mode}_fields", $args );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
- /**
51
- * UM hook
52
- *
53
- * @type action
54
- * @title um_main_{$mode}_fields
55
- * @description Some actions before login form fields
56
- * @input_vars
57
- * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
58
- * @change_log
59
- * ["Since: 2.0"]
60
- * @usage add_action( 'um_before_{$mode}_fields', 'function_name', 10, 1 );
61
- * @example
62
- * <?php
63
- * add_action( 'um_before_{$mode}_fields', 'my_before_fields', 10, 1 );
64
- * function my_before_form( $args ) {
65
- * // your code here
66
- * }
67
- * ?>
68
- */
69
- do_action( "um_main_{$mode}_fields", $args );
70
 
71
- /**
72
- * UM hook
73
- *
74
- * @type action
75
- * @title um_after_form_fields
76
- * @description Some actions after login form fields
77
- * @input_vars
78
- * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
79
- * @change_log
80
- * ["Since: 2.0"]
81
- * @usage add_action( 'um_after_form_fields', 'function_name', 10, 1 );
82
- * @example
83
- * <?php
84
- * add_action( 'um_after_form_fields', 'my_after_form_fields', 10, 1 );
85
- * function my_after_form_fields( $args ) {
86
- * // your code here
87
- * }
88
- * ?>
89
- */
90
- do_action( 'um_after_form_fields', $args );
91
 
92
- /**
93
- * UM hook
94
- *
95
- * @type action
96
- * @title um_after_{$mode}_fields
97
- * @description Some actions after login form fields
98
- * @input_vars
99
- * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
100
- * @change_log
101
- * ["Since: 2.0"]
102
- * @usage add_action( 'um_after_{$mode}_fields', 'function_name', 10, 1 );
103
- * @example
104
- * <?php
105
- * add_action( 'um_after_{$mode}_fields', 'my_after_form_fields', 10, 1 );
106
- * function my_after_form_fields( $args ) {
107
- * // your code here
108
- * }
109
- * ?>
110
- */
111
- do_action( "um_after_{$mode}_fields", $args );
112
 
113
- /**
114
- * UM hook
115
- *
116
- * @type action
117
- * @title um_after_form
118
- * @description Some actions after login form fields
119
- * @input_vars
120
- * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
121
- * @change_log
122
- * ["Since: 2.0"]
123
- * @usage add_action( 'um_after_form', 'function_name', 10, 1 );
124
- * @example
125
- * <?php
126
- * add_action( 'um_after_form', 'my_after_form', 10, 1 );
127
- * function my_after_form( $args ) {
128
- * // your code here
129
- * }
130
- * ?>
131
- */
132
- do_action( "um_after_form", $args ); ?>
133
-
134
  </form>
135
 
136
  </div>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
 
5
  <div class="um-form">
6
+
7
  <form method="post" action="" autocomplete="off">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
+ <?php
10
+ /**
11
+ * UM hook
12
+ *
13
+ * @type action
14
+ * @title um_before_form
15
+ * @description Some actions before login form
16
+ * @input_vars
17
+ * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
18
+ * @change_log
19
+ * ["Since: 2.0"]
20
+ * @usage add_action( 'um_before_form', 'function_name', 10, 1 );
21
+ * @example
22
+ * <?php
23
+ * add_action( 'um_before_form', 'my_before_form', 10, 1 );
24
+ * function my_before_form( $args ) {
25
+ * // your code here
26
+ * }
27
+ * ?>
28
+ */
29
+ do_action( "um_before_form", $args );
30
+
31
+ /**
32
+ * UM hook
33
+ *
34
+ * @type action
35
+ * @title um_before_{$mode}_fields
36
+ * @description Some actions before login form fields
37
+ * @input_vars
38
+ * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
39
+ * @change_log
40
+ * ["Since: 2.0"]
41
+ * @usage add_action( 'um_before_{$mode}_fields', 'function_name', 10, 1 );
42
+ * @example
43
+ * <?php
44
+ * add_action( 'um_before_{$mode}_fields', 'my_before_fields', 10, 1 );
45
+ * function my_before_form( $args ) {
46
+ * // your code here
47
+ * }
48
+ * ?>
49
+ */
50
+ do_action( "um_before_{$mode}_fields", $args );
51
+
52
+ /**
53
+ * UM hook
54
+ *
55
+ * @type action
56
+ * @title um_main_{$mode}_fields
57
+ * @description Some actions before login form fields
58
+ * @input_vars
59
+ * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
60
+ * @change_log
61
+ * ["Since: 2.0"]
62
+ * @usage add_action( 'um_before_{$mode}_fields', 'function_name', 10, 1 );
63
+ * @example
64
+ * <?php
65
+ * add_action( 'um_before_{$mode}_fields', 'my_before_fields', 10, 1 );
66
+ * function my_before_form( $args ) {
67
+ * // your code here
68
+ * }
69
+ * ?>
70
+ */
71
+ do_action( "um_main_{$mode}_fields", $args );
72
 
73
+ /**
74
+ * UM hook
75
+ *
76
+ * @type action
77
+ * @title um_after_form_fields
78
+ * @description Some actions after login form fields
79
+ * @input_vars
80
+ * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
81
+ * @change_log
82
+ * ["Since: 2.0"]
83
+ * @usage add_action( 'um_after_form_fields', 'function_name', 10, 1 );
84
+ * @example
85
+ * <?php
86
+ * add_action( 'um_after_form_fields', 'my_after_form_fields', 10, 1 );
87
+ * function my_after_form_fields( $args ) {
88
+ * // your code here
89
+ * }
90
+ * ?>
91
+ */
92
+ do_action( 'um_after_form_fields', $args );
93
 
94
+ /**
95
+ * UM hook
96
+ *
97
+ * @type action
98
+ * @title um_after_{$mode}_fields
99
+ * @description Some actions after login form fields
100
+ * @input_vars
101
+ * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
102
+ * @change_log
103
+ * ["Since: 2.0"]
104
+ * @usage add_action( 'um_after_{$mode}_fields', 'function_name', 10, 1 );
105
+ * @example
106
+ * <?php
107
+ * add_action( 'um_after_{$mode}_fields', 'my_after_form_fields', 10, 1 );
108
+ * function my_after_form_fields( $args ) {
109
+ * // your code here
110
+ * }
111
+ * ?>
112
+ */
113
+ do_action( "um_after_{$mode}_fields", $args );
114
 
115
+ /**
116
+ * UM hook
117
+ *
118
+ * @type action
119
+ * @title um_after_form
120
+ * @description Some actions after login form fields
121
+ * @input_vars
122
+ * [{"var":"$args","type":"array","desc":"Login form shortcode arguments"}]
123
+ * @change_log
124
+ * ["Since: 2.0"]
125
+ * @usage add_action( 'um_after_form', 'function_name', 10, 1 );
126
+ * @example
127
+ * <?php
128
+ * add_action( 'um_after_form', 'my_after_form', 10, 1 );
129
+ * function my_after_form( $args ) {
130
+ * // your code here
131
+ * }
132
+ * ?>
133
+ */
134
+ do_action( "um_after_form", $args ); ?>
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  </form>
137
 
138
  </div>
templates/logout.php CHANGED
@@ -1,14 +1,18 @@
1
- <div class="um <?php echo $this->get_class( $mode, $args ); ?> um-<?php echo esc_attr( $form_id ); ?>">
 
 
2
 
3
  <div class="um-form">
4
-
5
  <div class="um-misc-with-img">
6
-
7
  <div class="um-misc-img">
8
- <a href="<?php echo um_get_core_page( 'user' ); ?>"><?php echo um_user( 'profile_photo', 80 ); ?></a>
 
 
9
  </div>
10
 
11
- <div><strong><?php echo um_user( 'display_name' ); ?></strong></div>
12
 
13
  <?php
14
  /**
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <div class="um <?php echo esc_attr( $this->get_class( $mode, $args ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
 
5
  <div class="um-form">
6
+
7
  <div class="um-misc-with-img">
8
+
9
  <div class="um-misc-img">
10
+ <a href="<?php echo esc_url( um_get_core_page( 'user' ) ); ?>">
11
+ <?php echo um_user( 'profile_photo', 80 ); ?>
12
+ </a>
13
  </div>
14
 
15
+ <div><strong><?php echo esc_html( um_user( 'display_name' ) ); ?></strong></div>
16
 
17
  <?php
18
  /**
templates/members-grid.php CHANGED
@@ -1,163 +1,181 @@
 
 
1
  <div class="um-members">
2
-
3
  <div class="um-gutter-sizer"></div>
4
-
5
- <?php $i = 0; foreach( um_members('users_per_page') as $member) { $i++; um_fetch_user( $member ); ?>
6
-
7
- <div class="um-member um-role-<?php echo um_user( 'role' ); ?> <?php echo um_user('account_status'); ?> <?php if ($cover_photos) { echo 'with-cover'; } ?>">
8
-
9
- <span class="um-member-status <?php echo um_user('account_status'); ?>"><?php echo um_user('account_status_name'); ?></span>
10
-
11
- <?php
12
- if ($cover_photos) {
13
- $sizes = UM()->options()->get('cover_thumb_sizes');
14
- if ( UM()->mobile()->isTablet() ) {
15
- $cover_size = $sizes[1];
16
- } else {
17
- $cover_size = $sizes[0];
18
- }
19
- ?>
20
-
21
- <div class="um-member-cover" data-ratio="<?php echo UM()->options()->get('profile_cover_ratio'); ?>">
22
- <div class="um-member-cover-e"><a href="<?php echo um_user_profile_url(); ?>" title="<?php echo esc_attr(um_user('display_name')); ?>"><?php echo um_user('cover_photo', $cover_size); ?></a></div>
23
- </div>
24
 
25
- <?php } ?>
26
-
27
- <?php if ($profile_photo) {
28
- $default_size = str_replace( 'px', '', UM()->options()->get('profile_photosize') );
29
- $corner = UM()->options()->get('profile_photocorner');
30
- ?>
31
- <div class="um-member-photo radius-<?php echo $corner; ?>"><a href="<?php echo um_user_profile_url(); ?>" title="<?php echo esc_attr(um_user('display_name')); ?>"><?php echo get_avatar( um_user('ID'), $default_size ); ?></a></div>
32
- <?php } ?>
33
-
34
- <div class="um-member-card <?php if (!$profile_photo) { echo 'no-photo'; } ?>">
35
-
36
- <?php if ( $show_name ) { ?>
37
- <div class="um-member-name"><a href="<?php echo um_user_profile_url(); ?>" title="<?php echo esc_attr(um_user('display_name')); ?>"><?php echo um_user('display_name', 'html'); ?></a></div>
38
- <?php } ?>
39
-
40
- <?php
41
- /**
42
- * UM hook
43
- *
44
- * @type action
45
- * @title um_members_just_after_name
46
- * @description Show content just after user name
47
- * @input_vars
48
- * [{"var":"$user_id","type":"int","desc":"User ID"},
49
- * {"var":"$args","type":"array","desc":"Member directory shortcode arguments"}]
50
- * @change_log
51
- * ["Since: 2.0"]
52
- * @usage add_action( 'um_members_just_after_name', 'function_name', 10, 2 );
53
- * @example
54
- * <?php
55
- * add_action( 'um_members_just_after_name', 'my_members_just_after_name', 10, 2 );
56
- * function my_members_just_after_name( $user_id, $args ) {
57
- * // your code here
58
- * }
59
- * ?>
60
- */
61
- do_action( 'um_members_just_after_name', um_user('ID'), $args ); ?>
62
-
63
- <?php if ( UM()->roles()->um_current_user_can( 'edit', um_user('ID') ) ) { ?>
64
- <div class="um-members-edit-btn">
65
- <a href="<?php echo um_edit_profile_url() ?>" class="um-edit-profile-btn um-button um-alt">
66
- <?php _e( 'Edit profile','ultimate-member' ) ?>
67
- </a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  </div>
69
- <?php }
70
-
71
- /**
72
- * UM hook
73
- *
74
- * @type action
75
- * @title um_members_after_user_name
76
- * @description Show content just after user name
77
- * @input_vars
78
- * [{"var":"$user_id","type":"int","desc":"User ID"},
79
- * {"var":"$args","type":"array","desc":"Member directory shortcode arguments"}]
80
- * @change_log
81
- * ["Since: 2.0"]
82
- * @usage add_action( 'um_members_after_user_name', 'function_name', 10, 2 );
83
- * @example
84
- * <?php
85
- * add_action( 'um_members_after_user_name', 'my_members_after_user_name', 10, 2 );
86
- * function my_members_after_user_name( $user_id, $args ) {
87
- * // your code here
88
- * }
89
- * ?>
90
- */
91
- do_action( 'um_members_after_user_name', um_user('ID'), $args ); ?>
92
-
93
- <?php
94
- if ( $show_tagline && ! empty( $tagline_fields ) && is_array( $tagline_fields ) ) {
95
-
96
- um_fetch_user( $member );
97
-
98
- foreach( $tagline_fields as $key ) {
99
- if ( $key /*&& um_filtered_value( $key )*/ ) {
100
- $value = um_filtered_value( $key );
101
- if ( ! $value )
102
- continue;
103
- ?>
104
-
105
- <div class="um-member-tagline um-member-tagline-<?php echo esc_attr( $key );?>"><?php _e( $value, 'ultimate-member'); ?></div>
106
-
107
- <?php
108
- } // end if
109
- } // end foreach
110
- } // end if $show_tagline
111
-
112
- if ( ! empty( $show_userinfo ) ) { ?>
113
-
114
- <div class="um-member-meta-main">
115
-
116
- <?php if ( $userinfo_animate ) { ?>
117
- <div class="um-member-more"><a href="#"><i class="um-faicon-angle-down"></i></a></div>
118
- <?php } ?>
119
-
120
- <div class="um-member-meta <?php if ( ! $userinfo_animate ) { echo 'no-animate'; } ?>">
121
-
122
- <?php um_fetch_user( $member );
123
- if ( ! empty( $reveal_fields ) && is_array( $reveal_fields ) ) {
124
- foreach ( $reveal_fields as $key ) {
125
- if ( $key ) {
126
- $value = um_filtered_value( $key );
127
- if ( ! $value )
128
- continue; ?>
129
-
130
- <div class="um-member-metaline um-member-metaline-<?php echo esc_attr( $key ); ?>"><span><strong><?php echo UM()->fields()->get_label( $key ); ?>:</strong> <?php _e( $value, 'ultimate-member'); ?></span></div>
131
-
132
- <?php }
133
- }
134
  }
 
135
 
136
- if ( $show_social ) { ?>
137
- <div class="um-member-connect">
138
- <?php UM()->fields()->show_social_urls(); ?>
139
- </div>
140
- <?php } ?>
141
-
142
- </div>
143
 
144
- <div class="um-member-less"><a href="#"><i class="um-faicon-angle-up"></i></a></div>
145
-
146
  </div>
147
-
148
- <?php } ?>
149
-
150
  </div>
151
-
152
- </div>
153
-
154
- <?php
155
- um_reset_user_clean();
 
 
 
156
  } // end foreach
157
 
158
- um_reset_user();
159
- ?>
160
 
161
  <div class="um-clear"></div>
162
 
163
- </div>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
  <div class="um-members">
4
+
5
  <div class="um-gutter-sizer"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
+ <?php $i = 0;
8
+ foreach ( um_members( 'users_per_page' ) as $member ) {
9
+ $i++;
10
+ um_fetch_user( $member ); ?>
11
+
12
+ <div class="um-member um-role-<?php echo esc_attr( um_user( 'role' ) ) . ' ' . esc_attr( um_user('account_status') ); ?> <?php if ( $cover_photos ) { echo 'with-cover'; } ?>">
13
+
14
+ <span class="um-member-status <?php echo esc_attr( um_user('account_status') ); ?>"><?php echo esc_html( um_user( 'account_status_name' ) ); ?></span>
15
+
16
+ <?php if ( $cover_photos ) {
17
+ $sizes = UM()->options()->get( 'cover_thumb_sizes' );
18
+ if ( UM()->mobile()->isTablet() ) {
19
+ $cover_size = $sizes[1];
20
+ } else {
21
+ $cover_size = $sizes[0];
22
+ } ?>
23
+
24
+ <div class="um-member-cover" data-ratio="<?php echo esc_attr( UM()->options()->get( 'profile_cover_ratio' ) ); ?>">
25
+ <div class="um-member-cover-e">
26
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>" title="<?php echo esc_attr( um_user('display_name') ); ?>">
27
+ <?php echo um_user( 'cover_photo', $cover_size ); ?>
28
+ </a>
29
+ </div>
30
+ </div>
31
+
32
+ <?php }
33
+
34
+ if ( $profile_photo ) {
35
+ $corner = UM()->options()->get( 'profile_photocorner' );
36
+
37
+ $default_size = UM()->options()->get( 'profile_photosize' );
38
+ $default_size = str_replace( 'px', '', $default_size ); ?>
39
+
40
+ <div class="um-member-photo radius-<?php echo esc_attr( $corner ); ?>">
41
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>" title="<?php echo esc_attr( um_user('display_name') ); ?>">
42
+ <?php echo get_avatar( um_user( 'ID' ), $default_size ); ?>
43
+ </a>
44
+ </div>
45
+
46
+ <?php } ?>
47
+
48
+ <div class="um-member-card <?php if ( ! $profile_photo ) { echo 'no-photo'; } ?>">
49
+
50
+ <?php if ( $show_name ) { ?>
51
+ <div class="um-member-name">
52
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>" title="<?php echo esc_attr( um_user( 'display_name' ) ); ?>">
53
+ <?php echo um_user('display_name', 'html' ); ?>
54
+ </a>
55
+ </div>
56
+ <?php }
57
+
58
+ /**
59
+ * UM hook
60
+ *
61
+ * @type action
62
+ * @title um_members_just_after_name
63
+ * @description Show content just after user name
64
+ * @input_vars
65
+ * [{"var":"$user_id","type":"int","desc":"User ID"},
66
+ * {"var":"$args","type":"array","desc":"Member directory shortcode arguments"}]
67
+ * @change_log
68
+ * ["Since: 2.0"]
69
+ * @usage add_action( 'um_members_just_after_name', 'function_name', 10, 2 );
70
+ * @example
71
+ * <?php
72
+ * add_action( 'um_members_just_after_name', 'my_members_just_after_name', 10, 2 );
73
+ * function my_members_just_after_name( $user_id, $args ) {
74
+ * // your code here
75
+ * }
76
+ * ?>
77
+ */
78
+ do_action( 'um_members_just_after_name', um_user('ID'), $args );
79
+
80
+ if ( UM()->roles()->um_current_user_can( 'edit', um_user('ID') ) ) { ?>
81
+ <div class="um-members-edit-btn">
82
+ <a href="<?php echo esc_url( um_edit_profile_url() ); ?>" class="um-edit-profile-btn um-button um-alt">
83
+ <?php _e( 'Edit profile','ultimate-member' ) ?>
84
+ </a>
85
+ </div>
86
+ <?php }
87
+
88
+ /**
89
+ * UM hook
90
+ *
91
+ * @type action
92
+ * @title um_members_after_user_name
93
+ * @description Show content just after user name
94
+ * @input_vars
95
+ * [{"var":"$user_id","type":"int","desc":"User ID"},
96
+ * {"var":"$args","type":"array","desc":"Member directory shortcode arguments"}]
97
+ * @change_log
98
+ * ["Since: 2.0"]
99
+ * @usage add_action( 'um_members_after_user_name', 'function_name', 10, 2 );
100
+ * @example
101
+ * <?php
102
+ * add_action( 'um_members_after_user_name', 'my_members_after_user_name', 10, 2 );
103
+ * function my_members_after_user_name( $user_id, $args ) {
104
+ * // your code here
105
+ * }
106
+ * ?>
107
+ */
108
+ do_action( 'um_members_after_user_name', um_user('ID'), $args );
109
+
110
+ if ( $show_tagline && ! empty( $tagline_fields ) && is_array( $tagline_fields ) ) {
111
+
112
+ um_fetch_user( $member );
113
+
114
+ foreach( $tagline_fields as $key ) {
115
+ if ( $key ) {
116
+ $value = um_filtered_value( $key );
117
+ if ( ! $value ) {
118
+ continue;
119
+ } ?>
120
+
121
+ <div class="um-member-tagline um-member-tagline-<?php echo esc_attr( $key ); ?>">
122
+ <?php _e( $value, 'ultimate-member'); ?>
123
  </div>
124
+
125
+ <?php } // end if
126
+ } // end foreach
127
+ } // end if $show_tagline
128
+
129
+ if ( ! empty( $show_userinfo ) ) { ?>
130
+
131
+ <div class="um-member-meta-main">
132
+
133
+ <?php if ( $userinfo_animate ) { ?>
134
+ <div class="um-member-more"><a href="#"><i class="um-faicon-angle-down"></i></a></div>
135
+ <?php } ?>
136
+
137
+ <div class="um-member-meta <?php if ( ! $userinfo_animate ) { echo 'no-animate'; } ?>">
138
+
139
+ <?php um_fetch_user( $member );
140
+ if ( ! empty( $reveal_fields ) && is_array( $reveal_fields ) ) {
141
+ foreach ( $reveal_fields as $key ) {
142
+ if ( $key ) {
143
+ $value = um_filtered_value( $key );
144
+ if ( ! $value ) {
145
+ continue;
146
+ } ?>
147
+
148
+ <div class="um-member-metaline um-member-metaline-<?php echo esc_attr( $key ); ?>">
149
+ <span><strong><?php echo esc_html( UM()->fields()->get_label( $key ) ); ?>:</strong> <?php _e( $value, 'ultimate-member' ); ?></span>
150
+ </div>
151
+
152
+ <?php }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  }
154
+ }
155
 
156
+ if ( $show_social ) { ?>
157
+ <div class="um-member-connect">
158
+ <?php UM()->fields()->show_social_urls(); ?>
159
+ </div>
160
+ <?php } ?>
 
 
161
 
 
 
162
  </div>
163
+
164
+ <div class="um-member-less"><a href="#"><i class="um-faicon-angle-up"></i></a></div>
165
+
166
  </div>
167
+
168
+ <?php } ?>
169
+
170
+ </div>
171
+
172
+ </div>
173
+
174
+ <?php um_reset_user_clean();
175
  } // end foreach
176
 
177
+ um_reset_user(); ?>
 
178
 
179
  <div class="um-clear"></div>
180
 
181
+ </div>
templates/members.php CHANGED
@@ -1,4 +1,6 @@
1
- <div class="um <?php echo $this->get_class( $mode ); ?> um-<?php echo esc_attr( $form_id ); ?>">
 
 
2
 
3
  <div class="um-form">
4
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
 
5
  <div class="um-form">
6
 
templates/message.php CHANGED
@@ -1,4 +1,6 @@
1
- <div class="um <?php echo $this->get_class( $mode ); ?> um-<?php echo esc_attr( $form_id ); ?>">
 
 
2
 
3
  <div class="um-postmessage">
4
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
 
5
  <div class="um-postmessage">
6
 
templates/password-change.php CHANGED
@@ -1,4 +1,6 @@
1
- <div class="um <?php echo $this->get_class( $mode ); ?> um-<?php echo esc_attr( $form_id ); ?>">
 
 
2
 
3
  <div class="um-form">
4
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
 
5
  <div class="um-form">
6
 
templates/password-reset.php CHANGED
@@ -1,4 +1,6 @@
1
- <div class="um <?php echo $this->get_class( $mode ); ?> um-<?php echo esc_attr( $form_id ); ?>">
 
 
2
  <div class="um-form">
3
  <form method="post" action="">
4
  <?php if ( isset( $_GET['updated'] ) && 'checkemail' == $_GET['updated'] ) { ?>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
  <div class="um-form">
5
  <form method="post" action="">
6
  <?php if ( isset( $_GET['updated'] ) && 'checkemail' == $_GET['updated'] ) { ?>
templates/profile.php CHANGED
@@ -1,4 +1,6 @@
1
- <div class="um <?php echo $this->get_class( $mode ); ?> um-<?php echo esc_attr( $form_id ); ?> um-role-<?php echo um_user( 'role' ); ?> ">
 
 
2
 
3
  <div class="um-form">
4
 
@@ -93,7 +95,7 @@
93
  */
94
  $classes = apply_filters( 'um_profile_navbar_classes', '' ); ?>
95
 
96
- <div class="um-profile-navbar <?php echo $classes ?>">
97
  <?php
98
  /**
99
  * UM hook
@@ -140,55 +142,65 @@
140
  */
141
  do_action( 'um_profile_menu', $args );
142
 
143
- $nav = UM()->profile()->active_tab;
144
- $subnav = ( get_query_var('subnav') ) ? get_query_var('subnav') : 'default';
145
 
146
- print "<div class='um-profile-body $nav $nav-$subnav'>";
 
 
147
 
148
- // Custom hook to display tabbed content
149
- /**
150
- * UM hook
151
- *
152
- * @type action
153
- * @title um_profile_content_{$nav}
154
- * @description Custom hook to display tabbed content
155
- * @input_vars
156
- * [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
157
- * @change_log
158
- * ["Since: 2.0"]
159
- * @usage add_action( 'um_profile_content_{$nav}', 'function_name', 10, 1 );
160
- * @example
161
- * <?php
162
- * add_action( 'um_profile_content_{$nav}', 'my_profile_content', 10, 1 );
163
- * function my_profile_content( $args ) {
164
- * // your code here
165
- * }
166
- * ?>
167
- */
168
- do_action("um_profile_content_{$nav}", $args);
169
 
170
- /**
171
- * UM hook
172
- *
173
- * @type action
174
- * @title um_profile_content_{$nav}_{$subnav}
175
- * @description Custom hook to display tabbed content
176
- * @input_vars
177
- * [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
178
- * @change_log
179
- * ["Since: 2.0"]
180
- * @usage add_action( 'um_profile_content_{$nav}_{$subnav}', 'function_name', 10, 1 );
181
- * @example
182
- * <?php
183
- * add_action( 'um_profile_content_{$nav}_{$subnav}', 'my_profile_content', 10, 1 );
184
- * function my_profile_content( $args ) {
185
- * // your code here
186
- * }
187
- * ?>
188
- */
189
- do_action( "um_profile_content_{$nav}_{$subnav}", $args );
190
 
191
- print "<div class=\"clear\"></div></div>";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
 
193
  if ( um_is_on_edit_profile() ) { ?>
194
  </form>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?> um-role-<?php echo esc_attr( um_user( 'role' ) ); ?> ">
4
 
5
  <div class="um-form">
6
 
95
  */
96
  $classes = apply_filters( 'um_profile_navbar_classes', '' ); ?>
97
 
98
+ <div class="um-profile-navbar <?php echo esc_attr( $classes ); ?>">
99
  <?php
100
  /**
101
  * UM hook
142
  */
143
  do_action( 'um_profile_menu', $args );
144
 
145
+ $menu_enabled = UM()->options()->get( 'profile_menu' );
146
+ $tabs = UM()->profile()->tabs_active();
147
 
148
+ $nav = UM()->profile()->active_tab();
149
+ $subnav = UM()->profile()->active_subnav();
150
+ $subnav = ! empty( $subnav ) ? $subnav : 'default';
151
 
152
+ if ( $menu_enabled || ! empty( $tabs[ $nav ]['hidden'] ) ) { ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
 
154
+ <div class="um-profile-body <?php echo esc_attr( $nav . ' ' . $nav . '-' . $subnav ); ?>">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
 
156
+ <?php
157
+ // Custom hook to display tabbed content
158
+ /**
159
+ * UM hook
160
+ *
161
+ * @type action
162
+ * @title um_profile_content_{$nav}
163
+ * @description Custom hook to display tabbed content
164
+ * @input_vars
165
+ * [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
166
+ * @change_log
167
+ * ["Since: 2.0"]
168
+ * @usage add_action( 'um_profile_content_{$nav}', 'function_name', 10, 1 );
169
+ * @example
170
+ * <?php
171
+ * add_action( 'um_profile_content_{$nav}', 'my_profile_content', 10, 1 );
172
+ * function my_profile_content( $args ) {
173
+ * // your code here
174
+ * }
175
+ * ?>
176
+ */
177
+ do_action("um_profile_content_{$nav}", $args);
178
+
179
+ /**
180
+ * UM hook
181
+ *
182
+ * @type action
183
+ * @title um_profile_content_{$nav}_{$subnav}
184
+ * @description Custom hook to display tabbed content
185
+ * @input_vars
186
+ * [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
187
+ * @change_log
188
+ * ["Since: 2.0"]
189
+ * @usage add_action( 'um_profile_content_{$nav}_{$subnav}', 'function_name', 10, 1 );
190
+ * @example
191
+ * <?php
192
+ * add_action( 'um_profile_content_{$nav}_{$subnav}', 'my_profile_content', 10, 1 );
193
+ * function my_profile_content( $args ) {
194
+ * // your code here
195
+ * }
196
+ * ?>
197
+ */
198
+ do_action( "um_profile_content_{$nav}_{$subnav}", $args ); ?>
199
+
200
+ <div class="clear"></div>
201
+ </div>
202
+
203
+ <?php }
204
 
205
  if ( um_is_on_edit_profile() ) { ?>
206
  </form>
templates/profile/comments-single.php CHANGED
@@ -16,7 +16,7 @@ foreach ( UM()->shortcodes()->loop as $comment ) {
16
  <div class="um-item">
17
  <div class="um-item-link">
18
  <i class="um-icon-chatboxes"></i>
19
- <a href="<?php echo get_comment_link( $comment->comment_ID ); ?>">
20
  <?php echo get_comment_excerpt( $comment->comment_ID ); ?>
21
  </a>
22
  </div>
@@ -30,7 +30,7 @@ foreach ( UM()->shortcodes()->loop as $comment ) {
30
  if ( isset( UM()->shortcodes()->modified_args ) && count(UM()->shortcodes()->loop ) >= 10 ) { ?>
31
 
32
  <div class="um-load-items">
33
- <a href="#" class="um-ajax-paginate um-button" data-hook="um_load_comments" data-args="<?php echo UM()->shortcodes()->modified_args; ?>">
34
  <?php _e('load more comments','ultimate-member'); ?>
35
  </a>
36
  </div>
16
  <div class="um-item">
17
  <div class="um-item-link">
18
  <i class="um-icon-chatboxes"></i>
19
+ <a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">
20
  <?php echo get_comment_excerpt( $comment->comment_ID ); ?>
21
  </a>
22
  </div>
30
  if ( isset( UM()->shortcodes()->modified_args ) && count(UM()->shortcodes()->loop ) >= 10 ) { ?>
31
 
32
  <div class="um-load-items">
33
+ <a href="#" class="um-ajax-paginate um-button" data-hook="um_load_comments" data-args="<?php echo esc_attr( UM()->shortcodes()->modified_args ); ?>">
34
  <?php _e('load more comments','ultimate-member'); ?>
35
  </a>
36
  </div>
templates/profile/comments.php CHANGED
@@ -1,8 +1,10 @@
1
- <?php UM()->shortcodes()->loop = UM()->query()->make('post_type=comment&number=10&offset=0&user_id=' . um_user('ID') ); ?>
2
 
3
- <?php if ( UM()->shortcodes()->loop ) { ?>
4
-
5
- <?php UM()->shortcodes()->load_template('profile/comments-single'); ?>
 
 
6
 
7
  <div class="um-ajax-items">
8
 
@@ -10,9 +12,11 @@
10
 
11
  <?php if ( count( UM()->shortcodes()->loop) >= 10 ) { ?>
12
 
13
- <div class="um-load-items">
14
- <a href="#" class="um-ajax-paginate um-button" data-hook="um_load_comments" data-args="comment,10,10,<?php echo um_user('ID'); ?>"><?php _e('load more comments','ultimate-member'); ?></a>
15
- </div>
 
 
16
 
17
  <?php } ?>
18
 
@@ -20,6 +24,8 @@
20
 
21
  <?php } else { ?>
22
 
23
- <div class="um-profile-note"><span><?php echo ( um_profile_id() == get_current_user_id() ) ? __('You have not made any comments.','ultimate-member') : __('This user has not made any comments.','ultimate-member'); ?></span></div>
 
 
24
 
25
  <?php } ?>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
 
3
+ UM()->shortcodes()->loop = UM()->query()->make('post_type=comment&number=10&offset=0&user_id=' . um_user('ID') );
4
+
5
+ if ( UM()->shortcodes()->loop ) {
6
+
7
+ UM()->shortcodes()->load_template('profile/comments-single'); ?>
8
 
9
  <div class="um-ajax-items">
10
 
12
 
13
  <?php if ( count( UM()->shortcodes()->loop) >= 10 ) { ?>
14
 
15
+ <div class="um-load-items">
16
+ <a href="#" class="um-ajax-paginate um-button" data-hook="um_load_comments" data-args="comment,10,10,<?php echo esc_attr( um_user('ID') ); ?>">
17
+ <?php _e( 'load more comments', 'ultimate-member' ); ?>
18
+ </a>
19
+ </div>
20
 
21
  <?php } ?>
22
 
24
 
25
  <?php } else { ?>
26
 
27
+ <div class="um-profile-note">
28
+ <span><?php echo ( um_profile_id() == get_current_user_id() ) ? __( 'You have not made any comments.', 'ultimate-member' ) : __( 'This user has not made any comments.', 'ultimate-member' ); ?></span>
29
+ </div>
30
 
31
  <?php } ?>
templates/profile/posts-single.php CHANGED
@@ -1,7 +1,9 @@
 
 
1
  <div class="um-item">
2
  <div class="um-item-link">
3
  <i class="um-icon-ios-paper"></i>
4
- <a href="<?php echo get_permalink( $post ) ?>"><?php echo $post->post_title; ?></a>
5
  </div>
6
 
7
  <?php if ( has_post_thumbnail( $post->ID ) ) {
@@ -9,7 +11,7 @@
9
  $image_url = wp_get_attachment_image_src( $image_id, 'full', true ); ?>
10
 
11
  <div class="um-item-img">
12
- <a href="<?php echo get_permalink( $post ) ?>">
13
  <?php echo get_the_post_thumbnail( $post->ID, 'medium' ); ?>
14
  </a>
15
  </div>
@@ -21,7 +23,7 @@
21
  <?php printf( __( '%s ago', 'ultimate-member' ), human_time_diff( get_the_time( 'U', $post->ID ), current_time( 'timestamp' ) ) ); ?>
22
  </span>
23
  <span>
24
- <?php echo __( 'in', 'ultimate-member' ); ?>: <?php the_category( ', ', '', $post->ID ); ?>
25
  </span>
26
  <span>
27
  <?php $num_comments = get_comments_number( $post->ID );
@@ -34,7 +36,7 @@
34
  $comments = __( '1 comment', 'ultimate-member' );
35
  } ?>
36
 
37
- <a href="<?php echo get_comments_link( $post->ID ) ?>"><?php echo $comments ?></a>
38
  </span>
39
  </div>
40
  </div>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
  <div class="um-item">
4
  <div class="um-item-link">
5
  <i class="um-icon-ios-paper"></i>
6
+ <a href="<?php echo esc_url( get_permalink( $post ) ); ?>"><?php echo esc_html( $post->post_title ); ?></a>
7
  </div>
8
 
9
  <?php if ( has_post_thumbnail( $post->ID ) ) {
11
  $image_url = wp_get_attachment_image_src( $image_id, 'full', true ); ?>
12
 
13
  <div class="um-item-img">
14
+ <a href="<?php echo esc_url( get_permalink( $post ) ); ?>">
15
  <?php echo get_the_post_thumbnail( $post->ID, 'medium' ); ?>
16
  </a>
17
  </div>
23
  <?php printf( __( '%s ago', 'ultimate-member' ), human_time_diff( get_the_time( 'U', $post->ID ), current_time( 'timestamp' ) ) ); ?>
24
  </span>
25
  <span>
26
+ <?php _e( 'in', 'ultimate-member' ); ?>: <?php the_category( ', ', '', $post->ID ); ?>
27
  </span>
28
  <span>
29
  <?php $num_comments = get_comments_number( $post->ID );
36
  $comments = __( '1 comment', 'ultimate-member' );
37
  } ?>
38
 
39
+ <a href="<?php echo esc_url( get_comments_link( $post->ID ) ); ?>"><?php echo $comments; ?></a>
40
  </span>
41
  </div>
42
  </div>
templates/profile/posts.php CHANGED
@@ -1,4 +1,6 @@
1
- <?php if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
 
 
2
  //Only for AJAX loading posts
3
  if ( ! empty( $posts ) ) {
4
  foreach ( $posts as $post ) {
@@ -17,7 +19,7 @@
17
 
18
  if ( $count_posts > 10 ) { ?>
19
  <div class="um-load-items">
20
- <a href="javascript:void(0);" class="um-ajax-paginate um-button" data-hook="um_load_posts" data-author="<?php echo um_get_requested_user(); ?>" data-page="1" data-pages="<?php echo ceil( $count_posts / 10 ) ?>">
21
  <?php _e( 'load more posts', 'ultimate-member' ); ?>
22
  </a>
23
  </div>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
4
  //Only for AJAX loading posts
5
  if ( ! empty( $posts ) ) {
6
  foreach ( $posts as $post ) {
19
 
20
  if ( $count_posts > 10 ) { ?>
21
  <div class="um-load-items">
22
+ <a href="javascript:void(0);" class="um-ajax-paginate um-button" data-hook="um_load_posts" data-author="<?php echo esc_attr( um_get_requested_user() ); ?>" data-page="1" data-pages="<?php echo esc_attr( ceil( $count_posts / 10 ) ); ?>">
23
  <?php _e( 'load more posts', 'ultimate-member' ); ?>
24
  </a>
25
  </div>
templates/register.php CHANGED
@@ -1,138 +1,140 @@
1
- <div class="um <?php echo $this->get_class( $mode ); ?> um-<?php echo esc_attr( $form_id ); ?>">
 
 
2
 
3
  <div class="um-form">
4
-
5
  <form method="post" action="">
6
-
7
- <?php
8
- /**
9
- * UM hook
10
- *
11
- * @type action
12
- * @title um_before_form
13
- * @description Some actions before register form
14
- * @input_vars
15
- * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
16
- * @change_log
17
- * ["Since: 2.0"]
18
- * @usage add_action( 'um_before_form', 'function_name', 10, 1 );
19
- * @example
20
- * <?php
21
- * add_action( 'um_before_form', 'my_before_form', 10, 1 );
22
- * function my_before_form( $args ) {
23
- * // your code here
24
- * }
25
- * ?>
26
- */
27
- do_action( "um_before_form", $args );
28
 
29
- /**
30
- * UM hook
31
- *
32
- * @type action
33
- * @title um_before_{$mode}_fields
34
- * @description Some actions before register form fields
35
- * @input_vars
36
- * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
37
- * @change_log
38
- * ["Since: 2.0"]
39
- * @usage add_action( 'um_before_{$mode}_fields', 'function_name', 10, 1 );
40
- * @example
41
- * <?php
42
- * add_action( 'um_before_{$mode}_fields', 'my_before_fields', 10, 1 );
43
- * function my_before_form( $args ) {
44
- * // your code here
45
- * }
46
- * ?>
47
- */
48
- do_action( "um_before_{$mode}_fields", $args );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
- /**
51
- * UM hook
52
- *
53
- * @type action
54
- * @title um_before_{$mode}_fields
55
- * @description Some actions before register form fields
56
- * @input_vars
57
- * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
58
- * @change_log
59
- * ["Since: 2.0"]
60
- * @usage add_action( 'um_before_{$mode}_fields', 'function_name', 10, 1 );
61
- * @example
62
- * <?php
63
- * add_action( 'um_before_{$mode}_fields', 'my_before_fields', 10, 1 );
64
- * function my_before_form( $args ) {
65
- * // your code here
66
- * }
67
- * ?>
68
- */
69
- do_action( "um_main_{$mode}_fields", $args );
70
 
71
- /**
72
- * UM hook
73
- *
74
- * @type action
75
- * @title um_after_form_fields
76
- * @description Some actions after register form fields
77
- * @input_vars
78
- * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
79
- * @change_log
80
- * ["Since: 2.0"]
81
- * @usage add_action( 'um_after_form_fields', 'function_name', 10, 1 );
82
- * @example
83
- * <?php
84
- * add_action( 'um_after_form_fields', 'my_after_form_fields', 10, 1 );
85
- * function my_after_form_fields( $args ) {
86
- * // your code here
87
- * }
88
- * ?>
89
- */
90
- do_action( 'um_after_form_fields', $args );
91
 
92
- /**
93
- * UM hook
94
- *
95
- * @type action
96
- * @title um_after_{$mode}_fields
97
- * @description Some actions after register form fields
98
- * @input_vars
99
- * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
100
- * @change_log
101
- * ["Since: 2.0"]
102
- * @usage add_action( 'um_after_{$mode}_fields', 'function_name', 10, 1 );
103
- * @example
104
- * <?php
105
- * add_action( 'um_after_{$mode}_fields', 'my_after_form_fields', 10, 1 );
106
- * function my_after_form_fields( $args ) {
107
- * // your code here
108
- * }
109
- * ?>
110
- */
111
- do_action( "um_after_{$mode}_fields", $args );
112
 
113
- /**
114
- * UM hook
115
- *
116
- * @type action
117
- * @title um_after_form
118
- * @description Some actions after register form fields
119
- * @input_vars
120
- * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
121
- * @change_log
122
- * ["Since: 2.0"]
123
- * @usage add_action( 'um_after_form', 'function_name', 10, 1 );
124
- * @example
125
- * <?php
126
- * add_action( 'um_after_form', 'my_after_form', 10, 1 );
127
- * function my_after_form( $args ) {
128
- * // your code here
129
- * }
130
- * ?>
131
- */
132
- do_action( "um_after_form", $args ); ?>
133
 
134
  </form>
135
-
136
  </div>
137
-
138
  </div>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
 
5
  <div class="um-form">
6
+
7
  <form method="post" action="">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
+ <?php
10
+ /**
11
+ * UM hook
12
+ *
13
+ * @type action
14
+ * @title um_before_form
15
+ * @description Some actions before register form
16
+ * @input_vars
17
+ * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
18
+ * @change_log
19
+ * ["Since: 2.0"]
20
+ * @usage add_action( 'um_before_form', 'function_name', 10, 1 );
21
+ * @example
22
+ * <?php
23
+ * add_action( 'um_before_form', 'my_before_form', 10, 1 );
24
+ * function my_before_form( $args ) {
25
+ * // your code here
26
+ * }
27
+ * ?>
28
+ */
29
+ do_action( "um_before_form", $args );
30
+
31
+ /**
32
+ * UM hook
33
+ *
34
+ * @type action
35
+ * @title um_before_{$mode}_fields
36
+ * @description Some actions before register form fields
37
+ * @input_vars
38
+ * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
39
+ * @change_log
40
+ * ["Since: 2.0"]
41
+ * @usage add_action( 'um_before_{$mode}_fields', 'function_name', 10, 1 );
42
+ * @example
43
+ * <?php
44
+ * add_action( 'um_before_{$mode}_fields', 'my_before_fields', 10, 1 );
45
+ * function my_before_form( $args ) {
46
+ * // your code here
47
+ * }
48
+ * ?>
49
+ */
50
+ do_action( "um_before_{$mode}_fields", $args );
51
 
52
+ /**
53
+ * UM hook
54
+ *
55
+ * @type action
56
+ * @title um_before_{$mode}_fields
57
+ * @description Some actions before register form fields
58
+ * @input_vars
59
+ * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
60
+ * @change_log
61
+ * ["Since: 2.0"]
62
+ * @usage add_action( 'um_before_{$mode}_fields', 'function_name', 10, 1 );
63
+ * @example
64
+ * <?php
65
+ * add_action( 'um_before_{$mode}_fields', 'my_before_fields', 10, 1 );
66
+ * function my_before_form( $args ) {
67
+ * // your code here
68
+ * }
69
+ * ?>
70
+ */
71
+ do_action( "um_main_{$mode}_fields", $args );
72
 
73
+ /**
74
+ * UM hook
75
+ *
76
+ * @type action
77
+ * @title um_after_form_fields
78
+ * @description Some actions after register form fields
79
+ * @input_vars
80
+ * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
81
+ * @change_log
82
+ * ["Since: 2.0"]
83
+ * @usage add_action( 'um_after_form_fields', 'function_name', 10, 1 );
84
+ * @example
85
+ * <?php
86
+ * add_action( 'um_after_form_fields', 'my_after_form_fields', 10, 1 );
87
+ * function my_after_form_fields( $args ) {
88
+ * // your code here
89
+ * }
90
+ * ?>
91
+ */
92
+ do_action( 'um_after_form_fields', $args );
93
 
94
+ /**
95
+ * UM hook
96
+ *
97
+ * @type action
98
+ * @title um_after_{$mode}_fields
99
+ * @description Some actions after register form fields
100
+ * @input_vars
101
+ * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
102
+ * @change_log
103
+ * ["Since: 2.0"]
104
+ * @usage add_action( 'um_after_{$mode}_fields', 'function_name', 10, 1 );
105
+ * @example
106
+ * <?php
107
+ * add_action( 'um_after_{$mode}_fields', 'my_after_form_fields', 10, 1 );
108
+ * function my_after_form_fields( $args ) {
109
+ * // your code here
110
+ * }
111
+ * ?>
112
+ */
113
+ do_action( "um_after_{$mode}_fields", $args );
114
 
115
+ /**
116
+ * UM hook
117
+ *
118
+ * @type action
119
+ * @title um_after_form
120
+ * @description Some actions after register form fields
121
+ * @input_vars
122
+ * [{"var":"$args","type":"array","desc":"Register form shortcode arguments"}]
123
+ * @change_log
124
+ * ["Since: 2.0"]
125
+ * @usage add_action( 'um_after_form', 'function_name', 10, 1 );
126
+ * @example
127
+ * <?php
128
+ * add_action( 'um_after_form', 'my_after_form', 10, 1 );
129
+ * function my_after_form( $args ) {
130
+ * // your code here
131
+ * }
132
+ * ?>
133
+ */
134
+ do_action( "um_after_form", $args ); ?>
135
 
136
  </form>
137
+
138
  </div>
139
+
140
  </div>
templates/restricted-taxonomy.php CHANGED
@@ -1,4 +1,4 @@
1
- <?php
2
 
3
  get_header(); ?>
4
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
 
3
  get_header(); ?>
4
 
templates/searchform.php CHANGED
@@ -1,8 +1,10 @@
1
- <form role="search" method="get" class="search-form um-search-form" action="<?php echo esc_url( um_get_core_page( 'members' ) ); ?>">
 
 
2
  <input type="hidden" name="um_search" value="1">
3
  <div class="um-search-area">
4
  <span class="screen-reader-text"><?php echo _x( 'Search for:', 'label' ); ?></span>
5
- <input type="search" class="um-search-field search-field" placeholder="<?php echo esc_attr_x( 'Search &hellip;', 'placeholder' ); ?>" value="<?php echo um_get_search_query(); ?>" name="search" title="<?php echo esc_attr_x( 'Search for:', 'label' ); ?>" />
6
- <a href="javascript: void(0);" id="um-search-button" class="um-search-icon um-faicon um-faicon-search"></a>
7
  </div>
8
  </form>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+ <form role="search" method="get" class="search-form um-search-form" action="<?php echo esc_url( um_get_core_page( 'members' ) ); ?>">
4
  <input type="hidden" name="um_search" value="1">
5
  <div class="um-search-area">
6
  <span class="screen-reader-text"><?php echo _x( 'Search for:', 'label' ); ?></span>
7
+ <input type="search" class="um-search-field search-field" placeholder="<?php echo esc_attr_x( 'Search &hellip;', 'placeholder' ); ?>" value="<?php echo esc_attr( um_get_search_query() ); ?>" name="search" title="<?php echo esc_attr_x( 'Search for:', 'label' ); ?>" />
8
+ <a href="javascript:void(0);" id="um-search-button" class="um-search-icon um-faicon um-faicon-search"></a>
9
  </div>
10
  </form>
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.53
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.54
7
  Author: Ultimate Member
8
  Author URI: http://ultimatemember.com/
9
  Text Domain: ultimate-member