¡Bienvenido! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro. Usa un email válido para la activación.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Sistema de Referidos v1.0
#1

0
Sistema de Referidos v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost


Capturas
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 
[img]Registrate o inicia tu sesión para ver este contenido[/img]
 


Cada usuario tiene un enlace de invitación único. Cuando alguien se registra con ese enlace y activa su cuenta, el que invitó gana 10 puntos automáticamente y recibe una notificación.


🤝 Características
 
  • Enlace de referido único por usuario: tudominio.com/registro?ref=NICK
  • Puntos solo al activar la cuenta — evita cuentas falsas
  • Un usuario solo puede tener un referidor
  • Nadie puede referirse a sí mismo
  • Notificación automática al ganar los puntos
  • Widget en el perfil con enlace, estadísticas y lista de invitados
  • Botón copiar enlace con un clic
  • El ref se guarda en sesión — no se pierde si el usuario navega antes de registrarse
 


📋 Requisitos
 
  • Risus Nova 2.0 instalado y funcionando
  • PHP 8.0+
  • MySQL 5.7+ / MariaDB 10.4+
 


🛠️ Instalación

Paso 1 — Ejecutar el instalador

Sube la carpeta install/ a la raíz y accede a:

 
Registrate o inicia tu sesión para ver este contenido

⚠️ Elimina la carpeta install/ cuando termine.


Paso 2 — Subir los archivos
 
inc/class/c.referidos.php                              →  inc/class/
themes/default/templates/modules/m.perfil_referidos.tpl →  themes/default/templates/modules/

Paso 3 — En c.registro.php

Buscar:
 
$tsData['user_id'] = db_exec('insert_id');

Añade justo después:
 
// ── Referidos ──
require_once TS_CLASS . 'c.referidos.php';
$ref_nick = isset($_SESSION['ref_nick']) ? $_SESSION['ref_nick'] : ($tsCore->setSecure($_GET['ref'] ?? '') ?: $tsCore->setSecure($_POST['ref'] ?? ''));
if (!empty($ref_nick)) {
    $tsRef = new tsReferidos();
    $tsRef->guardarReferido($tsData['user_id'], $ref_nick);
}
// ────────────────

Paso 4 — En c.user.php — userActivate()

Abre inc/class/c.user.php y busca dentro de userActivate() esta línea:
 
if(db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_activo = 1 WHERE user_id = \''.$tsUserID.'\'' )) {
    return $tsData;

Cambiar por:
 
if(db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_activo = 1 WHERE user_id = \''.$tsUserID.'\'' )) {
    require_once TS_CLASS . 'c.referidos.php';
    $tsRef = new tsReferidos();
    $tsRef->procesarActivacion((int)$tsUserID);
    return $tsData;

Esto cubre tanto la activación por email como la activación directa sin email.

Paso 5 — Guardar ref en sesión (header.php)

Al final de header.php añade:
 
// ── Guardar ref en sesión ──
if (!empty($_GET['ref'])) {
    $_SESSION['ref_nick'] = $tsCore->setSecure($_GET['ref']);
}
// ───────────────────────────

Paso 6 — Widget en el perfil

En perfil.php buscar:
$smarty->assign("tsGeneral",$tsGeneral); 

Debajo agregar:
 
// ── Referidos ──
require_once TS_CLASS . 'c.referidos.php';
if ($tsUser->uid == $usuario['user_id']) {
    $tsRef = new tsReferidos();
    $ref_data = $tsRef->getReferidos($tsUser->uid);
    $ref_data['url'] = tsReferidos::getUrl($tsUser->nick);
    $ref_data['puntos_por_referido'] = tsReferidos::PUNTOS_POR_REFERIDO;
    $smarty->assign('tsReferidos', $ref_data);
}
// ────────────────

En m.perfil_sidebar.tpl añade donde quieras:
{include file='modules/m.perfil_referidos.tpl'}
 


⚙️ Configurar puntos

Los puntos por referido se configuran en inc/class/c.referidos.php:
const PUNTOS_POR_REFERIDO = 10;
 


🗑️ Desinstalar
 
DROP TABLE IF EXISTS u_referidos;

Elimina los archivos y quita los hooks añadidos.

 
Descarga

Mediafire
Debes agradecer para ver el contenido...

Google Drive
Debes agradecer para ver el contenido...



¿Tienes dudas o encuentras algún problema? Déjalo en los comentarios.



Responder


Compartir en:

Mensajes en este tema
Sistema de Referidos v1.0 - por Tronlar - Hace 9 horas

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)