【问题标题】:wp_destroy_current_session() will handle woocommerce session also in the right way?wp_destroy_current_session() 是否也会以正确的方式处理 woocommerce 会话?
【发布时间】:2020-01-15 04:04:19
【问题描述】:

我有一个 wordpress + woocommerce 安装。我通过 .htaccess 规则保护了 wp-login.php,以防止暴力攻击。它正在工作,但是登录的客户端无法在前端注销,因为 wordpress 使用 wp-login.php 来破坏会话。为了解决这个问题,我在我的主题中的functions.php中包含了以下php代码。

add_filter( 'logout_url', 'custom_logout_page', 10, 2 );
function custom_logout_page( $logout_url, $redirect ) {
return 'example.com/custom-log-out-url/';
}

我为 custom-log-out-url 创建了一个页面模板,并在标题部分包含了以下 php 代码:

get_header() 之后;

wp_destroy_current_session();

我的问题是:

函数 wp_destory_current_session() 还将关闭与 woocommerce 相关的会话数据,我的意思是,它会以正确的方式处理,因此我的网站不会在 woocommerce 表中出现混乱的会话数据吗? 您认为保护 wp-login.php 以防止自动暴力攻击的正确方法吗?

提前致谢

【问题讨论】:

    标签: php wordpress .htaccess security woocommerce


    【解决方案1】:

    仅替换 URL 是不够的。您必须告诉 WordPress 如何处理新 URL。

    示例代码,创建一个像 example.com/logout=1 这样的注销 URL,并在用户注销后重定向到首页或自定义 URL:

    add_filter( 'logout_url', 't5_custom_logout_url', 10, 2 );
    add_action( 'wp_loaded', 't5_custom_logout_action' );
    
    /**
     * Replace default log-out URL.
     *
     * @wp-hook logout_url
     * @param   string $logout_url
     * @param   string $redirect
     * @return  string
     */
    function t5_custom_logout_url( $logout_url, $redirect )
    {
        $url = add_query_arg( 'logout', 1, home_url( '/' ) );
    
        if ( ! empty ( $redirect ) )
            $url = add_query_arg( 'redirect', $redirect, $url );
    
        return $url;
    }
    
    /**
     * Log the user out.
     *
     * @wp-hook wp_loaded
     * @return  void
     */
    function t5_custom_logout_action()
    {
        if ( ! isset ( $_GET['logout'] ) )
            return;
    
        wp_logout();
    
        $loc = isset ( $_GET['redirect'] ) ? $_GET['redirect'] : home_url( '/' );
        wp_redirect( $loc );
        exit;
    }
    

    【讨论】:

    • 谢谢@Stefano Pascazi!
    猜你喜欢
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 2013-02-10
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多