Excel/ Word линки
-
Проблема : Перекидывает на главную страницу при переходе с линка Excel или word
Контент нужно отображать зарегистрированным пользователям.
Ситуация :
Пользователь зарегистрирован на сайте, отдает линк кому то другому.
Если линк скопировать и вставить в строку то все хорошо, откроется статьяЕсли линк вставить в документ (Word/Ecxel/Outlook) то при переходе прокидывает на главную станицу портала. Не могу никак победить данное поведения
Код ниже
class Auntefication_extend { public function __construct() { add_action( 'wp', [ $this, 'wp_is_logged_in' ], 99 ); add_action( 'template_redirect', [ $this, 'redirect_user' ], 98 ); } public function wp_is_logged_in( $wp ) { error_log( ' 1 cookie | hook wp : ' . ( isset( $_COOKIE['refer_uri'] ) ? $_COOKIE['refer_uri'] : 'not cookie' ) . ' -> ' . debug_backtrace()[0]['function'] ); if ( ! is_user_logged_in() ) { // Hack if ( false === array_key_exists( 'HTTP_COOKIE', $_SERVER ) ) { return; } error_log( 'User is not logged in | hook wp :' . debug_backtrace()[0]['function'] ); $this->remoove_header(); // error_log( print_r( $_SERVER, true ) ); error_log( '------------------------------' ); error_log( print_r(debug_backtrace() , true)); if ( stripos( $wp->request, 'login' ) === false && mb_strlen( $wp->request ) >= 4 ) { error_log( 'redirect in hook wp : ' . home_url( '/login/?refer=' . $wp->request ) ); error_log( print_r( 'request : ' . $wp->request, true ) ); error_log( '>>>>> Set cookie : ' . $wp->request ); setcookie( 'refer_uri', $wp->request ); // error_log( print_r( $res, true ) ); $this->remoove_header(); wp_safe_redirect( home_url( '/login/?refer=' . $wp->request ), 307 ); exit; } if ( ! empty( $_COOKIE['refer_uri'] ) ) { error_log( 'User is not logged in | Dont empty refer_uri :' ); error_log( 'redirect in hook wp refer_uri : ' . home_url( '/login/?refer=' . $_COOKIE['refer_uri'] ) ); $this->remoove_header(); wp_safe_redirect( home_url( '/login/?refer=' . $_COOKIE['refer_uri'] ), 303 ); exit; } error_log( 'User is not logged in | hook wp but not if input:' ); } if ( is_user_logged_in() ) { if ( is_page( 'login' ) ) { $ref = isset( $_COOKIE['refer_uri'] ) ? $_COOKIE['refer_uri'] : ''; if ( ! empty( $ref ) ) { $refer = $ref; } elseif ( ! empty( $_GET ) && array_key_exists( 'refer', $_GET ) ) { $refer = $_GET['refer']; } else { error_log( 'I AM REDIRECT TO \/ wp : is_user_logged_in 89| is_page' ); $refer = '/'; } error_log( 'redirect in hook wp : is_user_logged_in | is_page' . home_url( $refer ) ); wp_safe_redirect( home_url( $refer ), 303, 'knowlage-base' ); exit; } if ( ! empty( $_COOKIE['refer_uri'] ) ) { error_log( 'hook wp is_user_logged and !empty refer uri' ); $ref = $_COOKIE['refer_uri']; setcookie( 'refer_uri', null ); wp_safe_redirect( home_url( $ref ), 302, 'knowlage-base' ); exit; }; } } /** * Remoove some headers */ private function remoove_header() { header_remove( 'HTTP_X_FEATUREVERSION' ); header_remove( 'HTTP_X_MS_COOKIEURI_REQUESTED' ); header_remove( 'HTTP_X_OFFICE_MAJOR_VERSION' ); header_remove( 'HTTP_USER_AGENT' ); header_remove( 'HTTP_AUTHORIZATION' ); } public function redirect_user() { error_log( ' 2 cookie | hook template_redirect : ' . ( isset( $_COOKIE['refer_uri'] ) ? $_COOKIE['refer_uri'] : 'not cookie' ) . '-> ' . debug_backtrace()[0]['function'] ); // error_log('redirect_user -> : '. $_SERVER['REQUEST_URI'] ); if ( ! is_user_logged_in() ) { if ( ! is_page( 'login' ) ) { error_log( 'Set up redirect : | hook template_redirect | not loggined and not page login : REQUEST_URI-> ' . $_SERVER['REQUEST_URI'] . '-> ' . debug_backtrace()[1]['function'] ); $ref = isset( $_COOKIE['refer_uri'] ) ? $_COOKIE['refer_uri'] : ''; if ( ! empty( $ref ) ) { $refer = $ref; } elseif ( ! empty( $_GET ) && array_key_exists( 'refer', $_GET ) ) { $refer = $_GET['refer']; } else { error_log( 'I AM REDIRECT TO \/ template_redirect : is_user_logged_in 124| is_page' ); // error_log( print_r( $_SERVER, true ) ); if ( mb_strlen( $_SERVER['REQUEST_URI'] ) >= 4 ) { $refer = $_SERVER['REQUEST_URI']; } else { $refer = '/'; } } error_log( 'string_to_referer : ' . home_url( '/login/?refer=' . $refer ) ); $return_url = home_url( '/login/?refer=' . $refer ); error_log( 'redirect in hook template_redirect : !is_user_logged_in | !is_page : ' . $return_url ); $this->remoove_header(); wp_safe_redirect( $return_url, 303, 'knowlage-base' ); exit; } } if ( is_user_logged_in() ) { if ( ! empty( $_COOKIE['refer_uri'] ) ) { error_log( 'Set up redirect : | hook template_redirect | LOGGED and page LOGIN ' . $_SERVER['REQUEST_URI'] . '-> ' . debug_backtrace()[0]['function'] ); error_log( 'redirect : ' . $_COOKIE['refer_uri'] ); $redir = $_COOKIE['refer_uri']; $_COOKIE['refer_uri'] = null; error_log( 'redirect in hook template_redirect : is_user_logged_in | COOKIE ->refer_uri' . $redir ); wp_safe_redirect( $redir, 303, 'knowlage-base' ); exit; } } error_log( 'redirect not exeption : ' ); // error_log( print_r( $_SERVER, true ) ); }
В лог пишет
[21-Feb-2020 10:42:08 UTC] 1 cookie | hook wp : not cookie -> wp_is_logged_in [21-Feb-2020 10:42:08 UTC] 1 cookie | hook wp : not cookie -> wp_is_logged_in [21-Feb-2020 10:42:08 UTC] 2 cookie | hook template_redirect : not cookie-> redirect_user [21-Feb-2020 10:42:08 UTC] Set up redirect : | hook template_redirect | not loggined and not page login : REQUEST_URI-> /-> apply_filters [21-Feb-2020 10:42:08 UTC] I AM REDIRECT TO \/ template_redirect : is_user_logged_in 124| is_page [21-Feb-2020 10:42:08 UTC] string_to_referer : http://host:8082/login/?refer=/ [21-Feb-2020 10:42:08 UTC] redirect in hook template_redirect : !is_user_logged_in | !is_page : http://host:8082/login/?refer=/ [21-Feb-2020 10:42:08 UTC] 1 cookie | hook wp : not cookie -> wp_is_logged_in [21-Feb-2020 10:42:08 UTC] 2 cookie | hook template_redirect : not cookie-> redirect_user [21-Feb-2020 10:42:08 UTC] redirect not exeption : [21-Feb-2020 10:42:08 UTC] 1 cookie | hook wp : not cookie -> wp_is_logged_in [21-Feb-2020 10:42:08 UTC] 2 cookie | hook template_redirect : not cookie-> redirect_user [21-Feb-2020 10:42:08 UTC] Set up redirect : | hook template_redirect | not loggined and not page login : REQUEST_URI-> /-> apply_filters [21-Feb-2020 10:42:08 UTC] I AM REDIRECT TO \/ template_redirect : is_user_logged_in 124| is_page [21-Feb-2020 10:42:08 UTC] string_to_referer : http://dev-easylearn.co.volia.com:8082/login/?refer=/ [21-Feb-2020 10:42:08 UTC] redirect in hook template_redirect : !is_user_logged_in | !is_page : http://host:8082/login/?refer=/ [21-Feb-2020 10:42:09 UTC] 1 cookie | hook wp : not cookie -> wp_is_logged_in [21-Feb-2020 10:42:09 UTC] redirect in hook wp : is_user_logged_in | is_page http://host:8082/ [21-Feb-2020 10:42:09 UTC] 1 cookie | hook wp : not cookie -> wp_is_logged_in [21-Feb-2020 10:42:09 UTC] 2 cookie | hook template_redirect : not cookie-> redirect_user [21-Feb-2020 10:42:09 UTC] redirect not exeption :
- Тема «Excel/ Word линки» закрыта для новых ответов.