feat: sitio CV completo v1.0.0

- 4 temas WordPress: persona-cv (activo), lumina, apex-cv, cvolio
- Plugin pflores-cv-fields con CMB2 (100% gratuito) — admin editable
- Generador PDF dinámico con Chromium headless (?cv_pdf=1)
- Datos del CV de Patricia Flores cargados en CMB2
- URL dinámica con soporte proxy SSL (NPM/X-Forwarded-Proto)
- WP Mail SMTP instalado (pendiente config SMTP)
- Documentación completa: PROMPT_IA.md, DEPLOY_WEB.md, PRODUCCION.md, VERSIONADO.md
This commit is contained in:
2026-06-05 11:21:30 -05:00
parent cc6545604c
commit 5846c515f3
77 changed files with 9567 additions and 220 deletions
@@ -0,0 +1,23 @@
<?php
declare(strict_types=1);
function persona_customize_register(WP_Customize_Manager $wp_customize): void {
$wp_customize->add_section('persona_hero', ['title' => __('Persona CV: Presentación', 'persona'), 'priority' => 30]);
$fields = [
'pn_hero_name' => ['label' => __('Nombre', 'persona'), 'default' => 'Patricia Soledad Flores Sánchez'],
'pn_hero_role' => ['label' => __('Rol', 'persona'), 'default' => 'Gerente / Jefa de Operaciones Financieras'],
'pn_contact_location' => ['label' => __('Ubicación', 'persona'), 'default' => 'Loja, Ecuador'],
'pn_contact_email' => ['label' => __('Correo', 'persona'), 'default' => 'patricflorsanchez@gmail.com'],
'pn_contact_phone' => ['label' => __('Teléfono', 'persona'), 'default' => '+593 99 469 8405'],
'pn_social_linkedin' => ['label' => __('LinkedIn URL', 'persona'), 'default' => 'https://www.linkedin.com/in/patricia-soledad-flores-s%C3%A1nchez-43b84418/'],
];
$wp_customize->add_setting('pn_profile_image', ['default' => '', 'sanitize_callback' => 'esc_url_raw']);
$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'pn_profile_image', [
'label' => __('Foto de perfil', 'persona'), 'section' => 'persona_hero', 'settings' => 'pn_profile_image',
]));
foreach ($fields as $key => $field) {
$isUrl = str_contains($key, 'linkedin');
$wp_customize->add_setting($key, ['default' => $field['default'], 'sanitize_callback' => $isUrl ? 'esc_url_raw' : 'sanitize_text_field']);
$wp_customize->add_control($key, ['label' => $field['label'], 'section' => 'persona_hero', 'type' => 'text']);
}
}
add_action('customize_register', 'persona_customize_register');
+157
View File
@@ -0,0 +1,157 @@
<?php
declare(strict_types=1);
function persona_cv_data(): array {
return [
'hero' => [
'eyebrow' => 'Currículum ejecutivo',
'name' => 'Patricia Soledad Flores Sánchez',
'role' => 'Gerente / Jefa de Operaciones Financieras',
'role2' => 'Sector financiero y microfinanzas',
'intro' => 'Ejecutiva financiera con más de 22 años de trayectoria en banca y microfinanzas. Máster en Dirección y Planificación Financiera, reconocido por la SENECYT en Ecuador, con especialización en gestión operativa, transformación digital de procesos, control interno y liderazgo de equipos multidisciplinarios.',
'location' => 'Loja, Ecuador',
'email' => 'patricflorsanchez@gmail.com',
'phone' => '+593 99 469 8405',
'linkedin' => 'https://www.linkedin.com/in/patricia-soledad-flores-s%C3%A1nchez-43b84418/',
'availability' => 'Inmediata | Presencial / Híbrida / Remota',
'focus' => 'Operaciones financieras, control interno y transformación digital',
'languages' => 'Español nativo | Inglés básico en formación activa',
'born' => '3 de agosto de 1980',
'id' => '1103591648',
'web' => 'pflres.linkedcorp.net',
],
'metrics' => [
['value' => '22', 'suffix' => '+', 'label' => 'Años de experiencia'],
['value' => '26', 'suffix' => '', 'label' => 'Agencias lideradas'],
['value' => '48', 'suffix' => '', 'label' => 'Personas a cargo'],
['value' => '5', 'suffix' => 'M', 'label' => 'USD ops. mensuales'],
['value' => '28000', 'suffix' => '', 'label' => 'Clientes coordinados'],
],
'highlights' => [
['value' => '9/10', 'label' => 'Calificación excelente 4 trimestres consecutivos'],
['value' => '74%', 'label' => 'Reducción requerimientos soporte a Dirección'],
['value' => '1.68', 'suffix' => 'días', 'label' => 'Tiempo desembolso Q3 2025, mejor del año'],
['value' => '75%', 'label' => 'Reducción rotación de personal 2022–2026'],
],
'summary' => [
'title' => 'Perfil estratégico con enfoque en eficiencia, control y ejecución sostenible',
'body' => 'Actualmente lidera la operatividad de 26 agencias a nivel nacional y coordina aproximadamente 1.500 operaciones de microcrédito mensuales, por un monto cercano a USD 5 millones. También articula la recaudación de cerca de 28.000 clientes por canales internos y externos, integrando visión operativa, criterio financiero, disciplina de control y liderazgo sostenido del desempeño.',
],
'impact' => [
['title' => 'Transformación digital', 'body' => 'Lideró desembolsos por transferencia bancaria, integración de APIs bancarias y digitalización de expedientes y pagarés en 13 agencias.'],
['title' => 'Automatización crítica', 'body' => 'Automatizó el seguro de desgravamen, desde el cálculo de prima hasta la liquidación contable, reduciendo tiempos de 17 a 10 días.'],
['title' => 'Supervisión nacional', 'body' => 'Implementó una matriz de supervisión y certificación por agencia, elevando el índice de cumplimiento operativo del 65 % al 88 %.'],
],
'experience' => [
[
'period' => 'Abr. 2022 – Presente', 'title' => 'Jefa de Operaciones',
'company' => 'Fundación FACES Microfinanzas', 'location' => 'Loja, Ecuador',
'lead' => 'Responsable del desempeño operativo nacional, cumplimiento del POA, control interno, digitalización de procesos y gestión de equipos.',
'bullets' => [
'Cumplimiento del POA: 98 % (Q2 2025), 96 % (Q3 2025), 100 % (Q4 2025) y 105 % (Q1 2026).',
'Desembolsos por transferencia: 47,80 % del monto total en Q1 2026.',
'Redujo requerimientos de soporte un 74 %, de 1.489 a 382, mediante descentralización.',
'Automatizó el seguro de desgravamen con asientos contables automatizados.',
'Elevó el cumplimiento operativo nacional del 65 % al 88 %.',
'Redujo el tiempo de desembolso a 1,68 días en Q3 2025 (meta: máx. 2 días).',
'Recuperación de mora: 90,60 % en Q1 2026 — USD 3,06 M sobre USD 3,37 M.',
'Redujo la rotación del área del 41,46 % al 10,24 % (dic. 2022 – mar. 2026).',
'Participa en comités estratégicos, auditorías y representación institucional internacional.',
],
],
[
'period' => 'Feb. 2021 – Mar. 2022', 'title' => 'Supervisora de Operaciones',
'company' => 'Fundación FACES Microfinanzas', 'location' => 'Loja, Ecuador',
'lead' => 'Supervisó operaciones de 18 agencias a nivel nacional y regularizó procesos críticos inexistentes o incompletos.',
'bullets' => [
'Reconstruyó desde cero las bases de cálculo del seguro de desgravamen.',
'Elaboró el instructivo de garantías hipotecarias (proceso inexistente previamente).',
'Inició el proyecto de automatización de pagos por depósitos y transferencias.',
],
],
[
'period' => '2019 – 2021', 'title' => 'Actualización y formación profesional',
'company' => 'Formación independiente', 'location' => 'Ecuador',
'lead' => 'Etapa de fortalecimiento técnico tras salida de Mutualista Pichincha.',
'bullets' => ['SAP FI (30 h).', 'Excel Empresarial (24 h).', 'Prevención de Lavado de Activos — UAFE (5 h).'],
],
[
'period' => 'Ago. 2004 – May. 2019', 'title' => 'Oficial Operativa Regional / Jefa Operativa',
'company' => 'Mutualista Pichincha', 'location' => 'Loja, Ecuador',
'lead' => 'Trayectoria ascendente de 15 años desde Cajera hasta Jefa Operativa Regional.',
'bullets' => [
'Reconocida a nivel nacional por excelencia en control operativo.',
'Agencia por encima del 80 % en gestión de excepciones de crédito hipotecario.',
'Administró proyecto inmobiliario institucional en Loja.',
'Cumplimiento ALA/FT al 100 % en comités y auditorías sin observaciones.',
],
],
[
'period' => 'Ene. 2002 – Nov. 2003', 'title' => 'Cajera',
'company' => 'Cooperativa de Ahorro y Crédito El Porvenir', 'location' => 'Loja, Ecuador',
'lead' => 'Inicio de carrera en el frente operativo financiero con disciplina de caja y apoyo contable.',
'bullets' => [
'Gestión de caja sin faltantes ni sobrantes.',
'Contrato renovado anticipadamente a los tres meses.',
'Apoyo a Contabilidad y reemplazo temporal de la contadora.',
],
],
],
'education' => [
[
'year' => '2021', 'title' => 'Máster Universitario en Dirección y Planificación Financiera',
'institution' => 'Universidad Europea Miguel de Cervantes — Valladolid, España',
'detail' => 'Reconocido por la SENECYT — Ecuador, febrero de 2023 | Reg. 2021/394270.',
],
[
'year' => '2007', 'title' => 'Ingeniera en Administración en Banca y Finanzas',
'institution' => 'Universidad Técnica Particular de Loja (UTPL)', 'detail' => '',
],
],
'certifications' => [
['year' => '2026', 'title' => 'Mujeres que Lideran: Alta Gerencia', 'issuer' => 'Foro UNIR — Universidad Internacional de La Rioja'],
['year' => '2025', 'title' => 'Programa Internacional de Habilidades Gerenciales (48 h)', 'issuer' => 'IDEASGROUP — Ecuador / México'],
['year' => '2025', 'title' => 'Transforma tu Trabajo con Inteligencia Artificial (12 h)', 'issuer' => 'Red de Instituciones Financieras de Desarrollo'],
['year' => '2025', 'title' => 'Excel: Básico a Dashboard (40 h)', 'issuer' => 'DMARURI Training & Consulting'],
['year' => '2024', 'title' => 'Administración por Procesos — BPM (64 h)', 'issuer' => 'Escuela Politécnica Nacional — CEC'],
['year' => '2023', 'title' => 'Formación de Formadores (80 h)', 'issuer' => 'Ministerio del Trabajo del Ecuador | Vigente hasta 2028'],
['year' => '2023', 'title' => 'Power BI (40 h) | KPI (12 h)', 'issuer' => 'Liderazgo Capacitación & Eventos'],
['year' => '2020', 'title' => 'Gestión Financiera ERP SAP FI — Key User (30 h)', 'issuer' => 'Socio SAP certificado'],
['year' => '2020', 'title' => 'Prevención de Lavado de Activos y Financiamiento de Delitos', 'issuer' => 'UAFE — Ecuador'],
['year' => '2013', 'title' => 'Tributación Integral (36 h)', 'issuer' => 'Universidad Técnica Particular de Loja'],
],
'competencies' => [
'Finanzas y Operaciones' => [
['name' => 'Gestión de operaciones financieras', 'pct' => 95],
['name' => 'Control interno y cumplimiento', 'pct' => 95],
['name' => 'Gestión de cartera y microfinanzas', 'pct' => 90],
['name' => 'Conciliación bancaria / Tesorería', 'pct' => 90],
['name' => 'ALA/FT y prevención de riesgos', 'pct' => 88],
],
'Tecnología y Procesos' => [
['name' => 'Transformación digital / BPM', 'pct' => 85],
['name' => 'SAP FI', 'pct' => 78],
['name' => 'Excel avanzado y dashboards', 'pct' => 85],
['name' => 'Power BI', 'pct' => 75],
['name' => 'IA aplicada al trabajo', 'pct' => 70],
],
'Liderazgo' => [
['name' => 'Gestión de equipos (hasta 48 p.)', 'pct' => 95],
['name' => 'Gestión del cambio organizacional', 'pct' => 90],
['name' => 'Formación de formadores', 'pct' => 88],
['name' => 'Remuneración variable y carrera', 'pct' => 85],
],
],
'volunteer' => [
'title' => 'Voluntaria — Hogar San Camilo de Lellis',
'year' => '2025',
'body' => 'Hogar de niñas con discapacidad | Loja, Ecuador. Alineado a la responsabilidad social de la Fundación FACES Microfinanzas.',
],
'additional' => [
'Idiomas' => 'Español nativo | Inglés básico en formación activa',
'Disponibilidad' => 'Inmediata | Presencial / Híbrida / Remota',
'C.I.' => '1103591648',
'Fecha de nacimiento' => '3 de agosto de 1980',
'Web profesional' => 'pflres.linkedcorp.net',
],
];
}
+35
View File
@@ -0,0 +1,35 @@
<?php
declare(strict_types=1);
function persona_should_track(): bool {
if (is_admin() || wp_doing_ajax() || wp_doing_cron()) return false;
if (!isset($_SERVER['REQUEST_METHOD']) || $_SERVER['REQUEST_METHOD'] !== 'GET') return false;
if (is_user_logged_in() && current_user_can('manage_options')) return false;
return is_front_page() || is_home() || is_singular();
}
function persona_track_visit(): void {
if (!persona_should_track()) return;
$uri = isset($_SERVER['REQUEST_URI']) ? sanitize_text_field(wp_unslash($_SERVER['REQUEST_URI'])) : '';
$key = 'persona_v_' . md5($uri . '|' . persona_client_ip() . '|' . gmdate('Y-m-d-H'));
if (get_transient($key)) return;
set_transient($key, '1', HOUR_IN_SECONDS);
update_option('persona_total_visits', (int) get_option('persona_total_visits', 0) + 1, false);
if (is_front_page()) {
$fp = (int) get_option('page_on_front');
if ($fp > 0) update_post_meta($fp, '_persona_views', (int) get_post_meta($fp, '_persona_views', true) + 1);
return;
}
$id = get_queried_object_id();
if ($id > 0) update_post_meta($id, '_persona_views', (int) get_post_meta($id, '_persona_views', true) + 1);
}
add_action('template_redirect', 'persona_track_visit');
function persona_client_ip(): string {
foreach (['HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP', 'REMOTE_ADDR'] as $k) {
if (!empty($_SERVER[$k])) return trim(explode(',', (string) $_SERVER[$k])[0]);
}
return '0.0.0.0';
}
add_action('wp_dashboard_setup', function() {
wp_add_dashboard_widget('persona_visits', __('Persona CV: Visitas', 'persona'), function() {
printf('<p><strong>%s</strong> %d</p>', esc_html__('Total:', 'persona'), (int) get_option('persona_total_visits', 0));
});
});