Zobraziť plnú verziu : Plugin ohľadom infa o potvrdenej registrácií
Ahojte, neviete prosim niekto dáky šikovný plugin či niečo, ktorý by mi do zoznamu Users pridal dáky stĺpec, v ktorom by bola info, či user dokončil registráciu?
Pod dokončenou registráciou si predstavujem to, že užívateľ sa registroval, bol mu zaslaný mail a následne sa prvý krát prihlásil. Touto utilitkou by som mohol pekne vidieť v zozname užívateľov tých, ktorí sa registrovali, alebo vobec sa už neprihlásili na blog a vykašlali sa teda na to a podobne.
Prípadne ak viete niekto aj dáky plugni na to, že by mi tam dalo napr. 2 stĺpce, kde by bolo uvedené, kedy sa user registroval a kedy bol naposledný prihlásený.
Ďakujem
WP 3.0.1 Eng
Shine template
JohnnyPea
31.10.2010, 20:10
Dá sa to vybaviť pridaním tohto kódu do functions.php v téme, alebo urobením jednoduchého modulu, ktorý si môžete stiahnuť nižšie...
add_action('cron_daily_event', 'is_user_active');
function cron_activation() {
if ( !wp_next_scheduled( 'cron_daily_event' ) )
wp_schedule_event(time(), 'daily', 'cron_daily_event');
}
add_action('wp', 'cron_activation');
function registration_login($user_ID) {
update_usermeta( $user_ID, 'last_user_login', 'Bez prihlásenia' );
}
add_action('user_register', 'registration_login');
function last_user_login($login) {
$user = get_userdatabylogin($login);
update_usermeta( $user->ID, 'last_user_login', time() );
}
add_action('wp_login','last_user_login');
function is_user_active() {
global $wpdb;
$last_user_login = $wpdb->get_results("SELECT * FROM $wpdb->users INNER JOIN $wpdb->usermeta ON ID = user_id WHERE meta_key = 'last_user_login' AND meta_value = 'Bez prihlásenia' AND DATEDIFF(NOW(),user_registered) >= 30", ARRAY_A);
if ( $last_user_login )
foreach ( $last_user_login as $user_login )
wp_delete_user( $user_login['ID'] );
}
function users_manage_columns( $empty, $column_name, $userid) {
$user_data = get_userdata( $userid );
if ( $column_name == 'registrovany' ) {
return date( "j.n. Y G:i", strtotime($user_data->user_registered) );
} elseif( $column_name == 'posledne_prihlasenie' ) {
$last_user_login = get_user_meta( $userid, 'last_user_login', TRUE );
if ( $last_user_login && $last_user_login == 'Bez prihlásenia') {
return $last_user_login;
} elseif ( $last_user_login ) {
return date( "j.n. Y G:i", $last_user_login );
}
}
}
add_filter( 'manage_users_custom_column', 'users_manage_columns', 10, 3);
function users_edit_columns($columns) {
$columns['registrovany'] = 'Registrovaný';
$columns['posledne_prihlasenie'] = 'Posledné prihlásenie';
return $columns;
}
// add custom columns
add_filter( 'manage_users_columns', 'users_edit_columns');
Pomocou tohto kódu(modulu) sa automaticky odstránia všetci užívatelia ktorý sa ani 30 dní po registrácií neprihlásili. Taktiež sa na stránke užívateľov pridajú dva stĺpce zobrazujúce dátum a čas registrácie a posledného prihlásenia.
Modul Check Last Login: 81
http://wordpress.org/extend/plugins/check-last-login/
Ak to dam do functions.php, nad všetkými usermi napíše túto hlášku (nižšie) toľko krát, koľko je tuším userov regnutých
Warning: date() expects parameter 2 to be long, string given in /data/c/o/cobrasharefans.com/web/wp-content/themes/shine/functions.php on line 82
Ak to dam ako plugin, obdobne
Warning: date() expects parameter 2 to be long, string given in /data/c/o/cobrasharefans.com/web/wp-content/plugins/check-last-login/check-last-login.php on line 54
V oboch prípadoch sa jedna o riadok
return date( "j.n. Y G:i", $last_user_login );
JohnnyPea
31.10.2010, 23:10
To pre to, že sa tí uživatelia ešte ani raz neprihlásili a boli registrovaní už pred tým...pridal som tam podmienku nech to overuje, aby to nevypisovalo tú chybu.
Vizerá, že to funguje teraz ok, si hlavička. Aj keď userom drží sešn ako pozeram, čiže sa nemusia na novo prihlásiť a teda tam nezaznamená prihlásenie.Nevieš či sa o dá v WP niekde prestaviť? Pokiaľ viem to aj menej zaťažuje server, lebo je menej otvorených spojení.
PS: s stými 30 dňami to je teda nainsto tak ako si písal? Že ak sa do 30 dňoch od registácie neprihlásia deletne im účet. Bol by som nedal, ak by to bralo tak, že 30 dní od nepríhlasenia celkového, čo by bolo asi dost blbé pre mňa :D
JohnnyPea
01.11.2010, 11:47
Nechápem, čo ti kde drží session a tiež nechápem ako môžeš v takomto krátkom príspevku urobiť toľko preklepov :) (asi prestanem odpovedať ľuďom, ktorý nevynaložia úsilie ani na to, aby napísali solidný text)
A áno je to 30 dní od registrácie, nie od posledného prihlásenia.
JohnnyPea
01.11.2010, 12:57
Modul si už tiež môžete stiahnuť z WP.org repozitára Check Last Login (http://wordpress.org/extend/plugins/check-last-login/).
JohnnyPea mám pocit, že ten Plugin nepracuje ok. 26.11.2010 19:50 som si vytvoril login na test a stále je medzi užívateľmi, vôbec nie je zmazaný...
JohnnyPea
02.01.2011, 11:54
Mal si pravdu, bola tam nejaká nezrovnalosť ;) Aktualizuj a malo by ti to fungovať...
No urobil som update nedeľu a pondelok dakedy mi to zmazalo cca 60-70 loginov, ale ak pozeram, stále ich tam je dosť registovaných ešte v 11/2010, dokonca aj v 10/2010.
Prečo tieto nezmazalo?
JohnnyPea
04.01.2011, 20:37
Možno boli zaregistrovaní ešte pred aktiváciou modulu. Je to tak naschvál, aby sa niekomu nevymazali užívatelia, pri ktorých sa ešte o takomto riešení nerozmýšľalo.
Premaž ich ručne a ďalej by ti ich už malo mazať automaticky.
vBulletin® v4.2.0, Copyright ©2000-2013, Jelsoft Enterprises Ltd.