Перенаправление WooCommerce после выхода из системы [Полное руководство]

Опубликовано: 2022-01-10

Перенаправление WooCommerce после выхода из системы Перенаправление WooCommerce после выхода из системы можно создать с помощью кода в этом сообщении, чтобы перенаправить клиентов WooCommerce на определенную страницу или сообщение или внешний URL-адрес после выхода из системы. В этой статье я хочу продемонстрировать, как создать это перенаправление с помощью кода. Если вы пропустили мой предыдущий урок, я показал, как создать шорткод страницы выхода из WooCommerce, который может быть хорошим местом для начала, прежде чем создавать перенаправление выхода из WooCommerce.

Существуют плагины, которые можно использовать для создания перенаправлений выхода из WooCommerce, но они не так хороши, как должны быть; Я работаю над лучшим решением, которое поможет вам управлять перенаправлением WooCommerce после выхода из системы, как и плагин, который я создал для выхода из WooCommerce после оформления заказа.

Если вы хотите стать одним из первых пользователей, свяжитесь со мной, чтобы я мог добавить вас в список, так как плагин будет готов через 2 недели с сегодняшнего дня.

В этом посте я хочу поделиться подходом к коду, который вы можете использовать для создания эффективного перенаправления выхода из WooCommerce, но плагин будет иметь несколько условных параметров, которые расширяют параметры перенаправления по умолчанию, как я сделал в плагине WooCommerce Redirect after checkout.

Разделы перенаправления выхода из WooCommerce — просмотр и переход к разделу

В большинстве моих клиентских проектов мне было трудно настроить перенаправление выхода из системы для работы на сайтах WooCommerce. По этой причине я решил составить это окончательное руководство по созданию перенаправления WooCommerce после выхода из системы.

Я надеюсь, что это может быть отличным местом как для технически подкованных, так и для неопытных пользователей, чтобы найти решение для создания наилучшего варианта перенаправления выхода из WooCommerce для своих проектов.

Поскольку это не обычная запись в блоге, она длинная и может занять больше времени, чтобы прочитать и понять каждую деталь. Я хотел бы помочь вам просмотреть различные разделы, чтобы вы могли быстро выбрать решение, необходимое для вашего проекта.

Оглавление

  1. Перенаправление на домашнюю страницу — после выхода из системы перенаправление на домашнюю страницу в Woocommerce
  2. Перенаправление текущей страницы — кнопка выхода из Woocommerce и перенаправление на текущую страницу
  3. Перенаправление конкретной страницы по идентификатору — страница перенаправления выхода из Woocommerce
  4. Перенаправление роли клиента — перенаправление выхода из системы клиента Woocommerce
  5. Перенаправление на предыдущую страницу — перенаправление входа в Woocommerce на предыдущую страницу
  6. Перенаправление страницы моей учетной записи — перенаправление выхода из моей учетной записи Woocommerce
  7. Перенаправление внешнего URL-адреса — функция перенаправления выхода из Woocommerce Php Snippet
  8. Исправить ошибку перенаправления выхода из системы — перенаправление выхода из Woocommerce не работает
  9. URL-адрес перенаправления выхода из WP — URL-адрес выхода из Woocommerce
  10. Плагин перенаправления выхода из Woocommerce
  11. Создание перенаправления выхода из системы в WordPress — основные функции
  12. Перенаправление входа в WooCommerce: woocommerce_login_redirect Hook
  13. Функция выхода из WordPress – wp_logout_url()
  14. Хук фильтра WordPress logout_redirect
  15. Хук фильтра WordPress login_redirect
  16. Многосайтовая переадресация WooCommerce после выхода из системы
  17. Хук фильтра: allow_redirect_hosts
  18. Функция перенаправления WordPress: wp_ Redirect
  19. Функция перенаправления WordPress: wp_safe_redirect()
  20. Вывод

Перенаправление WooCommerce после выхода из системы

перенаправление выхода из woocommerce По умолчанию WooCommerce после выхода, регистрации и входа перенаправляет пользователей в «мой аккаунт». Такое поведение нежелательно, особенно на веб-сайтах, нацеленных на увеличение продаж.

Три наиболее распространенных действия по управлению пользователями на вашем сайте WooCommerce включают в себя:

  • Регистрация пользователя
  • Логин пользователя
  • Регистрация пользователя
  • Редактировать профиль пользователя
  • Выход пользователя

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

Как перенаправить выход со страницы «Моя учетная запись»?

Один из наиболее распространенных вопросов о выходе из WooCommerce — как создать автоматический выход со страницы «Моя учетная запись» и перенаправить на другой веб-сайт или на внутреннюю страницу.

Это вопрос, который будет рассмотрен и решен в этом посте. К концу этого руководства вы должны с легкостью создать собственное перенаправление выхода из WooCommerce, даже с небольшими знаниями в области кодирования или без них.

woocommerce перенаправление после выхода Страница моей учетной записи

Зачем создавать перенаправление выхода из WooCommerce

Хороший веб-сайт электронной коммерции должен использовать все возможности для перенаправления пользователей на страницы, которые могут увеличить продажи и конверсию после каждого действия — входа в систему, выхода из системы, корзины, оформления заказа, регистрации и т. д.

Речь идет о создании хорошей воронки продаж WooCommerce для продвижения других продуктов, перекрестных продаж, сниженных продаж и других связанных продуктов или самых продаваемых продуктов.

Перенаправление выхода из WooCommerce позволяет повысить коэффициент конверсии продаж, перенаправляя клиентов после выхода на целевую страницу продаж или стратегическую страницу перенаправления воронки WooCommerce — вместо перенаправления клиента на страницу «Моя учетная запись» по умолчанию.

