mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
- code reviewed;
This commit is contained in:
@@ -23,7 +23,7 @@ if ( ! class_exists( 'Permalinks' ) ) {
|
||||
|
||||
add_action( 'wp_head', array( &$this, 'um_rel_canonical_' ), 9 );
|
||||
|
||||
add_filter( 'um_user_pre_updating_profile_array', array( &$this, 'um_user_updating_profile_need_change_permalink') );
|
||||
add_filter( 'um_user_pre_updating_profile_array', array( &$this, 'um_user_updating_profile_need_change_permalink' ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -506,18 +506,21 @@ if ( ! class_exists( 'Permalinks' ) ) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the "need_change_permalink" parameter to recreate the user's permanent link
|
||||
* @param array $to_update
|
||||
* @return array $to_update
|
||||
*/
|
||||
function um_user_updating_profile_need_change_permalink( $to_update ) {
|
||||
|
||||
if ( um_user( 'first_name' ) != $to_update['first_name'] ||
|
||||
um_user( 'last_name' ) != $to_update['last_name'] ) {
|
||||
$to_update['need_change_permalink'] = true;
|
||||
}
|
||||
return $to_update;
|
||||
}
|
||||
/**
|
||||
* Adds the "need_change_permalink" parameter to recreate the user's permanent link*
|
||||
*
|
||||
* @param array $to_update
|
||||
* @return array $to_update
|
||||
*/
|
||||
function um_user_updating_profile_need_change_permalink( $to_update ) {
|
||||
|
||||
if ( um_user( 'first_name' ) != $to_update['first_name'] ||
|
||||
um_user( 'last_name' ) != $to_update['last_name'] ) {
|
||||
$to_update['need_change_permalink'] = true;
|
||||
}
|
||||
|
||||
return $to_update;
|
||||
}
|
||||
}
|
||||
}
|
||||
+122
-119
@@ -165,129 +165,133 @@ if ( ! class_exists( 'User' ) ) {
|
||||
}
|
||||
|
||||
|
||||
function get_profile_url( $user_id, $update_slug = false ) {
|
||||
// Permalink base
|
||||
$permalink_base = UM()->options()->get( 'permalink_base' );
|
||||
/**
|
||||
* @param $user_id
|
||||
* @param bool $update_slug
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function get_profile_url( $user_id, $update_slug = false ) {
|
||||
// Permalink base
|
||||
$permalink_base = UM()->options()->get( 'permalink_base' );
|
||||
|
||||
// Get user slug
|
||||
$profile_slug = get_user_meta( $user_id, "um_user_profile_url_slug_{$permalink_base}", true );
|
||||
$generate_slug = UM()->options()->get( 'um_generate_slug_in_directory' );
|
||||
// Get user slug
|
||||
$profile_slug = get_user_meta( $user_id, "um_user_profile_url_slug_{$permalink_base}", true );
|
||||
$generate_slug = UM()->options()->get( 'um_generate_slug_in_directory' );
|
||||
|
||||
// Return existing profile slug
|
||||
if ( $generate_slug && $update_slug == false && $profile_slug ) {
|
||||
return UM()->permalinks()->profile_permalink( $profile_slug );
|
||||
}
|
||||
// Return existing profile slug
|
||||
if ( $generate_slug && $update_slug == false && $profile_slug ) {
|
||||
return UM()->permalinks()->profile_permalink( $profile_slug );
|
||||
}
|
||||
|
||||
|
||||
// Reset cache
|
||||
if ( $update_slug == true ) {
|
||||
delete_option( "um_cache_userdata_{$user_id}" );
|
||||
um_fetch_user( $user_id );
|
||||
}
|
||||
// Reset cache
|
||||
if ( $update_slug == true ) {
|
||||
delete_option( "um_cache_userdata_{$user_id}" );
|
||||
um_fetch_user( $user_id );
|
||||
}
|
||||
|
||||
$userdata = get_userdata( $user_id );
|
||||
$userdata = get_userdata( $user_id );
|
||||
|
||||
if ( empty( $userdata ) ) {
|
||||
return UM()->permalinks()->profile_permalink( $profile_slug );
|
||||
}
|
||||
if ( empty( $userdata ) ) {
|
||||
return UM()->permalinks()->profile_permalink( $profile_slug );
|
||||
}
|
||||
|
||||
$user_in_url = '';
|
||||
// Username
|
||||
if ( $permalink_base == 'user_login' ) {
|
||||
$user_in_url = $userdata->user_login;
|
||||
$user_in_url = '';
|
||||
// Username
|
||||
if ( $permalink_base == 'user_login' ) {
|
||||
|
||||
if ( is_email( $user_in_url ) ) {
|
||||
$user_email = $user_in_url;
|
||||
$user_in_url = str_replace( '@', '', $user_in_url );
|
||||
$user_in_url = $userdata->user_login;
|
||||
|
||||
if ( ( $pos = strrpos( $user_in_url, '.' ) ) !== false ) {
|
||||
$search_length = strlen( '.' );
|
||||
$user_in_url = substr_replace( $user_in_url, '-', $pos, $search_length );
|
||||
}
|
||||
update_user_meta( $user_id, "um_email_as_username_{$user_in_url}", $user_email );
|
||||
if ( is_email( $user_in_url ) ) {
|
||||
|
||||
} else {
|
||||
$user_email = $user_in_url;
|
||||
$user_in_url = str_replace( '@', '', $user_in_url );
|
||||
|
||||
$user_in_url = sanitize_title( $user_in_url );
|
||||
if ( ( $pos = strrpos( $user_in_url, '.' ) ) !== false ) {
|
||||
$search_length = strlen( '.' );
|
||||
$user_in_url = substr_replace( $user_in_url, '-', $pos, $search_length );
|
||||
}
|
||||
update_user_meta( $user_id, "um_email_as_username_{$user_in_url}", $user_email );
|
||||
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
// User ID
|
||||
if ( $permalink_base == 'user_id' ) {
|
||||
$user_in_url = $user_id;
|
||||
}
|
||||
$user_in_url = sanitize_title( $user_in_url );
|
||||
|
||||
// Fisrt and Last name
|
||||
$full_name_permalinks = array( 'name', 'name_dash', 'name_plus' );
|
||||
if ( in_array( $permalink_base, $full_name_permalinks ) ) {
|
||||
$separated = array('name' => '.','name_dash' =>'-','name_plus'=>'+');
|
||||
$separate = $separated[$permalink_base];
|
||||
$first_name = $userdata->first_name;
|
||||
$last_name = $userdata->last_name;
|
||||
$full_name = sprintf('%s %s',$first_name,$last_name);
|
||||
}
|
||||
}
|
||||
|
||||
$full_name = preg_replace( '/\s+/', ' ', $full_name ); // Remove double spaces
|
||||
// User ID
|
||||
if ( $permalink_base == 'user_id' ) {
|
||||
$user_in_url = $user_id;
|
||||
}
|
||||
|
||||
$profile_slug = UM()->permalinks()->profile_slug( $full_name, $first_name, $last_name );
|
||||
// Fisrt and Last name
|
||||
$full_name_permalinks = array( 'name', 'name_dash', 'name_plus' );
|
||||
if ( in_array( $permalink_base, $full_name_permalinks ) ) {
|
||||
$separated = array( 'name' => '.', 'name_dash' => '-', 'name_plus' => '+' );
|
||||
$separate = $separated[ $permalink_base ];
|
||||
$first_name = $userdata->first_name;
|
||||
$last_name = $userdata->last_name;
|
||||
$full_name = sprintf( '%s %s', $first_name, $last_name );
|
||||
|
||||
$current_slug = get_user_meta( $user_id, "um_user_profile_url_slug_{$permalink_base}", true );
|
||||
if ( $current_slug ) {
|
||||
$username = $current_slug;
|
||||
} else {
|
||||
$full_name = preg_replace( '/\s+/', ' ', $full_name ); // Remove double spaces
|
||||
|
||||
$append = 0;
|
||||
$username = $full_name;
|
||||
$_username = $full_name;
|
||||
$profile_slug = UM()->permalinks()->profile_slug( $full_name, $first_name, $last_name );
|
||||
|
||||
while ( 1 ) {
|
||||
$current_slug = get_user_meta( $user_id, "um_user_profile_url_slug_{$permalink_base}", true );
|
||||
if ( $current_slug ) {
|
||||
$username = $current_slug;
|
||||
} else {
|
||||
|
||||
$username = $_username .(empty($append)?'':" $append" );
|
||||
if(!UM()->permalinks()->exist_url_slug_permalink_base( $permalink_base, $profile_slug . (empty($append)?'':"{$separate}{$append}" ) )){
|
||||
break;
|
||||
}
|
||||
$append++;
|
||||
$append = 0;
|
||||
$username = $full_name;
|
||||
$_username = $full_name;
|
||||
|
||||
}
|
||||
}
|
||||
$user_in_url = UM()->permalinks()->profile_slug( $username, $first_name, $last_name );
|
||||
}
|
||||
while ( 1 ) {
|
||||
$username = $_username . ( empty( $append ) ? '': " $append" );
|
||||
if ( ! UM()->permalinks()->exist_url_slug_permalink_base( $permalink_base, $profile_slug . ( empty( $append ) ? '' : "{$separate}{$append}" ) ) ) {
|
||||
break;
|
||||
}
|
||||
$append++;
|
||||
}
|
||||
}
|
||||
$user_in_url = UM()->permalinks()->profile_slug( $username, $first_name, $last_name );
|
||||
}
|
||||
|
||||
update_user_meta( $user_id, "um_user_profile_url_slug_{$permalink_base}", $user_in_url );
|
||||
update_user_meta( $user_id, "um_user_profile_url_slug_{$permalink_base}", $user_in_url );
|
||||
|
||||
if ( empty ( $user_in_url ) ) {
|
||||
$user_in_url = $user_id;
|
||||
}
|
||||
if ( empty ( $user_in_url ) ) {
|
||||
$user_in_url = $user_id;
|
||||
}
|
||||
|
||||
return UM()->permalinks()->profile_permalink( $user_in_url );
|
||||
}
|
||||
return UM()->permalinks()->profile_permalink( $user_in_url );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Backend user creation
|
||||
*
|
||||
* @param $user_id
|
||||
*/
|
||||
function user_register_via_admin( $user_id ) {
|
||||
|
||||
if ( empty( $user_id ) )
|
||||
return;
|
||||
|
||||
/**
|
||||
* Backend user creation
|
||||
*
|
||||
* @param $user_id
|
||||
*/
|
||||
function user_register_via_admin( $user_id ) {
|
||||
if ( is_admin() ) {
|
||||
//if there custom 2 role not empty
|
||||
if ( ! empty( $_POST['um-role'] ) ) {
|
||||
$user = get_userdata( $user_id );
|
||||
$user->add_role( $_POST['um-role'] );
|
||||
UM()->user()->profile['role'] = $_POST['um-role'];
|
||||
UM()->user()->update_usermeta_info( 'role' );
|
||||
}
|
||||
|
||||
if ( empty( $user_id ) )
|
||||
return;
|
||||
do_action( 'um_user_register', $user_id, $_POST );
|
||||
}
|
||||
|
||||
if ( is_admin() ) {
|
||||
//if there custom 2 role not empty
|
||||
if ( ! empty( $_POST['um-role'] ) ) {
|
||||
$user = get_userdata( $user_id );
|
||||
$user->add_role( $_POST['um-role'] );
|
||||
UM()->user()->profile['role'] = $_POST['um-role'];
|
||||
UM()->user()->update_usermeta_info( 'role' );
|
||||
}
|
||||
|
||||
do_action( 'um_user_register', $user_id, $_POST );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -296,37 +300,36 @@ if ( ! class_exists( 'User' ) ) {
|
||||
* @param int $user_id
|
||||
* @param \WP_User $old_data
|
||||
*/
|
||||
function profile_update( $user_id, $old_data ) {
|
||||
// Bail if no user ID was passed
|
||||
if ( empty( $user_id ) ) {
|
||||
return;
|
||||
}
|
||||
function profile_update( $user_id, $old_data ) {
|
||||
// Bail if no user ID was passed
|
||||
if ( empty( $user_id ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$old_roles = $old_data->roles;
|
||||
$userdata = get_userdata( $user_id );
|
||||
$new_roles = $userdata->roles;
|
||||
$old_roles = $old_data->roles;
|
||||
$userdata = get_userdata( $user_id );
|
||||
$new_roles = $userdata->roles;
|
||||
|
||||
if ( ! empty( $_POST['um-role'] ) ) {
|
||||
$new_roles = array_merge( $new_roles, array( $_POST['um-role'] ) );
|
||||
if ( ! user_can( $user_id, $_POST['um-role'] ) ) {
|
||||
UM()->roles()->set_role( $user_id, $_POST['um-role'] );
|
||||
}
|
||||
}
|
||||
if ( ! empty( $_POST['um-role'] ) ) {
|
||||
$new_roles = array_merge( $new_roles, array( $_POST['um-role'] ) );
|
||||
if ( ! user_can( $user_id, $_POST['um-role'] ) ) {
|
||||
UM()->roles()->set_role( $user_id, $_POST['um-role'] );
|
||||
}
|
||||
}
|
||||
|
||||
do_action( 'um_after_member_role_upgrade', $new_roles, $old_roles );
|
||||
do_action( 'um_after_member_role_upgrade', $new_roles, $old_roles );
|
||||
|
||||
//Update permalink
|
||||
$changes = apply_filters( 'um_user_edit_after_updating_profile_array', $_POST );
|
||||
if ( isset( $changes['need_change_permalink'] ) && $changes['need_change_permalink'] == true ) {
|
||||
//Update permalink
|
||||
$changes = apply_filters( 'um_user_edit_after_updating_profile_array', $_POST );
|
||||
if ( isset( $changes['need_change_permalink'] ) && $changes['need_change_permalink'] == true ) {
|
||||
$pre_user_id = um_user( 'ID' );
|
||||
um_fetch_user( $user_id );
|
||||
UM()->permalinks()->profile_url( $changes );
|
||||
um_fetch_user( $pre_user_id );
|
||||
}
|
||||
|
||||
$pre_user_id = um_user( 'ID' );
|
||||
um_fetch_user( $user_id );
|
||||
UM()->permalinks()->profile_url( $changes );
|
||||
um_fetch_user( $pre_user_id );
|
||||
}
|
||||
|
||||
$this->remove_cache( $user_id );
|
||||
}
|
||||
$this->remove_cache( $user_id );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -215,7 +215,7 @@ function um_submit_account_errors_hook( $args ) {
|
||||
|
||||
do_action('um_post_account_update');
|
||||
|
||||
do_action('um_after_user_account_updated', get_current_user_id(), $changes);
|
||||
do_action( 'um_after_user_account_updated', get_current_user_id(), $changes );
|
||||
|
||||
$url = '';
|
||||
if ( um_is_core_page( 'account' ) ) {
|
||||
@@ -287,30 +287,32 @@ function um_submit_account_errors_hook( $args ) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Adds the "need_change_permalink" parameter to recreate the user's permanent link
|
||||
* @param array $to_update
|
||||
* @return array $to_update
|
||||
*/
|
||||
function um_account_pre_updating_profile_need_change_permalink( $to_update ) {
|
||||
/**
|
||||
* Adds the "need_change_permalink" parameter to recreate the user's permanent link
|
||||
*
|
||||
* @param array $to_update
|
||||
* @return array $to_update
|
||||
*/
|
||||
function um_account_pre_updating_profile_need_change_permalink( $to_update ) {
|
||||
|
||||
if ( um_user( 'first_name' ) != $to_update['first_name'] ||
|
||||
um_user( 'last_name' ) != $to_update['last_name'] ) {
|
||||
$to_update['need_change_permalink'] = true;
|
||||
}
|
||||
|
||||
return $to_update;
|
||||
if ( um_user( 'first_name' ) != $to_update['first_name'] ||
|
||||
um_user( 'last_name' ) != $to_update['last_name'] ) {
|
||||
$to_update['need_change_permalink'] = true;
|
||||
}
|
||||
|
||||
add_filter( 'um_account_pre_updating_profile_array', 'um_account_pre_updating_profile_need_change_permalink' );
|
||||
return $to_update;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param $user_id
|
||||
* @param $changed
|
||||
*
|
||||
*/
|
||||
function um_after_user_account_updated_permalink($user_id,$changed){
|
||||
UM()->permalinks()->profile_url($changed);
|
||||
}
|
||||
add_action('um_after_user_account_updated','um_after_user_account_updated_permalink',10,2);
|
||||
add_filter( 'um_account_pre_updating_profile_array', 'um_account_pre_updating_profile_need_change_permalink' );
|
||||
|
||||
|
||||
/**
|
||||
* Update Profile URL
|
||||
*
|
||||
* @param $user_id
|
||||
* @param $changed
|
||||
*/
|
||||
function um_after_user_account_updated_permalink( $user_id, $changed ) {
|
||||
UM()->permalinks()->profile_url( $changed );
|
||||
}
|
||||
add_action( 'um_after_user_account_updated', 'um_after_user_account_updated_permalink', 10, 2 );
|
||||
|
||||
+194
-180
@@ -3,203 +3,217 @@
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
|
||||
/***
|
||||
*** @Main admin user actions
|
||||
***/
|
||||
add_filter('um_admin_user_actions_hook', 'um_admin_user_actions_hook', 1);
|
||||
function um_admin_user_actions_hook( $actions ) {
|
||||
/***
|
||||
*** @Main admin user actions
|
||||
***/
|
||||
add_filter('um_admin_user_actions_hook', 'um_admin_user_actions_hook', 1);
|
||||
function um_admin_user_actions_hook( $actions ) {
|
||||
|
||||
$actions = null;
|
||||
|
||||
um_fetch_user( um_profile_id() );
|
||||
$actions = null;
|
||||
|
||||
if ( current_user_can('manage_options') ) {
|
||||
|
||||
if ( um_user('account_status') == 'awaiting_admin_review' ){
|
||||
$actions['um_approve_membership'] = array( 'label' => __('Approve Membership','ultimate-member') );
|
||||
$actions['um_reject_membership'] = array( 'label' => __('Reject Membership','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( um_user('account_status') == 'rejected' ) {
|
||||
$actions['um_approve_membership'] = array( 'label' => __('Approve Membership','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( um_user('account_status') == 'approved' ) {
|
||||
$actions['um_put_as_pending'] = array( 'label' => __('Put as Pending Review','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( um_user('account_status') == 'awaiting_email_confirmation' ) {
|
||||
$actions['um_resend_activation'] = array( 'label' => __('Resend Activation E-mail','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( um_user('account_status') != 'inactive' ) {
|
||||
$actions['um_deactivate'] = array( 'label' => __('Deactivate this account','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( um_user('account_status') == 'inactive' ) {
|
||||
$actions['um_reenable'] = array( 'label' => __('Reactivate this account','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( UM()->roles()->um_current_user_can( 'delete', um_profile_id() ) ) {
|
||||
$actions['um_delete'] = array( 'label' => __('Delete this user','ultimate-member') );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ( current_user_can('delete_users') ) {
|
||||
$actions['um_switch_user'] = array( 'label' => __('Login as this user','ultimate-member') );
|
||||
}
|
||||
|
||||
|
||||
|
||||
return $actions;
|
||||
}
|
||||
um_fetch_user( um_profile_id() );
|
||||
|
||||
if ( current_user_can('manage_options') ) {
|
||||
|
||||
/**
|
||||
* Filter user basename
|
||||
* @param string $value
|
||||
* @return string
|
||||
* @hook_filter: um_clean_user_basename_filter
|
||||
*/
|
||||
add_filter('um_clean_user_basename_filter','um_clean_user_basename_filter',2,10);
|
||||
function um_clean_user_basename_filter( $value, $raw ){
|
||||
$permalink_base = UM()->options()->get( 'permalink_base' );
|
||||
|
||||
$user_query = new WP_User_Query(
|
||||
array(
|
||||
'meta_query' => array(
|
||||
'relation' => 'AND',
|
||||
array(
|
||||
'key' => 'um_user_profile_url_slug_'.$permalink_base,
|
||||
'value' => $raw,
|
||||
'compare' => '='
|
||||
)
|
||||
),
|
||||
'fields' => array('ID')
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
if( $user_query->total_users > 0 ){
|
||||
|
||||
$result = current( $user_query->get_results() );
|
||||
$slugname = '';
|
||||
|
||||
if( isset( $result->ID ) ){
|
||||
$slugname = get_user_meta( $result->ID, 'um_user_profile_url_slug_'.$permalink_base, true );
|
||||
$value = $slugname;
|
||||
}
|
||||
if ( um_user('account_status') == 'awaiting_admin_review' ){
|
||||
$actions['um_approve_membership'] = array( 'label' => __('Approve Membership','ultimate-member') );
|
||||
$actions['um_reject_membership'] = array( 'label' => __('Reject Membership','ultimate-member') );
|
||||
}
|
||||
|
||||
|
||||
$value = apply_filters("um_permalink_base_before_filter", $value );
|
||||
$raw_value = $value;
|
||||
|
||||
switch( $permalink_base ){
|
||||
case 'name':
|
||||
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '. ', $value );
|
||||
}
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,".") > -1 && strrpos( $raw_value ,"_" ) <= -1 ){
|
||||
$value = str_replace( '.', ' ', $value );
|
||||
}
|
||||
|
||||
$value = apply_filters("um_permalink_base_after_filter_name", $value, $raw_value );
|
||||
|
||||
break;
|
||||
|
||||
case 'name_dash':
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"-") > -1 ){
|
||||
$value = str_replace( '-', ' ', $value );
|
||||
}
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
// Checks if last name has a dash
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
$value = apply_filters("um_permalink_base_after_filter_name_dash", $value, $raw_value );
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case 'name_plus':
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"+") > -1 ){
|
||||
$value = str_replace( '+', ' ', $value );
|
||||
}
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '+', $value );
|
||||
}
|
||||
|
||||
$value = apply_filters("um_permalink_base_after_filter_name_plus", $value, $raw_value );
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
// Checks if last name has a dash
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 && substr( $value , "_") == 1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
$value = apply_filters("um_permalink_base_after_filter", $value, $raw_value );
|
||||
|
||||
break;
|
||||
if ( um_user('account_status') == 'rejected' ) {
|
||||
$actions['um_approve_membership'] = array( 'label' => __('Approve Membership','ultimate-member') );
|
||||
}
|
||||
|
||||
return $value;
|
||||
if ( um_user('account_status') == 'approved' ) {
|
||||
$actions['um_put_as_pending'] = array( 'label' => __('Put as Pending Review','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( um_user('account_status') == 'awaiting_email_confirmation' ) {
|
||||
$actions['um_resend_activation'] = array( 'label' => __('Resend Activation E-mail','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( um_user('account_status') != 'inactive' ) {
|
||||
$actions['um_deactivate'] = array( 'label' => __('Deactivate this account','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( um_user('account_status') == 'inactive' ) {
|
||||
$actions['um_reenable'] = array( 'label' => __('Reactivate this account','ultimate-member') );
|
||||
}
|
||||
|
||||
if ( UM()->roles()->um_current_user_can( 'delete', um_profile_id() ) ) {
|
||||
$actions['um_delete'] = array( 'label' => __('Delete this user','ultimate-member') );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ( current_user_can('delete_users') ) {
|
||||
$actions['um_switch_user'] = array( 'label' => __('Login as this user','ultimate-member') );
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter before update profile to force utf8 strings
|
||||
* @param mixed $value
|
||||
* @return mixed
|
||||
* @uses hook filter: um_is_selected_filter_value
|
||||
*/
|
||||
add_filter('um_before_update_profile','um_before_update_profile',2,10);
|
||||
function um_before_update_profile( $changes, $user_id ){
|
||||
if( ! UM()->options()->get( 'um_force_utf8_strings' ) )
|
||||
return $changes;
|
||||
|
||||
foreach( $changes as $key => $value ) {
|
||||
$changes[ $key ] = um_force_utf8_string( $value );
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Filter user basename
|
||||
* @param string $value
|
||||
* @return string
|
||||
* @hook_filter: um_clean_user_basename_filter
|
||||
*/
|
||||
add_filter('um_clean_user_basename_filter','um_clean_user_basename_filter',2,10);
|
||||
function um_clean_user_basename_filter( $value, $raw ){
|
||||
$permalink_base = UM()->options()->get( 'permalink_base' );
|
||||
|
||||
$user_query = new WP_User_Query(
|
||||
array(
|
||||
'meta_query' => array(
|
||||
'relation' => 'AND',
|
||||
array(
|
||||
'key' => 'um_user_profile_url_slug_'.$permalink_base,
|
||||
'value' => $raw,
|
||||
'compare' => '='
|
||||
)
|
||||
),
|
||||
'fields' => array('ID')
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
if( $user_query->total_users > 0 ){
|
||||
|
||||
$result = current( $user_query->get_results() );
|
||||
$slugname = '';
|
||||
|
||||
if( isset( $result->ID ) ){
|
||||
$slugname = get_user_meta( $result->ID, 'um_user_profile_url_slug_'.$permalink_base, true );
|
||||
$value = $slugname;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$value = apply_filters("um_permalink_base_before_filter", $value );
|
||||
$raw_value = $value;
|
||||
|
||||
switch( $permalink_base ){
|
||||
case 'name':
|
||||
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '. ', $value );
|
||||
}
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,".") > -1 && strrpos( $raw_value ,"_" ) <= -1 ){
|
||||
$value = str_replace( '.', ' ', $value );
|
||||
}
|
||||
|
||||
$value = apply_filters("um_permalink_base_after_filter_name", $value, $raw_value );
|
||||
|
||||
break;
|
||||
|
||||
case 'name_dash':
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"-") > -1 ){
|
||||
$value = str_replace( '-', ' ', $value );
|
||||
}
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
// Checks if last name has a dash
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
$value = apply_filters("um_permalink_base_after_filter_name_dash", $value, $raw_value );
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case 'name_plus':
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"+") > -1 ){
|
||||
$value = str_replace( '+', ' ', $value );
|
||||
}
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '+', $value );
|
||||
}
|
||||
|
||||
$value = apply_filters("um_permalink_base_after_filter_name_plus", $value, $raw_value );
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
// Checks if last name has a dash
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 && substr( $value , "_") == 1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
$value = apply_filters("um_permalink_base_after_filter", $value, $raw_value );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return $value;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Filter before update profile to force utf8 strings
|
||||
*
|
||||
* @param array $changes
|
||||
* @param int $user_id
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function um_before_update_profile( $changes, $user_id ) {
|
||||
if ( ! UM()->options()->get( 'um_force_utf8_strings' ) ) {
|
||||
return $changes;
|
||||
}
|
||||
|
||||
add_filter('insert_user_meta','um_user_edit_check_change_first_name_and_last_name',10,1);
|
||||
function um_user_edit_check_change_first_name_and_last_name($meta){
|
||||
if (!empty($_POST['user_id'])){
|
||||
if(get_user_meta( $_POST['user_id'],'first_name',true ) != $meta['first_name'] ||
|
||||
get_user_meta( $_POST['user_id'],'last_name',true ) != $meta['last_name']){
|
||||
add_filter( 'um_user_edit_after_updating_profile_array','um_user_edit_after_updating_profile_need_change_permalink' );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $meta;
|
||||
foreach ( $changes as $key => $value ) {
|
||||
$changes[ $key ] = um_force_utf8_string( $value );
|
||||
}
|
||||
|
||||
function um_user_edit_after_updating_profile_need_change_permalink( $to_update ) {
|
||||
$to_update['need_change_permalink'] = true;
|
||||
return $to_update;
|
||||
}
|
||||
return $changes;
|
||||
}
|
||||
add_filter( 'um_before_update_profile','um_before_update_profile', 10, 2 );
|
||||
|
||||
|
||||
/**
|
||||
* @param $meta
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function um_user_edit_check_change_first_name_and_last_name( $meta ) {
|
||||
if ( ! empty( $_POST['user_id'] ) ) {
|
||||
if ( get_user_meta( $_POST['user_id'], 'first_name', true ) != $meta['first_name'] ||
|
||||
get_user_meta( $_POST['user_id'], 'last_name', true ) != $meta['last_name'] ) {
|
||||
add_filter( 'um_user_edit_after_updating_profile_array', 'um_user_edit_after_updating_profile_need_change_permalink' );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $meta;
|
||||
}
|
||||
add_filter( 'insert_user_meta','um_user_edit_check_change_first_name_and_last_name', 10, 1 );
|
||||
|
||||
|
||||
/**
|
||||
* @param $to_update
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function um_user_edit_after_updating_profile_need_change_permalink( $to_update ) {
|
||||
$to_update['need_change_permalink'] = true;
|
||||
return $to_update;
|
||||
}
|
||||
Reference in New Issue
Block a user