2016-07-08 4 views
2

Ich versuche, 2 Endpunkte hinzuzufügen und sie mit zwei benutzerdefinierten Vorlagen zu verknüpfen. 'my-server' -> 'Servers' und 'my-affiliate -> 'Affiliate'.WooCommerce - Zuweisen von Endpunkten zu mehreren benutzerdefinierten Vorlagen auf meiner Konto-Seite

Ich habe auch zwei benutzerdefinierte Vorlagen erstellt:

  • my-server.php
  • my-affiliate.php

Beide in meinem theme > woocommerce > myaccount Ordner befinden. Affiliate-Seite zeigt korrekt auf url/myaccount/my-affiliate.

Aber mein Problem ist, dass Server "404 Seite nicht gefunden" Fehler gibt.

Ich habe versucht, die Lösung in diesem Thread zu verwenden:
Assigning an endpoint to a custom template in my account pages
Idealerweise sollte ich dies als einen Kommentar gebeten haben, aber ich habe einen Kommentar nicht ausreichend Ruf. DarioFerrer Die Auflösung eignet sich hervorragend für einen einzelnen Endpunkt und eine einzelne benutzerdefinierte Vorlage.

In meinem Fall kann ich nicht die Lösung für 2 oder mehr Endpunkte herauszufinden:

  • Wie mehr als 2 Endpunkte umfassen?
  • Wie Sie jede von ihnen zu benutzerdefinierten Vorlagen zuweisen ?.

Jede Hilfe wird sehr geschätzt.

Das ist mein functions.php Code:

function my_custom_endpoints() { 
    add_rewrite_endpoint('my-server', EP_ROOT | EP_PAGES); 
    add_rewrite_endpoint('my-affiliate', EP_ROOT | EP_PAGES); 
} 
add_action('init', 'my_custom_endpoints'); 

function my_custom_query_vars($vars) { 
    $vars[]= 'my-server'; 
    $vars[] = 'my-affiliate'; 
    return $vars; 
} 

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

function my_custom_my_account_menu_items($items) { 
    $items = array(
     'dashboard'   => __('Dashboard', 'woocommerce'), 
     'my-server'   => __('Servers', 'woocommerce'), 
     'orders'   => __('Orders', 'woocommerce'), 
     //'downloads'  => __('Downloads', 'woocommerce'), 
     //'edit-address' => __('Addresses', 'woocommerce'), 
     //'payment-methods' => __('Payment Methods', 'woocommerce'), 
     'edit-account'  => __('Edit Accounts', 'woocommerce'), 
     'my-affiliate'  => __('Affiliate', 'woocommerce'), 
     'customer-logout' => __('Logout', 'woocommerce'), 
    ); 

    return $items; 
} 

add_filter('woocommerce_account_menu_items', 'my_custom_my_account_menu_items'); 


function my_affiliate_endpoint_content() { 
    include 'woocommerce/myaccount/my-affiliate.php'; 
} 
add_action('woocommerce_account_my-affiliate_endpoint', 'my_affiliate_endpoint_content'); 

function my_server_endpoint_content() { 
    include 'woocommerce/myaccount/my-server.php'; 
} 
add_action('woocommerce_account_my-server_endpoint', 'my_server_endpoint_content'); 

function my_custom_flush_rewrite_rules() { 
    flush_rewrite_rules(); 
} 
add_action('after_switch_theme', 'my_custom_flush_rewrite_rules'); 

Ich bin mit Wordpress 4.5.3 mit WooCommerce 2.6.2 über Thema Cardinal (Premium Thema von Swiftideas).
Ich betreibe diese Website auf WAMP/localhost.
Ich verwende keine Affiliate-Plugins. Ich habe sowohl die benutzerdefinierten Vorlagen mit einigen allgemeinen HTML-Inhalten erstellt. Affiliate Tab hat zur Zeit keinen Affiliate-bezogenen Inhalt, sondern nur HTML, damit ich es verwenden kann, sobald alles eingerichtet ist.

Referenzen:

+0

Sie sollten posten, was Sie bisher versucht haben. – helgatheviking

+0

@LoicTheAztec danke, um euch allen einen Hintergrund zu geben, kenne ich nichts von PHP, ich habe mein Bestes versucht, dies zu lösen. Ich möchte 2 benutzerdefinierte Endpunkte hinzufügen - my-server & my-affiliate. my-affiliate funktioniert gut, aber my-server gibt eine 404-Fehlerseite. Ich habe meine Frage bearbeitet, um hinzuzufügen, was ich bisher versucht habe. – mesumosu

+0

@LoicTheAztec, vielen Dank für die Ermutigung! – mesumosu

Antwort

2

Ihre Permalinks-Re speichern.

Jedes Mal, wenn 404s haben, es ist eine sichere Wette zu Wieder speichern Sie Ihre Permalinks. Es kann nicht weh tun und löst viele Probleme.Vermutlich haben Sie nach dem Wechseln der Designs den zweiten Endpunkt hinzugefügt, denn nachdem ich einige gefälschte Vorlagen im Woocommerce-Ordner erstellt hatte, funktionierte Ihr Code für mich einwandfrei.

Nebenbei bemerkt

Bitte setzen Sie diese Art von Funktionalität nicht in einem Thema.
Es wäre besser in einem Plugin und dann können Sie die Permalinks bei Aktivierung/Deaktivierung spülen.

Verwandte Themen