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 cl