<?php
/**
 * Plugin Name: Chilecom — Schema Hosting Linux
 * Description: Inyecta FAQPage, Product/Offer y Service en el grafo JSON-LD de Rank Math para /hosting-linux/.
 * Version:     1.0
 */

if ( ! defined( 'ABSPATH' ) ) {
exit;
}

define( 'CHILECOM_BASE', 'https://www.chilecom.net/r' );
define( 'CHILECOM_CART', 'https://www.chilecom.net/clientes/?cmd=cart&action=add&id=' );
define( 'CHILECOM_UPTIME', '99.8' );

function chilecom_hl_planes() {
return array(
array( 'name' => 'Hosting Inicial',     'price' => 29800,  'id' => 169, 'disco' => '5 GB NVMe',   'correos' => '10',        'bd' => '2' ),
array( 'name' => 'Hosting Avanzado',    'price' => 59800,  'id' => 170, 'disco' => '15 GB NVMe',  'correos' => '20',        'bd' => '4' ),
array( 'name' => 'Hosting Pyme',        'price' => 89800,  'id' => 171, 'disco' => '25 GB NVMe',  'correos' => '75',        'bd' => '10' ),
array( 'name' => 'Hosting Profesional', 'price' => 129800, 'id' => 172, 'disco' => '50 GB NVMe',  'correos' => '150',       'bd' => '20' ),
array( 'name' => 'Hosting Empresa',     'price' => 189800, 'id' => 173, 'disco' => '75 GB NVMe',  'correos' => 'ilimitadas','bd' => 'ilimitadas' ),
array( 'name' => 'Hosting Full',        'price' => 259800, 'id' => 174, 'disco' => '100 GB NVMe', 'correos' => 'ilimitadas','bd' => 'ilimitadas' ),
);
}

function chilecom_hl_faqs() {
return array(
array(
'q' => '¿Qué incluye el hosting Linux en Chile de Chilecom?',
'a' => 'Cada plan de hosting Linux incluye panel cPanel, discos NVMe de alta velocidad, certificado SSL, cuentas de correo, bases de datos MySQL y soporte técnico local. Ideal para sitios en WordPress y proyectos PHP.',
),
array(
'q' => '¿El hosting Linux viene con cPanel?',
'a' => 'Sí, todos los planes de hosting Linux incluyen cPanel, el panel más usado del mundo, para que administres dominios, correos, bases de datos y respaldos de forma fácil y 100% bajo tu control.',
),
array(
'q' => '¿El hosting Linux está optimizado para WordPress?',
'a' => 'Sí. Nuestros servidores Linux con NVMe están afinados para WordPress y WooCommerce, con tiempos de carga rápidos. Puedes instalar WordPress en pocos clics desde cPanel.',
),
array(
'q' => '¿Cuántos dominios puedo alojar en un plan de hosting Linux?',
'a' => 'Los planes de Web Hosting Linux están pensados para un dominio principal. Si necesitas alojar varios sitios, tenemos los planes Multi Hosting Linux, optimizados para múltiples dominios.',
),
array(
'q' => '¿Cuánto cuesta el hosting Linux?',
'a' => 'Los planes de hosting Linux parten desde $29.800 + IVA anual. Puedes comparar los planes y contratar en línea; todos incluyen 15 días de prueba y migración gratis desde tu proveedor actual.',
),
array(
'q' => '¿Hacen respaldos de mi sitio?',
'a' => 'Sí. Dispones de respaldos de hasta 15 días en tu hosting, para restaurar tu sitio ante cualquier imprevisto y mantener la continuidad de tu negocio.',
),
array(
'q' => '¿Dónde están alojados los servidores?',
'a' => 'En nuestro datacenter propio en Peñalolén, Región Metropolitana, Chile. Al estar en el país, tu sitio responde con menor latencia para las visitas chilenas y cuentas con soporte en tu mismo horario.',
),
);
}

