Cum să redirecționez linkul action=register de pe pagina lostpassword către un alt link?
Am o pagină specifică de înregistrare WordPress unde utilizatorii noi completează un formular special. Totuși, dacă cineva dă click pe linkul "ai uitat parola" din secțiunea de login a site-ului meu și apoi pe "înregistrare", acesta va putea să se înregistreze fără să treacă prin formularul normal. Cum pot redirecționa pagina wp-login.php?action=register către sample.com/register?
Mulțumesc anticipat!
Conectează-te la login_form_register și redirecționează utilizatorii către pagina ta de înregistrare cu wp_redirect.
<?php
add_action( 'login_form_register', 'wpse45134_catch_register' );
/**
* Redirecționează vizitatorii de la `wp-login.php?action=register` către
* `site.com/register`
*/
function wpse45134_catch_register()
{
wp_redirect( home_url( '/register' ) );
exit(); // întotdeauna apelează `exit()` după `wp_redirect`
}
De asemenea, poți ascunde link-ul "înregistrare" de pe acea pagină prin suprascrierea opțiunii user_can_register pe pagina de autentificare. Conectează-te la login_form_lostpassword și login_form_retrievepassword, iar de acolo adaugă un filtru pentru pre_option_users_can_register.
<?php
add_action( 'login_form_lostpassword', 'wpse45134_filter_option' );
add_action( 'login_form_retrievepassword', 'wpse45134_filter_option' );
/**
* Un simplu wrapper în jurul unui apel către add_filter pentru a ne asigura că filtrăm
* o opțiune doar pe pagina de autentificare.
*/
function wpse45134_filter_option()
{
// folosește __return_zero deoarece pre_option_{$opt} verifică
// împotriva `false`
add_filter( 'pre_option_users_can_register', '__return_zero' );
}
Ca plugin.
Mulțumesc, Christopher! Doar o întrebare, cum implementez asta ca un plugin? Nu am creat niciodată un plugin wp până acum, dar dacă ai un link pentru orientare, etc., mă descurc cu codul și așa ceva
BentCircle
Ai putea pur și simplu să copiezi și să lipesti codul de mai sus într-un singur fișier PHP, să adaugi antetul pluginului (http://codex.wordpress.org/Writing_a_Plugin#File_Headers), să plasezi fișierul PHP în directorul wp-content/plugins. Iată varianta completă ca plugin https://gist.github.com/2012290
chrisguitarguy