web-dev-qa-db-fra.com

Ajouter un point de terminaison de sous-page dans woocommerce

J'ai déjà ajouté un nouveau terminal sur la page de mon compte, "mon-compte/mon-nouveau-terminal".

Je voudrais ajouter un point de terminaison de sous-page comme "mon-compte/mon-nouveau-point de terminaison/nouveau-sous-point de terminaison"

Je ne trouve aucune information sur la manière de le faire.

Je spécifie les points d'extrémité comme suit:

$endpoint = 'my-new-endpoint';
$endpointsub = 'my-new-endpoint/new-subendpoint';

Cela ne fonctionne pas, il charge le contenu du premier point de terminaison.

Si je le change en $endpointsub = 'new-subendpoint'; cela fonctionne mais l'url devient "mon-compte/nouveau-sous-point"

Existe-t-il un moyen spécifique de créer un point de terminaison page/sous-page tel que: "mon-compte/mon-nouveau-noeud final/nouveau-sous-noeud final"?

Je vous remercie.

MODIFIER:

C'est la fonction add endpoint:

function add_endpoints() {
        add_rewrite_endpoint( self::$endpoint, EP_ROOT | EP_PAGES );
        add_rewrite_endpoint( self::$endpointsub, EP_ROOT | EP_PAGES );
    }
1
Damir Gasparlin

Grâce à @mmm et à son commentaire définissant $ endpointsub avant $ endpoint, cela a fonctionné. Je ne sais pas pourquoi c'est mais cela l'a résolu.

Alors changez l'ordre des points finaux:

$endpointsub = 'my-new-endpoint/new-subendpoint';
$endpoint = 'my-new-endpoint';

add_rewrite_endpoint( self::$endpointsub, EP_ROOT | EP_PAGES );
add_rewrite_endpoint( self::$endpoint, EP_ROOT | EP_PAGES );

add_query_vars( $vars ) {
        $vars[] = self::$endpointsub;
        $vars[] = self::$endpoint;

        return $vars;
    }
1
Damir Gasparlin