Created
October 23, 2025 09:10
-
-
Save jesussuarz/1a4b031e313565c1b9b491ac191bf607 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /** | |
| * Exportar todos los correos de clientes desde PrestaShop 8.1 | |
| * Autor: soporteserver.com | |
| * Uso: subir al directorio raíz de la tienda y abrir en el navegador. | |
| */ | |
| $parametersFile = __DIR__ . '/app/config/parameters.php'; | |
| if (!file_exists($parametersFile)) { | |
| die('No se encontró el archivo app/config/parameters.php'); | |
| } | |
| $params = include $parametersFile; | |
| $db = $params['parameters']; | |
| $host = $db['database_host']; | |
| $name = $db['database_name']; | |
| $user = $db['database_user']; | |
| $pass = $db['database_password']; | |
| $prefix = $db['database_prefix']; | |
| try { | |
| $pdo = new PDO("mysql:host=$host;dbname=$name;charset=utf8mb4", $user, $pass); | |
| $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | |
| // Establecer codificación UTF-8 para evitar problemas con acentos | |
| $pdo->exec("SET NAMES 'utf8mb4'"); | |
| // Consulta: obtener nombre, apellido y correo de clientes activos | |
| $sql = "SELECT | |
| c.id_customer, | |
| c.firstname, | |
| c.lastname, | |
| c.email | |
| FROM {$prefix}customer c | |
| WHERE c.deleted = 0 | |
| ORDER BY c.date_add DESC"; | |
| $stmt = $pdo->query($sql); | |
| $clientes = $stmt->fetchAll(PDO::FETCH_ASSOC); | |
| if (empty($clientes)) { | |
| die('No se encontraron clientes para exportar.'); | |
| } | |
| // Nombre del archivo de salida | |
| $filename = __DIR__ . '/clientes_export_' . date('Ymd_His') . '.csv'; | |
| // Abrir archivo en modo escritura | |
| $file = fopen($filename, 'w'); | |
| if (!$file) { | |
| die('No se pudo crear el archivo CSV.'); | |
| } | |
| // Escribir cabecera en UTF-8 con BOM para Excel | |
| fprintf($file, chr(0xEF).chr(0xBB).chr(0xBF)); | |
| // Cabecera de columnas | |
| fputcsv($file, ['ID', 'Nombre', 'Apellido', 'Correo'], ','); | |
| // Escribir filas | |
| foreach ($clientes as $cliente) { | |
| fputcsv($file, [ | |
| $cliente['id_customer'], | |
| $cliente['firstname'], | |
| $cliente['lastname'], | |
| $cliente['email'] | |
| ], ','); | |
| } | |
| fclose($file); | |
| echo "<h3>✅ Exportación completada</h3>"; | |
| echo "Se han exportado <b>" . count($clientes) . "</b> clientes.<br>"; | |
| echo "Archivo generado: <b>" . basename($filename) . "</b><br><br>"; | |
| echo "Ubicación del archivo: <code>{$filename}</code><br>"; | |
| echo "Los datos están codificados en UTF-8 para evitar problemas con acentos."; | |
| } catch (PDOException $e) { | |
| die("Error en la base de datos: " . $e->getMessage()); | |
| } | |
| ?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment