mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
Version 1.0.35
This commit is contained in:
@@ -11,6 +11,17 @@
|
||||
exit( wp_redirect( remove_query_arg('um_adm_action') ) );
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Hide exif notice
|
||||
***/
|
||||
add_action('um_admin_do_action__um_show_exif_notice', 'um_admin_do_action__um_show_exif_notice');
|
||||
function um_admin_do_action__um_show_exif_notice( $action ){
|
||||
global $ultimatemember;
|
||||
if ( !is_admin() || !current_user_can('manage_options') ) die();
|
||||
update_option( $action, 1 );
|
||||
exit( wp_redirect( remove_query_arg('um_adm_action') ) );
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Opt-in tracking
|
||||
***/
|
||||
|
||||
@@ -348,7 +348,7 @@ class UM_Admin_Metabox {
|
||||
|
||||
$where = array( 'ID' => $post_id );
|
||||
if (empty($_POST['post_title'])) $_POST['post_title'] = 'Role #'.$post_id;
|
||||
$wpdb->update( $wpdb->posts, array( 'post_title' => $_POST['post_title'] ), $where );
|
||||
$wpdb->update( $wpdb->posts, array( 'post_title' => $_POST['post_title'], 'post_name' => wp_unique_post_slug( sanitize_title( $_POST['post_title'] ) ) ), $where );
|
||||
|
||||
// save
|
||||
delete_post_meta( $post_id, '_um_can_view_roles' );
|
||||
|
||||
@@ -15,9 +15,9 @@ class UM_Admin_Notices {
|
||||
***/
|
||||
function main_notices(){
|
||||
|
||||
$hide_notice = get_option('um_can_register_notice');
|
||||
$hide_register_notice = get_option('um_can_register_notice');
|
||||
|
||||
if ( !get_option('users_can_register') && !$hide_notice ) {
|
||||
if ( !get_option('users_can_register') && !$hide_register_notice ) {
|
||||
|
||||
echo '<div class="updated" style="border-color: #3ba1da;"><p>';
|
||||
|
||||
@@ -26,6 +26,19 @@ class UM_Admin_Notices {
|
||||
echo '</p></div>';
|
||||
|
||||
}
|
||||
|
||||
$hide_exif_notice = get_option('um_show_exif_notice');
|
||||
|
||||
if ( !extension_loaded('exif') && !$hide_exif_notice ) {
|
||||
|
||||
echo '<div class="updated" style="border-color: #3ba1da;"><p>';
|
||||
|
||||
echo sprintf(__( 'Exif is not enabled on your server. Mobile photo uploads will not be rotated correctly until you enable the exif extension. <a href="%s">Hide this notice</a>', 'ultimatemember' ), add_query_arg('um_adm_action', 'um_show_exif_notice') );
|
||||
|
||||
echo '</p></div>';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
|
||||
@@ -117,7 +117,8 @@ class UM_Admin_Users {
|
||||
|
||||
foreach($users as $user_id){
|
||||
$ultimatemember->user->set( $user_id );
|
||||
if ( !um_user('super_admin') ) {
|
||||
// change role for non-wp admins or non-community admins only
|
||||
if ( !um_user('super_admin') || um_user('role') != 'admin' ) {
|
||||
$ultimatemember->user->set_role( $new_role );
|
||||
} else {
|
||||
$admin_err = 1;
|
||||
|
||||
@@ -7,13 +7,21 @@
|
||||
<label class="um-admin-half"><?php _e('Can access wp-admin?','ultimatemember'); ?> <?php $this->tooltip( __('The core admin role must always have access to wp-admin / WordPress backend','ultimatemember') ); ?></label>
|
||||
<span class="um-admin-half"><?php $this->ui_on_off('_um_can_access_wpadmin', 1); ?></span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
<p>
|
||||
<label class="um-admin-half"><?php _e('Force hiding adminbar in frontend?','ultimatemember'); ?> <?php $this->tooltip( __('Show/hide the adminbar on frontend','ultimatemember') ); ?></label>
|
||||
<span class="um-admin-half"><?php $this->ui_on_off('_um_can_not_see_adminbar', 0); ?></span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
<?php } else { ?>
|
||||
<p>
|
||||
<label class="um-admin-half"><?php _e('Can access wp-admin?','ultimatemember'); ?> <?php $this->tooltip( __('Allow this role to access the admin dashboard. If turned on the WordPress toolbar will appear at top of the page.','ultimatemember') ); ?></label>
|
||||
<span class="um-admin-half"><?php $this->ui_on_off('_um_can_access_wpadmin', 0); ?></span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
<p>
|
||||
<label class="um-admin-half"><?php _e('Force hiding adminbar in frontend?','ultimatemember'); ?> <?php $this->tooltip( __('Show/hide the adminbar on frontend','ultimatemember') ); ?></label>
|
||||
<span class="um-admin-half"><?php $this->ui_on_off('_um_can_not_see_adminbar', 1); ?></span>
|
||||
</p><div class="um-admin-clear"></div>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
<p>
|
||||
<label class="um-admin-half"><?php _e('Can edit other member accounts?','ultimatemember'); ?> <?php $this->tooltip( __('Allow this role to edit accounts of other members','ultimatemember') ); ?></label>
|
||||
<span class="um-admin-half"><?php $this->ui_on_off('_um_can_edit_everyone', 0, true, 1, 'edit-roles', 'xxx'); ?></span>
|
||||
|
||||
+35
-15
@@ -342,26 +342,37 @@ font-weight: normal;
|
||||
color: #FFF!important;
|
||||
}
|
||||
|
||||
.um-profile-nav-item.active a span.count {background: transparent}
|
||||
|
||||
.um-profile-nav-item a {
|
||||
color: #fff!important;
|
||||
font-size: 15px;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
padding: 7px 20px;
|
||||
padding: 6px 10px 6px 28px;
|
||||
display: block;
|
||||
float: left;
|
||||
border-radius: 4px;
|
||||
margin-left: 10px;
|
||||
margin-left: 5px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.um-profile-nav-item a:hover {
|
||||
background: #555;
|
||||
.um-profile-nav-item.without-icon a {padding-left: 10px}
|
||||
.um-profile-nav-item.without-icon span.title {padding-left: 0}
|
||||
.um-profile-nav-item.without-icon i {display: none}
|
||||
|
||||
.um-profile-nav-item a:hover {background: #555}
|
||||
.um-profile-nav-item i {font-size: 18px;height: 18px;line-height: 18px;position: absolute;display: block;top: 8px;left: 10px}
|
||||
.um-profile-nav-item span.title {padding-left: 5px}
|
||||
.um-profile-nav-item span.count {
|
||||
font-size: 12px;
|
||||
font-weight: 300;
|
||||
background: #777;
|
||||
border-radius: 3px;
|
||||
padding: 2px 4px;
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.um-profile-nav-item i {
|
||||
font-size: 20px;
|
||||
width: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
/* Subnav */
|
||||
|
||||
.um-profile-subnav {
|
||||
background: #eee;
|
||||
@@ -415,18 +426,27 @@ font-weight: normal;
|
||||
.um-item-link a {
|
||||
color: #333;
|
||||
font-size: 16px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.um-item-link a:hover {
|
||||
text-decoration: underline !important;
|
||||
}
|
||||
|
||||
.um-item-meta {color: #999}
|
||||
.um-item-link i {
|
||||
font-size: 24px;
|
||||
color: #ccc;
|
||||
margin-right: 10px;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
.um-item-meta {color: #888}
|
||||
|
||||
.um-item-meta span {
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
font-style: italic;
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.um-item-meta span:not(:last-child):after {
|
||||
@@ -435,7 +455,7 @@ font-weight: normal;
|
||||
content: "•";
|
||||
}
|
||||
|
||||
.um-item-meta a {border-bottom: 1px solid #E0E0E0;color: #3BA1DA}
|
||||
.um-item-meta a {font-weight: bold;border-bottom: 1px solid #E0E0E0;color: #3BA1DA}
|
||||
.um-item-meta a:hover {border-bottom-color: #bbb}
|
||||
|
||||
.um-load-items {
|
||||
|
||||
@@ -46,11 +46,13 @@ div.uimob340 .um-profile-nav {
|
||||
}
|
||||
|
||||
div.uimob340 .um-profile-nav-item a {
|
||||
padding: 1px 12px;
|
||||
padding: 10px 16px;
|
||||
margin-left: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
div.uimob340 .um-profile-nav-item i{display:block;position: static;top: auto;left: auto}
|
||||
|
||||
div.uimob340 .um-profile-subnav {
|
||||
padding: 8px 15px;
|
||||
}
|
||||
@@ -260,14 +262,17 @@ div.uimob340 .um-account-meta {
|
||||
/********************************************/
|
||||
|
||||
div.uimob500 .um-profile-nav {
|
||||
padding: 6px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.uimob500 .um-profile-nav-item a {
|
||||
padding: 1px 12px;
|
||||
margin-left: 6px;
|
||||
padding: 10px 16px;
|
||||
margin-left: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
div.uimob500 .um-profile-nav-item i{display:block;position: static;top: auto;left: auto;font-size: 22px;height: 22px;line-height: 22px;}
|
||||
|
||||
div.uimob500 .um-profile-subnav {
|
||||
padding: 8px 15px;
|
||||
}
|
||||
@@ -462,16 +467,18 @@ div.uimob500 .um-account-meta {
|
||||
for 800px and below
|
||||
**/
|
||||
|
||||
div.uimob800 .um-profile-nav-item a {
|
||||
padding: 1px 12px;
|
||||
margin-left: 6px;
|
||||
div.uimob800 .um-profile-nav {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.uimob800 .um-profile-nav-item i {
|
||||
font-size: 25px;
|
||||
width: 25px;
|
||||
div.uimob800 .um-profile-nav-item a {
|
||||
padding: 10px 20px;
|
||||
margin-left: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
div.uimob800 .um-profile-nav-item i{display:block;position: static;top: auto;left: auto;font-size: 26px;height: 26px;line-height: 26px;}
|
||||
|
||||
div.uimob800 .um-profile-subnav {
|
||||
padding: 8px 15px;
|
||||
}
|
||||
@@ -555,6 +562,8 @@ div.uimob800 .um-account-meta img {
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
div.uimob800 .um-profile-photo {
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -65,7 +65,7 @@ function um_conditional(){
|
||||
}
|
||||
|
||||
if ( operator0 == 'contains' ) {
|
||||
if ( live_value.indexOf( value0 ) >= 0 ) {
|
||||
if ( live_value && live_value.indexOf( value0 ) >= 0 ) {
|
||||
jQuery(this).fadeIn();
|
||||
} else {
|
||||
jQuery(this).hide();
|
||||
@@ -127,7 +127,7 @@ function um_conditional(){
|
||||
}
|
||||
|
||||
if ( operator0 == 'contains' ) {
|
||||
if ( live_value.indexOf( value0 ) >= 0 ) {
|
||||
if ( live_value && live_value.indexOf( value0 ) >= 0 ) {
|
||||
jQuery(this).hide();
|
||||
} else {
|
||||
jQuery(this).fadeIn();
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -61,7 +61,7 @@
|
||||
|
||||
$post_id = get_option('woocommerce_shop_page_id');
|
||||
|
||||
} else if ( is_archive() ) {
|
||||
} else if ( is_archive() || is_front_page() || is_search() || in_the_loop() ) {
|
||||
|
||||
return;
|
||||
|
||||
|
||||
@@ -65,6 +65,10 @@
|
||||
$success = __('You have successfully changed your password.','ultimatemember');
|
||||
break;
|
||||
|
||||
case 'account_active':
|
||||
$success = __('Your account is now active! You can login.','ultimatemember');
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
/***
|
||||
*** @Search results
|
||||
***/
|
||||
add_action('pre_get_posts','um_pre_get_posts');
|
||||
function um_pre_get_posts($query) {
|
||||
|
||||
if ( !is_admin() && $query->is_main_query() ) {
|
||||
|
||||
if ( $query->is_search || $query->is_archive() || $query->is_home ) {
|
||||
|
||||
if ( $query->is_home && !um_get_option('exclude_from_main_loop' ) ) return;
|
||||
if ( $query->is_archive && !um_get_option('exclude_from_archive_loop' ) ) return;
|
||||
if ( $query->is_search && !um_get_option('exclude_from_search_loop' ) ) return;
|
||||
|
||||
if ( is_user_logged_in() ) {
|
||||
|
||||
$meta_query['relation'] = 'OR';
|
||||
$meta_query[] = array(
|
||||
'key'=>'_um_accessible',
|
||||
'value'=>'1',
|
||||
'compare'=>'!=',
|
||||
);
|
||||
$meta_query[] = array(
|
||||
'key'=>'_um_accessible',
|
||||
'compare'=>'NOT EXISTS',
|
||||
);
|
||||
$query->set('meta_query',$meta_query);
|
||||
|
||||
}
|
||||
|
||||
if ( !is_user_logged_in() ) {
|
||||
|
||||
$meta_query['relation'] = 'OR';
|
||||
$meta_query[] = array(
|
||||
'key'=>'_um_accessible',
|
||||
'value'=>'2',
|
||||
'compare'=>'!=',
|
||||
);
|
||||
$meta_query[] = array(
|
||||
'key'=>'_um_accessible',
|
||||
'compare'=>'NOT EXISTS',
|
||||
);
|
||||
$query->set('meta_query',$meta_query);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+45
-17
@@ -141,9 +141,11 @@
|
||||
add_action('um_profile_header_cover_area', 'um_profile_header_cover_area' );
|
||||
function um_profile_header_cover_area( $args ) {
|
||||
global $ultimatemember;
|
||||
|
||||
if ( $args['cover_enabled'] == 1 ) {
|
||||
|
||||
if ( $args['cover_enabled'] == 1 ) {
|
||||
|
||||
$default_cover = um_get_option('default_cover');
|
||||
|
||||
$overlay = '<span class="um-cover-overlay">
|
||||
<span class="um-cover-overlay-s">
|
||||
<ins>
|
||||
@@ -155,7 +157,7 @@
|
||||
|
||||
?>
|
||||
|
||||
<div class="um-cover <?php if ( um_profile('cover_photo') ) echo 'has-cover'; ?>" data-user_id="<?php echo um_profile_id(); ?>" data-ratio="<?php echo $args['cover_ratio']; ?>">
|
||||
<div class="um-cover <?php if ( um_profile('cover_photo') || ( $default_cover && $default_cover['url'] ) ) echo 'has-cover'; ?>" data-user_id="<?php echo um_profile_id(); ?>" data-ratio="<?php echo $args['cover_ratio']; ?>">
|
||||
|
||||
<?php
|
||||
|
||||
@@ -170,7 +172,6 @@
|
||||
echo $ultimatemember->menu->new_ui( 'bc', 'div.um-cover', 'click', $items );
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<?php $ultimatemember->fields->add_hidden_field( 'cover_photo' ); ?>
|
||||
@@ -195,13 +196,21 @@
|
||||
|
||||
?>
|
||||
|
||||
<?php } else { ?>
|
||||
<?php } elseif ( $default_cover && $default_cover['url'] ) {
|
||||
|
||||
$default_cover = $default_cover['url'];
|
||||
|
||||
echo '<img src="'. $default_cover . '" alt="" />';
|
||||
|
||||
} else {
|
||||
|
||||
<?php if ( !isset( $ultimatemember->user->cannot_edit ) ) { ?>
|
||||
<a href="#" class="um-cover-add um-manual-trigger" data-parent=".um-cover" data-child=".um-btn-auto-width"><span class="um-cover-add-i"><i class="um-icon-plus um-tip-n" title="<?php _e('Upload a cover photo','ultimatemember'); ?>"></i></span></a>
|
||||
<?php } ?>
|
||||
if ( !isset( $ultimatemember->user->cannot_edit ) ) { ?>
|
||||
|
||||
<?php } ?>
|
||||
<a href="#" class="um-cover-add um-manual-trigger" data-parent=".um-cover" data-child=".um-btn-auto-width"><span class="um-cover-add-i"><i class="um-icon-plus um-tip-n" title="<?php _e('Upload a cover photo','ultimatemember'); ?>"></i></span></a>
|
||||
|
||||
<?php }
|
||||
|
||||
} ?>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -505,12 +514,21 @@
|
||||
function um_profile_navbar( $args ) {
|
||||
global $ultimatemember;
|
||||
|
||||
$tabs = $ultimatemember->profile->tabs();
|
||||
$tabs = $ultimatemember->profile->tabs_active();
|
||||
|
||||
if ( count( $tabs ) == 1 ) return;
|
||||
$tabs = apply_filters('um_user_profile_tabs', $tabs );
|
||||
|
||||
$active_tab = $ultimatemember->profile->active_tab;
|
||||
$ultimatemember->user->tabs = $tabs;
|
||||
|
||||
if ( count( $tabs ) <= 1 ) return;
|
||||
|
||||
$active_tab = $ultimatemember->profile->active_tab();
|
||||
|
||||
if ( !isset( $tabs[$active_tab] ) )
|
||||
$active_tab = 'main';
|
||||
$ultimatemember->profile->active_tab = $active_tab;
|
||||
$ultimatemember->profile->active_subnav = null;
|
||||
|
||||
?>
|
||||
|
||||
<div class="um-profile-nav">
|
||||
@@ -523,20 +541,30 @@
|
||||
$nav_link = add_query_arg('profiletab', $id, $nav_link )
|
||||
?>
|
||||
|
||||
<div class="um-profile-nav-item <?php if ( $id == $active_tab ) echo 'active'; ?>"><a href="<?php echo $nav_link; ?>" title="<?php echo $tab['name']; ?>"><i class="<?php echo $tab['icon']; ?> uimob500-show uimob340-show uimob800-show"></i><span class="uimob500-hide uimob340-hide uimob800-hide"><?php echo $tab['name']; ?></span></a></div>
|
||||
<div class="um-profile-nav-item <?php if ( !um_get_option('profile_menu_icons') ) { echo 'without-icon'; } ?> <?php if ( $id == $active_tab ) { echo 'active'; } ?>">
|
||||
<a href="<?php echo $nav_link; ?>" title="<?php echo $tab['name']; ?>">
|
||||
|
||||
<i class="<?php echo $tab['icon']; ?>"></i>
|
||||
|
||||
<span class="uimob500-hide uimob340-hide uimob800-hide title"><?php echo $tab['name']; ?></span>
|
||||
|
||||
<?php if ( um_get_option('profile_menu_counts') && isset( $tab['count'] ) ) { ?>
|
||||
<span class="uimob500-hide uimob340-hide uimob800-hide count"><?php echo $tab['count']; ?></span>
|
||||
<?php } ?>
|
||||
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
<div class="um-clear"></div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
foreach( $tabs as $id => $tab ) {
|
||||
<?php foreach( $tabs as $id => $tab ) {
|
||||
|
||||
if ( isset( $tab['subnav'] ) && $active_tab == $id ) {
|
||||
|
||||
$active_subnav = (isset($ultimatemember->profile->active_subnav)) ? $ultimatemember->profile->active_subnav : $tab['subnav_default'];
|
||||
$active_subnav = ( $ultimatemember->profile->active_subnav() ) ? $ultimatemember->profile->active_subnav() : $tab['subnav_default'];
|
||||
|
||||
echo '<div class="um-profile-subnav">';
|
||||
foreach( $tab['subnav'] as $id => $subtab ) {
|
||||
|
||||
@@ -64,7 +64,10 @@
|
||||
*** @hide admin bar appropriately
|
||||
***/
|
||||
function um_control_admin_bar(){
|
||||
if( !is_admin() && !um_user('can_access_wpadmin')) {
|
||||
if ( um_user('can_not_see_adminbar') )
|
||||
return false;
|
||||
|
||||
if( !is_admin() && !um_user('can_access_wpadmin') ) {
|
||||
return false;
|
||||
} else {
|
||||
um_fetch_user( get_current_user_id() );
|
||||
|
||||
+27
-32
@@ -48,7 +48,6 @@ class UM_Fields {
|
||||
echo $output;
|
||||
|
||||
echo '</div>';
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
@@ -448,28 +447,6 @@ class UM_Fields {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Fix for children custom fields
|
||||
***/
|
||||
function find_custom_field_data($key, $fields) {
|
||||
foreach ($fields as $k => $v) {
|
||||
|
||||
if ( $k == $key ){
|
||||
return $fields[$key];
|
||||
}
|
||||
|
||||
if (isset($fields[$k]['fields'])) {
|
||||
foreach( $fields[$k]['fields'] as $k1 => $v1 ){
|
||||
if ($k1 == $key){
|
||||
return $fields[$k]['fields'][$k1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return array('');
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Get Field Icon
|
||||
@@ -509,9 +486,9 @@ class UM_Fields {
|
||||
global $ultimatemember;
|
||||
|
||||
$fields = $this->get_fields();
|
||||
|
||||
if ( isset( $fields ) && is_array( $fields ) ) {
|
||||
$array = $this->find_custom_field_data($key, $fields);
|
||||
|
||||
if ( isset( $fields ) && is_array( $fields ) && isset( $fields[$key] ) ) {
|
||||
$array = $fields[$key];
|
||||
} else {
|
||||
$array = $ultimatemember->builtin->predefined_fields[$key];
|
||||
}
|
||||
@@ -607,6 +584,7 @@ class UM_Fields {
|
||||
$array['disabled_weekdays'] = '[' . implode(',',$array['disabled_weekdays']) . ']';
|
||||
}
|
||||
|
||||
// When date range is strictly defined
|
||||
if ( $array['range'] == 'date_range' ) {
|
||||
|
||||
$array['date_min'] = str_replace('/',',',$array['range_start']);
|
||||
@@ -615,14 +593,31 @@ class UM_Fields {
|
||||
} else {
|
||||
|
||||
if ( $array['years_x'] == 'past' ) {
|
||||
$array['date_min'] = date('Y,n,d', mktime(0, 0, 0, date("n") , date("d"), date("Y") - $array['years'] ) );
|
||||
|
||||
$date = new DateTime( date('Y-n-d') );
|
||||
$past = $date->modify('-'.$array['years'].' years')->format('Y,n,d');
|
||||
|
||||
$array['date_min'] = $past;
|
||||
$array['date_max'] = date('Y,n,d');
|
||||
|
||||
} else if ( $array['years_x'] == 'future' ) {
|
||||
|
||||
$date = new DateTime( date('Y-n-d') );
|
||||
$future = $date->modify('+'.$array['years'].' years')->format('Y,n,d');
|
||||
|
||||
$array['date_min'] = date('Y,n,d');
|
||||
$array['date_max'] = date('Y,n,d', mktime(0, 0, 0, date("n") , date("d"), date("Y") + $array['years'] ) );
|
||||
$array['date_max'] = $future;
|
||||
|
||||
} else {
|
||||
$array['date_min'] = date('Y,n,d', mktime(0, 0, 0, date("n") , date("d"), date("Y") - ( $array['years'] / 2 ) ) );
|
||||
$array['date_max'] = date('Y,n,d', mktime(0, 0, 0, date("n") , date("d"), date("Y") + ( $array['years'] / 2 ) ) );
|
||||
|
||||
$date = new DateTime( date('Y-n-d') );
|
||||
$date_f = new DateTime( date('Y-n-d') );
|
||||
$past = $date->modify('-'. ( $array['years'] / 2 ).' years')->format('Y,n,d');
|
||||
$future = $date_f->modify('+'. ( $array['years'] / 2 ).' years')->format('Y,n,d');
|
||||
|
||||
$array['date_min'] = $past;
|
||||
$array['date_max'] = $future;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1340,7 +1335,7 @@ class UM_Fields {
|
||||
|
||||
$v = rtrim($v);
|
||||
|
||||
if ( !is_numeric( $k ) ) {
|
||||
if ( !is_numeric( $k ) && in_array($form_key, array('role') ) ) {
|
||||
$option_value = $k;
|
||||
} else {
|
||||
$option_value = $v;
|
||||
@@ -1438,7 +1433,7 @@ class UM_Fields {
|
||||
|
||||
$v = rtrim($v);
|
||||
|
||||
if ( !is_numeric( $k ) ) {
|
||||
if ( !is_numeric( $k ) && in_array($form_key, array('role') ) ) {
|
||||
$option_value = $k;
|
||||
} else {
|
||||
$option_value = $v;
|
||||
|
||||
+14
-13
@@ -129,24 +129,25 @@ class UM_Files {
|
||||
*** @fix image orientation
|
||||
***/
|
||||
function fix_image_orientation($rotate, $source){
|
||||
$exif = @exif_read_data($source);
|
||||
if ( extension_loaded('exif') ){
|
||||
$exif = @exif_read_data($source);
|
||||
|
||||
if (isset($exif['Orientation'])) {
|
||||
switch ($exif['Orientation']) {
|
||||
case 3:
|
||||
$rotate = imagerotate($rotate, 180, 0);
|
||||
break;
|
||||
if (isset($exif['Orientation'])) {
|
||||
switch ($exif['Orientation']) {
|
||||
case 3:
|
||||
$rotate = imagerotate($rotate, 180, 0);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
$rotate = imagerotate($rotate, -90, 0);
|
||||
break;
|
||||
case 6:
|
||||
$rotate = imagerotate($rotate, -90, 0);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
$rotate = imagerotate($rotate, 90, 0);
|
||||
break;
|
||||
case 8:
|
||||
$rotate = imagerotate($rotate, 90, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $rotate;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
if ( is_multisite() ) { // Need to the work
|
||||
|
||||
if ( get_current_blog_id() == '1' ) return;
|
||||
if ( get_current_blog_id() == '1' ) return $dir;
|
||||
|
||||
$split = explode('sites',$dir);
|
||||
$um_dir = 'ultimatemember/';
|
||||
$dir = $split[0] . $um_dir;
|
||||
|
||||
}
|
||||
|
||||
|
||||
return $dir;
|
||||
}
|
||||
@@ -66,12 +66,16 @@
|
||||
|
||||
foreach( $query as $field => $value ) {
|
||||
|
||||
$operator = 'LIKE';
|
||||
|
||||
if ( in_array( $field, array('gender') ) ) {
|
||||
$operator = '=';
|
||||
} else {
|
||||
$operator = 'LIKE';
|
||||
}
|
||||
|
||||
if ( in_array( $ultimatemember->fields->get_field_type( $field ), array('checkbox','multiselect') ) ) {
|
||||
$operator = 'LIKE';
|
||||
}
|
||||
|
||||
|
||||
if ( $value && $field != 'um_search' ) {
|
||||
|
||||
if ( !in_array( $field, $ultimatemember->members->core_search_fields ) ) {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/***
|
||||
*** @formats numbers nicely
|
||||
***/
|
||||
add_filter('um_pretty_number_formatting', 'um_pretty_number_formatting');
|
||||
function um_pretty_number_formatting( $count ) {
|
||||
$count = (int)$count;
|
||||
return number_format( $count );
|
||||
}
|
||||
@@ -40,7 +40,7 @@
|
||||
switch( $mode ) {
|
||||
|
||||
case 2:
|
||||
if (isset($roles) && !empty($roles)) {
|
||||
if ( is_user_logged_in() && isset($roles) && !empty($roles)) {
|
||||
if ( in_array( um_user('role'), (array)$roles) ) {
|
||||
$visible = true;
|
||||
} else {
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
*** @dynamic profile page title
|
||||
***/
|
||||
add_filter('wp_title', 'um_dynamic_user_profile_pagetitle', 100000, 2 );
|
||||
function um_dynamic_user_profile_pagetitle( $title, $sep ) {
|
||||
function um_dynamic_user_profile_pagetitle( $title, $sep = '' ) {
|
||||
global $paged, $page, $ultimatemember;
|
||||
|
||||
$profile_title = um_get_option('profile_title');
|
||||
|
||||
@@ -50,6 +50,9 @@ class UM_Mail {
|
||||
|
||||
$search = array(
|
||||
'{display_name}',
|
||||
'{first_name}',
|
||||
'{last_name}',
|
||||
'{gender}',
|
||||
'{username}',
|
||||
'{email}',
|
||||
'{password}',
|
||||
@@ -66,6 +69,9 @@ class UM_Mail {
|
||||
|
||||
$replace = array(
|
||||
um_user('display_name'),
|
||||
um_user('first_name'),
|
||||
um_user('last_name'),
|
||||
um_user('gender'),
|
||||
um_user('user_login'),
|
||||
um_user('user_email'),
|
||||
um_user('_um_cool_but_hard_to_guess_plain_pw'),
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ if ( ! class_exists( 'UM_Menu_Item_Custom_Fields' ) ) :
|
||||
class UM_Menu_Item_Custom_Fields {
|
||||
|
||||
public static function load() {
|
||||
add_filter( 'wp_edit_nav_menu_walker', array( __CLASS__, '_filter_walker' ), 99 );
|
||||
add_filter( 'wp_edit_nav_menu_walker', array( __CLASS__, '_filter_walker' ), 200 );
|
||||
}
|
||||
|
||||
public static function _filter_walker( $walker ) {
|
||||
|
||||
@@ -73,6 +73,8 @@ class UM_Permalinks {
|
||||
|
||||
um_reset_user();
|
||||
|
||||
exit( wp_redirect( um_get_core_page('login', 'account_active') ) );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+39
-4
@@ -5,31 +5,66 @@ class UM_Profile {
|
||||
function __construct() {
|
||||
|
||||
add_action('template_redirect', array(&$this, 'active_tab'), 10002);
|
||||
|
||||
$this->active_tab = 'main';
|
||||
add_action('template_redirect', array(&$this, 'active_subnav'), 10002);
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Global tabs
|
||||
*** @all tab data
|
||||
***/
|
||||
function tabs(){
|
||||
return apply_filters('um_profile_tabs', $tabs = array() );
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Get active tab
|
||||
*** @tabs that are active
|
||||
***/
|
||||
function tabs_active(){
|
||||
$tabs = $this->tabs();
|
||||
foreach( $tabs as $id => $info ) {
|
||||
if ( !um_get_option('profile_tab_'.$id) )
|
||||
unset( $tabs[$id] );
|
||||
}
|
||||
return $tabs;
|
||||
}
|
||||
|
||||
/***
|
||||
*** @primary tabs only
|
||||
***/
|
||||
function tabs_primary(){
|
||||
$tabs = $this->tabs();
|
||||
foreach( $tabs as $id => $info ){
|
||||
$primary[$id] = $info['name'];
|
||||
}
|
||||
return $primary;
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Get active_tab
|
||||
***/
|
||||
function active_tab() {
|
||||
|
||||
$this->active_tab = um_get_option('profile_menu_default_tab');
|
||||
|
||||
if ( get_query_var('profiletab') ) {
|
||||
$this->active_tab = get_query_var('profiletab');
|
||||
}
|
||||
|
||||
return $this->active_tab;
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Get active active_subnav
|
||||
***/
|
||||
function active_subnav() {
|
||||
|
||||
$this->active_subnav = null;
|
||||
|
||||
if ( get_query_var('subnav') ) {
|
||||
$this->active_subnav = get_query_var('subnav');
|
||||
}
|
||||
|
||||
return $this->active_subnav;
|
||||
}
|
||||
|
||||
/***
|
||||
|
||||
+14
-3
@@ -21,9 +21,20 @@ class UM_Query {
|
||||
|
||||
extract( $args );
|
||||
|
||||
$custom_posts = new WP_Query();
|
||||
$custom_posts->query( $args );
|
||||
return $custom_posts;
|
||||
if ( $post_type == 'comment' ) { // comments
|
||||
|
||||
unset( $args['post_type'] );
|
||||
$comments = get_comments($args);
|
||||
return $comments;
|
||||
|
||||
} else {
|
||||
|
||||
$custom_posts = new WP_Query();
|
||||
$custom_posts->query( $args );
|
||||
return $custom_posts;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
|
||||
+8
-3
@@ -34,17 +34,22 @@ class UM_Rewrite {
|
||||
if ( isset( $ultimatemember->permalinks->core['user'] ) ) {
|
||||
|
||||
$user_page_id = $ultimatemember->permalinks->core['user'];
|
||||
|
||||
$account_page_id = $ultimatemember->permalinks->core['account'];
|
||||
|
||||
$user = get_post($user_page_id);
|
||||
$user_slug = $user->post_name;
|
||||
|
||||
$account = get_post($account_page_id);
|
||||
$account_slug = $account->post_name;
|
||||
|
||||
add_rewrite_rule(
|
||||
'^user/([^/]*)$',
|
||||
'^'.$user_slug.'/([^/]*)$',
|
||||
'index.php?page_id='.$user_page_id.'&um_user=$matches[1]',
|
||||
'top'
|
||||
);
|
||||
|
||||
add_rewrite_rule(
|
||||
'^account/([^/]*)$',
|
||||
'^'.$account_slug.'/([^/]*)$',
|
||||
'index.php?page_id='.$account_page_id.'&um_tab=$matches[1]',
|
||||
'top'
|
||||
);
|
||||
|
||||
@@ -147,6 +147,8 @@ class UM_Setup {
|
||||
'_um_login_secondary_btn_hover' => '#e5e5e5',
|
||||
'_um_login_secondary_btn_text' => '#666',
|
||||
'_um_directory_template' => 'members',
|
||||
'_um_directory_header' => __('{total_users} Members','ultimatemember'),
|
||||
'_um_directory_header_single' => __('{total_users} Member','ultimatemember'),
|
||||
);
|
||||
|
||||
$this->core_form_meta_all = apply_filters('um_core_form_meta_all', $this->core_form_meta_all );
|
||||
@@ -176,6 +178,7 @@ class UM_Setup {
|
||||
$this->perms = array(
|
||||
'core' => 'admin',
|
||||
'can_access_wpadmin' => 1,
|
||||
'can_not_see_adminbar' => 0,
|
||||
'can_edit_everyone' => 1,
|
||||
'can_delete_everyone' => 1,
|
||||
'can_edit_profile' => 1,
|
||||
@@ -194,6 +197,7 @@ class UM_Setup {
|
||||
$this->nonadmin_perms = array(
|
||||
'core' => 'member',
|
||||
'can_access_wpadmin' => 0,
|
||||
'can_not_see_adminbar' => 1,
|
||||
'can_edit_everyone' => 0,
|
||||
'can_delete_everyone' => 0,
|
||||
'can_make_private_profile' => 0,
|
||||
|
||||
@@ -391,9 +391,10 @@
|
||||
function um_edit_my_profile_uri() {
|
||||
global $ultimatemember;
|
||||
$url = $ultimatemember->permalinks->get_current_url( get_option('permalink_structure') );
|
||||
$url = remove_query_arg( 'profiletab', $url );
|
||||
$url = remove_query_arg( 'subnav', $url );
|
||||
$url = add_query_arg( 'um_action', 'edit', $url );
|
||||
$url = remove_query_arg('profiletab', $url);
|
||||
$url = remove_query_arg('subnav', $url);
|
||||
$url = add_query_arg('profiletab', 'main', $url);
|
||||
$url = add_query_arg('um_action', 'edit', $url);
|
||||
return $url;
|
||||
}
|
||||
|
||||
@@ -710,6 +711,17 @@
|
||||
return $uri;
|
||||
}
|
||||
|
||||
/***
|
||||
*** @default cover
|
||||
***/
|
||||
function um_get_default_cover_uri() {
|
||||
$uri = um_get_option('default_cover');
|
||||
$uri = $uri['url'];
|
||||
if ( $uri )
|
||||
return $uri;
|
||||
return '';
|
||||
}
|
||||
|
||||
/***
|
||||
*** @get user data
|
||||
***/
|
||||
@@ -846,15 +858,27 @@
|
||||
$avatar_uri = um_get_default_avatar_uri();
|
||||
}
|
||||
|
||||
return '<img src="' . $avatar_uri . '" class="gravatar avatar avatar-'.$attrs.' um-avatar" width="'.$attrs.'" height="'.$attrs.'" alt="" />';
|
||||
|
||||
if ( $avatar_uri )
|
||||
return '<img src="' . $avatar_uri . '" class="gravatar avatar avatar-'.$attrs.' um-avatar" width="'.$attrs.'" height="'.$attrs.'" alt="" />';
|
||||
|
||||
if ( !$avatar_uri )
|
||||
return '';
|
||||
|
||||
break;
|
||||
|
||||
case 'cover_photo':
|
||||
if ( um_profile('cover_photo') ) {
|
||||
$cover_uri = um_get_cover_uri( um_profile('cover_photo'), $attrs );
|
||||
return '<img src="'. $cover_uri .'" alt="" />';
|
||||
} else {
|
||||
$cover_uri = um_get_default_cover_uri();
|
||||
}
|
||||
|
||||
if ( $cover_uri )
|
||||
return '<img src="'. $cover_uri .'" alt="" />';
|
||||
|
||||
if ( !$cover_uri )
|
||||
return '';
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
+14
-11
@@ -219,22 +219,25 @@ class UM_Shortcodes {
|
||||
$pattern_array = apply_filters('um_allowed_user_tags_patterns', $pattern_array);
|
||||
|
||||
$matches = false;
|
||||
foreach ( $pattern_array as $pattern )
|
||||
{
|
||||
if (preg_match($pattern, $str))
|
||||
{
|
||||
foreach ( $pattern_array as $pattern ) {
|
||||
|
||||
if (preg_match($pattern, $str)) {
|
||||
|
||||
$usermeta = str_replace('{','',$pattern);
|
||||
$usermeta = str_replace('}','',$usermeta);
|
||||
|
||||
if ( um_user( $usermeta ) ){
|
||||
$str = preg_replace('/'.$pattern.'/', um_user($usermeta) , $str );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( get_option('permalink_structure') ) {
|
||||
$str = str_replace( untrailingslashit( um_get_core_page('user') ), untrailingslashit( um_user_profile_url() ), $str );
|
||||
} else {
|
||||
$str = str_replace( um_get_core_page('user'), um_user_profile_url(), $str );
|
||||
|
||||
if ( get_option('permalink_structure') ) {
|
||||
$str = str_replace( untrailingslashit( um_get_core_page('user') ), untrailingslashit( um_user_profile_url() ), $str );
|
||||
} else {
|
||||
$str = str_replace( um_get_core_page('user'), um_user_profile_url(), $str );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $str;
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
|
||||
class UM_User_posts {
|
||||
|
||||
function __construct() {
|
||||
|
||||
add_filter('um_profile_tabs', array(&$this, 'add_tab'), 100);
|
||||
|
||||
add_action('um_profile_content_posts', array(&$this, 'add_posts') );
|
||||
add_action('um_profile_content_comments', array(&$this, 'add_comments') );
|
||||
|
||||
add_action('um_ajax_load_posts__um_load_posts', array(&$this, 'load_posts') );
|
||||
add_action('um_ajax_load_posts__um_load_comments', array(&$this, 'load_comments') );
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
*** @dynamic load of posts
|
||||
***/
|
||||
function load_posts( $args ) {
|
||||
global $ultimatemember;
|
||||
|
||||
$array = explode(',', $args );
|
||||
$post_type = $array[0];
|
||||
$posts_per_page = $array[1];
|
||||
$offset = $array[2];
|
||||
$author = $array[3];
|
||||
|
||||
$offset_n = $posts_per_page + $offset;
|
||||
$modified_args = "$post_type,$posts_per_page,$offset_n,$author";
|
||||
|
||||
$loop = $ultimatemember->query->make("post_type=$post_type&posts_per_page=$posts_per_page&offset=$offset&author=$author");
|
||||
|
||||
include_once um_path . 'templates/profile/posts-single.php';
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
*** @dynamic load of comments
|
||||
***/
|
||||
function load_comments( $args ) {
|
||||
global $ultimatemember;
|
||||
|
||||
$array = explode(',', $args );
|
||||
$post_type = $array[0];
|
||||
$posts_per_page = $array[1];
|
||||
$offset = $array[2];
|
||||
$author = $array[3];
|
||||
|
||||
$offset_n = $posts_per_page + $offset;
|
||||
$modified_args = "$post_type,$posts_per_page,$offset_n,$author";
|
||||
|
||||
$loop = $ultimatemember->query->make("post_type=$post_type&number=$posts_per_page&offset=$offset&author_email=$author");
|
||||
|
||||
include_once um_path . 'templates/profile/comments-single.php';
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
*** @adds a tab
|
||||
***/
|
||||
function add_tab( $tabs ){
|
||||
|
||||
$tabs['posts'] = array(
|
||||
'name' => __('Posts','ultimatemember'),
|
||||
'icon' => 'um-faicon-pencil',
|
||||
'count' => $this->count_user_posts_by_type(),
|
||||
);
|
||||
|
||||
$tabs['comments'] = array(
|
||||
'name' => __('Comments','ultimatemember'),
|
||||
'icon' => 'um-faicon-comment',
|
||||
'count' => $this->count_user_comments(),
|
||||
);
|
||||
|
||||
return $tabs;
|
||||
}
|
||||
|
||||
/***
|
||||
*** @add posts
|
||||
***/
|
||||
function add_posts() {
|
||||
global $ultimatemember;
|
||||
|
||||
include_once um_path . 'templates/profile/posts.php';
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
*** @add comments
|
||||
***/
|
||||
function add_comments() {
|
||||
global $ultimatemember;
|
||||
|
||||
include_once um_path . 'templates/profile/comments.php';
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
*** @count posts
|
||||
***/
|
||||
function count_user_posts_by_type( $user_id= '', $post_type = 'post' ) {
|
||||
global $wpdb;
|
||||
if ( !$user_id )
|
||||
$user_id = um_user('ID');
|
||||
$where = get_posts_by_author_sql( $post_type, true, $user_id );
|
||||
$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
|
||||
return apply_filters('um_pretty_number_formatting', $count);
|
||||
}
|
||||
|
||||
/***
|
||||
*** @count comments
|
||||
***/
|
||||
function count_user_comments( $user_id = null ) {
|
||||
global $wpdb;
|
||||
if ( !$user_id )
|
||||
$user_id = um_user('ID');
|
||||
$count = $wpdb->get_var('
|
||||
SELECT COUNT(comment_ID)
|
||||
FROM ' . $wpdb->comments. '
|
||||
WHERE user_id = "' . $user_id . '"');
|
||||
return apply_filters('um_pretty_number_formatting', $count);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
Plugin Name: Ultimate Member
|
||||
Plugin URI: http://ultimatemember.com/
|
||||
Description: Ultimate Member is a powerful community and membership plugin that allows you to create beautiful community and membership sites with WordPress
|
||||
Version: 1.0.30
|
||||
Version: 1.0.35
|
||||
Author: Ultimate Member
|
||||
Author URI: http://ultimatemember.com/
|
||||
*/
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Ultimate Member\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-01-29 15:23+0200\n"
|
||||
"PO-Revision-Date: 2015-01-29 15:23+0200\n"
|
||||
"POT-Creation-Date: 2015-01-30 22:04+0200\n"
|
||||
"PO-Revision-Date: 2015-01-30 22:04+0200\n"
|
||||
"Last-Translator: Calum Allison <umplugin@gmail.com>\n"
|
||||
"Language-Team: Ultimate Member <umplugin@gmail.com>\n"
|
||||
"Language: en_US\n"
|
||||
@@ -579,7 +579,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: admin/core/lib/ReduxFramework/ReduxCore/inc/tracking.php:135 admin/core/um-admin-tracking.php:153
|
||||
#: um-config.php:1520
|
||||
#: um-config.php:1575
|
||||
msgid "Allow tracking"
|
||||
msgstr ""
|
||||
|
||||
@@ -1543,7 +1543,7 @@ msgstr ""
|
||||
#: admin/core/lib/ReduxFramework/sample/sample-config.php:796 admin/core/um-admin-metabox.php:281
|
||||
#: admin/core/um-admin-metabox.php:287 admin/core/um-admin-metabox.php:293
|
||||
#: admin/templates/form/login_css.php:4 admin/templates/form/profile_css.php:4
|
||||
#: admin/templates/form/register_css.php:4 um-config.php:1472 um-config.php:1478
|
||||
#: admin/templates/form/register_css.php:4 um-config.php:1527 um-config.php:1533
|
||||
msgid "Custom CSS"
|
||||
msgstr ""
|
||||
|
||||
@@ -2573,7 +2573,7 @@ msgstr ""
|
||||
msgid "Customize the search result text . e.g. Found 3,000 Members. Leave this blank to not show result text"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/directory/search.php:79 core/um-setup.php:47
|
||||
#: admin/templates/directory/search.php:79 core/um-setup.php:47 core/um-setup.php:150
|
||||
msgid "{total_users} Members"
|
||||
msgstr ""
|
||||
|
||||
@@ -2585,7 +2585,7 @@ msgstr ""
|
||||
msgid "Same as above but in case of 1 user found only"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/directory/search.php:88 core/um-setup.php:48
|
||||
#: admin/templates/directory/search.php:88 core/um-setup.php:48 core/um-setup.php:151
|
||||
msgid "{total_users} Member"
|
||||
msgstr ""
|
||||
|
||||
@@ -2693,7 +2693,7 @@ msgstr ""
|
||||
msgid "<strong>Note:</strong> Form type cannot be changed for the default forms."
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/form/mode.php:9 um-config.php:1292
|
||||
#: admin/templates/form/mode.php:9 um-config.php:1347
|
||||
msgid "Registration Form"
|
||||
msgstr ""
|
||||
|
||||
@@ -2701,7 +2701,7 @@ msgstr ""
|
||||
msgid "Profile Form"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/form/mode.php:13 um-config.php:1383
|
||||
#: admin/templates/form/mode.php:13 um-config.php:1438
|
||||
msgid "Login Form"
|
||||
msgstr ""
|
||||
|
||||
@@ -2789,7 +2789,7 @@ msgstr ""
|
||||
msgid "Assign role to form"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/form/register_customize.php:42 um-config.php:1052 um-config.php:1318 um-config.php:1409
|
||||
#: admin/templates/form/register_customize.php:42 um-config.php:1052 um-config.php:1373 um-config.php:1464
|
||||
msgid "The shortcode is centered by default unless you specify otherwise here"
|
||||
msgstr ""
|
||||
|
||||
@@ -2883,7 +2883,7 @@ msgstr ""
|
||||
msgid "Choose from %s available icons"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:7 admin/templates/role/admin.php:12
|
||||
#: admin/templates/role/admin.php:7 admin/templates/role/admin.php:16
|
||||
msgid "Can access wp-admin?"
|
||||
msgstr ""
|
||||
|
||||
@@ -2891,41 +2891,49 @@ msgstr ""
|
||||
msgid "The core admin role must always have access to wp-admin / WordPress backend"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:12
|
||||
#: admin/templates/role/admin.php:11 admin/templates/role/admin.php:20
|
||||
msgid "Force hiding adminbar in frontend?"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:11 admin/templates/role/admin.php:20
|
||||
msgid "Show/hide the adminbar on frontend"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:16
|
||||
msgid ""
|
||||
"Allow this role to access the admin dashboard. If turned on the WordPress toolbar will appear at top of the "
|
||||
"page."
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:18
|
||||
#: admin/templates/role/admin.php:26
|
||||
msgid "Can edit other member accounts?"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:18
|
||||
#: admin/templates/role/admin.php:26
|
||||
msgid "Allow this role to edit accounts of other members"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:23
|
||||
#: admin/templates/role/admin.php:31
|
||||
msgid "Can edit these user roles only"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:23
|
||||
#: admin/templates/role/admin.php:31
|
||||
msgid "Which roles that role can edit, choose none to allow role to edit all member roles"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:36
|
||||
#: admin/templates/role/admin.php:44
|
||||
msgid "Can delete other member accounts?"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:36
|
||||
#: admin/templates/role/admin.php:44
|
||||
msgid "Allow this role to edit the profile fields of certain roles only"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:41
|
||||
#: admin/templates/role/admin.php:49
|
||||
msgid "Can delete these user roles only"
|
||||
msgstr ""
|
||||
|
||||
#: admin/templates/role/admin.php:41
|
||||
#: admin/templates/role/admin.php:49
|
||||
msgid "Which roles that role can delete, choose none to allow role to delete all member roles"
|
||||
msgstr ""
|
||||
|
||||
@@ -3346,7 +3354,7 @@ msgstr ""
|
||||
msgid "%s of %d"
|
||||
msgstr ""
|
||||
|
||||
#: core/um-actions-misc.php:58 core/um-actions-misc.php:81
|
||||
#: core/um-actions-misc.php:58 core/um-actions-misc.php:85
|
||||
msgid "Registration is currently disabled"
|
||||
msgstr ""
|
||||
|
||||
@@ -3354,31 +3362,35 @@ msgstr ""
|
||||
msgid "You have successfully changed your password."
|
||||
msgstr ""
|
||||
|
||||
#: core/um-actions-misc.php:77
|
||||
#: core/um-actions-misc.php:69
|
||||
msgid "Your account is now active! You can login."
|
||||
msgstr ""
|
||||
|
||||
#: core/um-actions-misc.php:81
|
||||
msgid "An error has been encountered"
|
||||
msgstr ""
|
||||
|
||||
#: core/um-actions-misc.php:85 core/um-filters-login.php:33
|
||||
#: core/um-actions-misc.php:89 core/um-filters-login.php:33
|
||||
msgid "This email address has been blocked."
|
||||
msgstr ""
|
||||
|
||||
#: core/um-actions-misc.php:89 core/um-filters-login.php:36
|
||||
#: core/um-actions-misc.php:93 core/um-filters-login.php:36
|
||||
msgid "Your IP address has been blocked."
|
||||
msgstr ""
|
||||
|
||||
#: core/um-actions-misc.php:93 core/um-filters-login.php:78
|
||||
#: core/um-actions-misc.php:97 core/um-filters-login.php:78
|
||||
msgid "Your account has been disabled."
|
||||
msgstr ""
|
||||
|
||||
#: core/um-actions-misc.php:97 core/um-filters-login.php:81
|
||||
#: core/um-actions-misc.php:101 core/um-filters-login.php:81
|
||||
msgid "Your account has not been approved yet."
|
||||
msgstr ""
|
||||
|
||||
#: core/um-actions-misc.php:101 core/um-filters-login.php:84
|
||||
#: core/um-actions-misc.php:105 core/um-filters-login.php:84
|
||||
msgid "Your account is awaiting e-mail verifications."
|
||||
msgstr ""
|
||||
|
||||
#: core/um-actions-misc.php:105 core/um-filters-login.php:87
|
||||
#: core/um-actions-misc.php:109 core/um-filters-login.php:87
|
||||
msgid "Your membership request has been rejected."
|
||||
msgstr ""
|
||||
|
||||
@@ -3815,6 +3827,14 @@ msgstr ""
|
||||
msgid "Search Member Directories"
|
||||
msgstr ""
|
||||
|
||||
#: core/um-user-posts.php:65
|
||||
msgid "Posts"
|
||||
msgstr ""
|
||||
|
||||
#: core/um-user-posts.php:71
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#: index.php:57
|
||||
msgid "Docs"
|
||||
msgstr ""
|
||||
@@ -3827,6 +3847,53 @@ msgstr ""
|
||||
msgid "Uninstall"
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/comments-single.php:6
|
||||
#, php-format
|
||||
msgid "On <a href=\"%1$s\">%2$s</a>"
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/comments-single.php:15 templates/profile/comments.php:14
|
||||
msgid "load more comments"
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/comments.php:23
|
||||
msgid "You have not made any comments."
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/comments.php:23
|
||||
msgid "This user has not made any comments."
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/posts-single.php:6
|
||||
#, php-format
|
||||
msgid "%s ago"
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/posts-single.php:8
|
||||
msgid "no comments"
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/posts-single.php:8
|
||||
msgid "1 comment"
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/posts-single.php:8
|
||||
#, php-format
|
||||
msgid "% comments"
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/posts-single.php:17 templates/profile/posts.php:14
|
||||
msgid "load more posts"
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/posts.php:23
|
||||
msgid "You have not created any posts."
|
||||
msgstr ""
|
||||
|
||||
#: templates/profile/posts.php:23
|
||||
msgid "This user has not created any posts."
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:13
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
@@ -4269,15 +4336,15 @@ msgstr ""
|
||||
msgid "Profile Shortcode Alignment"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1055 um-config.php:1321 um-config.php:1412
|
||||
#: um-config.php:1055 um-config.php:1376 um-config.php:1467
|
||||
msgid "Centered"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1056 um-config.php:1322 um-config.php:1413
|
||||
#: um-config.php:1056 um-config.php:1377 um-config.php:1468
|
||||
msgid "Left aligned"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1057 um-config.php:1323 um-config.php:1414
|
||||
#: um-config.php:1057 um-config.php:1378 um-config.php:1469
|
||||
msgid "Right aligned"
|
||||
msgstr ""
|
||||
|
||||
@@ -4289,15 +4356,15 @@ msgstr ""
|
||||
msgid "This is applicable for edit mode only"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1069 um-config.php:1335 um-config.php:1426
|
||||
#: um-config.php:1069 um-config.php:1390 um-config.php:1481
|
||||
msgid "Show inside text field"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1070 um-config.php:1336 um-config.php:1427
|
||||
#: um-config.php:1070 um-config.php:1391 um-config.php:1482
|
||||
msgid "Show with label"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1071 um-config.php:1337 um-config.php:1428
|
||||
#: um-config.php:1071 um-config.php:1392 um-config.php:1483
|
||||
msgid "Turn off"
|
||||
msgstr ""
|
||||
|
||||
@@ -4401,125 +4468,162 @@ msgstr ""
|
||||
msgid "Show the emoticon"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1299
|
||||
msgid "Registration Default Template"
|
||||
#: um-config.php:1293
|
||||
msgid "Enable profile menu"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1300
|
||||
msgid "This will be the default template to output registration"
|
||||
#: um-config.php:1301
|
||||
#, php-format
|
||||
msgid "%s Tab"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1308
|
||||
msgid "Registration Maximum Width"
|
||||
#: um-config.php:1303
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1317
|
||||
msgid "Registration Shortcode Alignment"
|
||||
#: um-config.php:1304
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1313
|
||||
msgid "Profile menu default tab"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1314
|
||||
msgid "This will be the default tab on user profile page"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1323
|
||||
msgid "Enable menu icons in desktop view"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1331
|
||||
msgid "Enable counts in menu"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1339
|
||||
msgid "Profile Menu"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1354
|
||||
msgid "Registration Default Template"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1355
|
||||
msgid "This will be the default template to output registration"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1363
|
||||
msgid "Registration Maximum Width"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1372
|
||||
msgid "Registration Shortcode Alignment"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1386
|
||||
msgid "Registration Field Icons"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1332
|
||||
#: um-config.php:1387
|
||||
msgid "This controls the display of field icons in the registration form"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1344
|
||||
#: um-config.php:1399
|
||||
msgid "Registration Primary Button Text"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1352
|
||||
#: um-config.php:1407
|
||||
msgid "Registration Secondary Button"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1360
|
||||
#: um-config.php:1415
|
||||
msgid "Registration Secondary Button Text"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1370
|
||||
#: um-config.php:1425
|
||||
msgid "Registration Default Role"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1371
|
||||
#: um-config.php:1426
|
||||
msgid "This will be the default role assigned to users registering thru registration form"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1390
|
||||
#: um-config.php:1445
|
||||
msgid "Login Default Template"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1391
|
||||
#: um-config.php:1446
|
||||
msgid "This will be the default template to output login"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1399
|
||||
#: um-config.php:1454
|
||||
msgid "Login Maximum Width"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1408
|
||||
#: um-config.php:1463
|
||||
msgid "Login Shortcode Alignment"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1422
|
||||
#: um-config.php:1477
|
||||
msgid "Login Field Icons"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1423
|
||||
#: um-config.php:1478
|
||||
msgid "This controls the display of field icons in the login form"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1435
|
||||
#: um-config.php:1490
|
||||
msgid "Login Primary Button Text"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1443
|
||||
#: um-config.php:1498
|
||||
msgid "Login Secondary Button"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1451
|
||||
#: um-config.php:1506
|
||||
msgid "Login Secondary Button Text"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1460
|
||||
#: um-config.php:1515
|
||||
msgid "Login Forgot Password Link"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1479
|
||||
#: um-config.php:1534
|
||||
msgid "Any custom css rules that you specify here will be applied globally to the plugin."
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1494
|
||||
#: um-config.php:1549
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1500
|
||||
#: um-config.php:1555
|
||||
msgid "Disable JS/CSS Compression"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1502
|
||||
#: um-config.php:1557
|
||||
msgid ""
|
||||
"Not recommended. This will load all plugin js and css files separately and may slow down your website. Use "
|
||||
"this setting for development or debugging purposes only."
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1509
|
||||
#: um-config.php:1564
|
||||
msgid "Never load plugin JS and CSS on the following pages"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1510
|
||||
#: um-config.php:1565
|
||||
msgid "Enter a url or page slug (e.g /about/) to disable loading the plugin's css and js on that page."
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1511
|
||||
#: um-config.php:1566
|
||||
msgid "Add New Page"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1517
|
||||
#: um-config.php:1572
|
||||
msgid "Allow Tracking"
|
||||
msgstr ""
|
||||
|
||||
#: um-config.php:1521
|
||||
#: um-config.php:1576
|
||||
msgid "Do not allow"
|
||||
msgstr ""
|
||||
|
||||
|
||||
+67
-18
@@ -3,11 +3,11 @@ Author URI: https://ultimatemember.com/
|
||||
Plugin URI: https://ultimatemember.com/
|
||||
Contributors: ultimatemember
|
||||
Donate link:
|
||||
Tags: access control, community, communities, conditional fields, conditional logic, conditional menus, content protection, custom fields, file uploads, form builder, front-end login, front-end registration, hide wp-admin, login, login page, logged-in users, mandrill, member, members, membership, member directory, profile, profiles, profile builder, registration, restrict content, role creation, role menus, search filters, sign in, sign up, social network, star ratings, toolbar, user, users, user fields, user profiles, user roles
|
||||
Tags: access control, author, authors, author profile, comments, community, communities, conditional fields, conditional logic, conditional menus, content protection, custom fields, file uploads, form builder, front-end login, front-end registration, hide wp-admin, login, login page, logged-in users, mandrill, member, members, membership, member directory, profile, profiles, profile builder, registration, restriction, restrict content, role creation, role menus, search filters, sign in, sign up, social network, star ratings, toolbar, user, users, user fields, user profiles, user roles
|
||||
Requires at least: 4.1
|
||||
Tested up to: 4.1
|
||||
|
||||
Stable Tag: 1.0.30
|
||||
Stable Tag: 1.0.35
|
||||
|
||||
License: GNU Version 2 or Any Later Version
|
||||
|
||||
@@ -35,6 +35,7 @@ Features of the plugin include:
|
||||
* Custom e-mail templates
|
||||
* Content restriction
|
||||
* Conditional menus
|
||||
* Show author posts & comments on user profiles
|
||||
* Mobile adaptive & responsive
|
||||
* SEO optimized
|
||||
* Developer friendly with dozens of actions and filters
|
||||
@@ -89,6 +90,10 @@ With Ultimate Member you can restrict content on a global or per page/post basis
|
||||
|
||||
The plugin provides a range of customizable text only email templates which are triggered depending on certain events (e.g welcome email, account activation, account deleted etc). Each email type can be turned on/off. The plugin also offers a range of optional admin notification emails so you can find out when a new user registers or if new user needs reviewed.
|
||||
|
||||
**Show author posts & comments on user profiles**
|
||||
|
||||
The plugin provides a fully flexible menu and tab system on user profiles that allows you to optionally display a user’s posts and comments on their profile. With this feature you can put the focus on a user’s posts by making author posts the default tab when viewing a user profile.
|
||||
|
||||
**Mobile adaptive & responsive**
|
||||
|
||||
Ultimate Member has been built with a focus on mobile and is fully mobile adaptive and responsive. The plugin has completely separate designs for mobiles, tablets and larger screens which means the plugin will look and function great on all devices.
|
||||
@@ -151,25 +156,69 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
|
||||
|
||||
== Screenshots ==
|
||||
|
||||
1. Front-end User Profile (Edit mode)
|
||||
2. Photo / File Upload Modal
|
||||
3. Image Crop Feature
|
||||
4. Account Page
|
||||
5. Photo Modal
|
||||
6. User Profile (Cover photo turned off)
|
||||
7. Searchable Member Directory
|
||||
8. Plugin Dashboard
|
||||
9. Plugin Settings Panel
|
||||
10. Forms
|
||||
11. Custom Field Manager
|
||||
12. Adding a New Field
|
||||
13. User Roles
|
||||
14. Adding a New Role
|
||||
15. Adding a New Directory
|
||||
16. Appearance and Customization Settings
|
||||
1. Screenshot 1
|
||||
2. Screenshot 2
|
||||
3. Screenshot 3
|
||||
4. Screenshot 4
|
||||
5. Screenshot 5
|
||||
6. Screenshot 6
|
||||
7. Screenshot 7
|
||||
8. Screenshot 8
|
||||
9. Screenshot 9
|
||||
10. Screenshot 10
|
||||
11. Screenshot 11
|
||||
12. Screenshot 12
|
||||
13. Screenshot 13
|
||||
14. Screenshot 14
|
||||
15. Screenshot 15
|
||||
16. Screenshot 16
|
||||
|
||||
== Changelog ==
|
||||
|
||||
= 1.0.35: January 31, 2015 =
|
||||
|
||||
* Tweak: exif module is not required anymore and does not stop photo uploads (exif is highly recommended)
|
||||
* Fixed: issue with changing a WP administrator role to a community administrator role
|
||||
* Fixed: issue with plugin uploads directory on some multisite installations
|
||||
* Fixed: conflict with default profile tab and editing profile
|
||||
* Fixed: minor css conflict on account page with some themes when viewed on tablets
|
||||
|
||||
= 1.0.34: January 31, 2015 =
|
||||
|
||||
* New: added option to set a default cover photo
|
||||
* New: added option to hide restricted content from search and archive
|
||||
* Fixed: php error in title tab with ElegantThemes
|
||||
* Fixed: theme conflict with photo/cover upload
|
||||
* Fixed: issue with country field showing country code in profile
|
||||
* Fixed: issue with setting default tab
|
||||
* Fixed: issue with 2-name user roles
|
||||
|
||||
= 1.0.33: January 30, 2015 =
|
||||
|
||||
* New: Introducing profile menu / tab system (optional)
|
||||
* New: display user posts and comments in profile menu (optional)
|
||||
* New: added option to force hide adminbar on the frontend even for administrators
|
||||
* Tweak: added profile menu options to plugin settings panel
|
||||
* Tweak: added option to enable/disable profile menu and/or profile menu tabs
|
||||
* Tweak: added option to show or hide post and comment counts (when the tabs are active)
|
||||
* Tweak: account activation via e-mail redirects user to login page and displays a success message
|
||||
* Fixed: issue with conditional logic on profile fields has been resolved
|
||||
* Fixed: bug with searching members by gender
|
||||
* Fixed: admin nav menus conditional logic conflict with some themes
|
||||
* Fixed: bug with datepicker field on windows servers
|
||||
|
||||
= 1.0.32: January 30, 2015 =
|
||||
|
||||
* New: added 3 new tags to use in email templates {first_name}, {last_name}, and {gender}
|
||||
* Fixed: Issue with account page permalink resolved - [view issue](https://ultimatemember.com/forums/topic/permalink-bug/)
|
||||
* Fixed: Issue with conditional menu items showing for un-approved users resolved - [view issue](https://ultimatemember.com/forums/topic/registration/)
|
||||
|
||||
= 1.0.31: January 29, 2015 =
|
||||
|
||||
* Fixed: Issue with custom user page slug resolved [view issue](https://wordpress.org/support/topic/translate-plugin-9)
|
||||
* Fixed: PHP warning in members directory resolved
|
||||
* Fixed: Issue with hardcoded user profile URLs in menu
|
||||
|
||||
= 1.0.30: January 29, 2015 =
|
||||
|
||||
* New: added option to control number of profiles to display in members directory for mobile devices
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php foreach( $loop as $comment ) { ?>
|
||||
|
||||
<div class="um-item">
|
||||
<div class="um-item-link"><a href="<?php echo get_comment_link( $comment->comment_ID ); ?>"><?php echo get_comment_excerpt( $comment->comment_ID ); ?></a></div>
|
||||
<div class="um-item-meta">
|
||||
<span><?php printf(__('On <a href="%1$s">%2$s</a>','ultimatemember'), get_permalink($comment->comment_post_ID), get_the_title($comment->comment_post_ID) ); ?></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
<?php if ( isset($modified_args) && count($loop) >= 10 ) { ?>
|
||||
|
||||
<div class="um-load-items">
|
||||
<a href="#" class="um-ajax-paginate um-button" data-hook="um_load_comments" data-args="<?php echo $modified_args; ?>"><?php _e('load more comments','um-bbpress'); ?></a>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php $loop = $ultimatemember->query->make('post_type=comment&number=10&offset=0&author_email=' . um_user('user_email') ); ?>
|
||||
|
||||
<?php if ( $loop ) { ?>
|
||||
|
||||
<?php include_once um_path . 'templates/profile/comments-single.php'; ?>
|
||||
|
||||
<div class="um-ajax-items">
|
||||
|
||||
<!--Ajax output-->
|
||||
|
||||
<?php if ( count($loop) >= 10 ) { ?>
|
||||
|
||||
<div class="um-load-items">
|
||||
<a href="#" class="um-ajax-paginate um-button" data-hook="um_load_comments" data-args="comment,10,10,<?php echo um_user('user_email'); ?>"><?php _e('load more comments','um-bbpress'); ?></a>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php } else { ?>
|
||||
|
||||
<?php ( um_is_myprofile() ) ? _e('You have not made any comments.') : _e('This user has not made any comments.'); ?>
|
||||
|
||||
<?php } ?>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php while ($loop->have_posts()) { $loop->the_post(); $post_id = get_the_ID(); ?>
|
||||
|
||||
<div class="um-item">
|
||||
<div class="um-item-link"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
|
||||
<div class="um-item-meta">
|
||||
<span><?php echo sprintf(__('%s ago','ultimatemember'), human_time_diff( get_the_time('U'), current_time('timestamp') ) ); ?></span>
|
||||
<span>in: <?php the_category( ', ' ); ?></span>
|
||||
<span><?php comments_number( __('no comments','ultimatemember'), __('1 comment','ultimatemember'), __('% comments','ultimatemember') ); ?></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
<?php if ( isset($modified_args) && $loop->have_posts() && $loop->found_posts >= 10 ) { ?>
|
||||
|
||||
<div class="um-load-items">
|
||||
<a href="#" class="um-ajax-paginate um-button" data-hook="um_load_posts" data-args="<?php echo $modified_args; ?>"><?php _e('load more posts','um-bbpress'); ?></a>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php $loop = $ultimatemember->query->make('post_type=post&posts_per_page=10&offset=0&author=' . um_user('ID') ); ?>
|
||||
|
||||
<?php if ( $loop->have_posts()) { ?>
|
||||
|
||||
<?php include_once um_path . 'templates/profile/posts-single.php'; ?>
|
||||
|
||||
<div class="um-ajax-items">
|
||||
|
||||
<!--Ajax output-->
|
||||
|
||||
<?php if ( $loop->found_posts >= 10 ) { ?>
|
||||
|
||||
<div class="um-load-items">
|
||||
<a href="#" class="um-ajax-paginate um-button" data-hook="um_load_posts" data-args="post,10,10,<?php echo um_user('ID'); ?>"><?php _e('load more posts','um-bbpress'); ?></a>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php } else { ?>
|
||||
|
||||
<?php ( um_is_myprofile() ) ? _e('You have not created any posts.') : _e('This user has not created any posts.'); ?>
|
||||
|
||||
<?php } ?>
|
||||
+100
-8
@@ -167,6 +167,15 @@ $this->sections[] = array(
|
||||
'title' => __( 'Access'),
|
||||
'fields' => array(
|
||||
|
||||
array(
|
||||
'id' => 'panic_key',
|
||||
'type' => 'text',
|
||||
'title' => __( 'Panic Key' ),
|
||||
'desc' => 'Panic Key is a random generated key that allow you to access the WordPress backend always regardless of backend settings.',
|
||||
'default' => $ultimatemember->validation->randomize(),
|
||||
'desc' => trailingslashit( get_bloginfo('url') ).'wp-admin/?um_panic_key=<strong>your_panic_key</strong>'
|
||||
),
|
||||
|
||||
array(
|
||||
'id' => 'accessible',
|
||||
'type' => 'select',
|
||||
@@ -199,12 +208,33 @@ $this->sections[] = array(
|
||||
),
|
||||
|
||||
array(
|
||||
'id' => 'panic_key',
|
||||
'type' => 'text',
|
||||
'title' => __( 'Panic Key' ),
|
||||
'desc' => 'Panic Key is a random generated key that allow you to access the WordPress backend always regardless of backend settings.',
|
||||
'default' => $ultimatemember->validation->randomize(),
|
||||
'desc' => trailingslashit( get_bloginfo('url') ).'wp-admin/?um_panic_key=<strong>YOUR_PANIC_KEY_VALUE</strong>'
|
||||
'id' => 'exclude_from_main_loop',
|
||||
'type' => 'switch',
|
||||
'title' => __( 'Exclude restricted pages from main loop' ),
|
||||
'default' => 1,
|
||||
'desc' => 'Whether to exclude restricted pages from main loop',
|
||||
'on' => __('Yes','ultimatemember'),
|
||||
'off' => __('No','ultimatemember'),
|
||||
),
|
||||
|
||||
array(
|
||||
'id' => 'exclude_from_search_loop',
|
||||
'type' => 'switch',
|
||||
'title' => __( 'Exclude restricted pages from search loop' ),
|
||||
'default' => 1,
|
||||
'desc' => 'Whether to exclude restricted pages from search results',
|
||||
'on' => __('Yes','ultimatemember'),
|
||||
'off' => __('No','ultimatemember'),
|
||||
),
|
||||
|
||||
array(
|
||||
'id' => 'exclude_from_archive_loop',
|
||||
'type' => 'switch',
|
||||
'title' => __( 'Exclude restricted pages from archive loop' ),
|
||||
'default' => 1,
|
||||
'desc' => 'Whether to exclude restricted pages from archives',
|
||||
'on' => __('Yes','ultimatemember'),
|
||||
'off' => __('No','ultimatemember'),
|
||||
),
|
||||
|
||||
array(
|
||||
@@ -1128,8 +1158,6 @@ $this->sections[] = array(
|
||||
array(
|
||||
'id' => 'default_avatar',
|
||||
'type' => 'media',
|
||||
'width' => '150',
|
||||
'height' => '150',
|
||||
'title' => __('Default Profile Photo', 'ultimatemember'),
|
||||
'desc' => __('You can change the default profile picture globally here. Please make sure that the photo is 300x300px.', 'ultimatemember'),
|
||||
'default' => array(
|
||||
@@ -1137,6 +1165,15 @@ $this->sections[] = array(
|
||||
),
|
||||
),
|
||||
|
||||
array(
|
||||
'id' => 'default_cover',
|
||||
'type' => 'media',
|
||||
'url' => true,
|
||||
'preview' => false,
|
||||
'title' => __('Default Cover Photo', 'ultimatemember'),
|
||||
'desc' => __('You can change the default cover photo globally here. Please make sure that the default cover is large enough and respects the ratio you are using for cover photos.', 'ultimatemember'),
|
||||
),
|
||||
|
||||
array(
|
||||
'id' => 'profile_photosize',
|
||||
'type' => 'text',
|
||||
@@ -1286,6 +1323,61 @@ $this->sections[] = array(
|
||||
|
||||
);
|
||||
|
||||
$tabs = $ultimatemember->profile->tabs_primary();
|
||||
$tab_options[] = array(
|
||||
'id' => 'profile_menu',
|
||||
'type' => 'switch',
|
||||
'title' => __('Enable profile menu'),
|
||||
'default' => 1,
|
||||
);
|
||||
|
||||
foreach( $tabs as $id => $tab ) {
|
||||
$tab_options[] = array(
|
||||
'id' => 'profile_tab_' . $id,
|
||||
'type' => 'switch',
|
||||
'title' => sprintf(__('%s Tab','ultimatemember'), $tab ),
|
||||
'default' => 1,
|
||||
'on' => __('Enabled'),
|
||||
'off' => __('Disabled'),
|
||||
'required' => array( 'profile_menu', '=', 1 ),
|
||||
);
|
||||
}
|
||||
|
||||
$tab_options[] = array(
|
||||
'id' => 'profile_menu_default_tab',
|
||||
'type' => 'select',
|
||||
'select2' => array( 'allowClear' => 0, 'minimumResultsForSearch' => -1 ),
|
||||
'title' => __( 'Profile menu default tab' ),
|
||||
'desc' => __( 'This will be the default tab on user profile page' ),
|
||||
'default' => 'main',
|
||||
'options' => $ultimatemember->profile->tabs_primary(),
|
||||
'required' => array( 'profile_menu', '=', 1 ),
|
||||
);
|
||||
|
||||
$tab_options[] = array(
|
||||
'id' => 'profile_menu_icons',
|
||||
'type' => 'switch',
|
||||
'title' => __('Enable menu icons in desktop view'),
|
||||
'default' => 1,
|
||||
'required' => array( 'profile_menu', '=', 1 ),
|
||||
);
|
||||
|
||||
$tab_options[] = array(
|
||||
'id' => 'profile_menu_counts',
|
||||
'type' => 'switch',
|
||||
'title' => __('Enable counts in menu'),
|
||||
'default' => 1,
|
||||
'required' => array( 'profile_menu', '=', 1 ),
|
||||
);
|
||||
|
||||
$this->sections[] = array(
|
||||
|
||||
'subsection' => true,
|
||||
'title' => __( 'Profile Menu'),
|
||||
'fields' => $tab_options
|
||||
|
||||
);
|
||||
|
||||
$this->sections[] = array(
|
||||
|
||||
'subsection' => true,
|
||||
|
||||
@@ -36,6 +36,7 @@ class UM_API {
|
||||
require_once um_path . 'core/um-fields.php';
|
||||
require_once um_path . 'core/um-form.php';
|
||||
require_once um_path . 'core/um-user.php';
|
||||
require_once um_path . 'core/um-user-posts.php';
|
||||
require_once um_path . 'core/um-profile.php';
|
||||
require_once um_path . 'core/um-query.php';
|
||||
require_once um_path . 'core/um-datetime.php';
|
||||
@@ -74,6 +75,7 @@ class UM_API {
|
||||
require_once um_path . 'core/um-actions-save-profile.php';
|
||||
require_once um_path . 'core/um-actions-modal.php';
|
||||
require_once um_path . 'core/um-actions-misc.php';
|
||||
require_once um_path . 'core/um-actions-posts.php';
|
||||
|
||||
require_once um_path . 'core/um-filters-login.php';
|
||||
require_once um_path . 'core/um-filters-register.php';
|
||||
@@ -86,6 +88,7 @@ class UM_API {
|
||||
require_once um_path . 'core/um-filters-members.php';
|
||||
require_once um_path . 'core/um-filters-profile.php';
|
||||
require_once um_path . 'core/um-filters-account.php';
|
||||
require_once um_path . 'core/um-filters-misc.php';
|
||||
|
||||
/* initialize UM */
|
||||
$this->rewrite = new UM_Rewrite();
|
||||
@@ -100,6 +103,7 @@ class UM_API {
|
||||
$this->register = new UM_Register();
|
||||
$this->fields = new UM_Fields();
|
||||
$this->user = new UM_User();
|
||||
$this->user_posts = new UM_User_Posts();
|
||||
$this->profile = new UM_Profile();
|
||||
$this->datetime = new UM_DateTime();
|
||||
$this->chart = new UM_Chart();
|
||||
|
||||
Reference in New Issue
Block a user