实际上有two actions: 当profile is updated 和one when the user is registered.
# Fires immediately after an existing user is updated.
do_action( \'profile_update\', $user_id, $old_user_data );
# Fires immediately after a new user is registered.
do_action( \'user_register\', $user_id );
因此,只要用户登录名不为空且用户名不存在,就应该继续。看看退货条款:
if ( empty( $user_login ) ) {
return new WP_Error(\'empty_user_login\', __(\'Cannot create a user with an empty login name.\') );
}
if ( ! $update && username_exists( $user_login ) ) {
return new WP_Error( \'existing_user_login\', __( \'Sorry, that username already exists!\' ) );
}
这意味着如果你没有
WP_Error
对象返回,它应该执行。您可以尝试核心函数中的众多过滤器,以缩小如果钩子未执行时出现问题的范围。在错误返回之前运行的错误如下:
apply_filters( \'pre_user_login\', $sanitized_user_login );
如果这个有效,那么插件就不会检查
is_wp_error()
并忽略失败的插入调用。
<?php /** Plugin Name: Test if wp_insert_user() filters work */
add_filter( \'pre_user_login\', function( $user )
{
var_dump( current_filter()." works fine" );
return $user;
} );