避免用户在wordpress中更改密码

8aqjt8rx  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(352)

这是我的第一个问题。。。谢谢你的帮助
在我的博客中,我想创建一个用户“guest”(西班牙语中的anonimo),但一旦连接,他就可以更改密码,我想避免这种情况。我决定创建一个触发器,在发生更改时还原原始密码

CREATE TRIGGER anonimo_check
AFTER
  INSERT ON wp_users FOR EACH ROW 
BEGIN
update
  wp_users
set
  user_pass = "xxxxx"
WHERE   user_login = "anonimo";
END

但我有个语法错误。。。我有几个选择,但。。。没有什么
我不是mysql的Maven,现在我感到很失落,我会感谢任何帮助
谢谢警察。错误代码为:1064。 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 9 0.062 sec

dfddblmv

dfddblmv1#

当您通过wordpress运行它时,就可以使用wp钩子来避免更改密码。试试这个:

function deny_guest_password_change($user_data){
    $user_login = 'anonimo'; // User login which password will be forced
    $forced_password = 'xxxxxx'; // Password which will be set for $user_login user
    if( $user_data['user_login'] == $user_login ){
        $user_data['user_pass'] = wp_hash_password($forced_password);
    }
    return $user_data;
}
add_filter('wp_pre_insert_user_data', 'deny_guest_password_change', 10);

它将强制用户输入密码。
改变 $user_login 以及 $forced_password 如你所需。

gz5pxeao

gz5pxeao2#

有几种方法比允许用户认为他们请求了密码重置更方便用户。wordpress有一个过滤器 allow_password_reset 见文件
只需在主题中添加以下内容 functions.php 文件

function disable_password_reset() { return false; }
add_filter ( 'allow_password_reset', 'disable_password_reset' );

如果用户试图重置密码,他们将收到错误消息
此用户不允许密码重置

相关问题