在没有确认请求的情况下注销(随机数)

时间:2021-02-16 作者:Nick

我有一个WooCommerce的Wordpress网站。我想在菜单中添加一个注销选项,该选项可以在不要求确认的情况下注销用户。

因此,我添加了一个菜单自定义链接,作为URL:/my-account/customer-logout/?_wpnonce=3d7c353c19&redirect_to=http%3A%2F%2Fwww.example.com. 但是,nonce每次都会更改,因此它仍会要求确认是否注销。。。

This post 与php分享有关如何摆脱确认请求的内容。但我不熟悉php。我应该如何在自定义链接的URL字段中使用它?也就是说,如何使用动态nonce填充自定义url?

2 个回复
最合适的回答,由SO网友:Nick 整理而成

我最终用插件解决了这个问题Code Snippets 以下代码段基于https://wordpress.stackexchange.com/a/67342:

function change_menu($items){
    foreach($items as $item){
        if( $item->title == "Log Out"){
            $item->url = wp_logout_url(\'/\');
        }
    }
    return $items;
}

add_filter(\'wp_nav_menu_objects\', \'change_menu\');

SO网友:Buttered_Toast

使用wp_logout_url() 是您的最佳选择。

您需要创建<a> 标记并在href属性output wp\\u logout\\u url()中

<a href="<?= wp_logout_url(\'/\'); ?>" title="Logout">Logout</a>
我通过了/ 作为一个论点,因为在用户单击链接后,他将被重定向回主页,您可以将其更改为您想要的任何内容

编辑

使用代码片段,您可以创建一个短代码,然后几乎在任何需要的地方使用它。

add_shortcode(\'bt_custom_logout_link\', \'bt_custom_logout_link\');
function bt_custom_logout_link ($atts) {
    $link = \'<a href="\' . wp_logout_url(\'/\') . \'" title="Logout">Logout</a>\';
    return $link;
}
此函数将注册一个名为bt_custom_logout_link, 要使用它,您需要像这样键入[bt_custom_logout_link]