//different homepage loggedin loggedout function switch_homepage() { if ( is_user_logged_in() ) { $page = 9; // for logged in users update_option( 'page_on_front', $page ); update_option( 'show_on_front', 'page' ); } else { $page = 5144; // for logged out users update_option( 'page_on_front', $page ); update_option( 'show_on_front', 'page' ); } } add_action( 'init', 'switch_homepage' );
Il profilo utente di learndash
Per migliorare l’esperienza dell’utente in learndash è necessario modificare alcune cose.
L’edit profile è una di queste. Se lasci il link di default alla modifica dati, il tuo studente sarà indirizzato alla pagina standard di wordpress. Non esaltante di certo!
Andiamo quindi a modificare il link d’uscita.
1- Creiamo una pagina nuova che chiameremo ad esempio “edit-profile”
2- Inseriamo nel nostro function.php le tre righe qui sotto:
add_filter( 'get_edit_user_link', function( $link, $user_id ) { $link = "https://www.google.com/"; return $link; }, 30, 2 );
3- Sostituite il link tra le “…” con la url della pagina creata precedentemente.
Come visualizzare i dati degli utenti wordpress
Hai bisogno di creare un campo dinamico per visualizzare dati di utenti nel tuo sito wordpress quando sono loggati?
Una username o l’email o qualunque dato dell’utente registrato all’interno di una dashboard utente?
Ti insegno come farlo senza usare un plugin, e creando in php uno shortcode che ti darà la possibilità di inserire ovunque tali dati.
/*Shortcode userdata-visualizza la user dove inserisci lo shortcode*/ // create [userdata] shortcode function get_current_userdata_cb( $atts ){ if ( is_user_logged_in() ) { // get the current user $cu = wp_get_current_user(); switch ( $atts[0] ) { case 'user_login': return $cu->user_login; break; case 'user_email': return $cu->user_email; break; case 'user_firstname': return $cu->user_firstname; break; case 'user_lastname': return $cu->user_lastname; break; case 'display_name': return $cu->display_name; break; case 'ID': return $cu->ID; break; default: return $cu->user_login; break; } }else{ return ''; } } add_shortcode( 'userdata', 'get_current_userdata_cb' );
Ti basterà a questo punto inserire uno shortcode così fatto: [userdata display_name] per fare un esempio.
Logout redirect di un sito in wordpress
Se vuoi creare una redirect dopo il logout su una pagina diversa da quella standard (la home) puoi inserire questa stringa nel file function.php del tuo child theme.
add_action('wp_logout','auto_redirect_external_after_logout'); function auto_redirect_external_after_logout(){ wp_redirect( 'inserisci qui la url di redirect' ); exit(); }
Se al contrario hai un problema di redirect sbagliata perchè un plugin ha modificato il file php che indirizza l’utente al logout su specifiche pagine e vuoi impostarlo correttamente ovvero verso la homepage puoi inserire sempre nel function.php queste righe:
add_action(wp_logout,go_home); function go_home(){ wp_redirect( home_url() ); exit(); }
Come ordinare gli utenti wordpress per data di registrazione
Se hai la necessità di aggiungere nel backend la data di registrazione degli utenti oppure vuoi visualizzare per qualche motivo la data di iscrizione su un sito wordpress di un cliente o sottoscrittore o collaboratore allora ho la soluzione ottimale.
Per inserire un campo data registrazione nelle viste da amministratore nel backend di wordpress non dovrai far altro che intervenire sul file function.php del tuo tema.
Premetto che non uso per scelta plugin di cui si può fare a meno per non appesantire o complicare il sito e che quando si può preferisco intervenire con qualche linea di php.
/* * Create a column. And maybe remove some of the default ones * @param array $columns Array of all user table columns {column ID} => {column Name} */ add_filter( 'manage_users_columns', 'rudr_modify_user_table' ); function rudr_modify_user_table( $columns ) { // unset( $columns['posts'] ); // maybe you would like to remove default columns $columns['registration_date'] = 'Registration date'; // add new return $columns; } /* * Fill our new column with the registration dates of the users * @param string $row_output text/HTML output of a table cell * @param string $column_id_attr column ID * @param int $user user ID (in fact - table row ID) */ add_filter( 'manage_users_custom_column', 'rudr_modify_user_table_row', 10, 3 ); function rudr_modify_user_table_row( $row_output, $column_id_attr, $user ) { $date_format = 'j M, Y H:i'; switch ( $column_id_attr ) { case 'registration_date' : return date( $date_format, strtotime( get_the_author_meta( 'registered', $user ) ) ); break; default: } return $row_output; } /* * Make our "Registration date" column sortable * @param array $columns Array of all user sortable columns {column ID} => {orderby GET-param} */ add_filter( 'manage_users_sortable_columns', 'rudr_make_registered_column_sortable' ); function rudr_make_registered_column_sortable( $columns ) { return wp_parse_args( array( 'registration_date' => 'registered' ), $columns ); }