Ofreciendo contenido exclusivo para incentivar el registro

  • Autor Autor raul25r
  • Fecha de inicio Fecha de inicio
raul25r

raul25r

Gamma
Redactor
Hola buenas, quiero incentivar que los usuarios invitados que visitan mi web se registren y para ello he pensado en ofrecerles contenido exclusivo. Este contenido seria links, imágenes o vídeos los cuales nosotros seleccionaríamos.

Veréis para ello encontré un código el cual no hace del todo lo que yo quiero, pero es lo que busco y quiero intentar adaptarlo a mi web.
Este es el código que lo pongo en mi functions.php.

HTML:
//Shortcode para contenido exclusivo
add_shortcode( 'exclusivo', 'contenido_registrados' );
function contenido_registrados( $atts, $content = null ) {
        if( is_user_logged_in() ) return '<p>' . $content . '</p>';
        else return;
}
Y lo ejecutamos como shortcode con:
HTML:
[exclusivo]Aquí el contenido[/exclusivo]

¿Cuál es el problema?
Que cuando pongo el shortcode los usuarios invitados no ven nada, y me gustaría que vieran "este contenido es para usuarios registrados regístrate para poder verlo" o algo similar.
¿Alguien sabe cómo hacer esto?
Gracias.
 
Última edición:
si ves tu código en la parte que colocas en functions tienes un "if( is_user_logged_in() ) return '<p>' . $content . '</p>';
else return;" no le he probado pero estoy seguro que si en la parte del "else" que es lo que pasa cuando no estan logeados pones algo parecido a "'<p>ste contenido es para usuarios registrados regístrate para poder verlo</p>'" con esto estaría.
Quedaria algo como:
PHP:
//Shortcode para contenido exclusivo
add_shortcode( 'exclusivo', 'contenido_registrados' );
function contenido_registrados( $atts, $content = null ) {
        if( is_user_logged_in() ) return '<p>' . $content . '</p>';
        else return <p> este contenido es para usuarios registrados regístrate para poder verlo </p>';
}
 
Gracias por responder, lo probé y me tira error: Parse error: syntax error, unexpected '<' in /homepages/23/d414848437/htdocs/oculto/themes/sahifa/functions.php on line 140
Justo es la linea del else return.
 
Gracias por responder, lo probé y me tira error: Parse error: syntax error, unexpected '<' in /homepages/23/d414848437/htdocs/oculto/themes/sahifa/functions.php on line 140
Justo es la linea del else return.

Intenta colocando comillas simples '<p>' este contenido es para usuarios registrados regístrate para poder verlo '</p>'
 
Intenta colocando comillas simples '<p>' este contenido es para usuarios registrados regístrate para poder verlo '</p>'
Nada, tampoco, me dice: Parse error: syntax error, unexpected 'este' (T_STRING) in /homepages/23/d414848437/htdocs/oculto/themes/sahifa/functions.php on line 139.

EDITO:

He probado de diferentes formas y nada:
Parse error: syntax error, unexpected ''Este contenido es para usuari' (T_CONSTANT_ENCAPSED_STRING) in /homepages/23/d414848437/htdocs/oculto/themes/sahifa/functions.php on line 139

contenido para usuarios.webp
 
Última edición:
Nada, tampoco, me dice: Parse error: syntax error, unexpected 'este' (T_STRING) in /homepages/23/d414848437/htdocs/oculto/themes/sahifa/functions.php on line 139

PHP:
//Shortcode para contenido exclusivo
add_shortcode( 'exclusivo', 'contenido_registrados' );
function contenido_registrados( $atts, $content = null ) {
        if( is_user_logged_in() ) return '<p>' . $content . '</p>';
        else return '<p>este contenido es para usuarios registrados regístrate para poder verlo </p>';
}

faltaba un ' al inicio del mensaje a mostrar
 
Lo logre!! Os dejo el código por si a alguien le puede servir.
HTML:
//Shortcode para contenido exclusivo
add_shortcode( 'exclusivo', 'contenido_registrados' );
function contenido_registrados( $atts, $content = null ) {
        if( is_user_logged_in() ) return '<p>' . $content . '</p>';
        else return '<p>Contenido Oculto, exclusivo para usuarios registrados.</p>';
 
Atrás
Arriba