add_filter( 'rank_math/json_ld', 'chilecom_hl_schema', 99, 2 );

function chilecom_hl_schema( $data, $jsonld ) {

if ( ! is_page( 'hosting-linux' ) ) {
return $data;
}

$url        = CHILECOM_BASE . '/hosting-linux/';
$org_id     = CHILECOM_BASE . '/#organization';
$valid_till = gmdate( 'Y-12-31', strtotime( '+1 year' ) );

$data['chilecom_org'] = array(
'@type'        => array( 'Organization', 'LocalBusiness' ),
'@id'          => $org_id,
'name'         => 'Chilecom Datacenter',
'url'          => 'https://www.chilecom.net/',
'logo'         => CHILECOM_BASE . '/wp-content/uploads/2024/06/logo-chilecom-f.png',
'foundingDate' => '2002',
'address'      => array(
'@type'           => 'PostalAddress',
'streetAddress'   => 'Océano Pacífico Norte 8496',
'addressLocality' => 'Peñalolén',
'addressRegion'   => 'Región Metropolitana',
'addressCountry'  => 'CL',
),
'telephone'    => '+56229381240',
'email'        => 'soporte@chilecom.net',
'sameAs'       => array(
'https://www.instagram.com/chilecom_datacenter/',
'https://www.facebook.com/chilecomdatacenter',
'https://twitter.com/ChilecomNet',
'https://www.youtube.com/channel/UClpRcDcpc3-p_0gSF_SeOdg',
),
);

$data['chilecom_service'] = array(
'@type'       => 'Service',
'@id'         => $url . '#service',
'serviceType' => 'Web Hosting Linux',
'name'        => 'Hosting Linux en Chile con cPanel y NVMe',
'description' => 'Alojamiento web Linux con panel cPanel, almacenamiento NVMe en RAID 10, CloudLinux, LiteSpeed, Imunify360 y respaldos de 15 días, servido desde datacenter propio en Santiago de Chile con uptime garantizado de ' . CHILECOM_UPTIME . '%.',
'provider'    => array( '@id' => $org_id ),
'areaServed'  => array( '@type' => 'Country', 'name' => 'Chile' ),
'url'         => $url,
);

foreach ( chilecom_hl_planes() as $i => $plan ) {

$data[ 'chilecom_plan_' . $i ] = array(
'@type'       => 'Product',
'@id'         => $url . '#plan-' . $plan['id'],
'name'        => $plan['name'] . ' — Hosting Linux',
'description' => sprintf(
'%s de almacenamiento, %s cuentas de correo, %s bases de datos MySQL, transferencia ilimitada, panel cPanel y SSL incluido. 15 días de prueba.',
$plan['disco'],
$plan['correos'],
$plan['bd']
),
'brand'       => array( '@id' => $org_id ),
'url'         => $url,
'offers'      => array(
'@type'           => 'Offer',
'price'           => (string) $plan['price'],
'priceCurrency'   => 'CLP',
'priceValidUntil' => $valid_till,
'availability'    => 'https://schema.org/InStock',
'url'             => CHILECOM_CART . $plan['id'],
'seller'          => array( '@id' => $org_id ),
'priceSpecification' => array(
'@type'                 => 'UnitPriceSpecification',
'price'                 => (string) $plan['price'],
'priceCurrency'         => 'CLP',
'valueAddedTaxIncluded' => false,
'billingDuration'       => 12,
'billingIncrement'      => 1,
'unitCode'              => 'MON',
),
),
);
}

$faq_items = array();
foreach ( chilecom_hl_faqs() as $faq ) {
$faq_items[] = array(
'@type'          => 'Question',
'name'           => $faq['q'],
'acceptedAnswer' => array(
'@type' => 'Answer',
'text'  => $faq['a'],
),
);
}

$data['chilecom_faq'] = array(
'@type'      => 'FAQPage',
'@id'        => $url . '#faq',
'mainEntity' => $faq_items,
);

return $data;
}