В этом руководстве показано, как изменить настройку перенаправления WooCommerce по умолчанию после выхода из системы и перенаправить пользователей на настраиваемые URL-адреса, такие как «воронки продаж», «специальные предложения», «каталог», предыдущая страница, специальная целевая страница или любая внешняя ссылка, которая подходит для увеличения продаж и конверсий.

В этом посте я поделюсь с вами кратким советом о том, как создать пользовательское перенаправление после выхода из WooCommerce, точно так же, как я ранее рассказывал, как создать перенаправление WooCommerce после оформления заказа. В идеале выход из WooCommerce по умолчанию не такой гладкий, как должен быть. Он показывает подтверждающее сообщение, которое раздражает многих пользователей.

Ранее я обсуждал, как удалить подтверждающее сообщение о выходе из WooCommerce, чтобы вашим клиентам было проще автоматически выходить из вашего сайта WooCommerce без появления всплывающего сообщения о подтверждении.

Я также поделился фрагментом кода выхода из WooCommerce, который вы можете расширить в этом руководстве, чтобы сделать его более эффективным, добавив параметр перенаправления, как я сделал в плагине перенаправления WooCommerce после оформления заказа, который имеет параметры условного перенаправления.

Изменить перенаправление выхода из WooCommerce изменить перенаправление выхода из woocommerce

Изменение перенаправления выхода из WooCommerce — еще одно важное улучшение процесса выхода клиента из системы, которое вы должны учитывать, точно так же, как я показал, как добавить ссылку для выхода из WooCommerce в меню.

Итак, давайте теперь углубимся в создание лучшего варианта перенаправления выхода из WooCommerce, который вы можете немедленно реализовать в своем магазине, чтобы улучшить взаимодействие с пользователем.

Этот вариант прост, поскольку нам нужно использовать фильтр для проверки события выхода из системы, когда оно происходит.

Когда происходит выход из WooCommerce, мы можем подключиться к этому хуку — woocommerce_login_redirect а затем передать функцию обратного вызова с нашей логикой перенаправления на страницу, на которую мы хотим перенаправить пользователя после выхода из системы.

Если вы не знакомы с хуками действий и хуками фильтров WooCommerce или WordPress, это руководство по хукам apply_filters и do_action может стать хорошим местом для начала знакомства с фильтрами и хуками.

Прежде чем приступить к созданию функции перенаправления выхода из WooCommerce, рекомендуется проверить, вошел ли пользователь в систему. Теперь давайте рассмотрим различные параметры, которые вы можете использовать для создания перенаправления выхода из WooCommerce.

Каждая из этих функций использует хуки и функции действий WooCommerce и WordPress по умолчанию, которые подробно обсуждаются в других разделах этого руководства.

Перенаправление на домашнюю страницу — после выхода из системы перенаправление на домашнюю страницу в Woocommerce

Одна из самых распространенных переадресаций WooCommerce после выхода — на домашнюю страницу. По умолчанию WooCommerce перенаправляет на страницу «Моя учетная запись» после завершения выхода.

Если вы хотите перенаправить пользователя на домашнюю страницу, вам следует добавить этот код в файл functions.php активной темы WooCommerce.

Просто скопируйте этот код в файл functions.php вашей темы и проверьте, перенаправляется ли пользователь WooCommerce на домашнюю страницу после выхода из системы.

Перенаправление на домашнюю страницу после фрагмента выхода

Вы также можете добавить этот фрагмент кода в файл плагинов, и он будет работать без проблем.

 add_action('wp_logout','njengah_homepage_logout_redirect');

функция njengah_homepage_logout_redirect(){

    wp_redirect(home_url());

    выход;

}

Как работает код переадресации

В этом коде используются две функции и один хук действия для создания перенаправления WooCommerce после выхода из системы, как в приведенном выше коде. Давайте внимательно посмотрим на роль каждой из этих функций и хуков:

Хук: wp_logout

В этом коде используется хук действия wp_logout, который подробно обсуждался в этой статье в разделе — хук WordPress — wp_logout. В идеале это хук выхода WordPress по умолчанию, который срабатывает после выполнения выхода.

Функция: wp_redirect()

В этом случае, если вы посмотрите на функцию обратного вызова, если она использует wp_redirect() , которая также была подробно объяснена в разделе Функция wp_redirect WordPress.

Функция: home_url()

Последняя функция, используемая в функции обратного вызова, — это home_url(), это функция WordPress, которая возвращает URL-адрес домашней страницы текущего сайта.

home_url( string $path = '', string|null $scheme = null )

Например, вы можете отобразить URL-адрес домашней страницы текущего сайта с помощью функции home_url() следующим образом:

 $url = home_url();

эхо $ URL;

Таким образом, в этом случае перенаправления WooCommerce после выхода он вернет текущий URL-адрес сайта и добавит его в виде строки в wp_redirect() .

Чтобы понять, как работает хук перенаправления выхода из WooCommerce, когда мы применяем его в вашем коде, нам нужно взглянуть на каждую из этих стандартных функций WordPress и роль, которую они играют в создании перенаправлений.

Перенаправление текущей страницы — кнопка выхода из Woocommerce и перенаправление на текущую страницу

Второе наиболее распространенное перенаправление WooCommerce после выхода из системы — это перенаправление на текущую страницу после выхода пользователя из системы. Это важно, если вы хотите, чтобы пользователь оставался на той же странице, на которой он был при выходе из системы.

В этом случае нам нужно знать страницу текущего пользователя и применить ее к логике перенаправления выхода из WooCommerce.

