MemberPress dispose d'un redirection non autorisée qui redirige automatiquement les tout utilisateur non autorisé à l'URL que vous avez spécifié dans les paramètres de MemberPress.
Si vous devez utiliser plusieurs URL de redirection, vous devrez utiliser un extrait de code personnalisé, car cette option n'est pas disponible par défaut.
Ce document vous fournira le code personnalisé et vous expliquera comment l'utiliser pour définir différentes URL de redirection non autorisées pour des règles MemberPress spécifiques.
Comment faire ?
L'ajout de l'extrait de code de ce document créera des exceptions à vos paramètres d'URL de redirection non autorisée.
En d'autres termes, chaque redirection basée sur une règle définie à l'aide de cet extrait de code créera une exclusion de votre URL de redirection globale non autorisée. Cette URL de redirection globale sera utilisée pour tous les contenus protégés par d'autres règles.
Pour ajouter une URL de redirection à une règle basée sur l'ID de la règle, vous devez ajouter le code de filtrage suivant :
// Ajouter une redirection non autorisée basée sur l'ID de la règle 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 );
Le code ci-dessus est un exemple qui doit être adapté à vos besoins. Plus loin, nous expliquerons comment vous pouvez modifier le code.
Une fois modifié, vous pouvez ajouter l'extrait de code à votre site web dans la section functions.php de votre thème enfant. Vous pouvez également utiliser l'option WPCode plugin. Veuillez consulter le document suivant pour obtenir des instructions pas à pas sur la façon de procéder. Comment ajouter des extraits de code personnalisés dans WPCode.
Définir la redirection pour chaque règle
Pour que ce code fonctionne sur votre site, vous devez ajouter une instruction IF à partir de l'exemple de code pour chaque redirection de client dont vous avez besoin.
Pour illustrer ce propos, l'instruction IF suivante redirigera tout utilisateur non autorisé vers l'application https://yourdomain.com/register/membership-1/ s'ils essaient de visiter un contenu protégé par la règle dont l'ID est 101 :
if ( in_array( 101, $rule_ids ) ) { $redirect_url = 'https://yourdomain.com/register/membership-1/' ;
L'instruction IF suivante dans l'exemple de code fait de même pour le contenu protégé par la règle portant l'ID 201, en redirigeant les utilisateurs vers une URL différente (https://yourdomain.com/register/membership-2/).
Par conséquent, vous devez copier cette instruction IF et l'adapter à chaque règle pour laquelle vous avez besoin d'une redirection non globale. Dans chaque instruction IF, vous devez adapter les données suivantes :
- ID de la règle:
si ( in_array( 101, $rule_ids ) ) {
- URL vers laquelle les utilisateurs seront redirigés:
$redirect_url = 'https://yourdomain.com/register/membership-1/';
Pour trouver les identifiants des règles, veuillez vous rendre à l'adresse suivante Tableau de bord > MemberPress > Règles. You will find the ID of each rule in the “ID” column. The redirection URL can be any URL from your site or external URL.
Aide ?
Cela ne fonctionne pas comme vous le pensez, même après avoir suivi les instructions de la vidéo ? N'hésitez pas à nous envoyer un
Ticket d'assistance!