Auto Logout Idle User Wordpress


Kami melihat bahwa banyak situs penting seperti web perbankan auto log out jika menganggur beberapa saat. Sebenarnya dengan menggunakan sistem ini adalah keamanan meningkat situs. Baru-baru ini, situs wordpress juga fasilitas untuk website lebih aman. Untuk menggunakan sistem dalam tema wordpress Anda perlu Anda mengambil fungsi. Dalam artikel ini kami akan menjelaskan "Cara Auto Login Pengguna keluar Menganggur Setelah Tetap Waktu". Mari kita mulai sekarang ..
Langkah-1: ini sangat mudah digunakan otomatis log out untuk wordpress user login idle. Mengambil bawah fungsi penuh dalam file functions.php tema Anda.

class WP_Idle_Logout {
/**
* Name space
*/
const ID = 'wp_idle_logout_';
/**
* Default idle time
*/
const default_idle_time = 3600;
/**
* Default idle message
*/
const default_idle_message = 'You have been logged out due to inactivity.';
/**
* Add actions and filters
*
*/
public function __construct() {;
add_action( 'init', array(&$this, 'check_for_inactivity') );
add_action( 'clear_auth_cookie', array(&$this, 'clear_activity_meta') );
add_filter( 'login_message', array(&$this, 'idle_message') );
add_action( 'admin_menu', array(&$this, 'options_menu') );
add_action( 'admin_init', array(&$this, 'initialize_options') );
}
/**
* Retreives the maximum allowed idle time setting
*
* Checks if idle time is set in plugin options
* If not, uses the default time
* Returns $time in seconds, as integer
*
*/
private function get_idle_time_setting() {
$time = get_option(self::ID . '_idle_time');
if ( empty($time) || !is_numeric($time) ) {
$time = self::default_idle_time;
}
return (int) $time;
}
/**
* Retreives the idle messsage
*
* Checks if idle message is set in plugin options
* If not, uses the default message
* Returns $message
*
*/
private function get_idle_message_setting() {
$message = nl2br( get_option(self::ID . '_idle_message') );
if ( empty($message) ) {
$message = self::default_idle_message;
}
return $message;
}
/**
* Checks for User Idleness
*
* Tests if the user is logged in on 'init'.
* If true, checks if the 'last_active_time' meta is set.
* If it isn't, the meta is created for the current time.
* If it is, the timestamp is checked against the inactivity period.
*
*/
public function check_for_inactivity() {
if ( is_user_logged_in() ) {
$user_id = get_current_user_id();
$time = get_user_meta( $user_id, self::ID . '_last_active_time', true );
if ( is_numeric($time) ) {
if ( (int) $time + $this->get_idle_time_setting() < time() ) {
wp_redirect( wp_login_url() . '?idle=1' );
wp_logout();
$this->clear_activity_meta( $user_id );
exit;
} else {
update_user_meta( $user_id, self::ID . '_last_active_time', time() );
}
} else {
delete_user_meta( $user_id, self::ID . '_last_active_time' );
update_user_meta( $user_id, self::ID . '_last_active_time', time() );
}
}
}
/**
* Delete Inactivity Meta
*
* Deletes the 'last_active_time' meta when called.
* Used on normal logout and on idleness logout.
*
*/
public function clear_activity_meta( $user_id = false ) {
if ( !$user_id ) {
$user_id = get_current_user_id();
}
delete_user_meta( $user_id, self::ID . '_last_active_time' );
}
/**
* Show Notification on Logout
*
* Overwrites the default WP login message, when 'idle' query string is present
*
*/
public function idle_message( $message ) {
if ( !empty( $_GET['idle'] ) ) {
return $message . '<p class="message">' . $this->get_idle_message_setting() . '</p>';
} else {
return $message;
}
}
/**
* Admin options
* Add menu
*
*/
public function options_menu() {
add_options_page(
'WP Idle Logout Options',
'Idle Logout',
'manage_options',
self::ID . '_options',
array(&$this, 'options_page')
);
}
/**
* Admin options
* Add page to Settings area
*
*/
public function options_page() {
echo'<div class="wrap"> ';
echo'<h2>WP Idle Logout Options</h2>';
echo'<form method="post" action="options.php">';
settings_fields( self::ID . '_options' );
do_settings_sections( self::ID . '_options' );
submit_button();
echo'</form>';
echo'</div>';
}
/**
* Admin options
* Add options to plugin options page
*
*/
public function initialize_options() {
add_settings_section(
self::ID . '_options_section',
null,
null,
self::ID . '_options'
);
add_option( self::ID . '_idle_time' );
add_settings_field(
self::ID . '_idle_time',
'Idle Time',
array(&$this, 'render_idle_time_option'),
self::ID . '_options',
self::ID . '_options_section'
);
register_setting(
self::ID . '_options',
self::ID . '_idle_time',
'absint'
);
add_option( self::ID . '_idle_message' );
add_settings_field(
self::ID . '_idle_message',
'Idle Message',
array(&$this, 'render_idle_message_option'),
self::ID . '_options',
self::ID . '_options_section'
);
register_setting(
self::ID . '_options',
self::ID . '_idle_message',
'wp_kses_post'
);
}
/**
* Admin options
* Render idle time option field
*
*/
public function render_idle_time_option() {
echo '<input type="text" name="' . self::ID . '_idle_time" class="small-text" value="' . get_option(self::ID . '_idle_time') . '" />';
echo '<p class="description">How long (in seconds) should users be idle for before being logged out?</p>';
}
/**
* Admin options
* Render idle message option field
*
*/
public function render_idle_message_option() {
echo '<textarea name="' . self::ID . '_idle_message" class="regular-text" rows="5" cols="50">' . get_option(self::ID . '_idle_message') . ' </textarea>';
echo '<p class="description">Overrides the default message shown to idle users when redirected to the login screen.</p>';
}
}
$WP_Idle_Logout = new WP_Idle_Logout();​