Чтобы создать перенаправление WooCommerce на текущую страницу после выхода из системы, нам нужно использовать get_permalink() , чтобы сообщить нам текущую страницу, а затем применить ее к функции обратного вызова выхода из системы.

В этом случае вам следует добавить следующий фрагмент кода в файл functions.php или файлы плагина, чтобы выполнить перенаправление WooCommerce после выхода из системы на текущую страницу.

 функция njengah_redirect_current_page_after_logout($logout_url, $redirect){

       вернуть $logout_url . '&redirect_to=' . получить_постоянную ссылку();

}

add_filter('logout_url', 'njengah_redirect_current_page_after_logout', 10, 2);

Как работает код

Этот код состоит из обработчика фильтра logout_url и функции обратного вызова с функцией WordPress get_permalink() , которая устанавливает текущую страницу для внешних пользователей и использует ее для возврата URL-адреса выхода.

Фильтр: logout_url()

В этом случае мы использовали logout_url , который является еще одним основным фильтром выхода из WordPress и WooCommerce, который подробно обсуждался в разделе ниже функции WordPress logout_url .

Этот код может не работать для всех пользователей и, скорее всего, не сработает для пользователей в админке. Это подходящее перенаправление после выхода из системы для клиентов на странице «Моя учетная запись», но не для других ролей.

Чтобы это работало и для пользователей в бэкенде, нам нужно заменить get_permalink() значением HTTP-запроса, которое представляет текущую страницу.

Суперглобальный PHP $_SERVER['HTTP_HOST']

Так что в этом случае нам нужно добавить этот суперглобальный $_SERVER['HTTP_HOST'] в качестве альтернативы функции get_permalink() . $_SERVER — это суперглобальная переменная PHP, которая содержит информацию о заголовках, путях и расположении скриптов.

$_SERVER['HTTP_HOST'] возвращает заголовок Host из текущего запроса. Таким образом, это помогает нам получить текущую страницу, чтобы мы могли применить ее к URL-адресу перенаправления WooCommerce после выхода из системы. Новый код, который работает для всех пользователей, должен быть следующим:

 функция njengah_redirect_current_page_after_logout($logout_url, $redirect){

      вернуть $logout_url . '&redirect_to=http://' . $_SERVER['HTTP_HOST']. $_SERVER['REQUEST_URI'];

}

add_filter('logout_url', 'njengah_redirect_current_page_after_logout', 10, 2);

Теперь вы можете создать кнопку, чтобы обернуть ссылку перенаправления, следуя руководству, которым я поделился ранее, о том, как создать кнопку выхода из WooCommerce.

Перенаправление конкретной страницы — страница перенаправления выхода из Woocommerce (по идентификатору)

В некоторых случаях вы можете захотеть перенаправить пользователей на определенную страницу после их выхода из системы. Страница может быть добавлена ​​в логику перенаправления выхода из WooCommerce с использованием идентификатора страницы.

В этом случае вам нужно знать идентификатор страницы, чтобы передать его в функцию перенаправления. Вы можете добиться перенаправления выхода из WooCommerce на определенную страницу по идентификатору, используя следующий фрагмент кода.

 add_action('wp_logout','njengah_specific_page_logout_redirect');

функция njengah_specific_page_logout_redirect(){

    wp_redirect(get_permalink($pageId));

    выход;

}

Как работает код

Этот код использует хук действия wp_logout , а в функции обратного вызова у нас есть функция get_permalink() с переменной $pageID , которую следует заменить на идентификатор страницы, на которую вы хотите перенаправить пользователя после оформления заказа.

Если вы не уверены в идентификаторе страницы, вы можете использовать этот пост, который я написал о том, как получить идентификатор страницы в WordPress.

Функция WooCommerce: wc_get_page_id()

Вы также можете использовать имя страницы, на которую вы хотите перенаправить пользователя, вместе с wc_get_page_id() WooCommerce, как показано в фрагменте кода ниже:

 add_action('wp_logout','njengah_specific_page_logout_redirect');

функция njengah_specific_page_logout_redirect(){

       wp_redirect (get_permalink (wc_get_page_id ('магазин') )));

      выход;

}

Функция wc_get_page_id() извлекает идентификаторы страниц и обычно используется для myaccount, edit_address, shop, cart, checkout, pay, view_order, terms и возвращает -1, если страница не найдена.

Перенаправление роли клиента — перенаправление выхода из системы клиента Woocommerce

Другой сценарий перенаправления WooCommerce после выхода из системы — это когда вы хотите перенаправить пользователей в зависимости от роли. Вы, вероятно, захотите перенаправить клиента на определенную страницу после выхода из системы вместо перенаправления «Моя учетная запись» по умолчанию после выхода из системы.

В этом случае вы можете выполнить перенаправление после выхода из системы только для роли клиента, другой роли или группы ролей, используя приведенный ниже фрагмент кода:

 if( is_user_logged_in() ) { // проверяем, есть ли авторизованный пользователь       

    $user = wp_get_current_user(); // получение и установка текущего пользователя

          $roles = (массив) $user->roles; // получение роли

           // $роли[0]; // Возвращает одну роль

            //возврат $ролей; // возвращаем массив ролей

             // Сделайте сравнение здесь 

              if($roles[0] == 'клиент'){

                 // Выполнить перенаправление, если роль текущего пользователя равна клиенту

                    add_action('wp_logout','njengah_specific_page_logout_redirect');

                       функция njengah_specific_page_logout_redirect(){

                        wp_redirect(get_permalink($pageId));

                             выход;

                   }

           }

 }

Как работает код

