[英]WordPress - Use user meta for if else statement in 'user_register' hook
我试图在用户注册后通过 $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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.