问题:Woocommerce自定义注销没有确认

我正在尝试在 woocommerce 中实现自定义注销而无需注销确认。

我创建了一个页面并添加了此代码。并将此页面的链接添加到菜单。但它不起作用。

 session_start();
 session_destroy();   
 header("Location:http://www.liberatium.com/");

解答

确认发生是因为您在 URL 中缺少必要的随机数,正在 wp-login.php 中检查

case 'logout' :
check_admin_referer('log-out');
...

使用 wp_logout_url 来检索包含 nonce 的 URL。如果要重定向到自定义 URL,只需将其作为参数传递。

<a href="<?php echo wp_logout_url('http://www.liberatium.com/') ?>">Log out</a>

如果这不起作用意味着,在functions.php中添加下面的函数并尝试上面的代码......

add_action('check_admin_referer', 'logout_without_confirm', 10, 2);
   function logout_without_confirm($action, $result)
      {
      /**
      * Allow logout without confirmation
      */
      if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
      $redirect_to = isset($_REQUEST['redirect_to']) ? 
      $_REQUEST['redirect_to'] : '';
      $location = str_replace('&amp;', '&', wp_logout_url($redirect_to));;
      header("Location: $location");
      die();
    }
}
Logo

WooCommerce社区为您提供最前沿的新闻资讯和知识内容

更多推荐