Мы начали с проверки, вошел ли пользователь в систему, как я объяснил в предыдущем посте о том, как узнать, вошел ли пользователь WordPress в систему.

Получить роль пользователя

Вторым шагом было получение роли текущего пользователя в WordPress с помощью функции wp_get_current_user() и уточнения роли текущего пользователя.

Сравните и выполните перенаправление, если роль соответствует клиенту

Третий шаг состоял в том, чтобы теперь сравнить роль, полученную на предыдущем шаге, с ролью клиента, и если роль совпадает, вы теперь добавляете действие перенаправления и функцию.

Вы можете заменить роль другой другой ролью, включая пользовательские роли. Вы также можете изменить страницу перенаправления, передав другой идентификатор страницы в get_permalink() .

Перенаправление на предыдущую страницу — Woocommerce Logout перенаправляет на предыдущую страницу

Вы можете создать перенаправление WooCommerce после выхода на предыдущую страницу, используя сеансы. В этом случае вам нужно создать сеанс и добавить его в функцию и использовать его в логике для создания перенаправления после выхода из системы на предыдущую страницу.

Вы можете использовать приведенный ниже фрагмент кода, чтобы создать перенаправление выхода WooCommerce на предыдущую страницу:

 // Начать глобальную сессию для сохранения реферального URL
функция start_session() {
     сеанс_старт();
}

add_action('init', 'start_session', 1);

// Получить реферальный URL и сохранить его

функция redirect_url() {
    если (is_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } еще {
        сеанс_уничтожить();
    }

}
add_action('template_redirect', 'redirect_url');

//Перенаправление выхода

функция njengah_logout_redirect() {

    если (isset($_SESSION['referer_url'])) {

        wp_redirect($_SESSION['referer_url']);

    } еще {

        wp_redirect (home_url ());

    }

}

add_filter('wp_logout', 'njengah_logout_redirect', 1100, 2);

Как работает код

Этот код использовал сеансы PHP для создания сеанса и сохранения текущего URL-адреса страницы, а в функции перенаправления мы тестируем установленный URL-адрес сеанса — $_SESSION['referer_url'] .

Если он установлен, мы создаем перенаправление на эту страницу, как и в других перенаправлениях выхода из системы, которые мы обсуждали ранее.

Перенаправление страницы моей учетной записи — перенаправление выхода из моей учетной записи Woocommerce

Перенаправление выхода из WooCommerce со страницы «Моя учетная запись» — один из наиболее часто задаваемых вопросов о выходе из WooCommerce.

Это не отличается от другого перенаправления выхода из системы, поскольку вы можете добавить перенаправление выхода из системы на странице «Моя учетная запись», используя фрагмент кода ниже:

 add_action('wp_logout','njengah_my_account_page_logout_redirect');

функция njengah_my_account_page_logout_redirect(){

       wp_redirect(get_permalink($pageId));

                выход;

}

Вы можете изменить значение переменной $pageID в функции get_permalink(), чтобы оно соответствовало идентификатору страницы перенаправления или сообщения, и это будет работать без проблем.

Функция перенаправления внешнего URL-адреса Woocommerce Logout Redirect Фрагмент PHP:

Если вы хотите перенаправить пользователей на внешний URL-адрес после их выхода из вашего магазина WooCommerce, вы можете сделать это с помощью фрагмента, добавленного к функциям вашей темы или в пользовательском плагине.

Этот фрагмент php функции перенаправления выхода из WooCommerce, который можно добавить в файл functions.php для создания перенаправления после выхода из системы, выглядит следующим образом:

 add_action('wp_logout','njengah_redirect_after_logout');

функция njengah_redirect_after_logout(){

  wp_redirect($url);

  выход();

}

Просто добавьте этот фрагмент кода в functions.php и замените переменную $url соответствующим URL-адресом перенаправления в кавычках.

Например, если вы хотите перенаправить пользователя на внешний URL-адрес после выхода из системы, а внешний URL-адрес — http://example.com , вы можете заменить переменную $url полным URL-адресом, как в приведенном ниже коде:

 add_action('wp_logout','njengah_redirect_after_logout');

функция njengah_redirect_after_logout(){

    wp_redirect('http://example.com');

    выход();

}

URL-адрес перенаправления выхода из WP — URL-адрес выхода из Woocommerce

Если вы хотите создать кнопку выхода из WooCommerce и разместить ее в пользовательском шаблоне или на любой другой странице, это поможет вам узнать URL-адрес перенаправления выхода из WP, который вы можете легко добавить на любую кнопку или ссылку.

Ниже приведен URL-адрес перенаправления выхода из WP, который можно изменить на любую другую страницу, изменив параметр «мой аккаунт».

 wp_logout_url(

    get_permalink(wc_get_page_id('myaccount'))

 );

Вы также можете указать внешний URL-адрес в URL-адресе перенаправления выхода из WooCommerce следующим образом:

 wp_logout_url(

   'http://example.com/'

);

Вы также можете добавить функции WordPress к URL-адресу перенаправления выхода из WP следующим образом:

 wp_logout_url(

    home_url()

);

Этот URL-адрес перенаправления выхода из WP можно добавить в настраиваемые шаблоны, а также использовать в шорткодах или кнопках для отображения параметра выхода в местах, которые не являются стандартными для кнопки выхода, например в виджетах, нижнем колонтитуле, меню верхней панели и многом другом.

Исправить ошибку перенаправления выхода из системы: перенаправление выхода из Woocommerce не работает

Если вы настроили перенаправление выхода из WooCommerce, и оно не работает, возможно, в вашем коде есть ошибка или одна из следующих причин.

