Benim 2 adet Wordpress sitem var. xxx.com ve deneme.xxx.com diye. Ben xxx.com a üye olan birinin bilgilerini api ile deneme.xxx.com a göndermek istiyorum. Bilgiler kullanıcı adı , şifre , mail ve İsim soyisim. Aşağıdaki kodu oluşturdum verileri gönderiyor ama şifre göndermede sorun yaşıyorum. Kullanıcı giriş yapmaya çalıştığında yanlış şifre uyarısı veriyor.
Ana Siteye xxx.com 'a eklenen kod:
add_action('user_register', 'send_user_data_to_subsite', 10, 1);
function send_user_data_to_subsite($user_id) {
// Yeni kullanıcı bilgilerini al
$user = get_userdata($user_id);
$username = $user->user_login;
$first_name = $user->first_name;
$last_name = $user->last_name;
$email = $user->user_email;
$password = $user->user_pass; // Gerçek şifreyi buradan alıyoruz
// API endpoint'ine veri gönder
$response = wp_remote_post('http://www.deneme.xxx.com/wp-json/my_namespace/v1/sync_user/', [
'method' => 'POST',
'body' => json_encode([
'username' => $username,
'first_name'=> $first_name,
'last_name' => $last_name,
'email' => $email,
'password' => $password, // Şifreyi düz metin olarak gönderiyoruz
]),
'headers' => [
'Content-Type' => 'application/json',
],
]);
$body = wp_remote_retrieve_body($response);
// Yanıtı işleyin
}Alt siteye deneme.xxx.com'a eklenen kod :add_action('rest_api_init', function () {
register_rest_route('my_namespace/v1', '/sync_user/', [
'methods' => 'POST',
'callback' => 'sync_user_from_another_site',
'permission_callback' => '__return_true',
]);
});
function sync_user_from_another_site(WP_REST_Request $request) {
$data = $request->get_json_params();
// Verileri al
$username = sanitize_text_field($data['username']);
$first_name = sanitize_text_field($data['first_name']);
$last_name = sanitize_text_field($data['last_name']);
$email = sanitize_email($data['email']);
$password = sanitize_text_field($data['password']); // Şifreyi düz metin olarak alıyoruz
// Yeni kullanıcı oluştur (şifre düz metin olarak gönderildiği için burada direkt kullanıyoruz)
$user_id = wp_create_user($username, $password, $email);
if (is_wp_error($user_id)) {
return new WP_REST_Response(['success' => false, 'message' => 'Kullanıcı oluşturulamadı.'], 500);
}
// Kullanıcı bilgilerini güncelle
wp_update_user([
'ID' => $user_id,
'first_name' => $first_name,
'last_name' => $last_name,
]);
return new WP_REST_Response(['success' => true, 'message' => 'Kullanıcı başarıyla senkronize edildi.'], 200);
}