MemberPress tiene un redireccionamiento no autorizado que redirige automáticamente cualquier usuario no autorizado a la URL especificada en la configuración de MemberPress.
Si necesita utilizar varias URL de redirección, deberá utilizar un fragmento de código personalizado, ya que esta opción no está disponible por defecto.
Este documento le proporcionará el código personalizado y le explicará cómo puede utilizarlo para establecer diferentes URL de redireccionamiento no autorizadas para reglas MemberPress específicas.
¿Cómo hacerlo?
Al añadir el fragmento de código de este documento se crearán excepciones a la configuración de URL de redireccionamiento no autorizadas.
Es decir, cada redirección basada en reglas establecida con este fragmento de código creará una exclusión de su URL de redirección global no autorizada. Esta URL de redirección global se utilizará para todos los contenidos protegidos por otras reglas.
Para añadir una URL de redirección a una regla basada en el ID de la regla, tendría que añadir el siguiente código de filtro:
// Añadir redirección no autorizada basada en el ID de la regla MemberPress
add_filter( 'mepr-rule-redirect-unauthorized-url', function ( $redirect_url, $delim, $uri ) {
global $post;
if ( $post ) {
$rules = MeprRule::get_rules( $post );
if ( !empty( $rules ) ) {
$rule_ids = array_column($rules, 'ID');
if ( in_array( 101, $rule_ids ) ) {
$redirect_url = 'https://yourdomain.com/register/membership-1/';
} else if ( in_array( 201, $rule_ids ) ) {
$redirect_url = 'https://yourdomain.com/register/membership-2/';
}
}
}
return $redirect_url;
}, 999, 3 );
El código anterior es un ejemplo que debe ajustarse a sus necesidades. Más adelante explicaremos cómo puedes modificar el código.
Una vez modificado, puede añadir el fragmento de código a su sitio web en la sección funciones.php de su tema hijo. Como alternativa, puede utilizar el archivo WPCode plugin. Consulte el siguiente documento para obtener instrucciones paso a paso sobre Cómo añadir fragmentos de código personalizados en WPCode.
Establecer redirección para cada regla
Para que este código funcione en su sitio, necesita añadir una sentencia IF del código de ejemplo para cada redirección de cliente que necesite.
A modo de ejemplo, la siguiente sentencia IF redirigirá a cualquier usuario no autorizado a la carpeta https://yourdomain.com/register/membership-1/ URL si intentan visitar cualquier contenido protegido por la regla con el ID de 101:
if ( in_array( 101, $rule_ids ) ) { $redirect_url = 'https://yourdomain.com/register/membership-1/';
La siguiente sentencia IF en el código de ejemplo hace lo mismo para el contenido protegido por la regla con el ID 201, redirigiendo a los usuarios a una URL diferente (https://yourdomain.com/register/membership-2/).
En consecuencia, debe copiar esta sentencia IF y ajustarla para cada regla para la que necesite una redirección no global. Dentro de cada sentencia IF, debe ajustar los siguientes datos:
- Regla ID:
if ( in_array( 101, $rule_ids ) ) {
- URL a la que se redirigirá a los usuarios:
$redirect_url = 'https://yourdomain.com/register/membership-1/';
Para encontrar los ID de las reglas, navegue hasta Panel de control > MemberPress > Normas. Encontrará el ID de cada regla en la columna "ID". La URL de redirección puede ser cualquier URL de su sitio o URL externa.
¿Ayuda?
¿No funciona como crees que debería incluso después de seguir las instrucciones del vídeo? No dudes en enviarnos un
Ticket de asistencia!