Langkah-2: Jika Anda mengambil fungsi diatas keseluruhan secara akurat seharusnya dapat berfungsi dengan baik. Sekarang Anda melihat halaman pilihan baru di dashboard wordpress Anda, mereka memiliki dua field input satu untuk durasi siaga (default digunakan 3600 detik atau 1 jam) lain untuk notifikasi (default digunakan tex adalah "Anda telah keluar karena tidak aktif.")

Jika Anda menggunakan fungsi meningkatkan keamanan situs wp Anda. Untuk lebih memahami fungsi penggunaan php komentar dalam fungsi. Dengan mengubah waktu di lapangan input dapat meningkatkan atau menurunkan auto log out waktu idle di posisi kedua dan juga mengubah peringatan. Fungsi ini juga bisa menggunakan plugin wordpress. Semoga bermanfaat


Did you find this article useful?



  • Cara Custom Domain di Provider Hosting ke Blogspot

    Cara Custom Domain di Hosting Provider ke Blogspot  - Berikut adalah panduan untuk mengarahkan atau custom domain yang berada di Niagahoster...

  • Cara mengakses SSH Server

    Bagaimana Mengakses SSH Server Niagahoster - Niagahoster memberikan akses SSH untuk paket Bisnis dan Bisnis Extra. Berikut adalah panduan untuk mengak...

  • SSL Free

    Apa itu Free SSL? SSL merupakan kunci pengamanan ekstra sebuah website. Biasanya SSL berbayar, nah kali ini ada yang gratis yaitu https://www.ssl...

  • Cara Melakukan Transfer Domain

    Cara Melakukan Transfer Domain - Agar transfer domain dari layanan A ke layanan B berhasil, maka harus memenuhi persyaratan dan melakukan hal berikut:...

  • Mengatasi WP Admin 500 HTTP Error

    Jika Anda menggunakan wordpress sebagai platform penunjang website, tentu terkadang mengalami hal-hal tak terduga. Salah satu kasus yang kami temui ad...