wp_create_user hook

时间:2014-09-16 作者:frabiacca

我正在使用UserUltra Pro 插件和我需要在用户注册网站后创建一个自定义帖子类型UserUltra插件使用wp_create_user() 我知道这是一个包装wp_insert_user(). 此外,我知道“user\\u register”是在wp_insert_user().

除此之外,我无法创建新的自定义帖子类型,因为user_register 未调用挂钩。这可能吗?我如何管理它?

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

实际上有two actions: 当profile is updatedone 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;
} );

结束

相关推荐