Forked from claudiosanches/custom-my-account-endpoint.php
Created
June 4, 2022 03:27
Revisions
-
claudiosanches revised this gist
Apr 1, 2021 . 1 changed file with 4 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -14,7 +14,7 @@ class My_Custom_My_Account_Endpoint { public function __construct() { // Actions used to insert a new endpoint in the WordPress. add_action( 'init', array( $this, 'add_endpoints' ) ); add_filter( 'woocommerce_get_query_vars', array( $this, 'get_query_vars' ), 0 ); // Change the My Accout page title. add_filter( 'the_title', array( $this, 'endpoint_title' ) ); @@ -39,8 +39,8 @@ public function add_endpoints() { * @param array $vars * @return array */ public function get_query_vars( $vars ) { $vars[ self::$endpoint ] = self::$endpoint; return $vars; } @@ -91,6 +91,7 @@ public function new_menu_items( $items ) { */ public function endpoint_content() { echo '<p>Hello World!</p>'; // You can load a template here with wc_get_template( 'myaccount/my-custom-endpoint.php' ); } /** -
claudiosanches revised this gist
Jun 8, 2016 . 1 changed file with 1 addition and 9 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -90,15 +90,7 @@ public function new_menu_items( $items ) { * Endpoint HTML content. */ public function endpoint_content() { echo '<p>Hello World!</p>'; } /** -
claudiosanches created this gist
Apr 20, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,116 @@ <?php class My_Custom_My_Account_Endpoint { /** * Custom endpoint name. * * @var string */ public static $endpoint = 'my-custom-endpoint'; /** * Plugin actions. */ public function __construct() { // Actions used to insert a new endpoint in the WordPress. add_action( 'init', array( $this, 'add_endpoints' ) ); add_filter( 'query_vars', array( $this, 'add_query_vars' ), 0 ); // Change the My Accout page title. add_filter( 'the_title', array( $this, 'endpoint_title' ) ); // Insering your new tab/page into the My 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 to use inside My 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 Custom Endpoint', 'woocommerce' ); remove_filter( 'the_title', array( $this, 'endpoint_title' ) ); } return $title; } /** * Insert the new endpoint into the My Account menu. * * @param array $items * @return array */ public function new_menu_items( $items ) { // Remove the logout menu item. $logout = $items['customer-logout']; unset( $items['customer-logout'] ); // Insert your custom endpoint. $items[ self::$endpoint ] = __( 'My Custom Endpoint', 'woocommerce' ); // Insert back the logout item. $items['customer-logout'] = $logout; return $items; } /** * Endpoint HTML content. */ public function endpoint_content() { wc_get_template( 'myaccount/navigation.php' ); ?> <div class="woocommerce-MyAccount-content"> <p>Hello World!</p> </div> <?php } /** * Plugin install action. * Flush rewrite rules to make our custom endpoint available. */ public static function install() { flush_rewrite_rules(); } } new My_Custom_My_Account_Endpoint(); // Flush rewrite rules on plugin activation. register_activation_hook( __FILE__, array( 'My_Custom_My_Account_Endpoint', 'install' ) );