mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-11 18:56:10 +09:00
@@ -3,152 +3,152 @@
|
||||
class UM_Admin_Notices {
|
||||
|
||||
function __construct() {
|
||||
|
||||
|
||||
add_action('admin_init', array(&$this, 'create_languages_folder') );
|
||||
|
||||
add_action('admin_notices', array(&$this, 'main_notices'), 1);
|
||||
|
||||
|
||||
add_action('admin_notices', array(&$this, 'localize_note'), 2);
|
||||
|
||||
|
||||
add_action('admin_notices', array(&$this, 'show_update_messages'), 10);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @to store plugin languages
|
||||
***/
|
||||
function create_languages_folder() {
|
||||
|
||||
|
||||
global $ultimatemember;
|
||||
|
||||
|
||||
$path = $ultimatemember->files->upload_basedir;
|
||||
$path = str_replace('/uploads/ultimatemember','',$path);
|
||||
$path = $path . '/languages/plugins/';
|
||||
$path = str_replace('//','/',$path);
|
||||
|
||||
|
||||
if ( !file_exists( $path ) ) {
|
||||
$old = umask(0);
|
||||
@mkdir( $path, 0777, true);
|
||||
umask($old);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @show main notices
|
||||
***/
|
||||
function main_notices(){
|
||||
global $ultimatemember;
|
||||
$hide_register_notice = get_option('um_can_register_notice');
|
||||
|
||||
|
||||
if ( !get_option('um_passwords_secured') ) {
|
||||
echo '<div class="updated error"><p>';
|
||||
|
||||
|
||||
echo sprintf(__( 'Secure your database by removing hardcoded user passwords now. Click <a href="%s">here</a> to secure your database.', 'ultimatemember' ), add_query_arg('um_adm_action', 'um_passwords_secured') );
|
||||
|
||||
|
||||
echo '</p></div>';
|
||||
}
|
||||
|
||||
|
||||
if ( !get_option('users_can_register') && !$hide_register_notice ) {
|
||||
|
||||
|
||||
echo '<div class="updated" style="border-color: #3ba1da;"><p>';
|
||||
|
||||
|
||||
echo sprintf(__( 'Registration is disabled. Please go to the <a href="%s">general settings</a> page in the WordPress admin and select anyone can register. <a href="%s">Hide this notice</a>', 'ultimatemember' ), admin_url('options-general.php'), add_query_arg('um_adm_action', 'um_can_register_notice') );
|
||||
|
||||
|
||||
echo '</p></div>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
$hide_exif_notice = get_option('um_hide_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_hide_exif_notice') );
|
||||
|
||||
|
||||
echo '</p></div>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Regarding page setup
|
||||
$pages = $ultimatemember->permalinks->core;
|
||||
if ( $pages && is_array( $pages ) ) {
|
||||
|
||||
|
||||
$err = false;
|
||||
|
||||
|
||||
foreach( $pages as $slug => $page_id ) {
|
||||
|
||||
|
||||
$page = get_post( $page_id );
|
||||
if ( !isset( $page->ID ) && in_array( $slug, array( 'user','account','members','register','login','logout','password-reset' ) ) ) {
|
||||
$err = true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ( $err ) {
|
||||
echo '<div class="updated" style="border-color: #3ba1da;"><p>' . __('One or more of your Ultimate Member pages are not correctly setup. Please visit <strong>Ultimate Member > Settings</strong> to re-assign your missing pages.','ultimatemember') . '</p></div>';
|
||||
}
|
||||
|
||||
|
||||
if ( isset( $pages['user'] ) ) {
|
||||
$test = get_post( $pages['user'] );
|
||||
if ( isset( $test->post_parent ) && $test->post_parent > 0 ) {
|
||||
echo '<div class="updated" style="border-color: #3ba1da;"><p>' . __('Ultimate Member Setup Error: User page can not be a child page.','ultimatemember') . '</p></div>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( isset( $pages['account'] ) ) {
|
||||
$test = get_post( $pages['account'] );
|
||||
if ( isset( $test->post_parent ) && $test->post_parent > 0 ) {
|
||||
echo '<div class="updated" style="border-color: #3ba1da;"><p>' . __('Ultimate Member Setup Error: Account page can not be a child page.','ultimatemember') . '</p></div>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
do_action('um_admin_after_main_notices');
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/***
|
||||
*** @localization notice
|
||||
***/
|
||||
function localize_note() {
|
||||
global $ultimatemember;
|
||||
|
||||
|
||||
$locale = get_option('WPLANG');
|
||||
if ( !$locale ) return;
|
||||
if ( strstr( $locale, 'en_' ) ) return; // really, english!
|
||||
if ( file_exists( WP_LANG_DIR . '/plugins/ultimatemember-' . $locale . '.mo' ) ) return;
|
||||
|
||||
|
||||
if ( isset( $ultimatemember->available_languages[$locale] ) ) {
|
||||
|
||||
|
||||
$download_uri = add_query_arg('um_adm_action', 'um_language_downloader');
|
||||
|
||||
|
||||
echo '<div class="updated" style="border-color: #3ba1da;"><p>';
|
||||
|
||||
|
||||
echo sprintf(__('Your site language is <strong>%1$s</strong>. Good news! Ultimate Member is already available in <strong>%2$s language</strong>. <a href="%3$s">Download the translation</a> files and start using the plugin in your language now.','ultimatemember'), $locale, $ultimatemember->available_languages[$locale], $download_uri );
|
||||
|
||||
|
||||
echo '</p></div>';
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
$hide_locale_notice = get_option('um_hide_locale_notice');
|
||||
if ( !$hide_locale_notice ) {
|
||||
|
||||
|
||||
echo '<div class="updated" style="border-color: #3ba1da;"><p>';
|
||||
|
||||
|
||||
echo sprintf(__('Ultimate Member has not yet been translated to your langeuage: <strong>%1$s</strong>. If you have translated the plugin you need put these files <code>ultimatemember-%1$s.po and ultimatemember-%1$s.mo</code> in <strong>/wp-content/languages/plugins/</strong> for the plugin to be translated in your language. <a href="%2$s">Hide this notice</a>','ultimatemember'), $locale, add_query_arg('um_adm_action', 'um_hide_locale_notice') );
|
||||
|
||||
|
||||
echo '</p></div>';
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @updating users
|
||||
***/
|
||||
@@ -158,56 +158,61 @@ class UM_Admin_Notices {
|
||||
|
||||
$update = $_REQUEST['update'];
|
||||
switch($update) {
|
||||
|
||||
|
||||
case 'confirm_delete':
|
||||
$wp_http_referer = isset( $_REQUEST['_wp_http_referer'] ) ? $_REQUEST['_wp_http_referer']: '';
|
||||
$confirm_uri = sanitize_text_field( urldecode( $wp_http_referer ) );
|
||||
$confirm_uri = $confirm_uri ?: admin_url('users.php?' . http_build_query(array(
|
||||
'um_adm_action' => 'delete_users',
|
||||
'user' => array_map('intval', (array) $_REQUEST['user']),
|
||||
'confirm' => 1
|
||||
)));
|
||||
$users = '';
|
||||
|
||||
|
||||
if( isset( $_REQUEST['user'] ) ){
|
||||
foreach( $_REQUEST['user'] as $user_id ) {
|
||||
$user = get_userdata( $user_id );
|
||||
$users .= '#' . $user_id . ': ' . $user->user_login . '<br />';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$ignore = admin_url('users.php');
|
||||
|
||||
|
||||
$messages[0]['err_content'] = sprintf(__('Are you sure you want to delete the selected user(s)? The following users will be deleted: <p>%s</p> <strong>This cannot be undone!</strong>','ultimatemember'), $users);
|
||||
$messages[0]['err_content'] .= '<p><a href="'. esc_html( $confirm_uri ) .'" class="button-primary">' . __('Remove','ultimatemember') . '</a> <a href="'.$ignore.'" class="button">' . __('Undo','ultimatemember') . '</a></p>';
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case 'language_updated':
|
||||
$messages[0]['content'] = __('Your translation files have been updated successfully.','ultimatemember');
|
||||
break;
|
||||
|
||||
|
||||
case 'purged_temp':
|
||||
$messages[0]['content'] = __('Your temp uploads directory is now clean.','ultimatemember');
|
||||
break;
|
||||
|
||||
|
||||
case 'cleared_cache':
|
||||
$messages[0]['content'] = __('Your user cache is now removed.','ultimatemember');
|
||||
break;
|
||||
|
||||
|
||||
case 'form_duplicated':
|
||||
$messages[0]['content'] = __('The form has been duplicated successfully.','ultimatemember');
|
||||
break;
|
||||
|
||||
|
||||
case 'user_updated':
|
||||
$messages[0]['content'] = __('User has been updated.','ultimatemember');
|
||||
break;
|
||||
|
||||
|
||||
case 'users_updated':
|
||||
$messages[0]['content'] = __('Users have been updated.','ultimatemember');
|
||||
break;
|
||||
|
||||
|
||||
case 'err_users_updated':
|
||||
$messages[0]['err_content'] = __('Super administrators cannot be modified.','ultimatemember');
|
||||
$messages[1]['content'] = __('Other users have been updated.','ultimatemember');
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ( !empty( $messages ) ) {
|
||||
foreach( $messages as $message ) {
|
||||
if ( isset($message['err_content'])) {
|
||||
@@ -217,7 +222,7 @@ class UM_Admin_Notices {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+62
-59
@@ -5,18 +5,18 @@ class UM_Members {
|
||||
function __construct() {
|
||||
|
||||
add_filter('user_search_columns', array(&$this, 'user_search_columns'), 99 );
|
||||
|
||||
|
||||
add_action('template_redirect', array(&$this, 'access_members'), 555);
|
||||
|
||||
|
||||
$this->core_search_fields = array(
|
||||
'user_login',
|
||||
'username',
|
||||
'display_name',
|
||||
'user_email',
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @user_search_columns
|
||||
***/
|
||||
@@ -28,23 +28,23 @@ class UM_Members {
|
||||
}
|
||||
return $search_columns;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @Members page allowed?
|
||||
***/
|
||||
function access_members() {
|
||||
|
||||
|
||||
if ( um_get_option('members_page') == 0 && um_is_core_page('members') ) {
|
||||
um_redirect_home();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @tag conversion for member directory
|
||||
***/
|
||||
function convert_tags( $string, $array ) {
|
||||
|
||||
|
||||
$search = array(
|
||||
'{total_users}',
|
||||
);
|
||||
@@ -56,7 +56,7 @@ class UM_Members {
|
||||
$string = str_replace($search, $replace, $string);
|
||||
return $string;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @show filter
|
||||
***/
|
||||
@@ -64,103 +64,106 @@ class UM_Members {
|
||||
global $ultimatemember;
|
||||
|
||||
$fields = $ultimatemember->builtin->all_user_fields;
|
||||
|
||||
|
||||
if ( isset( $fields[$filter] ) ) {
|
||||
$attrs = $fields[$filter];
|
||||
} else {
|
||||
$attrs = apply_filters("um_custom_search_field_{$filter}", array() );
|
||||
}
|
||||
|
||||
|
||||
// additional filter for search field attributes
|
||||
$attrs = apply_filters("um_search_field_{$filter}", $attrs);
|
||||
|
||||
if ( $ultimatemember->builtin->is_dropdown_field( $filter, $attrs ) ) {
|
||||
$type = 'select';
|
||||
} else {
|
||||
$type = 'text';
|
||||
}
|
||||
|
||||
|
||||
switch( $type ) {
|
||||
|
||||
|
||||
case 'select':
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<select name="<?php echo $filter; ?>" id="<?php echo $filter; ?>" class="um-s1" style="width: 100%" data-placeholder="<?php echo stripslashes( $attrs['label'] ); ?>">
|
||||
|
||||
|
||||
<option></option>
|
||||
|
||||
|
||||
<?php foreach( $attrs['options'] as $k => $v ) {
|
||||
|
||||
|
||||
$v = stripslashes($v);
|
||||
|
||||
|
||||
$opt = $v;
|
||||
|
||||
|
||||
if ( strstr($filter, 'role_') )
|
||||
$opt = $k;
|
||||
|
||||
|
||||
if ( isset( $attrs['custom'] ) )
|
||||
$opt = $k;
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<option value="<?php echo $opt; ?>" <?php um_select_if_in_query_params( $filter, $opt ); ?>><?php echo $v; ?></option>
|
||||
|
||||
|
||||
<?php } ?>
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case 'text':
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<input type="text" name="<?php echo $filter; ?>" id="<?php echo $filter; ?>" placeholder="<?php echo $attrs['label']; ?>" value="<?php um_queried_search_value( $filter ); ?>" />
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
*** @Generate a loop of results
|
||||
***/
|
||||
function get_members($args){
|
||||
|
||||
|
||||
global $ultimatemember;
|
||||
|
||||
|
||||
extract($args);
|
||||
|
||||
|
||||
$query_args = array();
|
||||
$query_args = apply_filters( 'um_prepare_user_query_args', $query_args, $args );
|
||||
$users = new WP_User_Query( $query_args );
|
||||
|
||||
|
||||
// number of profiles for mobile
|
||||
if ( $ultimatemember->mobile->isMobile() && isset( $profiles_per_page_mobile ) )
|
||||
$profiles_per_page = $profiles_per_page_mobile;
|
||||
|
||||
|
||||
$array['users'] = array_unique( $users->results );
|
||||
|
||||
|
||||
$array['total_users'] = (isset( $max_users ) && $max_users && $max_users <= $users->total_users ) ? $max_users : $users->total_users;
|
||||
|
||||
$array['page'] = isset($_REQUEST['members_page']) ? $_REQUEST['members_page'] : 1;
|
||||
|
||||
|
||||
$array['total_pages'] = ceil( $array['total_users'] / $profiles_per_page );
|
||||
|
||||
|
||||
$array['header'] = $this->convert_tags( $header, $array );
|
||||
$array['header_single'] = $this->convert_tags( $header_single, $array );
|
||||
|
||||
|
||||
$array['users_per_page'] = array_slice($array['users'], ( ( $profiles_per_page * $array['page'] ) - $profiles_per_page ), $profiles_per_page );
|
||||
|
||||
|
||||
for( $i = $array['page']; $i <= $array['page'] + 2; $i++ ) {
|
||||
if ( $i <= $array['total_pages'] ) {
|
||||
$pages_to_show[] = $i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( isset( $pages_to_show ) && count( $pages_to_show ) < 5 ) {
|
||||
$pages_needed = 5 - count( $pages_to_show );
|
||||
|
||||
@@ -170,12 +173,12 @@ class UM_Members {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( isset( $pages_to_add ) ) {
|
||||
|
||||
|
||||
asort( $pages_to_add );
|
||||
$pages_to_show = array_merge( (array)$pages_to_add, $pages_to_show );
|
||||
|
||||
|
||||
if ( count( $pages_to_show ) < 5 ) {
|
||||
if ( max($pages_to_show) - $array['page'] >= 2 ) {
|
||||
$pages_to_show[] = max($pages_to_show) + 1;
|
||||
@@ -189,13 +192,13 @@ class UM_Members {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asort( $pages_to_show );
|
||||
|
||||
|
||||
$array['pages_to_show'] = $pages_to_show;
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
if ( isset( $pages_to_show ) && count( $pages_to_show ) < 5 ) {
|
||||
if ( max($pages_to_show) - $array['page'] >= 2 ) {
|
||||
$pages_to_show[] = max($pages_to_show) + 1;
|
||||
@@ -209,34 +212,34 @@ class UM_Members {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( isset( $pages_to_show ) && is_array( $pages_to_show ) ) {
|
||||
|
||||
|
||||
asort( $pages_to_show );
|
||||
|
||||
|
||||
$array['pages_to_show'] = $pages_to_show;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ( isset( $array['pages_to_show'] ) ) {
|
||||
|
||||
|
||||
if ( $array['total_pages'] < count( $array['pages_to_show'] ) ) {
|
||||
foreach( $array['pages_to_show'] as $k => $v ) {
|
||||
if ( $v > $array['total_pages'] ) unset( $array['pages_to_show'][$k] );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
foreach( $array['pages_to_show'] as $k => $v ) {
|
||||
if ( (int)$v <= 0 ) {
|
||||
unset( $array['pages_to_show'][$k] );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return apply_filters('um_prepare_user_results_array', $array );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user