Приоритет крючка

Первый шаг — проверить приоритет вашего add_action() или add_filter() по сравнению с другими хуками WordPress. Это одна из наиболее распространенных причин ошибки перенаправления выхода из системы.

Чем выше приоритет хука, тем раньше происходит загрузка. Если два хука имеют одинаковый приоритет, то тот, что расположен выше другого, загружается первым. Настройка приоритета действия или перехватчика фильтра может быть хорошей отправной точкой для начала отладки.

Ошибка кода — синтаксическая ошибка

На втором этапе вам нужно проверить, есть ли во всем коде ошибка, а распространенной ошибкой является синтаксическая ошибка. Возможно, когда вы редактируете код, вы можете забыть поставить закрывающую кавычку или скобку.

Счетчик проверьте код и, желательно, добавьте код в средство проверки синтаксических ошибок PHP.

Лучше всего, если вы знакомы с такими инструментами, как Visual Studio или IDE, такими как Netbeans, поскольку эти инструменты могут быстро помочь вам найти синтаксические ошибки в вашем коде.

Код добавлен в неправильный файл

Еще одна распространенная причина того, что перенаправление выхода из системы WooCommerce не работает, заключается в том, что у вас есть правильный код, но вы добавляете его не в то место. В этом случае, если вы добавляете код в тему, он должен быть строго добавлен в файл functions.php.

При добавлении этого кода в плагин вы должны быть осторожны, чтобы не добавить его в класс, экземпляр которого не создан. Рекомендуется добавить его в базовый файл плагина, а также исправить любые изменения, которые могут потребоваться для обеспечения того, чтобы код соответствовал контексту вашей пользовательской файловой структуры плагина.

Конфликты плагинов или тем

В большинстве случаев существуют плагины или темы, которые контролируют перенаправление входа и выхода в WooCommerce. Эти плагины могут конфликтовать, что приводит к ошибке перенаправления выхода из системы.

Если вы столкнулись с ошибкой выхода из системы перенаправления WooCommerce, вы можете начать с деактивации всех плагинов и использования темы WordPress по умолчанию, чтобы проверить, не вызвана ли ошибка конфликтом плагина или темы.

Плагин перенаправления выхода из Woocommerce

Наконец, ничто не облегчает добавление перенаправления WooCommerce после выхода из системы, чем хорошо написанный плагин с нужными функциями, хорошим пользовательским интерфейсом и поддержкой мирового класса. В течение многих лет я исправлял сотни проблем с выходом из системы, входом в систему и регистрацией в WooCommerce и WordPress в целом.

За последние несколько недель я собрал воедино весь свой опыт и уроки, извлеченные из перенаправлений WooCommerce и выхода из системы. Я создал замечательный URL-адрес перенаправления для выхода из WooCommerce, который включает в себя следующие функции:

Функции перенаправления выхода из системы

  • WooCommerce перенаправляет после выхода на любую страницу — выберите страницу из выпадающего списка
  • WooCommerce перенаправляет после выхода на любой отдельный продукт — выберите продукт из выпадающего списка.
  • WooCommerce перенаправляет после выхода на любой отдельный пост — выберите пост из выпадающего списка.
  • WooCommerce перенаправляет после выхода на любую категорию продукта — выберите категорию продукта из выпадающего списка.
  • WooCommerce перенаправляет после выхода на текущую страницу
  • WooCommerce перенаправляет после выхода на предыдущую страницу
  • WooCommerce перенаправляет после выхода на внешний URL
  • Перенаправление WooCommerce после выхода из системы в зависимости от роли
  • Перенаправление WooCommerce после выхода из системы на основе истории покупок (подходит для специальных предложений)
  • WooCommerce принудительно выходит из системы после оформления заказа

Функции перенаправления входа

  • WooCommerce перенаправляет после входа на любую страницу — выберите страницу из выпадающего списка
  • WooCommerce перенаправляет после входа на любой отдельный продукт — выберите продукт из выпадающего списка.
  • WooCommerce перенаправляет после входа в любой отдельный пост — выберите пост из выпадающего списка
  • Перенаправление WooCommerce после входа в любую категорию продуктов — выберите категорию продукта из выпадающего списка.
  • WooCommerce перенаправляет после входа на текущую страницу
  • WooCommerce перенаправляет после входа на предыдущую страницу
  • WooCommerce перенаправляет после входа на внешний URL
  • Перенаправление WooCommerce после входа в систему в зависимости от роли
  • Перенаправление WooCommerce после входа в систему на основе истории покупок (подходит для специальных предложений)

Плагин WooCommerce Redirect after Login & Logout (WRAL) должен быть выпущен в ближайшие несколько недель. Если вы хотите стать одним из первых пользователей, не оставайтесь в стороне, так как при запуске будет действовать скидка 70%.

Вы можете присоединиться к списку первых 100 первых пользователей, немедленно связавшись со мной. Он должен выйти 2 ноября 2020 года.

Создание перенаправления выхода из системы в WordPress — основные функции

Посмотрев на быстрый способ добавления фрагментов для создания перенаправления WooCommerce после выхода, он помогает выделить стандартные функции и перехватчики выхода WordPress и подробно объяснить разработчикам, которые читают это руководство, чтобы понять, как работают эти перенаправления.

Эти функции и хук действия могут быть полезны для создания перенаправления WooCommerce после выхода из системы. Как правило, вы можете создать перенаправление выхода из WooCommerce, используя следующие хуки и функции:

  • функция wp_logout_url()
  • Хук действия wp_logout
  • logout_redirect фильтр

