我正在尝试在用户编辑中保存次要角色字段。php独立于WP的主要角色。我在保存其他唯一的自定义字段时没有遇到问题,但对于角色(wp\\U功能),它似乎首先保存了我的角色(我将睡眠(10)设置为在过程中签入数据库),并且在请求结束时,wp保存了主角色字段,该字段覆盖了我以前保存的角色。
是否有任何方法可以对事件进行排序,以便在请求的最后执行我的函数?
以下是我目前掌握的情况:
挂钩:
<?php
add_action( \'edit_user_profile\', array( $this, \'test_profile_form\'));
add_action( \'edit_user_profile_update\', array( $this, \'test_save_profile_form\' ));
回调:
function hook_save_profile_form($user_id) {
if(!current_user_can("edit_user",$user_id)) {
return false;
}
$user = new WP_User($user_id);
$user->add_role($_POST[\'secondary-role\']);
//debug
sleep(10);
}
最合适的回答,由SO网友:Nikola R. 整理而成
我终于找到了解决方案和正确的方法:profile_update
在的结尾调用wp_insert_user
在里面user.php
从中调用edit_user
.
wp\\U insert\\U用户结束:
if ( $update )
do_action(\'profile_update\', $user_id, $old_user_data);
else
do_action(\'user_register\', $user_id);
return $user_id;