[英]Creating a function to logout a WordPress user?
我正在嘗試創建一個在一段時間不活動后注銷WordPress用戶的函數。 定時元素正在按預期方式工作,並在設置的時間段后重定向用戶。
問題在於,一旦加載了PHP腳本(在代碼示例中),我便遇到以下錯誤: 致命錯誤:調用/ var / www / html / wp-content / plugins / ion-wp中未定義的函數wp_logout()第5行的-login-timeout / scripts / timed-logout.php
我閱讀的所有參考資料都告訴我wp_logout()應該注銷用戶,但存在錯誤。 我嘗試了幾種方法,包括添加操作。 我不想將用戶重定向到登錄屏幕。
代碼示例如下。 echo語句僅用於測試。 任何幫助將非常感激。
<?php
function logout_this_session() {
//Logout Now
wp_logout();
wp_die();
}
echo 'This will be the logout script<br/><br/>';
$last_page = $_SERVER['HTTP_REFERER'];
echo 'You came from: ' . $last_page;
logout_this_session();
header( 'Location: ' . $last_page );
?>
您可以在functions.php中創建函數
add_action( 'wp_logout', 'redirect_after_logout');
function redirect_after_logout(){
wp_redirect( 'http://example.com' );
exit();
}
然后將其放在您網站的理想位置:
<a href="<?php echo wp_logout_url(); ?>" >Logout</a>
這必須使用init動作。
您可以使用wp_logout()函數注銷當前用戶。
wp-includes / pluggable.php文件中此函數的詳細信息:
<?php
/**
* Log the current user out.
*
* @since 2.5.0
*/
function wp_logout() {
wp_destroy_current_session();
wp_clear_auth_cookie();
/**
* Fires after a user is logged-out.
*
* @since 1.5.0
*/
do_action( 'wp_logout' );
}
我終於找到了下面的代碼示例中的解決方案。 從注銷用戶之前的過程的最后階段開始,我將wpsessionexpired = true值發布回用戶所在的頁面。 用戶注銷后,立即刷新同一頁面。 我將其放置在主插件文件中。
function logoutUser(){
if ( $_POST["wpsessionexpired"] == 'true' ){
wp_logout();
header("refresh:0.5;url=".$_SERVER['REQUEST_URI']."");
}
}
add_action('init', 'logoutUser');
根據用戶角色注銷功能(這是一個工作代碼),將其復制並粘貼到function.php文件中
function redirect_after_logout() {
$current_user = wp_get_current_user();
$role_name = $current_user->roles[0];
if($role_name == 'subscriber'){
$redirect_url = site_url();
wp_safe_redirect( $redirect_url );
exit;
}
}
add_action( 'wp_logout', 'redirect_after_logout' );
這也為
<?php
if (current_user_can('client') OR current_user_can('salesrep') ){
?>
<a href="<?php echo wp_logout_url( home_url() ); ?>" class="btn btn-primary"
style="float: right;" >Logout</a>
<?php }
?>
您可以根據需要設置任何角色。 就像這個例子(客戶,salesrep)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.