Когда пользователь находится на странице «Моя учетная запись» в WooCommerce, я бы хотел, чтобы он вышел из системы и был перенаправлен на мою домашнюю страницу, а не на страницу входа.






add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
Я добавил код в свою дочернюю тему. apexgray.co.uk/мой аккаунт
Я снова добавлю код в файл function.php и дам вам знать...
Возможно, мой вопрос был не ясен. Когда пользователь вошел в свою учетную запись и закончил, когда он нажмет выход из системы, я в идеале хотел бы, чтобы они перешли на домашнюю страницу.
Я думаю, что мой первоначальный вопрос был запутанным...!
работает очарование Mujeeba! Спасибо. Если бы я знал, как это сделать!
Если вы найдете, как обойти подтверждение выхода из WooCommerce, вы можете сделать это:
function wooHook_woocommerce_logout_bypass() {
global $wp;
if ( isset( $wp->query_vars['customer-logout'] ) ) {
wp_redirect( str_replace( '&', '&',
wp_logout_url( wc_get_page_permalink( 'hesabim' ) ) ) );
exit;
}
}
add_action( 'template_redirect', 'wooHook_woocommerce_logout_bypass' );
Просто чтобы добавить к исходному ответу, использование скрипта выхода для завершения может остановить выполнение Woocommerce после выхода из системы, например очистку файлов cookie (элементы корзины в файлах cookie). Так что лучше всего использовать logout_url фильтр, подобный этому.
function redirect_after_logout($logout_url, $redirect) {
return $logout_url . '&redirect_to=' . home_url();
}
add_filter('logout_url', 'redirect_after_logout', 10, 2);
Протестировано в Woocommerce версии 5.4.1 ✅
Я добавил это в свой файл function.php. Когда я щелкнул, чтобы получить доступ к моей учетной записи, страница входа не сработала. По факту ничего не стреляло. Разве это не так просто, как добавить этот код в файл function.php?