Я хочу объяснить каждую из этих функций и то, как вы можете использовать ее для создания перенаправления WooCommerce после оформления заказа, и почему вы можете использовать одну вместо другой.

Также важно выделить способ создания перенаправления входа в WooCommerce с помощью фильтров. Существует функция, которая полезна для создания перенаправления входа в систему в WooCommerce. Давайте начнем с хука перенаправления входа в систему, который очень полезен для создания перенаправления входа в WooCommerce.

Перенаправление входа в WooCommerce: woocommerce_login_redirect Hook

Это специальный хук WooCommerce, который позволяет нам управлять функциями перенаправления входа в систему в WooCommerce. Это похоже на функцию выхода из системы WordPress по умолчанию, которая применяется при создании перенаправления WooCommerce после выхода из системы. Его основное использование заключается в следующем:

apply_filters( 'woocommerce_login_redirect', $redirect, $user );

Как видите, он принимает 2 параметра, и параметры следующие:

Параметр Описание Пример(ы) использования
$redirect Это страница перенаправления, на которую попадает пользователь после входа в систему.

Это может быть полезно при изменении перенаправления WooCommerce по умолчанию после входа в систему, чтобы пользователь мог перейти на определенную страницу после входа в систему.

add_filter('woocommerce_login_redirect', 'login_redirect')

Вы можете добавить ловушку фильтра, а в функции обратного вызова вы можете передать логику перенаправления следующим образом:

function login_redirect($redirect_to){
return home_url();
}

Как видите, я добавил параметр $redirect_to и вернул URL-адрес перенаправления, чтобы перенаправить пользователя на домашнюю страницу после входа в систему.

$user Это пользователь, к которому применяется действие перенаправления.

Это может быть особенно полезно, когда вы хотите создать перенаправление после входа в систему для определенных пользователей.

Хук: woocommerce_login_redirect не работает

Этот код можно использовать в темах и коде плагина, но вам нужно понимать приоритеты, чтобы избежать раннего или позднего срабатывания, когда это приведет к неработающему общему сценарию woocommerce_login_redirect .

Вам также необходимо выяснить другие причины, которые могут привести к тому, что woocommerce_login_redirect не работает. Особый интерес представляет другой плагин, который имеет аналогичную или ту же функцию, которая работает до того, как ваш код будет запущен.

Итак, если вы обнаружите, что woocommerce_login_redirect не работает, первое, что нужно проверить, это приоритет, например, у вас могут быть эти два фрагмента кода:

# Более низкий приоритет

add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 1100, 2 );

# Высший приоритет

add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 10, 2 );

Как видите, в обоих случаях значения приоритета разные, основное правило заключается в том, что чем меньше число, тем выше приоритет, то есть он загружается первым.

Если эта функция используется где-то в вашей теме или другом плагине, и вы пытаетесь воссоздать функцию перенаправления WooCommerce после входа или выхода из системы, вам нужно обратить внимание на приоритет. Это решение для исправления неработающей проблемы woocommerce_login_redirect .

Функция выхода из WordPress – wp_logout_url()

Эта функция отвечает за создание URL-адреса выхода в WordPress.

Это помогает разработчикам и пользователям WordPress быстро создать URL-адрес выхода из системы, который можно добавить к ссылке или кнопке, и в этой статье я проиллюстрировал, как создать URL-адрес выхода из WooCommerce .

WooCommerce расширяет функциональность, имея конечные точки URL, которые играют решающую роль, помогая разработчикам и пользователям создавать страницу выхода из WooCommerce без какого-либо кодирования.

Если вы хотите глубже понять процесс выхода из WooCommerce и WordPress, полезно начать с оценки функции wp_logout_url() .

Это специальная функция, с которой вы столкнетесь в нескольких темах и плагинах WordPress, и это хорошая идея, чтобы получить представление о том, что происходит под капотом.

Основное использование функции заключается в следующем:

wp_logout_url( string $redirect = '' )

Как вы можете видеть, функция принимает один параметр, который является строкой, и ниже приведены сведения о параметре:

Параметр Описание Пример(ы) использования
$redirect Это строковый параметр, и его необязательно добавлять, вы можете оставить его пустым, и функция будет работать.

Однако это полезно в том случае, если вы хотите добавить URL-адрес перенаправления на определенную страницу.

Таким образом, в этом случае параметр $redirect — это URL-адрес страницы перенаправления, место назначения, на которое должны попасть все пользователи, использующие эту функцию в этом контексте.

Вы также можете передать другие функции в качестве параметров, которые строго возвращают строку, поскольку wp_logout_url() принимает только строку в качестве параметра.

Вы можете использовать эту функцию вместе со ссылкой следующим образом:

<a href="<?php echo wp_logout_url(); ?>">Logout</a>

Вы можете использовать эту функцию и передать другую функцию в качестве параметра, который возвращает строку URL-адреса перенаправления следующим образом:

<a href="<?php echo wp_logout_url( home_url() ); ?>">Logout</a>

<a href="<?php echo wp_logout_url( get_permalink() ); ?>">Logout</a>

Если вы хотите глубже понять функцию, полезно взглянуть на определенный код в ядре WordPress. Код этой основной функции выглядит следующим образом:

 функция wp_logout_url ($ перенаправление = '') {
    $аргументы = массив();
    если ( ! пусто ( $ перенаправление )) {
        $args['redirect_to'] = urlencode($redirect);
    }
 
    $logout_url = add_query_arg($args, site_url('wp-login.php?action=logout', 'логин'));
    $logout_url = wp_nonce_url($logout_url, 'выйти');
 
    /**
     * Фильтрует URL-адрес выхода.
     *
     * @с 2.8.0
     *
     * @param string $logout_url URL-адрес выхода из системы в кодировке HTML.
     * @param string $redirect Путь для перенаправления при выходе из системы.
     */
    return apply_filters('logout_url', $logout_url, $redirect);
}

