当用户在Wordpress网站上注册时,我试图使用'user_register'挂钩,以便我可以抓取用户的详细信息并将其插入单独的外部数据库。我有类似的代码在woocommerce工作时创建订单,但我不知道为什么它不会插入用户数据。为了便于说明,我也保留了原始的查询/连接尝试。代码在functions.php
中function save_user_to_externaldb( $user_id ) {
global $wpdb;
$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE ID='$user_id'", ARRAY_A);
// external db connection attempt
$db = new wpdb('db', 'pass', 'user', 'localhost');
if ($db)
{
// original query
//$status = $db->query("INSERT INTO users (username,password,email,status,firstname,lastname) VALUES (".$user['user_login'].",".$user['user_pass'].",".$user['user_email'].",'5', ".$lastname.",".$firstname."')");
// current query
$status = $db->query('INSERT INTO users (username,password,email) VALUES ("$user[''user_login''],"$user[''user_pass'']","$user[''user_email''])"');
}
else
{
$db->show_errors();
}
}
add_action( 'user_register', 'save_user_to_externaldb', 10, 1);
我不是很确定,但我有一个类似的问题。我认为你不能在user_register钩子中使用$wpdb->get_row。当我将代码从: wpdb -> get_row("选择: wpdb ->查询($ wpdb ->准备("选择
都工作正常。也许你可以试一下。