Ultimate Member: Redirecționare după înregistrare
16 nov. 2017, 13:05:29
Vizualizări: 13.5K
Voturi: 1
Am citit câteva discuții despre redirecționarea după înregistrare în legătură cu pluginul Ultimate Member și am încercat unele soluții, dar nu au funcționat.
Redirecționările pentru login și logout funcționează corect, dar pentru înregistrare cred că există o mică eroare, deoarece după ce setez un URL de redirecționare, de exemplu www.example.com, URL-ul devine www.example.com/register/www.example.com.
Am cunoștințe limitate de PHP și cred că ar putea fi o eroare în codul pluginului?
Vă mulțumesc anticipat.
edit:
<?php
/**
* Cont aprobat automat
*/
add_action('um_post_registration_approved_hook', 'um_post_registration_approved_hook', 10, 2);
function um_post_registration_approved_hook($user_id, $args){
global $ultimatemember;
um_fetch_user( $user_id );
$ultimatemember->user->approve();
}
/**
* Cont necesită validare prin email
*/
add_action('um_post_registration_checkmail_hook', 'um_post_registration_checkmail_hook', 10, 2);
function um_post_registration_checkmail_hook($user_id, $args){
global $ultimatemember;
um_fetch_user( $user_id );
$ultimatemember->user->email_pending();
}
/**
* Cont necesită revizuire de către administrator
*/
add_action('um_post_registration_pending_hook', 'um_post_registration_pending_hook', 10, 2);
function um_post_registration_pending_hook($user_id, $args){
global $ultimatemember;
um_fetch_user( $user_id );
$ultimatemember->user->pending();
}
/**
* Adaugă utilizator în WordPress
*/
add_action('um_add_user_frontend', 'um_add_user_frontend', 10);
function um_add_user_frontend($args){
global $ultimatemember;
unset( $args['user_id'] );
extract($args);
if ( isset( $username ) && !isset($args['user_login']) ) {
$user_login = $username;
}
if ( ! empty( $first_name ) && ! empty( $last_name ) && ! isset( $user_login ) ) {
if ( um_get_option('permalink_base') == 'name' ) {
$user_login = rawurlencode( strtolower( str_replace(" ",".",$first_name." ".$last_name ) ) );
}else if ( um_get_option('permalink_base') == 'name_dash' ) {
$user_login = rawurlencode( strtolower( str_replace(" ","-",$first_name." ".$last_name ) ) );
}else if ( um_get_option('permalink_base') == 'name_plus' ) {
$user_login = strtolower( str_replace(" ","+",$first_name." ".$last_name ) );
}else{
$user_login = strtolower( str_replace(" ","",$first_name." ".$last_name ) );
}
// dacă numele complet există
$count = 1;
while( username_exists( $user_login ) ) {
$user_login .= $count;
$count++;
}
}
if( !isset( $user_login ) && isset( $user_email ) && $user_email )
{
$user_login = $user_email;
}
$unique_userID = $ultimatemember->query->count_users() + 1;
if ( ! isset( $user_login ) || strlen( $user_login ) > 30 && ! is_email( $user_login ) ) {
$user_login = 'user' . $unique_userID;
}
if ( isset( $username ) && is_email( $username ) ) {
$user_email = $username;
}
if ( ! isset( $user_password ) ){
$user_password = $ultimatemember->validation->generate( 8 );
}
if( ! isset( $user_email ) ) {
$site_url = @$_SERVER['SERVER_NAME'];
$user_email = 'nobody' . $unique_userID . '@' . $site_url;
$user_email = apply_filters("um_user_register_submitted__email", $user_email );
}
$creds['user_login'] = $user_login;
$creds['user_password'] = $user_password;
$creds['user_email'] = trim( $user_email );
$args = apply_filters('um_add_user_frontend_submitted', $args );
$args['submitted'] = array_merge( $args['submitted'], $creds);
$args = array_merge($args, $creds);
unset( $args['user_id'] );
do_action('um_before_new_user_register', $args);
$user_id = wp_create_user( $user_login, $user_password, $user_email );
do_action('um_after_new_user_register', $user_id, $args);
return $user_id;
}
/**
* După adăugarea unui nou utilizator
*/
add_action('um_after_new_user_register', 'um_after_new_user_register', 10, 2);
function um_after_new_user_register( $user_id, $args ){
global $ultimatemember, $pagenow;
extract( $args );
um_fetch_user( $user_id );
if ( !isset( $args['role'] ) ) {
$role = um_get_option('default_role');
}
if ( $pagenow != 'user-new.php' && !array_key_exists( $role, $ultimatemember->query->get_roles( false, array('admin') ) ) {
$role = um_get_option('default_role');
}
$ultimatemember->user->set_role( $role );
$ultimatemember->user->set_registration_details( $args['submitted'] );
$ultimatemember->user->set_last_login();
do_action('um_new_user_registration_plain');
do_action('um_post_registration_save', $user_id, $args);
do_action('um_post_registration_listener', $user_id, $args);
do_action('um_update_profile_full_name', $args );
do_action('um_post_registration', $user_id, $args);
if( ! is_admin() ){
do_action('user_register', $user_id );
}
}
/**
* Actualizează profilul utilizatorului după înregistrare
*/
add_action('um_post_registration_save', 'um_post_registration_save', 10, 2);
function um_post_registration_save( $user_id, $args ){
global $ultimatemember;
unset( $args['user_id'] );
$args['_user_id'] = $user_id;
$args['is_signup'] = 1;
do_action('um_user_edit_profile', $args);
}
/**
* Ascultător post-înregistrare pentru administrator
*/
add_action('um_post_registration_listener', 'um_post_registration_listener', 10, 2);
function um_post_registration_listener( $user_id, $args ){
global $ultimatemember;
if ( um_user('status') != 'pending' ) {
$ultimatemember->mail->send( um_admin_email(), 'notification_new_user', array('admin' => true ) );
} else {
$ultimatemember->mail->send( um_admin_email(), 'notification_review', array('admin' => true ) );
}
}
/**
* Procedură post-înregistrare
*/
add_action('um_post_registration', 'um_post_registration', 10, 2);
function um_post_registration( $user_id, $args ){
global $ultimatemember;
unset( $args['user_id'] );
extract($args);
$status = um_user('status');
do_action("um_post_registration_global_hook", $user_id, $args);
do_action("um_post_registration_{$status}_hook", $user_id, $args);
if ( !is_admin() ) {
do_action("track_{$status}_user_registration");
// Redirecționare prioritară
if ( isset( $args['redirect_to'] ) ) {
exit( wp_redirect( urldecode( $args['redirect_to'] ) ) );
}
if ( $status == 'approved' ) {
$ultimatemember->user->auto_login( $user_id );
$ultimatemember->permalinks->profile_url( true );
do_action('um_registration_after_auto_login', $user_id );
if ( um_user('auto_approve_act') == 'redirect_url' && um_user('auto_approve_url') !== '' ){
exit( wp_redirect( um_user('auto_approve_url') ) );
}
if ( um_user('auto_approve_act') == 'redirect_profile' ){
exit( wp_redirect( um_user_profile_url() ) );
}
}
if ( $status != 'approved' ) {
if ( um_user( $status . '_action' ) == 'redirect_url' && um_user( $status . '_url' ) != '' ) {
exit( wp_redirect( um_user( $status . '_url' ) ) );
}
if ( um_user( $status . '_action' ) == 'show_message' && um_user( $status . '_message' ) != '' ) {
$role_id = $ultimatemember->user->get_role_name( um_user('role'), true );
$url = $ultimatemember->permalinks->get_current_url();
$url = add_query_arg( 'message', esc_attr( $status ), $url );
$url = add_query_arg( 'um_role', esc_attr( $role_id ), $url );
$url = add_query_arg( 'um_form_id', esc_attr( $form_id ), $url );
exit( wp_redirect( $url ) );
}
}
}
}
/**
* Înregistrare utilizator nou
*/
add_action('um_user_registration', 'um_user_registration', 10);
function um_user_registration($args){
global $ultimatemember;
unset( $args['user_id'] );
do_action('um_add_user_frontend', $args);
}
/**
* Procesare formular
*/
add_action('um_submit_form_register', 'um_submit_form_register', 10);
function um_submit_form_register($args){
global $ultimatemember;
if ( !isset($ultimatemember->form->errors) ) do_action('um_user_registration', $args);
do_action('um_user_registration_extra_hook', $args );
}
/**
* Înregistrare utilizator cu rol predefinit în opțiuni
*/
add_action('um_after_register_fields', 'um_add_user_role');
function um_add_user_role( $args ){
global $ultimatemember;
if ( isset( $args['custom_fields']['role_select'] ) || isset( $args['custom_fields']['role_radio'] ) ) return;
$use_global_settings = get_post_meta( $args['form_id'], '_um_register_use_globals', true);
if (isset($args['role']) && !empty($args['role']) && $use_global_settings == 0 ) {
$role = $args['role'];
} else if( $use_global_settings == 1 ) {
$role = um_get_option('default_role');
}
if( empty( $role ) ) return;
$role = apply_filters('um_register_hidden_role_field', $role );
if( $role ){
echo '<input type="hidden" name="role" id="role" value="' . $role . '" />';
}
}
/**
* Afișează butonul de trimitere
*/
add_action('um_after_register_fields', 'um_add_submit_button_to_register', 1000);
function um_add_submit_button_to_register($args){
global $ultimatemember;
// NU adăuga când se revizuiesc detaliile utilizatorului
if ( isset( $ultimatemember->user->preview ) && $ultimatemember->user->preview == true && is_admin() ) return;
$primary_btn_word = $args['primary_btn_word'];
$primary_btn_word = apply_filters('um_register_form_button_one', $primary_btn_word, $args );
$secondary_btn_word = $args['secondary_btn_word'];
$secondary_btn_word = apply_filters('um_register_form_button_two', $secondary_btn_word, $args );
$secondary_btn_url = ( isset( $args['secondary_btn_url'] ) && $args['secondary_btn_url'] ) ? $args['secondary_btn_url'] : um_get_core_page('login');
$secondary_btn_url = apply_filters('um_register_form_button_two_url', $secondary_btn_url, $args );
?>
<div class="um-col-alt">
<?php if ( isset($args['secondary_btn']) && $args['secondary_btn'] != 0 ) { ?>
<div class="um-left um-half"><input type="submit" value="<?php echo __( $primary_btn_word,'ultimate-member'); ?>" class="um-button" id="um-submit-btn" /></div>
<div class="um-right um-half"><a href="<?php echo $secondary_btn_url; ?>" class="um-button um-alt"><?php echo __( $secondary_btn_word,'ultimate-member'); ?></a></div>
<?php } else { ?>
<div class="um-center"><input type="submit" value="<?php echo __( $primary_btn_word,'ultimate-member'); ?>" class="um-button" id="um-submit-btn" /></div>
<?php } ?>
<div class="um-clear"></div>
</div>
<?php
}
/**
* Afișează câmpuri
*/
add_action('um_main_register_fields', 'um_add_register_fields', 100);
function um_add_register_fields($args){
global $ultimatemember;
echo $ultimatemember->fields->display( 'register', $args );
}
/**
* Setează gravatarul utilizatorului cu user_email
*/
add_action('user_register','um_user_register_generate_gravatar');
function um_user_register_generate_gravatar( $user_id ){
global $ultimatemember;
$ultimatemember->user->set_gravatar( $user_id );
}

ProjectX
13
Comentarii
Arată celelalte 2 comentarii
Toate răspunsurile la întrebare
1
1
Cred că problema ta este legată de protocoalele URL, nu de vreun bug în plugin. Încearcă să adaugi http:// sau https:// înaintea URL-ului de redirecționare.
Pentru mai multe informații, consultă acest răspuns

Piyush Rawat
783
16 nov. 2017 14:06:08
Întrebări similare
1
răspunsuri
2
răspunsuri