php - WooCommerce 2.6 Custom Endpoint 404 Not Found Error -


it seems version 2.6 woocommerce have changed way endpoints , custom profile tabs made. more infor here https://woocommerce.wordpress.com/2016/04/21/tabbed-my-account-pages-in-2-6/ , and https://github.com/woothemes/woocommerce/wiki/2.6-tabbed-my-account-page

my code bellow similar 1 in these links clicking on new profile tab keeps showing 404 not found error. tried permalinks refresh , flush_rewrite_rules() othing seems work....

if ( !class_exists('my_wc_user_company') ) {     class my_wc_user_company {          /**          * custom endpoint name.          *          * @var string          */         public static $endpoint = 'my-company';          /**          * plugin actions.          */         public function __construct() {             // actions used insert new endpoint in wordpress.             add_action( 'init', array( $this, 'add_endpoints' ) );             add_filter( 'query_vars', array( $this, 'add_query_vars' ), 0 );              // change accout page title.             add_filter( 'the_title', array( $this, 'endpoint_title' ) );              // insering new tab/page account page.             add_filter( 'woocommerce_account_menu_items', array( $this, 'new_menu_items' ) );             add_action( 'woocommerce_account_' . self::$endpoint .  '_endpoint', array( $this, 'endpoint_content' ) );         }          /**          * register new endpoint use inside account page.          *          * @see https://developer.wordpress.org/reference/functions/add_rewrite_endpoint/          */         public function add_endpoints() {             add_rewrite_endpoint( self::$endpoint, ep_root | ep_pages );         }          /**          * add new query var.          *          * @param array $vars          * @return array          */         public function add_query_vars( $vars ) {             $vars[] = self::$endpoint;              return $vars;         }          /**          * set endpoint title.          *          * @param string $title          * @return string          */         public function endpoint_title( $title ) {             global $wp_query;              $is_endpoint = isset( $wp_query->query_vars[ self::$endpoint ] );              if ( $is_endpoint && ! is_admin() && is_main_query() && in_the_loop() && is_account_page() ) {                 // new page title.                 $title = __( 'my company', 'domain' );                  remove_filter( 'the_title', array( $this, 'endpoint_title' ) );             }              return $title;         }          /**          * insert new endpoint account menu.          *          * @param array $items          * @return array          */         public function new_menu_items( $items ) {             // remove logout menu item.             $logout = $items['customer-logout'];             unset( $items['customer-logout'] );              // insert custom endpoint.             $items[ self::$endpoint ] = __( 'my company', 'domain' );              // insert logout item.             $items['customer-logout'] = $logout;              return $items;         }          /**          * endpoint html content.          */         public function endpoint_content() {              ob_start();              // here content ?>              <?php              $output = ob_get_clean();             echo $output;         }      } }   add_action('init', '_action_ssd_wp_user_company_init');  if( !( function_exists('_action_ssd_wp_user_company_init')) ){     function _action_ssd_wp_user_company_init(){         if (  get_current_user_id() && get_user_meta( get_current_user_id(), 'user_company', true ) == 'yes' ) {             new my_wc_user_company();         }     } } 

does have ideas couldbe issue?

there's wrong hook... wrong timings...

these works... 0 priority or using woocommerce_init
add_action('init', '_action_ssd_wp_user_company_init', 0 ); or add_action('woocommerce_init', '_action_ssd_wp_user_company_init');

instead of add_action('init', '_action_ssd_wp_user_company_init');

you need refresh permalink settings work.


Comments

Popular posts from this blog

Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project.Error occurred in starting fork -

windows - Debug iNetMgr.exe unhandle exception System.Management.Automation.CmdletInvocationException -

android - CoordinatorLayout, FAB and container layout conflict -