Я пытаюсь добавить 2 конечные точки и связать их с двумя пользовательскими шаблонами.
'my-server' -> 'Servers'
а также 'my-affiliate -> 'Affiliate'
,
Я также создал два пользовательских шаблона:
Оба они находятся в моем theme > woocommerce > myaccount
папка. Партнерская страница правильно указывает на URL / MyAccount / мой-филиал.
Но моя проблема в том, что серверы выдают ошибку «404 страница не найдена».
Я попытался использовать решение в этой теме:
Назначение конечной точки пользовательскому шаблону на страницах моей учетной записи
В идеале я должен был попросить это как комментарий, но у меня недостаточно репутации, чтобы комментировать. DarioFerrer Разрешение отлично работает для одной конечной точки и одного пользовательского шаблона.
В моем случае я не могу найти решение для двух или более конечных точек:
Любая помощь будет оценена.
Это мой код functions.php:
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' );
Я использую WordPress 4.5.3 с Woocommerce 2.6.2 на тему кардинал (Премиум тема от Swiftideas).
Я использую этот сайт на WAMP / localhost.
Я не использую никаких партнерских плагинов. Я создал оба пользовательских шаблона с некоторым общим содержанием HTML. Партнерская вкладка в настоящее время не имеет какого-либо содержания, связанного с Партнером, только HTML, чтобы я мог ее использовать, когда все настроено.
Рекомендации:
Повторно сохраните ваши постоянные ссылки.
В любое время у вас есть 404, Это безопасная ставка на повторно сохранить ваши постоянные ссылки. Это не может повредить и решает много проблем. Предположительно, вы добавили 2-ую конечную точку после переключения тем, потому что, как только я создал несколько поддельных шаблонов в папке woocommerce, ваш код работал нормально для меня.
Примечание
Пожалуйста, не помещайте такую функциональность в тему.
Было бы лучше в плагине и тогда вы можете очистить постоянные ссылки на активацию / деактивацию.
Других решений пока нет …