Крюк действия: wp_logout

Это хук действия, который срабатывает, когда пользователь вышел из системы. Он играет важную роль в создании функции перенаправления после выхода из системы. Основное использование этой функции заключается в следующем:

do_action( 'wp_logout', int $user_id )

Как вы можете видеть, он принимает один параметр, и подробности о параметре следующие:

Параметр Описание Пример(ы) использования
$user_id Это идентификатор пользователя, который вышел из системы. add_action('wp_logout','logout_redirect');

В этом случае мы добавили его как хук действия, и мы можем передать нашу логику перенаправления после выхода из системы в функцию обратного вызова следующим образом:

function logout_redirect(){

wp_redirect( home_url() );

exit;

}

Таким образом, в этом случае мы перенаправляем пользователя после выхода на домашнюю страницу.

Эти функции полезны, когда вы хотите контролировать перенаправление пользователя после входа в систему или выхода из нее.

Хук фильтра WordPress logout_redirect

Другой хук-фильтр, который вы можете использовать для создания перенаправления после выхода из системы в WooCommerce, — это хук-фильтр logout_redirect. Этот хук фильтра работает как wp_logout_url() или хук действия wp_logout.

Это базовый фильтр WordPress, предназначенный для создания перенаправления WordPress или WooCommerce после выхода из системы. Его основное использование заключается в следующем:

apply_filters( 'logout_redirect', string $redirect_to, string $requested_redirect_to, WP_User $user )

Как видите, он имеет три параметра, и этот параметр можно подробно описать следующим образом:

Параметр Описание
$redirect_to Это целевой URL-адрес перенаправления, и он должен быть строкой, например, http://example.com.
$requested_redirect_to Это запрошенный целевой URL-адрес перенаправления, который передается в качестве параметра, и он также должен быть строкой, как и первый параметр.
$user Это объект пользователя — объект WP_User пользователя, который вышел из системы.

Вы можете создать перенаправление WordPress на основе фильтра после выхода из системы, используя logout_redirect следующим образом:

 add_filter('login_redirect', 'njengah_logout_redirect', 10, 3);

функция njengah_logout_redirect ($ location, $ request, $ user) {

  глобальный $пользователь;

если (isset($user->roles) && is_array($user->roles)) {

   if (in_array('подписчик', $user->roles)) {

       вернуть home_url();

          } еще {

        вернуть $redirect_to;

      }

    }

   возвращение;

}

Хук фильтра WordPress login_redirect

Также важно отметить, что существует аналогичный фильтр для входа в систему — login_redirect, он работает так же, как и фильтр logout_redirect. На самом деле, использование похоже, и оно имеет 3 параметра, а общее выражение выглядит следующим образом:

apply_filters( 'login_redirect', string $redirect_to, string $requested_redirect_to, WP_User|WP_Error $user )

The parameters are similar expect the last parameter that has two user object options as you will see in the detailed description below:

Параметр Описание
$redirect_to This is the redirect destination URL and it must be a string, for example, http://example.com
$requested_redirect_to This is the requested redirect destination URL that is passed as a parameter and it must also be a string just like the first parameter.
$user This is the user object – WP_User object of the user who has been logged in if the login was successful but for unsuccessful login the WP_Error object is represented by this parameter

As you can see there are several ways you can use to create a WordPress or WooCommerce logout redirect.

In a quick summary we have highlighted the three most important hooks you should consider using for creating the redirect after logout. These hooks include:

  • Default WordPress logout_redirect – using filter to create redirect after logout
  • Action hook wp_logout – fired after the logout and thus can be used to create redirect.
  • WordPress logout function wp_logout_url() – WordPress default function that retrieves the logout URL and this can be useful in adding a redirect since it takes one parameter for the redirect path.

WooCommerce Multisite Redirect After Logout

When you are creating a redirect after logout in WooCommerce the wp_logout hook may fail to work when you have a multisite. In this case you need a little creativity to control how to create the WooCommerce redirect after logout.

In fact in a multisite set up WordPress logout function requires you to filter the allowed URLs for redirect and this can easily be executed using the allowed_redirect_hosts filter.

It helps to understand how this filter hook works so that you can use it in the WooCommerce multisite redirect after checkout. So let's briefly look at this filter.

Filter Hook: allowed_redirect_hosts

This is a filter hook that filters all the allowed hosts to apply redirect to. So in simple terms it checks the redirect URLs and vets them. The basic usage of this filter is as follows:

apply_filters( 'allowed_redirect_hosts', string[] $hosts, string $host )

As you can see in the expression above, it takes two parameter and they can be explained in details as follows:

Параметр Описание Usage Example(s)
$hosts (string[]) This is simply an array with all the allowed host names add_filter( 'allowed_redirect_hosts', 'njengah_allow_parent_redirect' );

function njengah_allow_parent_redirect( $allowed ) {

$allowed[] = 'example.com'; // Multisite parent

return $allowed;

}

<a href="<?php echo wp_logout_url( 'http://example.com' ); ?>">Logout</a>

$host (string) This is the host name of the redirect destination.

This can be left empty.

You can add more hosts to the callback function and come up with code like this:

add_filter('allowed_redirect_hosts', 'njengah_allow_parent_redirect');

функция njengah_allow_parent_redirect($allowed) {
    $ разрешено = массив (
    'блог.example.com',
    'codex.example.com',
     );
    вернуть array_merge($hosts, $allowed);
}

