¿Quieres ver todos los temas y addons oficiales de HivePress?
En su web encontrarás todos los recursos para montar un marketplace o directorio profesional en WordPress: plugins, temas y extensiones desarrolladas por el propio equipo.
📥 Ver todo en HivePress.ioEste es un enlace de afiliado. A ti no te costará nada extra, pero HivePress puede pagarme una pequeña comisión por recomendarlos. Esto ayuda a que pluginsweb.es siga creando contenido gratuito y útil. ¡Gracias por tu apoyo!
En este quinto volumen seguimos explorando snippets que te permiten llevar HivePress un paso más allá. Algunos están orientados a mejorar el registro de usuarios, otros refuerzan la seguridad, controlan la estructura visual de los anuncios o te permiten modificar pequeños detalles que marcan la diferencia.
Este bloque es especialmente interesante porque mezcla lógica de negocio con mejoras visuales, y contiene tanto código PHP como CSS.
¿Dónde coloco estos snippets?
En este volumen verás snippets tanto en PHP como en CSS. Es importante colocarlos en el lugar correcto para que funcionen sin problemas:
Snippets PHP
1. En el archivo functions.php de tu tema hijo
Ve a Apariencia > Editor de archivos (o entra por FTP), busca el archivo llamado functions.php dentro de tu tema hijo y pega el código al final del archivo.
Importante: si estás usando el tema padre sin un tema hijo, no lo hagas aquí, porque perderás los cambios al actualizar el tema.
2. Usando el plugin «Code Snippets»
Si no quieres tocar archivos o prefieres tener todos los códigos organizados, instala el plugin gratuito Code Snippets.
Una vez instalado:
- Ve a Snippets > Añadir nuevo
- Pega el código
- Activa la opción «Ejecutar en todas partes»
- Guarda y activa
Este método es más seguro, más limpio y no depende del tema que estés usando.
Snippets CSS
Debes copiarlos y pegarlos en la sección de CSS adicional de tu tema. Puedes encontrarla en Apariencia > Personalizar > CSS adicional.
Empezamos con el quinto bloque de 10.
Tabla de Contenido
- 1. Restringir dominios de correo en el registro de usuarios [PHP]
- 2. Añadir un enlace al perfil del vendedor en el menú de cuenta [PHP]
- 3. Mostrar la imagen del anuncio en lugar de la del vendedor [PHP]
- 4. Hacer que el enlace de la ubicación no sea clicable [CSS]
- 5. Ocultar los campos “booking_offset” y “booking_window” [PHP]
- 6. Ocultar los anuncios a usuarios no registrados [PHP]
- 7. Hacer opcional el campo de descripción en los anuncios [PHP]
- 8. Obligar a subir al menos una imagen en solicitudes [PHP]
- 9. Cambiar la posición del bloque del vendedor en el anuncio [PHP]
- 10. Ocultar el icono de “Enviar mensaje” en los anuncios [CSS]
1. Restringir dominios de correo en el registro de usuarios [PHP]
add_filter( 'hivepress/v1/forms/user_register/errors', function( $errors, $form ) {
if ( ! $errors ) {
$domain = hivepress()->helper->get_last_array_value( explode( '@', $form->get_value( 'email' ) ) );
if ( ! in_array( $domain, [ 'tudominio.com', 'gmail.com' ] ) ) {
$errors[] = 'Este dominio de correo no está permitido.';
}
}
return $errors;
}, 1000 );
Este snippet impide que los usuarios se registren con correos que no pertenezcan a los dominios permitidos. Puedes personalizar la lista de dominios según tu necesidad.
- Qué hace:
Valida el correo introducido en el registro y muestra un error si el dominio no está en la lista permitida. - Para qué sirve:
Ideal para comunidades cerradas, redes privadas o cuando quieres evitar registros con correos basura o temporales.
Puedes añadir o quitar dominios en el array ['tudominio.com', 'gmail.com'] según tus preferencias.
2. Añadir un enlace al perfil del vendedor en el menú de cuenta [PHP]
add_filter( 'hivepress/v1/menus/user_account', function ( $menu ) {
if ( is_user_logged_in() ) {
$vendor_id = HivePress\Models\Vendor::query()->filter([ 'user' => get_current_user_id() ])->get_first_id();
if ( $vendor_id ) {
$menu['vendor_profile'] = [
'label' => 'Mi perfil público',
'url' => get_permalink( $vendor_id ),
'_order' => 5,
];
}
}
return $menu;
} );
Este código añade un acceso directo al perfil público del vendedor dentro del panel de usuario.
- Qué hace:
Crea una nueva pestaña en el menú de la cuenta que enlaza directamente al perfil público del vendedor (si existe). - Para qué sirve:
Facilita la navegación y permite que el usuario acceda rápidamente a su página pública, ideal para plataformas de servicios.
Puedes cambiar el texto del label si quieres que diga algo diferente como “Ver mi perfil”.
3. Mostrar la imagen del anuncio en lugar de la del vendedor [PHP]
add_filter( 'hivepress/v1/templates/listing_view_block/blocks', function( $blocks ) {
return hivepress()->helper->merge_trees( [ 'blocks' => $blocks ], [
'blocks' => [
'listing_image' => [
'path' => 'listing/view/block/listing-image',
],
],
] );
} );
Este snippet cambia la imagen que se muestra en la tarjeta del anuncio para que sea la del anuncio, no la del proveedor.
- Qué hace:
Sobrescribe el bloque de imagen del listado en la vista en bloque (como el grid o tarjetas). - Para qué sirve:
Mucho más visual si tus anuncios tienen imágenes relevantes y no quieres depender del avatar del proveedor.
Asegúrate de que los anuncios tengan imágenes destacadas para que el cambio tenga sentido.
4. Hacer que el enlace de la ubicación no sea clicable [CSS]
.hp-listing--view-block .hp-listing__location a,
.hp-listing--view-page .hp-listing__location a {
pointer-events: none;
}
En muchas plantillas, la ubicación del anuncio aparece como un enlace. Este CSS lo desactiva sin eliminar el texto.
- Qué hace:
Evita que el usuario pueda hacer clic en la ubicación del anuncio, manteniendo el estilo pero sin función. - Para qué sirve:
Muy útil si no estás usando búsquedas por ubicación o si prefieres evitar que los usuarios naveguen a listados filtrados por zonas.
Una solución rápida para controlar el flujo de navegación sin modificar la plantilla.
5. Ocultar los campos “booking_offset” y “booking_window” [PHP]
add_filter( 'hivepress/v1/forms/listing_update', function( $form ) {
unset( $form['fields']['booking_offset'] );
unset( $form['fields']['booking_window'] );
return $form;
}, 1000 );
Cuando usas reservas, HivePress muestra dos campos avanzados para ajustar cómo y cuándo se puede reservar. Este snippet los elimina.
- Qué hace:
Oculta del formulario de edición del anuncio los campos para definir con cuánta antelación y durante cuánto tiempo se pueden hacer reservas. - Para qué sirve:
Simplifica el proceso de creación del anuncio para usuarios que no necesitan estos niveles de control.
Ideal si quieres que todos los anuncios se comporten igual en cuanto a reservas.
6. Ocultar los anuncios a usuarios no registrados [PHP]
add_action( 'template_redirect', function() {
if ( ! is_user_logged_in() && in_array( hivepress()->router->get_current_route_name(), [ 'listing_view_page', 'listings_view_page' ] ) ) {
wp_safe_redirect( hivepress()->router->get_return_url( 'user_login_page' ) );
exit;
}
} );
Este fragmento protege todo el contenido de anuncios: tanto los listados como las páginas individuales.
- Qué hace:
Redirige a la página de login si un visitante no registrado intenta acceder a los anuncios. - Para qué sirve:
Perfecto para webs privadas, catálogos internos o sitios donde los anuncios solo se muestran a miembros registrados.
Un escudo simple pero eficaz si necesitas restringir contenido.
7. Hacer opcional el campo de descripción en los anuncios [PHP]
add_filter( 'hivepress/v1/models/listing', function( $form ) {
$form['fields']['description']['required'] = false;
return $form;
}, 1000 );
Por defecto, HivePress obliga a añadir una descripción en los anuncios. Con este snippet puedes eliminar esa obligación.
- Qué hace:
Desactiva la validación que hace obligatorio completar el campo “descripción” al publicar un anuncio. - Para qué sirve:
Ideal para webs donde se publican anuncios muy breves o cuando el título ya es suficientemente descriptivo.
Eso sí, asegúrate de que el contenido no pierda valor si no se incluye ese texto.
8. Obligar a subir al menos una imagen en solicitudes [PHP]
add_filter( 'hivepress/v1/forms/request_update/errors', function( $errors, $form ) {
$request = $form->get_model();
if ( $request && ! $request->get_images__id() ) {
$errors[] = 'Por favor, sube al menos una imagen.';
}
return $errors;
}, 1000 );
Las solicitudes (requests) pueden enviarse sin imagen. Pero en ciertos contextos, es mejor forzar al usuario a añadir al menos una.
- Qué hace:
Valida el formulario de solicitud y lanza un error si el usuario no ha subido ninguna imagen. - Para qué sirve:
Mejora la calidad del contenido, sobre todo si necesitas que la solicitud sea visual para que otros puedan entenderla.
Muy útil en webs de diseño, reparaciones, reformas o proyectos visuales.
9. Cambiar la posición del bloque del vendedor en el anuncio [PHP]
add_filter( 'hivepress/v1/templates/listing_view_page', function( $template ) {
return hivepress()->helper->merge_trees( $template, [
'blocks' => [
'listing_vendor' => [ '_order' => 123 ],
],
] );
} );
En la página del anuncio, el bloque del proveedor puede aparecer al final o en medio. Con esto puedes moverlo donde quieras.
- Qué hace:
Reordena el bloque que muestra la información del vendedor dentro del anuncio. - Para qué sirve:
Tienes control total sobre el orden visual. Puedes poner la info del proveedor justo al principio, al final o donde prefieras.
Solo necesitas cambiar el número _order para ajustar su prioridad.
10. Ocultar el icono de “Enviar mensaje” en los anuncios [CSS]
.hp-listing--view-block .hp-listing__action--message {
display: none;
}
Si no usas el sistema de mensajería o prefieres evitar contactos directos, puedes ocultar ese icono.
- Qué hace:
Elimina el icono de “mensaje” en la vista en bloques de los anuncios, aunque el sistema siga activo. - Para qué sirve:
Evita que los usuarios inicien chats innecesarios o fuerces que se contacten solo por otros medios (teléfono, email externo, etc.).
Ideal para sitios donde el contacto se realiza por canales fuera de la plataforma.
Conclusión
Este volumen te da herramientas clave para controlar quién accede a qué, cómo se ve cada bloque, y qué tipo de interacción quieres permitir. Combina ajustes funcionales con personalizaciones visuales para seguir llevando tu web al siguiente nivel.
Como siempre, recuerda probar cada cambio antes en un entorno seguro y aplicar solo lo que encaje con tu tipo de proyecto. Nos vemos en el Volumen 6 con más snippets útiles y bien explicados.
¿Quieres ver todos los temas y addons oficiales de HivePress?
En su web encontrarás todos los recursos para montar un marketplace o directorio profesional en WordPress: plugins, temas y extensiones desarrolladas por el propio equipo.
📥 Ver todo en HivePress.ioEste es un enlace de afiliado. A ti no te costará nada extra, pero HivePress puede pagarme una pequeña comisión por recomendarlos. Esto ayuda a que pluginsweb.es siga creando contenido gratuito y útil. ¡Gracias por tu apoyo!




¿Tienes alguna duda sobre HivePress y sus temas? Déjala en los comentarios.