Есть ли способ защитить WooCommerce возвращает & Гарантийные Запросы Страница запроса / статуса плагина (часть созданной мной страницы «возвращает») от пользователей о том, что номер заказа или номер запроса гарантии тоже не принадлежат?
В режиме по умолчанию страница открыта для общественности, следовательно, даже если посетитель посещает этот URL …/ Мой-счет / возврат /? Порядок = 35 можно увидеть все детали запроса гарантии, которые запрашивал оригинальный пользователь, есть ли способ защитить эту страницу? Я хочу использовать код, который проверяет, не вошел ли пользователь в систему, и если номер заказа или номер запроса гарантии не принадлежит зарегистрированному пользователю, то не отображать страницу / Returns.
Я смог использовать этот код в своем файле functions.php, чтобы пользователи, не вошедшие в систему, могли видеть страницу / Returns:
function template_redirect_returns()
{
if( is_page(returns) && !is_user_logged_in() )
{
$loginUrl = home_url('/my-account/orders/');
wp_redirect($loginUrl);
exit();
}
}
add_action( 'template_redirect', 'template_redirect_returns' );
Но как я могу также запретить пользователям видеть страницу, если ?порядок = 35 не принадлежит им?
Я спросил разработчиков плагинов, а также сообщил о многих ошибках, но они не хотят исправлять проблемы.
Я буду признателен за вашу помощь! С благодарностью.
В вашем коде is_page(returns)
должен быть заменен is_page('returns')
как это выдает ошибку.
Попробуйте следующее (не проверено):
add_action( 'template_redirect', 'template_redirect_returns' );
function template_redirect_returns()
{
if( is_page('returns') ) {
if( ! is_user_logged_in() ) {
wp_redirect( home_url('/my-account/') ); // instead of '/my-account/orders/'
exit();
}
// For logged in users
else {
// Testing if current user ID match with order customer ID
if( isset($_GET['order']) && get_post_meta( $_GET['order'], '_customer_user', true ) != get_current_user_id() ){
wp_redirect( home_url('/my-account/orders/') );
exit();
}
}
}
}
Это реальная ошибка безопасности в этом плагине, и следует уведомить авторов.
Других решений пока нет …