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); }