web-dev-qa-db-fra.com

Woocommerce My Account Endpoint - comment obtenir le paramètre ID à partir d’une URL?

J'utilise WooCommerce v3.2.6 et WordPress 4.9.1. J'ai ajouté un noeud final à la zone Mon compte WooCommerce (view-subscription):

function my_custom_endpoints() {
    add_rewrite_endpoint( 'view-subscription', EP_ROOT | EP_PAGES );
}

add_action( 'init', 'my_custom_endpoints' );

function my_custom_query_vars( $vars ) {
    $vars[] = 'view-subscription';
    return $vars;
}

add_filter( 'query_vars', 'my_custom_query_vars', 0 );

function view_subscription_endpoint_content() {
    include get_template_directory().'/woocommerce/myaccount/view-subscription.php'; 
}

add_action( 'woocommerce_account_view-subscription_endpoint', 'view_subscription_endpoint_content' );

Le noeud final fonctionne, mais je souhaite pouvoir transmettre l'ID d'un abonnement (un type de publication) au noeud final (de la même manière que fonctionne l'ordre d'affichage). Comment puis-je faire ceci?

par exemple.

myaccount/view-order/21313 - Displays details of order #21313
myaccount/view-subscription/35464 - I want this to display the details of the subscription post #35464.

Si je vais à l'URL ci-dessus myaccount/view-subscription/35464, le modèle view-subscription.php est toujours en cours de chargement, mais quel est le meilleur moyen d'accéder à l'ID 35464 à partir de l'URL?

3
Sarah

J'espère que ce n'est pas trop tard, mais je sais que cela aidera quelqu'un d'autre.

echo get_query_var('your-endpoint');

Donc, pour votre code, ce sera:

echo get_query_var('view-subscription');

2
Guhéry Rocourt