在确认/不确认的情况下注销-单站点、多站点

时间:2019-08-29 作者:pehu

我有两个wordpress安装:一个是单个安装,另一个是带有子目录的多站点安装。在这两个网站上,我的用户都可以使用url注销:

[URL to]/wp-login.php?action=logout&redirect_to=%2Fmydir%2F&_wpnonce=[some_code]
这在单个站点上有效,无需确认,但在多站点内的站点上无效。在此,用户需要确认注销。

如何绕过确认?

非常感谢。

2 个回复
SO网友:Mike Baxter

使用输出注销链接wc_logout_url() 它将是非编码的,没有确认。确认是一种安全措施。

您还可以尝试将以下内容添加到函数中。php或插件:

// Logout without confirmation.
function wpse_bypass_logout_confirmation() {
    global $wp;

    if ( isset( $wp->query_vars[\'customer-logout\'] ) ) {
        wp_redirect( str_replace( \'&\', \'&\', wp_logout_url( wc_get_page_permalink( \'myaccount\' ) ) ) );
        exit;
    }
}
add_action( \'template_redirect\', \'wpse_bypass_logout_confirmation\' );

SO网友:pehu

Wordpress安装中URL的结构是

/wpone/   # Single site installation
/wptwo/   # Multisite installation with subdirectories
/wptwo/site1/
/wptwo/site2/
等等。此外,我还有一个目录

/site1/ 
我打电话给via。htaccess的内容

/wptwo/site1/
当用户登录时,Wordpress设置3个Cookie:wordpress_test_cookie, wordpress_logged_inwordpress_sec. wordpress_test_cookiewordpress_logged_in 仅对有效/wptwo/site1/ 而不是/site1/. 这将在生成wpnonce期间进行检查。当我打电话时/site1/logout/, 这与/wptwo/site1/logout/. 通过注销/wptwo/site1/logout/ 未经确认即可工作。

相关推荐

Multisite on single wordpress

我在wordpress实例上有一个站点。现在我想添加第二个博客,所以第二个网站(单独的域)在同一个主机下,所以相同的wordpress实例。有没有可能通过分离不相关的领域来实现它?我是wordpress领域的新手,我看到的大多数教程都是关于具有子域或子目录的多域的,所以我的情况不是这样。