id = 'redirects';
$this->label = __( 'Redirects', 'userswp' );
add_filter( 'uwp_settings_tabs_array', array( $this, 'add_settings_page' ), 20 );
add_action( 'uwp_settings_' . $this->id, array( $this, 'output' ) );
add_action( 'uwp_sections_' . $this->id, array( $this, 'output_toggle_advanced' ) );
add_action( 'uwp_settings_save_' . $this->id, array( $this, 'save' ) );
add_action( 'uwp_sections_' . $this->id, array( $this, 'output_sections' ) );
}
/**
* Output the settings.
*/
public function output() {
global $current_section;
$settings = $this->get_settings( $current_section );
UsersWP_Admin_Settings::output_fields( $settings );
}
/**
* Save settings.
*/
public function save() {
global $current_section;
$settings = $this->get_settings( $current_section );
UsersWP_Admin_Settings::save_fields( $settings );
}
/**
* Get sections.
*
* @return array
*/
public function get_sections() {
$sections = array(
'' => __( 'Role based redirects', 'userswp' ),
);
return apply_filters( 'uwp_get_sections_' . $this->id, $sections );
}
/**
* Get redirects settings array.
*
* @return array
*/
public function get_settings( $current_section = '' ) {
/**
* Filter pages settings array.
*
* @package userswp
*/
global $wp_roles;
$pages = get_pages(); $desc = '';
$pages_options = array(
'-1' => __( 'Last User Page', 'userswp' ),
'0' => __( 'Default Redirect', 'userswp'),
'-2' => __( 'Custom Redirect', 'userswp'),
);
if ( $pages ) {
foreach ( $pages as $page ) {
$pages_options[ $page->ID ] = $page->post_title;
}
}
if ( - 1 == uwp_get_option( 'login_redirect_to' ) ) {
$desc = '
' . aui()->alert( array(
'type' => 'error',
'content' => __( 'Login redirect based on user role will not work if "Last User Page" is set in General->Login->Login Redirect Page.', 'userswp' )
) ) . '
';
}
$settings_array = array(
array(
'title' => __( 'Role based redirect settings', 'userswp' ),
'type' => 'title',
'desc' => $desc,
'id' => 'redirects_options',
),
);
if(isset($wp_roles->roles) && !empty($wp_roles->roles)){
foreach ($wp_roles->roles as $key => $value){
$role_label = $value['name'];
$settings_array[] = array(
'title' => $role_label,
'type' => 'title',
'id' => 'role_name_'.$key,
);
$settings_array[] = array(
'id' => 'login_redirect_to_'.$key,
'name' => __( 'Login Redirect Page', 'userswp' ),
'desc' => __( 'Set the page to redirect the user to after logging in. If default redirect has been set then WordPress default will be used.', 'userswp' ),
'type' => 'select',
'options' => $pages_options,
'default' => '-1',
'desc_tip' => true,
);
$settings_array[] = array(
'id' => 'login_redirect_custom_url_'.$key,
'name' => __( 'Redirect Custom URL', 'userswp' ),
'desc' => __( 'Set the custom url to redirect the user to after logging in.', 'userswp' ),
'type' => 'text',
'default' => '',
'desc_tip' => true,
'class' => 'uwp-login-redirect-custom-url',
);
$settings_array[] = array(
'id' => 'logout_redirect_to_'.$key,
'name' => __( 'Logout Redirect Page', 'userswp' ),
'desc' => __( 'Set the page to redirect the user to after logging out. If no page has been set WordPress default will be used.', 'userswp' ),
'type' => 'single_select_page',
'desc_tip' => true,
);
$settings_array[] = array(
'id' => 'hide_admin_bar_'.$key,
'name' => __( 'Hide Admin Bar', 'userswp' ),
'desc' => __('Hide admin bar from frontend for this user role.','userswp' ),
'type' => 'checkbox',
'default' => '0',
);
$settings_array[] = array( 'type' => 'sectionend', 'id' => 'role_name_'.$key );
}
}
$settings_array[] = array( 'type' => 'sectionend', 'id' => 'redirects_options' );
$settings = apply_filters( 'uwp_redirects_options', $settings_array);
return apply_filters( 'uwp_get_settings_' . $this->id, $settings );
}
}
endif;
return new UsersWP_Settings_Redirects();