WordPress - 使用用户元作为 if else 语句'user_register'钩子



我试图在用户注册后通过$wpdb查询访问用户元数据。我想做的是使2种不同的自定义帖子类型,如果用户是自由职业者或雇主。

下面是代码:
add_action('user_register','registration_funtion', 999);
function registration_funtion($uid){
global $wpdb;
$existsD = $wpdb->get_var( $wpdb->prepare(
"SELECT meta_value FROM wp_usermeta WHERE user_id = '%s' AND meta_key = 'user_reg_type'" , $uid
));
if($existsD == "userfreelancer"){

$my_post_2 = array(
'post_title' => sanitize_text_field($user_info->user_login),
'post_status' => 'publish',
'post_author' => $uid,
'post_type' => 'freelancer',
'post_content' => $existsD.'-'.$uid 

);
$freelancer_id = wp_insert_post($my_post_2);
} elseif($existsD == "useremployer") { 

$my_post = array(
'post_title' => sanitize_text_field($user_info->user_login),
'post_status' => 'publish',
'post_author' => $uid,
'post_type' => 'employer',
'post_content' => $existsD.'-'.$uid                  
);

$company_id = wp_insert_post($my_post);
}

问题是它只接受了第一个if语句,而完全忽略了else if语句。

提前感谢。认为,

试试这个

add_action('user_register','registration_funtion', 999);
function registration_funtion($uid){
global $wpdb;
$existsD = get_user_meta($uid, 'user_reg_type');
if($existsD == "userfreelancer"){

$my_post_2 = array(
'post_title' => sanitize_text_field($user_info->user_login),
'post_status' => 'publish',
'post_author' => $uid,
'post_type' => 'freelancer',
'post_content' => $existsD.'-'.$uid 

);
$freelancer_id = wp_insert_post($my_post_2);
}elseif($existsD == "useremployer") { 

$my_post = array(
'post_title' => sanitize_text_field($user_info->user_login),
'post_status' => 'publish',
'post_author' => $uid,
'post_type' => 'employer',
'post_content' => $existsD.'-'.$uid                  
);

$company_id = wp_insert_post($my_post);
}

最新更新