Maison > Questions et réponses > le corps du texte
P粉7258276862023-08-28 21:32:12
Vous pouvez le faire des deux manières suivantes :
Mettre une valeur nulle dans les paramètres d'arrière-plan
Accédez à WooCommerce > Paramètres > Avancé et dans la zone de saisie du point de terminaison du compte, vous pouvez supprimer la valeur du point de terminaison spécifique et enregistrer la valeur vide.
De cette façon, vous ne verrez pas la page du point de terminaison ou l'élément de menu sur la page du compte. Si vous visitez cette URL, vous verrez la page d'accueil sur l'URL que vous visitez.
Variable de requête non définie
Vous pouvez utiliser des hooks de filtre pour supprimer les variables de requête.
https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/includes/class-wc-query.php#L85
En ligne 85
vous pouvez trouver la fonction avec toutes les variables de requête.
https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/includes/class-wc-query.php#L232
Et à la ligne 232, vous pouvez trouver la fonction qui obtient les variables de requête, qui possède également des filtres. Vous pouvez utiliser un filtre et supprimer les points de terminaison requis.
Si vous utilisez cette méthode, vous devrez également supprimer l'élément de l'élément du menu de navigation et vous devrez également réenregistrer les paramètres du lien permanent.
Ensuite, si vous visitez l'URL de ce point de terminaison, vous verrez la page d'accueil à l'URL que vous visitez.
Dans les deux cas, vous ne verrez pas de page 404.
P粉2176290092023-08-28 15:42:08
La réponse est : Oui, il y en a ! Mon crochet était mal écrit. J'utilise maintenant les hooks wp. Est-ce légal ?
function redirect_forbidden_access(){ $current_endpoint = WC()->query->get_current_endpoint(); if($current_endpoint == "payment-methods" || $current_endpoint == "add-payment-method" || $current_endpoint == "edit-payment-method" || $current_endpoint == "[custom-endpoint]") { wp_redirect(wc_get_account_endpoint_url('dashboard')); } } add_action('wp', 'redirect_forbidden_access');
C'est la solution.