FIX config correo SMTP

This commit is contained in:
2025-10-22 11:23:03 +00:00
parent 71116537a2
commit e7eccfa10d
2 changed files with 144 additions and 2 deletions

View File

@ -12,9 +12,11 @@ namespace App;
use Routes;
use Timber\Timber;
// Load Composer dependencies.
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/src/SMTP.php'; //config email
require_once __DIR__ . '/vendor/autoload.php'; // Load Composer dependencies.
Timber::init();
$site = new StarterSite();
// Ruta para la página de 'noticias'
@ -48,3 +50,47 @@ foreach(['/es/noticias/conflictos-laborales/page/:paged','/eu/berriak/lan-gatazk
Routes::load('archive-conflictos-laborales.php', $params, $query, 200);
});
}
// *************************DEBUGUEANDO...................
// add_shortcode('test_smtp_db', function() {
// global $wpdb;
// $output = '<h3>Verificación directa en BD:</h3>';
// // Buscar en la tabla wp_options todas las entradas que contengan 'smtp'
// $results = $wpdb->get_results("
// SELECT option_name, option_value
// FROM {$wpdb->options}
// WHERE option_name LIKE '%smtp%'
// ORDER BY option_name
// ");
// if ($results) {
// $output .= '<ul>';
// foreach ($results as $row) {
// $value = strlen($row->option_value) > 100 ? substr($row->option_value, 0, 100) . '...' : $row->option_value;
// $output .= '<li><strong>' . $row->option_name . ':</strong> ' . esc_html($value) . '</li>';
// }
// $output .= '</ul>';
// } else {
// $output .= '<p>❌ No se encontró ninguna opción con "smtp" en la base de datos</p>';
// }
// // Probar diferentes variaciones
// $output .= '<h4>Pruebas de get_option:</h4><ul>';
// $variations = [
// 'smtp_host',
// 'options_smtp_host',
// '_smtp_host',
// 'configuracion-smtp-correo_smtp_host'
// ];
// foreach ($variations as $key) {
// $value = get_option($key);
// $output .= '<li><strong>' . $key . ':</strong> ' . ($value ? esc_html($value) : '❌ VACÍO') . '</li>';
// }
// $output .= '</ul>';
// return $output;
// });

96
src/SMTP.php Normal file
View File

@ -0,0 +1,96 @@
<?php
class SMTP
{
public function __construct() {
add_action('phpmailer_init', array($this, 'configure_smtp'));
}
public static function text_email() {
$to = get_field('admin_email');
$subject = 'Prueba de configuración SMTP';
$message = 'Este es un correo de prueba para verificar la configuración SMTP.';
$headers = array('Content-Type: text/html; charset=UTF-8');
return wp_mail($to, $subject, $message, $headers);
}
public function configure_smtp($phpmailer) {
// error_log('✅ configure_smtp ejecutándose..............................');
// Usar get_option en lugar de get_field para campos de opciones
$smtp_host = get_option('options_smtp_host');
$smtp_port = get_option('options_smtp_port');
$smtp_secure = get_option('options_smtp_secure');
$smtp_auth = get_option('options_smtp_auth');
$smtp_username = get_option('options_smtp_username');
$smtp_password = get_option('options_smtp_password');
$smtp_from_email = get_option('options_smtp_from_email');
$smtp_from_name = get_option('options_smtp_from_name');
// Debug de todos los valores
// error_log('📧 SMTP Config:');
// error_log(' Host: ' . ($smtp_host ?: 'VACÍO'));
// Verificar si tenemos la configuración mínima necesaria
if (empty($smtp_host) || empty($smtp_port)) {
(error_log('🔴 host o port vacíos') );
return; // Utilizar la configuración predeterminada de WordPress
}
// Configurar el mailer para usar SMTP
$phpmailer->isSMTP();
$phpmailer->Host = $smtp_host;
$phpmailer->Port = (int)$smtp_port;
// Autenticación
$phpmailer->SMTPAuth = true;
$phpmailer->Username = $smtp_username;
$phpmailer->Password = $smtp_password;
// Tipo de seguridad (TLS/SSL)
if (!empty($smtp_secure) && in_array($smtp_secure, ['ssl', 'tls'])) {
$phpmailer->SMTPSecure = $smtp_secure;
error_log('✅ Seguridad configurada: ' . $smtp_secure);
}
// Remitente
if (!empty($smtp_from_email)) {
$phpmailer->From = $smtp_from_email;
$phpmailer->Sender = $smtp_from_email;
error_log('✅ From Email configurado: ' . $smtp_from_email);
}
if (!empty($smtp_from_name)) {
$phpmailer->FromName = $smtp_from_name;
}
// ACTIVAR DEBUG TEMPORAL
// $phpmailer->SMTPDebug = 2;
// $phpmailer->Debugoutput = function($str, $level) {
// error_log("SMTP Debug [$level]: $str");
// };
// Configuraciones adicionales que pueden ayudar
//$phpmailer->SMTPAutoTLS = true;
$phpmailer->Timeout = 30;
error_log('✅ Configuración SMTP aplicada correctamente');
}
}
$smtp_acf_config = new SMTP();
function enviar_correo_smtp($to, $subject, $message, $attachments = []) {
$headers = ['Content-Type: text/html; charset=UTF-8'];
$send = wp_mail($to, $subject, $message);
var_dump($send);
return $send;
}
/*
enviar_correo_smtp(
'hola@estudionexos.com',
'Asunto del mensaje',
'<p>Contenido del mensaje en HTML</p>'
);
*/