Invia il link per reimpostare la password all'utente tramite un modulo personalizzato di password dimenticata

5 set 2012, 00:02:39
Visualizzazioni: 24.8K
Voti: 2

Ho avuto difficoltà cercando tra vari tutorial senza successo. Ho una pagina di login personalizzata e sto semplicemente sostituendo il modulo di login con il modulo per la password dimenticata al click. Il mio problema è come far sì che il modulo invii all'utente un link per reimpostare la password se viene inserito il nome utente o l'email corretta e restituisca un errore in caso contrario. Sto cercando di farlo da un plugin che sto creando per gestire il login. Ecco il mio semplice modulo. Come posso farlo funzionare?

  <form id="wp_pass_reset" action="" method="post">
    <input type="text" id="email-field" name="user_input" value="Nome utente o Email" /><br />
    <input type="submit" id="submitbtn" name="submit" value="Reimposta" />
  </form>
7
Commenti

Quindi chiunque potrebbe reimpostare la password di chiunque altro?

Stephen Harris Stephen Harris
5 set 2012 02:49:10

lol ops, modificherò questo

Pollux Khafra Pollux Khafra
5 set 2012 03:04:53

Questo è l'articolo giusto per te. - http://www.kvcodes.com/2016/10/wordpress-custom-forgot-password-page/

Kvvaradha Kvvaradha
3 nov 2016 06:32:01

Sto utilizzando il tema Olympus su WordPress. L'URL per la password dimenticata reindirizza alla homepage. Ecco il codice utilizzato per la sezione di reset password: php <?php $lostpswd = apply_filters( 'yz_lostpassword_url', wp_lostpassword_url() ); ?> <a href="<?php echo esc_url( $lostpswd ); ?>" class="forgot"> <?php esc_html_e( 'Password dimenticata', 'crum-ext-sign-form' ); ?> </a> Cosa dovrei fare?

zahra zahra
27 ott 2020 14:46:23

Per prima cosa devi verificare se wp_lostpassword_url() sta restituendo l'URL sbagliato, oppure se è il filtro yz_lostpassword_url che restituisce l'URL errato. Prova a impostare $lostpswd = wp_lostpassword_url(); e vedi cosa succede?

Rup Rup
27 ott 2020 15:13:22

Tuttavia hai pubblicato questo come risposta a una domanda esistente quando in realtà è una nuova domanda. Se hai bisogno di ulteriore aiuto, puoi pubblicarla come nuova domanda? Se utile per il contesto, aggiungi un link a questa domanda. Grazie!

Rup Rup
27 ott 2020 15:14:22

@zahra dovresti porre nuove domande come nuove domande, non pubblicarle come soluzioni ad altre domande

Tom J Nowell Tom J Nowell
27 ott 2020 16:04:32
Mostra i restanti 2 commenti
Tutte le risposte alla domanda 1
3

Nel tuo plugin dovresti prima impostare l'URL di reindirizzamento a vuoto: $redirect=''; oppure all'URL completo della pagina in cui vuoi che l'utente atterri dopo aver cambiato con successo la password. Per http://example.com/mypage/ dovresti usare: $redirect=site_url( '/mypage/ ' );

Poi il tuo form sarebbe:

<form name="lostpasswordform" id="lostpasswordform" action="<?php echo wp_lostpassword_url(); ?>" method="post">
    <p>
        <label>Username o E-mail:<br>
        <input type="text" name="user_login" id="user_login" class="input" value="" size="20" tabindex="10"></label>
    </p>
    <input type="hidden" name="redirect_to" value="<?php echo $redirect ?>">
    <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="Ottieni Nuova Password" tabindex="100"></p>
</form>

Nota: Questo codice non è stato testato. Fammi sapere nei commenti se qualcosa non funziona.

Aggiornamento

Come notato nei commenti, se hai un filtro su login_url wp_lostpassword_url() punterà alla tua pagina personalizzata. Per ripristinare temporaneamente il login_url predefinito, rimuovi il filtro subito prima del codice del form:

remove_filter( 'login_url', 'your_filter_function' );

e aggiungilo nuovamente subito dopo il codice del form:

add_filter( 'login_url', 'your_filter_function' );
7 set 2012 00:58:27
Commenti

Questo invia un link con una chiave unica all'email inserita se è un indirizzo email valido di un utente? Sto cercando di replicare il metodo predefinito che WordPress usa, solo che il link che viene inviato punta al mio template per il reset della password e non a quello di WordPress.

Pollux Khafra Pollux Khafra
7 set 2012 01:12:46

Hai filtrato il login_url per farlo puntare al tuo template di reset? Se sì, dovrai catturare il valore originale del login_url nel tuo filtro così da poterlo usare invece della chiamata a wp_lostpassword_url()

marfarma marfarma
7 set 2012 01:16:29

In alternativa, rimuovi il tuo filtro prima del codice del form e ripristinalo dopo. Probabilmente è più semplice così.

marfarma marfarma
7 set 2012 01:18:29