php 如何在没有确认的情况下退出WooCommerce?

f8rj6qna  于 2023-02-07  发布在  PHP
关注(0)|答案(1)|浏览(152)

我们希望网站用户无需确认即可关闭会话。
目前,当我们按“注销”按钮时,用户将被定向到URL htt:myWebSite.com/my-account/customer-logout/,我们必须按“确认并退出”
我们希望避免这一步,并在用户单击Logout按钮时自动注销
有一些插件可以做到这一点,但我们更喜欢使用函数。我们已经尝试了一些东西,但我们不能得到它的权利,让它完成

add_action('wp_logout','ps_redirect_after_logout');
function ps_redirect_after_logout(){
         wp_redirect( 'https://miPaginaFavorita.com' );
         exit();
}

我们处理的另一个选项如下,但它也不起作用

add_action('check_admin_referer', 'logout_without_confirm', 10, 2);

   function logout_without_confirm($action, $result)

      {

      /**

      * Allow log out without confirmation

      */

      if ($action == "log-out" && !isset($_GET['_wpnonce'])) {

      $redirect_to = isset($_REQUEST['redirect_to']) ?
 function logout_without_confirm($action, $result)

      {

      /**

      * Allow log out without confirmation

      */

      if ($action == "log-out" && !isset($_GET['_wpnonce'])) {

      $redirect_to = isset($_REQUEST['redirect_to']) ?

      $_REQUEST['redirect_to'] : '';

      $location = str_replace('&', '&', wp_logout_url($redirect_to));;

      header("Location: $location");

      die();

    }}

如何修改我的功能以避免注销时确认?谢谢

sg3maiej

sg3maiej1#

你最大的改变url函数在你的按钮.检查你的主题文件如何创建按钮注销.使用'wp_logout_url'函数跳过确认页.在我的主题像这样:

if ( class_exists( 'WooCommerce' ) ) {
    $logout_link = wc_get_endpoint_url( 'customer-logout', '', wc_get_page_permalink( 'myaccount' ) );
}
$logout_btn = '<a class="login" href="' . esc_url( $logout_link ) . '">Logout</a>';

例如,我这样做是为了跳过页面确认,并正常工作:

$logout_link = wp_logout_url( get_home_url() );
$logout_btn = '<a class="login" href="' . esc_url( $logout_link ) . '">Logout</a>';

希望对你有帮助。

    • 编辑**--
    • 方法二:**

简单的方法=〉如果你被重定向到"/customer-logout ",当点击logout按钮,你可以检查和注销用户与此功能.添加代码在您的functions.php(是在您的主题文件夹或子主题文件夹).

function skip_logout_confirmation() {
global $wp;
if ( isset( $wp->query_vars['customer-logout'] ) ) {
    wp_redirect( str_replace( '&amp;', '&', wp_logout_url( home_url() ) ) );
    exit;
  }
}
add_action( 'template_redirect', 'skip_logout_confirmation' );

相关问题