这是我的第一个问题... TIA寻求帮助
在我的博客中,我想创建一个用户“ 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专家,我感到迷茫,我将不胜感激
谢谢
PD。错误是错误代码: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
答案 0 :(得分:1)
您可以通过几种方法来进行操作,这比允许用户认为自己已请求密码重置更友好。 WordPress具有过滤器allow_password_reset
see documentation
只需将以下内容添加到主题functions.php
文件中
function disable_password_reset() { return false; }
add_filter ( 'allow_password_reset', 'disable_password_reset' );
如果用户尝试重设密码,他们将收到错误消息
该用户不允许重设密码
答案 1 :(得分:0)
通过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);
这将强制用户 anonimo 输入 xxxxxx 密码。
根据需要更改$user_login
和$forced_password
。