Enlaces

Mofeta   →   Enlaces
Logo
[TU_PROFESION] y creador de [TU_MARCA_O_PODCAST] [TU_HITO_DESTACADO_1] • [TU_HITO_DESTACADO_2] [TU_PALABRA_CLAVE] [tu frase descriptiva corta]
[TEMA_1]• [TEMA_2]• [TEMA_3]• [TEMA_4]• [TEMA_5]• [TEMA_1]• [TEMA_2]•
¡Registro completado! [Tu mensaje de bienvenida corto].
Revisa tu bandeja de entrada en unos minutos.
CÓDIGO PHP /** * NOMBRE: Conector Landing Links (Versión Genérica) * SHORTCODE: */ add_shortcode(‘mis_contadores_sociales’, ‘mi_landing_generica_shortcode’); function mi_landing_generica_shortcode() { if (function_exists(‘set_time_limit’)) { @set_time_limit(60); } // ====================================================================== // ⚙️ ZONA DE CONFIGURACIÓN PARA EL ALUMNO (RELLENAR CON TUS DATOS) // ====================================================================== $config = [ ‘api_youtube’ => ‘TU_API_KEY_YOUTUBE_AQUI’, ‘id_youtube’ => ‘TU_ID_DE_CANAL_YOUTUBE_AQUI’, ‘api_brevo’ => ‘TU_API_KEY_BREVO_AQUI’, ‘api_rapidapi’ => ‘TU_API_KEY_RAPIDAPI_AQUI’, // Para FB, IG y Twitter ‘usuario_ig’ => ‘tu_usuario_instagram’, ‘usuario_tw’ => ‘tu_usuario_x’, ‘usuario_tiktok’ => ‘@tu_usuario_tiktok’, ‘url_facebook’ => ‘https://www.facebook.com/tu_pagina’, ‘url_ivoox’ => ‘URL_DE_TU_PODCAST_IVOOX’ ]; // ====================================================================== // Valores por defecto (se mostrarán si no pones API o si esta falla) // Puedes cambiarlos manualmente aquí si no quieres usar las automatizaciones. $defaults = [ ‘instagram’ => [‘count’ => ’10k’, ‘source’ => ‘manual’], ‘facebook’ => [‘count’ => ’10k’, ‘source’ => ‘manual’], ‘twitter’ => [‘count’ => ’10k’, ‘source’ => ‘manual’], ‘spotify’ => [‘count’ => ’10k’, ‘source’ => ‘manual’], ‘linkedin’ => [‘count’ => ’10k’, ‘source’ => ‘manual’], ‘tiktok’ => [‘count’ => ’10k’, ‘source’ => ‘manual’], ‘ivoox’ => [‘count’ => ’10k’, ‘source’ => ‘manual’], ‘youtube’ => [‘count’ => ’10k’, ‘source’ => ‘manual’], ‘newsletter’ => [‘count’ => ’10k’, ‘source’ => ‘manual’] ]; $db_stats = get_option(‘mis_links_stats_db’, []); $stats = array_merge($defaults, $db_stats); // Candado de 12 horas para no gastar los créditos de tu API if (false === get_transient(‘mis_links_lock_12h’)) { $updated = false; // FACEBOOK (RapidAPI) if ($config[‘api_rapidapi’] && $config[‘url_facebook’] && $config[‘api_rapidapi’] !== ‘TU_API_KEY_RAPIDAPI_AQUI’) { $fb = wp_remote_get(add_query_arg([‘url’ => $config[‘url_facebook’]], “https://facebook-scraper3.p.rapidapi.com/page/details”), [ ‘timeout’ => 15, ‘headers’ => [‘x-rapidapi-key’ => $config[‘api_rapidapi’], ‘x-rapidapi-host’ => ‘facebook-scraper3.p.rapidapi.com’] ]); if (!is_wp_error($fb) && 200 === wp_remote_retrieve_response_code($fb)) { $d = json_decode(wp_remote_retrieve_body($fb), true); $v = $d[‘results’][‘followers’] ?? null; if ($v) { $stats[‘facebook’] = [‘count’ => format_number_gen($v), ‘source’ => ‘live’]; $updated = true; } } } // INSTAGRAM (RapidAPI) if ($config[‘api_rapidapi’] && $config[‘usuario_ig’] && $config[‘api_rapidapi’] !== ‘TU_API_KEY_RAPIDAPI_AQUI’) { $ig = wp_remote_post(“https://instagram120.p.rapidapi.com/api/instagram/userInfo”, [ ‘timeout’ => 15, ‘headers’ => [‘Content-Type’ => ‘application/json’,’x-rapidapi-key’ => $config[‘api_rapidapi’],’x-rapidapi-host’ => ‘instagram120.p.rapidapi.com’], ‘body’ => json_encode([‘username’ => $config[‘usuario_ig’]]) ]); if (!is_wp_error($ig) && 200 === wp_remote_retrieve_response_code($ig)) { $d = json_decode(wp_remote_retrieve_body($ig), true); $v = $d[‘result’][0][‘user’][‘follower_count’] ?? null; if ($v) { $stats[‘instagram’] = [‘count’ => format_number_gen($v), ‘source’ => ‘live’]; $updated = true; } } } // TWITTER/X (RapidAPI) if ($config[‘api_rapidapi’] && $config[‘usuario_tw’] && $config[‘api_rapidapi’] !== ‘TU_API_KEY_RAPIDAPI_AQUI’) { $tw = wp_remote_get(“https://twitter241.p.rapidapi.com/user?username=” . urlencode($config[‘usuario_tw’]), [ ‘timeout’ => 15, ‘headers’ => [‘x-rapidapi-key’ => $config[‘api_rapidapi’], ‘x-rapidapi-host’ => ‘twitter241.p.rapidapi.com’] ]); if (!is_wp_error($tw) && 200 === wp_remote_retrieve_response_code($tw)) { $d = json_decode(wp_remote_retrieve_body($tw), true); $v = $d[‘result’][‘data’][‘user’][‘result’][‘legacy’][‘followers_count’] ?? null; if ($v) { $stats[‘twitter’] = [‘count’ => format_number_gen($v), ‘source’ => ‘live’]; $updated = true; } } } // YOUTUBE if ($config[‘api_youtube’] && $config[‘id_youtube’] && $config[‘api_youtube’] !== ‘TU_API_KEY_YOUTUBE_AQUI’) { $yt = wp_remote_get(“https://www.googleapis.com/youtube/v3/channels?part=statistics&id={$config[‘id_youtube’]}&key={$config[‘api_youtube’]}”); if (!is_wp_error($yt)) { $d = json_decode(wp_remote_retrieve_body($yt), true); if (!empty($d[‘items’][0][‘statistics’][‘subscriberCount’])) { $stats[‘youtube’] = [‘count’ => format_number_gen($d[‘items’][0][‘statistics’][‘subscriberCount’]), ‘source’ => ‘live’]; $updated = true; } } } // NEWSLETTER (BREVO) if ($config[‘api_brevo’] && $config[‘api_brevo’] !== ‘TU_API_KEY_BREVO_AQUI’) { $br = wp_remote_get(‘https://api.brevo.com/v3/contacts?limit=1’, [‘headers’ => [‘api-key’ => $config[‘api_brevo’]]]); if (!is_wp_error($br)) { $d = json_decode(wp_remote_retrieve_body($br), true); if (isset($d[‘count’])) { $stats[‘newsletter’] = [‘count’ => number_format($d[‘count’], 0, ‘,’, ‘.’), ‘source’ => ‘live’]; $updated = true; } } } // IVOOX Y TIKTOK (Scraping directo básico) if ($config[‘url_ivoox’] && $config[‘url_ivoox’] !== ‘URL_DE_TU_PODCAST_IVOOX’) { $iv = wp_remote_get($config[‘url_ivoox’]); if (!is_wp_error($iv) && preg_match(‘/>\s*([\d\.]+[kK])\s* strtolower($m[1]), ‘source’ => ‘live’]; $updated = true; } } if ($config[‘usuario_tiktok’] && $config[‘usuario_tiktok’] !== ‘@tu_usuario_tiktok’) { $tk = wp_remote_get(“https://www.tiktok.com/” . $config[‘usuario_tiktok’]); if (!is_wp_error($tk) && preg_match(‘/”followerCount”:(\d+)/’, wp_remote_retrieve_body($tk), $m)) { $stats[‘tiktok’] = [‘count’ => format_number_gen($m[1]), ‘source’ => ‘live’]; $updated = true; } } set_transient(‘mis_links_lock_12h’, ‘locked’, 12 * 3600); if ($updated) { update_option(‘mis_links_stats_db’, $stats); } } return ‘‘; } function format_number_gen($num) { if (!is_numeric($num)) return $num; if ($num >= 1000000) return number_format($num / 1000000, 1) . ‘M’; if ($num >= 1000) return number_format($num / 1000, 1) . ‘k’; return $num; }