Version Description
Download this release
Release Info
Developer | ultimatemember |
Plugin | Ultimate Member – User Profile & Membership Plugin |
Version | 1.0.48 |
Comparing to | |
See all releases |
Code changes from version 1.0.47 to 1.0.48
- admin/assets/css/um-admin-columns.css +12 -2
- admin/assets/css/um-admin-dashboard.css +1 -1
- admin/assets/css/um-admin-misc.css +3 -1
- admin/core/um-admin-actions.php +3 -2
- admin/core/um-admin-dashboard.php +61 -2
- admin/core/um-admin-metabox.php +4 -1
- admin/core/um-admin-notices.php +6 -0
- admin/core/um-admin-users.php +1 -1
- admin/templates/dashboard/language-contrib.php +3 -0
- admin/templates/dashboard/language-download.php +3 -0
- admin/templates/dashboard/language-update.php +3 -0
- core/lib/upload/um-image-upload.php +1 -1
- core/um-access.php +6 -2
- core/um-account.php +37 -11
- core/um-actions-access.php +1 -1
- core/um-actions-account.php +26 -0
- core/um-mail.php +1 -1
- core/um-query.php +1 -1
- core/um-shortcodes.php +5 -3
- index.php +1 -1
- readme.txt +13 -1
admin/assets/css/um-admin-columns.css
CHANGED
@@ -54,10 +54,20 @@
|
|
54 |
line-height: 34px;
|
55 |
}
|
56 |
.um-admin-tag.small {font-size: 13px;height:28px;line-height: 28px;display:inline;padding: 4px 10px;background: transparent;color: #666;border-radius:0;}
|
57 |
-
.um-admin-tag.
|
58 |
.um-admin-tag.pending {border-left: 2px solid #b76767}
|
59 |
|
60 |
.um-admin-txtspace {margin: 0 0 0 10px;}
|
61 |
|
62 |
-
.um-adm-ico {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
.um-adm-ico.pointer {cursor: pointer}
|
54 |
line-height: 34px;
|
55 |
}
|
56 |
.um-admin-tag.small {font-size: 13px;height:28px;line-height: 28px;display:inline;padding: 4px 10px;background: transparent;color: #666;border-radius:0;}
|
57 |
+
.um-admin-tag.approved {border-left: 2px solid #7ACF58}
|
58 |
.um-admin-tag.pending {border-left: 2px solid #b76767}
|
59 |
|
60 |
.um-admin-txtspace {margin: 0 0 0 10px;}
|
61 |
|
62 |
+
.um-adm-ico {
|
63 |
+
font-size: 20px;
|
64 |
+
width: 20px;
|
65 |
+
text-align: center;
|
66 |
+
margin-top: 5px;
|
67 |
+
display: inline-block;
|
68 |
+
color: #7ACF58;
|
69 |
+
}
|
70 |
+
|
71 |
+
.um-adm-ico.inactive {color: #b76767}
|
72 |
+
|
73 |
.um-adm-ico.pointer {cursor: pointer}
|
admin/assets/css/um-admin-dashboard.css
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
}
|
4 |
|
5 |
.wrap a.red,
|
6 |
-
.wrap span.red {color:#
|
7 |
|
8 |
.wrap span.ok {color:#7ACF58}
|
9 |
|
3 |
}
|
4 |
|
5 |
.wrap a.red,
|
6 |
+
.wrap span.red {color:#b76767}
|
7 |
|
8 |
.wrap span.ok {color:#7ACF58}
|
9 |
|
admin/assets/css/um-admin-misc.css
CHANGED
@@ -115,9 +115,11 @@ body.um-admin-modal-open {
|
|
115 |
margin: 0 0 8px 0 !important;
|
116 |
padding: 0!important;
|
117 |
font-size: 13px;
|
118 |
-
color: #
|
119 |
}
|
120 |
|
|
|
|
|
121 |
.um-admin-metabox input[type=text]:disabled{
|
122 |
opacity: 0.7 !important;
|
123 |
color: #aaa !important;
|
115 |
margin: 0 0 8px 0 !important;
|
116 |
padding: 0!important;
|
117 |
font-size: 13px;
|
118 |
+
color: #666;
|
119 |
}
|
120 |
|
121 |
+
.um-admin-metabox label strong {color: #222}
|
122 |
+
|
123 |
.um-admin-metabox input[type=text]:disabled{
|
124 |
opacity: 0.7 !important;
|
125 |
color: #aaa !important;
|
admin/core/um-admin-actions.php
CHANGED
@@ -67,7 +67,6 @@
|
|
67 |
|
68 |
$locale = get_option('WPLANG');
|
69 |
if ( !$locale ) return;
|
70 |
-
if ( file_exists( WP_LANG_DIR . '/plugins/ultimatemember-'.$locale.'.mo' ) ) return;
|
71 |
if ( !isset( $ultimatemember->available_languages[$locale] ) ) return;
|
72 |
|
73 |
$path = $ultimatemember->files->upload_basedir;
|
@@ -86,7 +85,9 @@
|
|
86 |
copy( $remote2_tmp, $path . 'ultimatemember-' . $locale . '.mo' );
|
87 |
unlink( $remote2_tmp );
|
88 |
|
89 |
-
|
|
|
|
|
90 |
|
91 |
}
|
92 |
|
67 |
|
68 |
$locale = get_option('WPLANG');
|
69 |
if ( !$locale ) return;
|
|
|
70 |
if ( !isset( $ultimatemember->available_languages[$locale] ) ) return;
|
71 |
|
72 |
$path = $ultimatemember->files->upload_basedir;
|
85 |
copy( $remote2_tmp, $path . 'ultimatemember-' . $locale . '.mo' );
|
86 |
unlink( $remote2_tmp );
|
87 |
|
88 |
+
$url = remove_query_arg('um_adm_action', $ultimatemember->permalinks->get_current_url() );
|
89 |
+
$url = add_query_arg('update','language_updated',$url);
|
90 |
+
exit( wp_redirect($url) );
|
91 |
|
92 |
}
|
93 |
|
admin/core/um-admin-dashboard.php
CHANGED
@@ -50,7 +50,8 @@ class UM_Admin_Dashboard {
|
|
50 |
*** @load metabox stuff
|
51 |
***/
|
52 |
function on_load_page() {
|
53 |
-
|
|
|
54 |
wp_enqueue_script('common');
|
55 |
wp_enqueue_script('wp-lists');
|
56 |
wp_enqueue_script('postbox');
|
@@ -62,7 +63,33 @@ class UM_Admin_Dashboard {
|
|
62 |
add_meta_box('um-metaboxes-contentbox-1', __('Users Overview','ultimatemember'), array(&$this, 'users_overview'), $this->pagehook, 'normal', 'core');
|
63 |
|
64 |
add_meta_box('um-metaboxes-sidebox-1', __('Purge Temp Files','ultimatemember'), array(&$this, 'purge_temp'), $this->pagehook, 'side', 'core');
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
}
|
67 |
|
68 |
function users_overview() {
|
@@ -75,6 +102,38 @@ class UM_Admin_Dashboard {
|
|
75 |
include_once um_path . 'admin/templates/dashboard/purge.php';
|
76 |
}
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
/***
|
79 |
*** @get a directory size
|
80 |
***/
|
50 |
*** @load metabox stuff
|
51 |
***/
|
52 |
function on_load_page() {
|
53 |
+
global $ultimatemember;
|
54 |
+
|
55 |
wp_enqueue_script('common');
|
56 |
wp_enqueue_script('wp-lists');
|
57 |
wp_enqueue_script('postbox');
|
63 |
add_meta_box('um-metaboxes-contentbox-1', __('Users Overview','ultimatemember'), array(&$this, 'users_overview'), $this->pagehook, 'normal', 'core');
|
64 |
|
65 |
add_meta_box('um-metaboxes-sidebox-1', __('Purge Temp Files','ultimatemember'), array(&$this, 'purge_temp'), $this->pagehook, 'side', 'core');
|
66 |
+
|
67 |
+
if ( $this->language_avaialable_not_installed() ) {
|
68 |
+
add_meta_box('um-metaboxes-sidebox-2', __('Language','ultimatemember'), array(&$this, 'dl_language'), $this->pagehook, 'side', 'core');
|
69 |
+
} else if ( $this->language_avaialable_installed() ) {
|
70 |
+
add_meta_box('um-metaboxes-sidebox-2', __('Language','ultimatemember'), array(&$this, 'up_language'), $this->pagehook, 'side', 'core');
|
71 |
+
} else if ( $this->language_not_available() ) {
|
72 |
+
add_meta_box('um-metaboxes-sidebox-2', __('Language','ultimatemember'), array(&$this, 'ct_language'), $this->pagehook, 'side', 'core');
|
73 |
+
}
|
74 |
+
|
75 |
+
}
|
76 |
+
|
77 |
+
function up_language() {
|
78 |
+
global $ultimatemember;
|
79 |
+
$locale = get_option('WPLANG');
|
80 |
+
include_once um_path . 'admin/templates/dashboard/language-update.php';
|
81 |
+
}
|
82 |
+
|
83 |
+
function dl_language() {
|
84 |
+
global $ultimatemember;
|
85 |
+
$locale = get_option('WPLANG');
|
86 |
+
include_once um_path . 'admin/templates/dashboard/language-download.php';
|
87 |
+
}
|
88 |
+
|
89 |
+
function ct_language() {
|
90 |
+
global $ultimatemember;
|
91 |
+
$locale = get_option('WPLANG');
|
92 |
+
include_once um_path . 'admin/templates/dashboard/language-contrib.php';
|
93 |
}
|
94 |
|
95 |
function users_overview() {
|
102 |
include_once um_path . 'admin/templates/dashboard/purge.php';
|
103 |
}
|
104 |
|
105 |
+
/***
|
106 |
+
*** @language not available
|
107 |
+
***/
|
108 |
+
function language_not_available() {
|
109 |
+
$locale = get_option('WPLANG');
|
110 |
+
if ( $locale && !isset( $ultimatemember->available_languages[$locale] ) && !file_exists( WP_LANG_DIR . '/plugins/ultimatemember-' . $locale . '.mo' ) )
|
111 |
+
return true;
|
112 |
+
return false;
|
113 |
+
}
|
114 |
+
|
115 |
+
/***
|
116 |
+
*** @language available but not installed
|
117 |
+
***/
|
118 |
+
function language_avaialable_not_installed() {
|
119 |
+
global $ultimatemember;
|
120 |
+
$locale = get_option('WPLANG');
|
121 |
+
if ( $locale && isset( $ultimatemember->available_languages[$locale] ) && !file_exists( WP_LANG_DIR . '/plugins/ultimatemember-' . $locale . '.mo' ) )
|
122 |
+
return true;
|
123 |
+
return false;
|
124 |
+
}
|
125 |
+
|
126 |
+
/***
|
127 |
+
*** @language available and installed
|
128 |
+
***/
|
129 |
+
function language_avaialable_installed() {
|
130 |
+
global $ultimatemember;
|
131 |
+
$locale = get_option('WPLANG');
|
132 |
+
if ( $locale && isset( $ultimatemember->available_languages[$locale] ) && file_exists( WP_LANG_DIR . '/plugins/ultimatemember-' . $locale . '.mo' ) )
|
133 |
+
return true;
|
134 |
+
return false;
|
135 |
+
}
|
136 |
+
|
137 |
/***
|
138 |
*** @get a directory size
|
139 |
***/
|
admin/core/um-admin-metabox.php
CHANGED
@@ -122,7 +122,10 @@ class UM_Admin_Metabox {
|
|
122 |
***/
|
123 |
function ui_on_off( $id, $default=0, $is_conditional=false, $cond1='', $cond1_show='', $cond1_hide='', $yes='', $no='' ) {
|
124 |
|
125 |
-
$meta = get_post_meta( get_the_ID(), $id, true );
|
|
|
|
|
|
|
126 |
|
127 |
$yes = ( !empty( $yes ) ) ? $yes : __('Yes');
|
128 |
$no = ( !empty( $no ) ) ? $no : __('No');
|
122 |
***/
|
123 |
function ui_on_off( $id, $default=0, $is_conditional=false, $cond1='', $cond1_show='', $cond1_hide='', $yes='', $no='' ) {
|
124 |
|
125 |
+
$meta = (string)get_post_meta( get_the_ID(), $id, true );
|
126 |
+
if ( $meta === '0' && $default > 0 ) {
|
127 |
+
$default = $meta;
|
128 |
+
}
|
129 |
|
130 |
$yes = ( !empty( $yes ) ) ? $yes : __('Yes');
|
131 |
$no = ( !empty( $no ) ) ? $no : __('No');
|
admin/core/um-admin-notices.php
CHANGED
@@ -27,7 +27,9 @@ class UM_Admin_Notices {
|
|
27 |
$path = str_replace('//','/',$path);
|
28 |
|
29 |
if ( !file_exists( $path ) ) {
|
|
|
30 |
@mkdir( $path, 0777, true);
|
|
|
31 |
}
|
32 |
|
33 |
}
|
@@ -111,6 +113,10 @@ class UM_Admin_Notices {
|
|
111 |
$update = $_REQUEST['update'];
|
112 |
switch($update) {
|
113 |
|
|
|
|
|
|
|
|
|
114 |
case 'purged_temp':
|
115 |
$messages[0]['content'] = __('Your temp uploads directory is now clean.','ultimatemember');
|
116 |
break;
|
27 |
$path = str_replace('//','/',$path);
|
28 |
|
29 |
if ( !file_exists( $path ) ) {
|
30 |
+
$old = umask(0);
|
31 |
@mkdir( $path, 0777, true);
|
32 |
+
umask($old);
|
33 |
}
|
34 |
|
35 |
}
|
113 |
$update = $_REQUEST['update'];
|
114 |
switch($update) {
|
115 |
|
116 |
+
case 'language_updated':
|
117 |
+
$messages[0]['content'] = __('Your translation files have been updated successfully.','ultimatemember');
|
118 |
+
break;
|
119 |
+
|
120 |
case 'purged_temp':
|
121 |
$messages[0]['content'] = __('Your temp uploads directory is now clean.','ultimatemember');
|
122 |
break;
|
admin/core/um-admin-users.php
CHANGED
@@ -248,7 +248,7 @@ class UM_Admin_Users {
|
|
248 |
|
249 |
um_fetch_user( $user_id );
|
250 |
if ( um_user('account_status') == 'approved' ) {
|
251 |
-
$output = '<span class="um-admin-tag small
|
252 |
} else {
|
253 |
$output = '<span class="um-admin-tag small pending">'.um_user('account_status_name').'</span>';
|
254 |
}
|
248 |
|
249 |
um_fetch_user( $user_id );
|
250 |
if ( um_user('account_status') == 'approved' ) {
|
251 |
+
$output = '<span class="um-admin-tag small approved">'.um_user('account_status_name').'</span>';
|
252 |
} else {
|
253 |
$output = '<span class="um-admin-tag small pending">'.um_user('account_status_name').'</span>';
|
254 |
}
|
admin/templates/dashboard/language-contrib.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<p><?php printf(__('Ultimate Member is not yet available in your language: <strong>%1$s</strong>.','ultimatemember'), $locale); ?></p>
|
2 |
+
|
3 |
+
<p><?php _e('If you want to contribute this translation to the plugin, please add it on our <a href="https://ultimatemember.com/forums/"><forums</a>.','ultimatemember'); ?></p>
|
admin/templates/dashboard/language-download.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<p><?php printf(__('Ultimate Member is available in your language: <strong>%1$s (%2$s)</strong>.','ultimatemember'), $ultimatemember->available_languages[$locale], $locale); ?></p>
|
2 |
+
|
3 |
+
<p><a href="<?php echo add_query_arg( 'um_adm_action', 'um_language_downloader' ); ?>" class="button"><?php _e('Download Translation','ultimatemember'); ?></a></p>
|
admin/templates/dashboard/language-update.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<p><?php printf(__('You are currently using Ultimate Member in your language: <strong>%1$s (%2$s)</strong>.','ultimatemember'), $ultimatemember->available_languages[$locale], $locale); ?></p>
|
2 |
+
|
3 |
+
<p><a href="<?php echo add_query_arg( 'um_adm_action', 'um_language_downloader' ); ?>" class="button"><?php _e('Force Update Translation','ultimatemember'); ?></a></p>
|
core/lib/upload/um-image-upload.php
CHANGED
@@ -16,7 +16,7 @@ if(isset($_FILES[$id]['name'])) {
|
|
16 |
|
17 |
$temp = $_FILES[$id]["tmp_name"];
|
18 |
$file = $_FILES[$id]["name"];
|
19 |
-
|
20 |
|
21 |
$error = $ultimatemember->files->check_image_upload( $temp, $id );
|
22 |
if ( $error ){
|
16 |
|
17 |
$temp = $_FILES[$id]["tmp_name"];
|
18 |
$file = $_FILES[$id]["name"];
|
19 |
+
$file = str_replace(array('(',')','+','&','?','%','{','}','[',']','=',',',';',' '),'',$file);
|
20 |
|
21 |
$error = $ultimatemember->files->check_image_upload( $temp, $id );
|
22 |
if ( $error ){
|
core/um-access.php
CHANGED
@@ -15,15 +15,19 @@ class UM_Access {
|
|
15 |
*** @do actions based on priority
|
16 |
***/
|
17 |
function template_redirect() {
|
18 |
-
|
|
|
19 |
do_action('um_access_homepage_per_role');
|
20 |
|
21 |
do_action('um_access_global_settings');
|
22 |
|
23 |
do_action('um_access_post_settings');
|
24 |
|
25 |
-
if ( $this->redirect_handler && !$this->allow_access )
|
|
|
|
|
26 |
exit( wp_redirect( $this->redirect_handler ) );
|
|
|
27 |
|
28 |
}
|
29 |
|
15 |
*** @do actions based on priority
|
16 |
***/
|
17 |
function template_redirect() {
|
18 |
+
global $ultimatemember;
|
19 |
+
|
20 |
do_action('um_access_homepage_per_role');
|
21 |
|
22 |
do_action('um_access_global_settings');
|
23 |
|
24 |
do_action('um_access_post_settings');
|
25 |
|
26 |
+
if ( $this->redirect_handler && !$this->allow_access ) {
|
27 |
+
$curr = $ultimatemember->permalinks->get_current_url();
|
28 |
+
$this->redirect_handler = add_query_arg('redirect_to', $curr, $this->redirect_handler);
|
29 |
exit( wp_redirect( $this->redirect_handler ) );
|
30 |
+
}
|
31 |
|
32 |
}
|
33 |
|
core/um-account.php
CHANGED
@@ -114,30 +114,56 @@ class UM_Account {
|
|
114 |
function get_tab_output( $id ) {
|
115 |
global $ultimatemember;
|
116 |
|
|
|
|
|
117 |
switch( $id ) {
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
$args = 'profile_privacy,hide_in_members';
|
|
|
|
|
|
|
|
|
|
|
120 |
break;
|
121 |
-
|
|
|
122 |
$args = 'single_user_password';
|
|
|
|
|
|
|
|
|
|
|
123 |
break;
|
124 |
-
|
|
|
125 |
$args = 'user_login,first_name,last_name,user_email';
|
|
|
|
|
|
|
|
|
|
|
126 |
break;
|
127 |
-
|
|
|
128 |
$args = 'user_password';
|
|
|
|
|
|
|
|
|
|
|
129 |
break;
|
|
|
130 |
default :
|
131 |
$args = null;
|
132 |
break;
|
|
|
133 |
}
|
134 |
-
|
135 |
-
$fields = $ultimatemember->builtin->get_specific_fields( $args );
|
136 |
-
$output = null;
|
137 |
-
foreach( $fields as $key => $data ){
|
138 |
-
$output .= $ultimatemember->fields->edit_field( $key, $data );
|
139 |
-
}
|
140 |
-
return $output;
|
141 |
}
|
142 |
|
143 |
/***
|
114 |
function get_tab_output( $id ) {
|
115 |
global $ultimatemember;
|
116 |
|
117 |
+
$output = null;
|
118 |
+
|
119 |
switch( $id ) {
|
120 |
+
|
121 |
+
case 'notifications':
|
122 |
+
$output = apply_filters("um_account_content_hook_{$id}", $output);
|
123 |
+
return $output;
|
124 |
+
break;
|
125 |
+
|
126 |
+
case 'privacy':
|
127 |
$args = 'profile_privacy,hide_in_members';
|
128 |
+
$fields = $ultimatemember->builtin->get_specific_fields( $args );
|
129 |
+
foreach( $fields as $key => $data ){
|
130 |
+
$output .= $ultimatemember->fields->edit_field( $key, $data );
|
131 |
+
}
|
132 |
+
return $output;
|
133 |
break;
|
134 |
+
|
135 |
+
case 'delete':
|
136 |
$args = 'single_user_password';
|
137 |
+
$fields = $ultimatemember->builtin->get_specific_fields( $args );
|
138 |
+
foreach( $fields as $key => $data ){
|
139 |
+
$output .= $ultimatemember->fields->edit_field( $key, $data );
|
140 |
+
}
|
141 |
+
return $output;
|
142 |
break;
|
143 |
+
|
144 |
+
case 'general':
|
145 |
$args = 'user_login,first_name,last_name,user_email';
|
146 |
+
$fields = $ultimatemember->builtin->get_specific_fields( $args );
|
147 |
+
foreach( $fields as $key => $data ){
|
148 |
+
$output .= $ultimatemember->fields->edit_field( $key, $data );
|
149 |
+
}
|
150 |
+
return $output;
|
151 |
break;
|
152 |
+
|
153 |
+
case 'password':
|
154 |
$args = 'user_password';
|
155 |
+
$fields = $ultimatemember->builtin->get_specific_fields( $args );
|
156 |
+
foreach( $fields as $key => $data ){
|
157 |
+
$output .= $ultimatemember->fields->edit_field( $key, $data );
|
158 |
+
}
|
159 |
+
return $output;
|
160 |
break;
|
161 |
+
|
162 |
default :
|
163 |
$args = null;
|
164 |
break;
|
165 |
+
|
166 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
}
|
168 |
|
169 |
/***
|
core/um-actions-access.php
CHANGED
@@ -114,7 +114,7 @@
|
|
114 |
case 2:
|
115 |
|
116 |
if ( !is_user_logged_in() ){
|
117 |
-
if ( !$access_redirect ) $access_redirect =
|
118 |
$redirect_to = $access_redirect;
|
119 |
}
|
120 |
|
114 |
case 2:
|
115 |
|
116 |
if ( !is_user_logged_in() ){
|
117 |
+
if ( !$access_redirect ) $access_redirect = um_get_core_page('login');
|
118 |
$redirect_to = $access_redirect;
|
119 |
}
|
120 |
|
core/um-actions-account.php
CHANGED
@@ -38,6 +38,8 @@
|
|
38 |
}
|
39 |
}
|
40 |
|
|
|
|
|
41 |
$tab = ( get_query_var('um_tab') ) ? get_query_var('um_tab') : 'general';
|
42 |
|
43 |
exit( wp_redirect( $ultimatemember->account->tab_link( $tab ) ) );
|
@@ -218,6 +220,30 @@
|
|
218 |
}
|
219 |
}
|
220 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
/***
|
222 |
*** @display account photo and username
|
223 |
***/
|
38 |
}
|
39 |
}
|
40 |
|
41 |
+
do_action('um_pre_account_update');
|
42 |
+
|
43 |
$tab = ( get_query_var('um_tab') ) ? get_query_var('um_tab') : 'general';
|
44 |
|
45 |
exit( wp_redirect( $ultimatemember->account->tab_link( $tab ) ) );
|
220 |
}
|
221 |
}
|
222 |
|
223 |
+
/***
|
224 |
+
*** @display tab "Notifications"
|
225 |
+
***/
|
226 |
+
add_action('um_account_tab__notifications', 'um_account_tab__notifications');
|
227 |
+
function um_account_tab__notifications( $info ) {
|
228 |
+
global $ultimatemember;
|
229 |
+
extract( $info );
|
230 |
+
extract( $info );
|
231 |
+
|
232 |
+
$output = $ultimatemember->account->get_tab_output('notifications');
|
233 |
+
|
234 |
+
if ( $output ) { ?>
|
235 |
+
|
236 |
+
<div class="um-account-heading uimob340-hide uimob500-hide"><i class="<?php echo $icon; ?>"></i><?php echo $title; ?></div>
|
237 |
+
|
238 |
+
<?php echo $output; ?>
|
239 |
+
|
240 |
+
<div class="um-col-alt um-col-alt-b"><div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Update Notifications','ultimatemember'); ?>" class="um-button" /></div><div class="um-clear"></div></div>
|
241 |
+
|
242 |
+
<?php
|
243 |
+
|
244 |
+
}
|
245 |
+
}
|
246 |
+
|
247 |
/***
|
248 |
*** @display account photo and username
|
249 |
***/
|
core/um-mail.php
CHANGED
@@ -11,7 +11,7 @@ class UM_Mail {
|
|
11 |
/***
|
12 |
*** @mandrill compatibility
|
13 |
***/
|
14 |
-
function mandrill_nl2br($nl2br, $message) {
|
15 |
|
16 |
// text emails
|
17 |
$nl2br = true;
|
11 |
/***
|
12 |
*** @mandrill compatibility
|
13 |
***/
|
14 |
+
function mandrill_nl2br($nl2br, $message = '') {
|
15 |
|
16 |
// text emails
|
17 |
$nl2br = true;
|
core/um-query.php
CHANGED
@@ -181,7 +181,7 @@ class UM_Query {
|
|
181 |
$real_role_slug = $role_slug;
|
182 |
}
|
183 |
} else {
|
184 |
-
$post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' AND post_name = '$role_slug'");
|
185 |
$real_role_slug = $role_slug;
|
186 |
}
|
187 |
|
181 |
$real_role_slug = $role_slug;
|
182 |
}
|
183 |
} else {
|
184 |
+
$post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'um_role' AND post_name = '$role_slug'");
|
185 |
$real_role_slug = $role_slug;
|
186 |
}
|
187 |
|
core/um-shortcodes.php
CHANGED
@@ -98,12 +98,14 @@ class UM_Shortcodes {
|
|
98 |
}
|
99 |
|
100 |
$args = apply_filters('um_shortcode_args_filter', $args );
|
101 |
-
|
102 |
-
if ( um_profile_id() && isset( $args['role'] ) && $args['role'] && $args['role'] != $ultimatemember->query->get_role_by_userid( um_profile_id() ) )
|
103 |
-
return;
|
104 |
|
105 |
extract( $args, EXTR_SKIP );
|
106 |
|
|
|
|
|
|
|
|
|
|
|
107 |
do_action("um_pre_{$mode}_shortcode", $args);
|
108 |
|
109 |
do_action("um_before_form_is_loaded", $args);
|
98 |
}
|
99 |
|
100 |
$args = apply_filters('um_shortcode_args_filter', $args );
|
|
|
|
|
|
|
101 |
|
102 |
extract( $args, EXTR_SKIP );
|
103 |
|
104 |
+
// for profiles only
|
105 |
+
if ( $mode == 'profile' && um_profile_id() && isset( $args['role'] ) && $args['role'] &&
|
106 |
+
$args['role'] != $ultimatemember->query->get_role_by_userid( um_profile_id() ) )
|
107 |
+
return;
|
108 |
+
|
109 |
do_action("um_pre_{$mode}_shortcode", $args);
|
110 |
|
111 |
do_action("um_before_form_is_loaded", $args);
|
index.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: Ultimate Member is a powerful community and membership plugin that allows you to create beautiful community and membership sites with WordPress
|
6 |
-
Version: 1.0.
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
*/
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: Ultimate Member is a powerful community and membership plugin that allows you to create beautiful community and membership sites with WordPress
|
6 |
+
Version: 1.0.48
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
*/
|
readme.txt
CHANGED
@@ -7,7 +7,7 @@ Tags: access control, author, authors, author profile, comments, community, comm
|
|
7 |
Requires at least: 4.1
|
8 |
Tested up to: 4.1
|
9 |
|
10 |
-
Stable Tag: 1.0.
|
11 |
|
12 |
License: GNU Version 2 or Any Later Version
|
13 |
|
@@ -186,6 +186,18 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
|
|
186 |
|
187 |
== Changelog ==
|
188 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
= 1.0.47: February 9, 2015 =
|
190 |
|
191 |
* New: A more native dashboard for Ultimate Member
|
7 |
Requires at least: 4.1
|
8 |
Tested up to: 4.1
|
9 |
|
10 |
+
Stable Tag: 1.0.48
|
11 |
|
12 |
License: GNU Version 2 or Any Later Version
|
13 |
|
186 |
|
187 |
== Changelog ==
|
188 |
|
189 |
+
= 1.0.48: February 10, 2015 =
|
190 |
+
|
191 |
+
* New: added translation downloader/updater in plugin dashboard
|
192 |
+
* New: added admin notice when language is updated or downloaded
|
193 |
+
* Tweak: redirect to login page by default if content is restricted
|
194 |
+
* Tweak: redirect back to the protected content after successful login
|
195 |
+
* Tweak: small modifications to plugin admin css
|
196 |
+
* Fixed: issue with registration form per role not appearing (when logged in)
|
197 |
+
* Fixed: image and file uploads strip illegal characters from file name
|
198 |
+
* Fixed: small issue with mandrill plugin
|
199 |
+
* Fixed: bug with role creation that have used slugs that exist in database
|
200 |
+
|
201 |
= 1.0.47: February 9, 2015 =
|
202 |
|
203 |
* New: A more native dashboard for Ultimate Member
|