Si vous gérez plus d'un formulaire de commande de gros, un visiteur qui n'a pas accès à un formulaire voit votre texte Accès refusé avec un lien de connexion. Ce lien pointe toujours vers la même page, celle définie dans Capture de prospects de gros, quel que soit le formulaire sur lequel il se trouvait. Cet article vous montre comment envoyer les visiteurs vers une page de connexion différente par formulaire.
Prérequis
- Formulaire de commande de gros WooCommerce, avec au moins deux pages de formulaire de commande et des autorisations définies sur celles-ci.
- Capture de prospects de gros, qui fournit le paramètre de redirection de connexion que ce extrait remplace.
- Un endroit sûr pour ajouter du PHP : un thème enfant, un plugin spécifique au site ou un plugin d'extraits de code tel que WPCode.
Pourquoi le lien de connexion pointe toujours vers la même page
Chaque formulaire de commande a ses propres autorisations et son propre texte Accès refusé. L'URL de connexion derrière ce texte est un seul paramètre global, donc chaque formulaire envoie les visiteurs au même endroit.
Envoyer chaque formulaire vers sa propre page de connexion
Filtrez l'URL de connexion et renvoyez-en une différente en fonction de la page consultée. Ajoutez ceci au functions.php de votre thème enfant, à un plugin spécifique au site ou à un plugin d'extraits de code.
add_filter(
'option_wwof_permissions_noaccess_login_url',
function ( $url ) {
$page_id = get_queried_object_id();
if ( ! $page_id ) {
return $url;
}
// Replace 123 and 124 with your order form page IDs,
// and the URLs with the login page each one should use.
if ( 123 === $page_id ) {
return 'https://example.com/retailer-login/';
}
if ( 124 === $page_id ) {
return 'https://example.com/distributor-login/';
}
return $url;
}
);
Deux détails sont importants. Utilisez get_queried_object_id() plutôt que de lire la requête globale directement, car lors d'une requête sans page associée, comme une 404 ou un flux, l'ancienne forme $wp_query->post->ID génère une erreur fatale. Et retournez toujours $url à la fin, de sorte que toute page que vous n'avez pas listée conserve la page de connexion par défaut.
Trouver les identifiants de vos pages de formulaire de commande
- Accédez à Pages dans votre administration WordPress.
- Ouvrez la page qui contient le formulaire de commande.
- Lisez la valeur
postdans la barre d'adresse du navigateur. Danspost.php?post=123&action=edit, l'identifiant de la page est 123.
Questions fréquemment posées
Puis-je faire cela sans code ?
Non. L'URL de connexion est un paramètre global dans Capture de prospects de gros, donc l'envoi de différents formulaires vers différentes pages nécessite le filtre ci-dessus.
Que se passe-t-il sur une page que je n'ai pas listée ?
Elle utilise la page de connexion définie dans Capture de prospects de gros, car l'extrait renvoie la valeur d'origine pour tout ce qu'il ne correspond pas.
La redirection ne change pas. Que dois-je vérifier ?
Vérifiez d'abord l'identifiant de la page, car c'est la page qui contient le formulaire de commande, pas l'identifiant du formulaire. Confirmez ensuite que l'extrait est bien chargé, en l'ajoutant via un plugin d'extraits de code plutôt qu'un thème qui pourrait être inactif.
Cela change-t-il l'endroit où les clients vont après s'être connectés ?
Non. Cela ne change que la page de connexion vers laquelle pointe le texte Accès refusé. L'endroit où un client atterrit après s'être connecté est toujours le paramètre de Capture de prospects de gros.
Besoin d'aide ?
Si vous avez une question ou rencontrez des problèmes, nous sommes là pour vous aider.
- Utilisateurs premium : Ouvrir un ticket de support
- Utilisateurs gratuits : Visitez notre forum communautaire

