Şifreyi düz metin olarak gönderdiğiniz için sorun yaşıyorsunuz. WordPress MD5 ile şifreleme yapıyor. Kullanıcının girdiği şifreyi MD5'e çevirerek gönderin.
Hocam denedim yine olmuyor. Amacım : xxx.com benim ana sitem buraya üye olan biri otomatik olarak deneme.xxx.com alt siteme de üye olmalı. Kullanıcı ana sitede kullandığı veriler ile alt siteye giriş yapmasını sağlamak istiyorum.
Günce Kodum Yine olmadı hocam :
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 alıyoruz
// MD5 ile şifreyi hashle
$hashed_password = md5($password); // Şifreyi MD5 ile hashliyoruz
// 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' => $hashed_password, // Hashlenmiş şifreyi gönderiyoruz
]),
'headers' => [
'Content-Type' => 'application/json',
],
]);
$body = wp_remote_retrieve_body($response);
// Yanıtı işleyin
}alt site :
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']); // Hashlenmiş şifreyi alıyoruz
// Yeni kullanıcı oluştur (MD5 şifreyi hash olarak kullanıyoruz)
$user_id = wp_create_user($username, $password, $email); // MD5 şifre burada kullanılacak
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);
}