Это просто служит для проверки разрешенных URL-адресов перенаправления, что является важным дополнением к многосайтовому перенаправлению WooCommerce после выхода из системы, поскольку в большинстве случаев перенаправление wp_logout по умолчанию не будет работать без фильтрации узлов перенаправления.

Функция перенаправления WordPress: wp_ Redirect

Когда вы создаете перенаправление в WooCommerce или WordPress, как я объяснял в посте о том, как создать перенаправление после оформления заказа в WooCommerce, вам нужна wp_redirect() .

Понимание роли этой функции имеет решающее значение при создании перенаправления WooCommerce после оформления заказа, поскольку это основная функция, отвечающая за выполнение перенаправления в WordPress и WooCommerce. Кратко расскажем, как это работает и какие параметры принимает. Общее использование функции wp_redirect() выглядит следующим образом:

wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

Как видите, эта функция принимает три параметра, и их можно подробно описать следующим образом:

Параметр Описание
$location Это путь или URL, куда перенаправить пользователя. Это должна быть строка, необходимая для работы функции.
$status Это код состояния ответа HTTP, который следует применять к этому перенаправлению, и это целое число, и его использование необязательно.
Например, вы можете добавить 301 для постоянного перенаправления или оставить значение по умолчанию, которое равно 302, что означает временное перемещение.
$x_redirect_by Это приложение, которое выполняет перенаправление, и по умолчанию это WordPress, и его редко следует сбрасывать, поскольку мы создаем перенаправление WooCommerce после выхода из системы, что находится в контексте WordPress.

Примечание

Важно понимать, что когда вы используете функцию wp_redirect(), tit не выходит сам по себе. Поэтому важно всегда добавлять выход после функции, так как выход в PHP используется для завершения текущего запущенного скрипта после выполнения предыдущей строки кода. Таким образом, лучший способ использовать функцию wp_redirect выглядит следующим образом:

 wp_redirect($url);

выход

Вы также можете создать условное перенаправление, используя функцию wp_redirect с if statement следующим образом:

 если (wp_redirect($url)) {

   выход;

}

Эту функцию можно использовать вместе с хуком template_redirect , как в приведенном ниже коде:

 функция njengah_wp_redirect_example() {

    если ( is_user_logged_in() && is_page( $id )){

        wp_redirect(get_permalink($id));

        выход;

    }

}

add_action('template_redirect', 'njengah_wp_redirect_example');

Как вы можете видеть в приведенном выше коде, он может принимать функцию в качестве параметра при условии, что функция возвращает строку для параметра $location, как в случае с get_permalink( )

Функция перенаправления WordPress: wp_safe_redirect()

wp_safe_redirect() — это вторая функция перенаправления WordPress, которая может быть полезна для выполнения перенаправления WooCommerce после выхода из системы. Эта функция работает так же, как функция wp_redirect() , но имеет дополнительную проверку URL-адреса перенаправления.

В функции wp_redirect параметр $location не проверяется, но в функции wp_safe_redirect() параметр $location проверяется, чтобы убедиться, что это разрешенный хост.

В этом разница между двумя функциями перенаправления. Общее использование этой функции перенаправления аналогично использованию wp_redirect и общее выражение выглядит следующим образом:

wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

Как видите, параметры те же:

Параметр Описание
$location Это путь или URL, куда перенаправить пользователя. Это должна быть строка, необходимая для работы функции.
$status Это код состояния ответа HTTP, который следует применять к этому перенаправлению, и это целое число, и его использование необязательно.
Например, вы можете добавить 301 для постоянного перенаправления или оставить значение по умолчанию, которое равно 302, что означает временное перемещение.
$x_redirect_by Это приложение, которое выполняет перенаправление, и по умолчанию это WordPress, и его редко следует сбрасывать, поскольку мы создаем перенаправление WooCommerce после выхода из системы, что находится в контексте WordPress.

Эта функция позволяет разработчикам плагинов устанавливать или удалять список разрешенных хостов, и если хост отсутствует в списке разрешенных хостов, перенаправление завершается ошибкой и по умолчанию используется wp-admin.

Как и функция wp_redirect , функция wp_safe_redirect не завершается автоматически, а также требует добавления выхода, как показано в фрагментах кода ниже:

 wp_safe_redirect($url);

выход;

Вы также можете использовать его с условным оператором, как в предыдущем примере:

 если (wp_safe_redirect($url)) {

    выход;

}

Вывод

В этом посте я описал пошаговые способы создания различных параметров перенаправления WooCommerce после выхода из системы. На примере кода я проиллюстрировал, как создать выход из системы перенаправления WordPress или WooCommerce, используя множество доступных функций и хуков из ядра WordPress.

Вкратце, чтобы подвести итог тому, что мы рассмотрели; как создать редирект после выхода на:

  • Переадресация выхода из текущей страницы
  • Перенаправление выхода из предыдущей страницы
  • Перенаправление выхода из домашней страницы
  • Перенаправление выхода из конкретной страницы
  • Перенаправление внешнего URL-адреса при выходе из системы

Я надеюсь, что это руководство поможет вам начать работу по созданию переадресации выхода из системы в WooCommerce. Если вы хотите поделиться отзывом или внести свой вклад в улучшение этого руководства и даже указать на ошибки или ошибки, не стесняйтесь связаться со мной. Если вам нравится это руководство, вы также можете ознакомиться с другим руководством, которое я написал о том, как создать перенаправление WooCommerce после покупки.

Похожие статьи

Списки лучших плагинов WooCommerce