Votre réservation est annulée.
/** * ENGINE : L'Usine à Site Orbiteo V2 * Développé par Carter - Inclus Création de DB et WP-CLI */ add_action('wp_loaded', 'carter_factory_processor'); function carter_factory_processor() { if (!isset($_POST['launch_factory'])) return; // --- CONFIGURATION --- $cpanel_user = 'tnbm5326'; $config = [ 'user' => $cpanel_user, 'token' => 'N8HJ5XUOZS2C9Q8KLCSIXQHR7ZA82ZH2', 'domain' => 'orbiteo.com', 'source_url' => 'le-plan-a.com', 'source_dir' => "/home/$cpanel_user/public_html/le-plan-a.com", ]; // 1. Préparation des noms $sub = sanitize_title($_POST['subdomain']); $new_db_name = $config['user'] . "_" . substr($sub, 0, 7) . rand(10, 99); $new_db_user = $config['user'] . "_user"; // On réutilise souvent le même user DB chez o2 $dest_dir = "/home/{$config['user']}/public_html/$sub"; // 2. Création du sous-domaine $sub_api = "https://localhost:2083/execute/SubDomain/addsubdomain?" . http_build_query([ 'domain' => $sub, 'rootdomain' => $config['domain'], 'dir' => "public_html/$sub", 'disallowdot' => 1 ]); // 3. Création de la Base de Données $db_api = "https://localhost:2083/execute/Mysql/create_database?name=$new_db_name"; $headers = ['headers' => ['Authorization' => "cpanel {$config['user']}:{$config['token']}"], 'timeout' => 30]; wp_remote_get($sub_api, $headers); wp_remote_get($db_api, $headers); // 4. Clonage des fichiers if (!file_exists($dest_dir)) mkdir($dest_dir, 0755, true); shell_exec("cp -pPR {$config['source_dir']}/. $dest_dir/"); // 5. Manipulation de la Base de Données avec WP-CLI // On exporte le modèle et on l'importe dans la nouvelle DB $db_export = "/home/{$config['user']}/model_temp.sql"; shell_exec("cd {$config['source_dir']} && wp db export $db_export --allow-root"); shell_exec("cd $dest_dir && wp db import $db_export --allow-root"); // On met à jour les URLs dans la nouvelle base shell_exec("cd $dest_dir && wp search-replace '{$config['source_url']}' '$sub.{$config['domain']}' --all-tables --allow-root"); // Nettoyage if(file_exists($db_export)) unlink($db_export); // Message de succès final echo "