WooCommerce: asigne puntos finales a varias plantillas personalizadas en la página de mi cuenta

4 minutos de lectura

avatar de usuario
mesumosu

Estoy tratando de agregar 2 puntos finales y asociarlos con dos plantillas personalizadas.
'my-server' -> 'Servers' y 'my-affiliate -> 'Affiliate'.

También he creado dos plantillas personalizadas:

  • mi-servidor.php
  • mi-afiliado.php

Ambos están ubicados en mi theme > woocommerce > myaccount carpeta. La página de afiliado apunta correctamente a url/micuenta/mi-afiliado.

Pero mi problema es que los servidores están dando el error “404 página no encontrada”.

He intentado usar la solución en este hilo:
Asignar un punto final a una plantilla personalizada en las páginas de mi cuenta
Idealmente, debería haber solicitado esto como un comentario, pero no tengo suficiente reputación para comentar.. La resolución de DarioFerrer funciona muy bien para un solo punto final y una sola plantilla personalizada.

En mi caso, no puedo encontrar la solución para 2 o más puntos finales:

  • ¿Cómo incluir más de 2 puntos finales?
  • ¿Cómo asignar cada uno de ellos a plantillas personalizadas?.

Cualquier ayuda será apreciada.

Este es mi código 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' );

Estoy usando WordPress 4.5.3 con Woocommerce 2.6.2 en Theme Cardinal (Tema premium de Swiftideas).
Estoy ejecutando este sitio web en WAMP/localhost.
No estoy usando ningún complemento afiliado. He creado ambas plantillas personalizadas con algo de contenido HTML general. La pestaña de afiliados actualmente no tiene ningún contenido relacionado con afiliados, solo html para que yo lo use una vez que todo esté configurado.

Referencias:

  • Deberías publicar lo que has probado hasta ahora.

    – helgathevikingo

    8 de julio de 2016 a las 12:29

  • @LoicTheAztec gracias, para darles a todos un trasfondo, no sé nada de php, hice todo lo posible para resolver esto. Quiero agregar 2 puntos finales personalizados: mi servidor y mi afiliado. mi afiliado funciona bien, pero mi servidor muestra una página de error 404. He editado mi pregunta para agregar lo que he intentado hasta ahora.

    – mesumosu

    8 de julio de 2016 a las 16:29


  • @LoicTheAztec, ¡muchas gracias por los ánimos!

    – mesumosu

    8 de julio de 2016 a las 17:07

  • Vuelva a guardar sus enlaces permanentes. Es una apuesta segura volver a guardar sus enlaces permanentes cada vez que tenga 404. No puede doler y resuelve muchos problemas. Presumiblemente, agregó el segundo punto final después de cambiar de tema porque una vez que creé algunas plantillas falsas en la carpeta de woocommerce, su código funcionó bien para mí. Nota al margen, por favor no ponga este tipo de funcionalidad en un tema. Sería mejor en un complemento y luego puede eliminar los enlaces permanentes en la activación/desactivación.

    – helgathevikingo

    08/07/2016 a las 18:43

  • @helgatheviking, muchas gracias!!! eres genial!! uwr en el clavo, el problema se resolvió. Volver a guardar los enlaces permanentes lo hizo. ¡Uf! pasó horas en eso, ¿puede sugerir qué hacer ahora, con la pregunta?

    – mesumosu

    08/07/2016 a las 19:54

avatar de usuario
helgatheviking

Vuelva a guardar sus enlaces permanentes.

Cada vez que tenga 404es una apuesta segura para Vuelva a guardar sus enlaces permanentes. No puede doler y resuelve muchos problemas. Presumiblemente, agregó el segundo punto final después de cambiar de tema porque una vez que creé algunas plantillas falsas en la carpeta de woocommerce, su código funcionó bien para mí.

Nota al margen

Por favor, no ponga este tipo de funcionalidad en un tema.
Sería mejor en un complemento. y luego puedes vaciar los enlaces permanentes en la activación/desactivación.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad