//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' );
wordpress
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 ); }
Elementor: trucchi e soluzioni
Login di elementor: Redirect sbagliato dopo inserimento errato di password o username
// Redirect the user back to the login page after the login failed, and add a $_GET parameter to let us know. Courtesy of WordPressFlow.com add_action( 'wp_login_failed', 'elementor_form_login_fail', 9999999 ); function elementor_form_login_fail( $username ) { $referrer = $_SERVER['HTTP_REFERER']; // where did the post submission come from? // if there's a valid referrer, and it's not the default log-in screen if ((!empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') )) { //redirect back to the referrer page, appending the login=failed parameter and removing any previous query strings //maybe could be smarter here and parse/rebuild the query strings from the referrer if they are important wp_redirect(preg_replace('/\?.*/', '', $referrer) . '/?login=failed' ); exit; } } // This is also important. Make sure that the redirect still runs if the username and/or password are empty. add_action( 'wp_authenticate', 'elementor_form_login_empty', 1, 2 ); function elementor_form_login_empty( $username, $pwd ) { $referrer = $_SERVER['HTTP_REFERER']; // where did the post submission come from? if ( empty( $username ) || empty( $pwd ) ) { if ((!strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') )) { //redirect back to the referrer page, appending the login=failed parameter and removing any previous query strings //maybe could be smarter here and parse/rebuild the query strings from the referrer if they are important wp_redirect(preg_replace('/\?.*/', '', $referrer) . '/?login=failed' ); exit; } exit(); } } function generate_login_fail_messaging(){ ob_start(); if($_GET['login'] == 'failed'){ echo '<div class="message_login_fail" style="background-color: #ca5151;color: #ffffff;display: block;margin-bottom: 20px;text-align: center;padding: 9px 15px; width: fit-content;margin: 0 auto;"><span style="color: #ca5151;background-color: #fff;width: 20px;height: 20px;display: inline-flex;align-items: center;justify-content: center;font-weight: 900;border-radius: 50%;margin-right: 10px;">!</span>Sembra che tu abbia inserito una email o una password sbagliata. Controlla i tuoi dati e riprova.</div>'; } $return_string = ob_get_contents(); ob_end_clean(); return $return_string; } add_shortcode('login_fail_messaging', 'generate_login_fail_messaging');
Dopo aver inserito questa parte di codice nel file function.php
inseriamo uno shortcode sopra il form di login: [login_fail_messaging]
e creiamo lo shortcode nel file function.php
function generate_login_fail_messaging(){ ob_start(); if($_GET['login'] == 'failed'){ echo '!Sembra che tu abbia inserito una email o passoword sbagliata. Controlla i tuoi dati e riprova.'; } $return_string = ob_get_contents(); ob_end_clean(); return $return_string; } add_shortcode('login_fail_messaging', 'generate_login_fail_messaging'); function generate_login_fail_messaging(){ ob_start(); if($_GET['login'] == 'failed'){ echo '!Sembra che tu abbia inserito una email o passoword sbagliata. Controlla i tuoi dati e riprova.'; } $return_string = ob_get_contents(); ob_end_clean(); return $return_string; } add_shortcode('login_fail_messaging', 'generate_login_fail_messaging');