• I’m trying to create a custom page in My Account section of Woocommerce, but when I open this page I get 404 (Page not found). I tried to re-save (refresh) the permalinks in Settings -> Permalinks, but nothing changes (again 404 – Page not found). I’m using this permalink type “https://mywebsite.com/sample-post/”. When I change the permalink type to “https://mywebsite.com/?p=123” it is working and the page shows. Can somebody tell me where is the problem and why it’s working with “Plain” permalinks, but it’s not working with “Post name” permalinks ? Here is my code snippet:

    // 1. Register new endpoint to use for My Account page
    // Note: Resave Permalinks or it will give 404 error
      
    function bbloomer_add_premium_support_endpoint() {
        add_rewrite_endpoint( 'premium-support', EP_ROOT | EP_PAGES );
    }
      
    add_action( 'init', 'bbloomer_add_premium_support_endpoint' );
      
      
    // ------------------
    // 2. Add new query var
      
    function bbloomer_premium_support_query_vars( $vars ) {
        $vars[] = 'premium-support';
        return $vars;
    }
      
    add_filter( 'query_vars', 'bbloomer_premium_support_query_vars', 0 );
      
      
    // ------------------
    // 3. Insert the new endpoint into the My Account menu
      
    function bbloomer_add_premium_support_link_my_account( $items ) {
        $items['premium-support'] = 'Premium Support';
        return $items;
    }
      
    add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_premium_support_link_my_account' );
      
      
    // ------------------
    // 4. Add content to the new endpoint
      
    function bbloomer_premium_support_content() {
    echo '<h3>Premium WooCommerce Support</h3><p>Welcome to the WooCommerce support area. As a premium customer, you can submit a ticket should you have any WooCommerce issues with your website, snippets or customization. <i>Please contact your theme/plugin developer for theme/plugin-related support.</i></p>';
    echo do_shortcode( ' /* your shortcode here */ ' );
    }
      
    add_action( 'woocommerce_account_premium-support_endpoint', 'bbloomer_premium_support_content' );
    // Note: add_action must follow 'woocommerce_account_{your-endpoint-slug}_endpoint' format
Viewing 1 replies (of 1 total)
  • Plugin Author Shea Bunge

    (@bungeshea)

    It’s likely something to do with where you are adding the endpoint. I’m not too familiar with how this sort of linking in with WooCommerce works, but I’d try removing EP_ROOT from this line:

    add_rewrite_endpoint( 'premium-support', EP_PAGES );

Viewing 1 replies (of 1 total)

The topic ‘Custom Snippet returns 404’ is closed to new replies.