create menu on my account page in woocommerce.
/* my account add code */
function my_albumspoints() {
add_rewrite_endpoint( 'my-albums', EP_ROOT | EP_PAGES );
}
add_action( 'init', 'my_albumspoints' );
/**
* Add new query var.
*
* @param array $vars
* @return array
*/
function my_custom_query_vars( $vars ) {
$vars[] = 'my-albums';
return $vars;
}
add_filter( 'query_vars', 'my_custom_query_vars', 0 );
function my_custom_flush_rewrite_rules() {
add_rewrite_endpoint( 'my-albums', EP_ROOT | EP_PAGES );
flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'my_custom_flush_rewrite_rules' );
function my_custom_insert_after_helper( $items, $new_items, $after ) {
// Search for the item position and +1 since is after the selected item key.
$position = array_search( $after, array_keys( $items ) ) + 0;
// Insert the new item.
$array = array_slice( $items, 0, $position, true );
$array += $new_items;
$array += array_slice( $items, $position, count( $items ) - $position, true );
return $array;
}
/* My Albums in My Account */
function my_custom_my_account_menu_items( $items ) {
$new_items = array();
$new_items['my-albums'] = __( 'My Albums', 'woocommerce' );
// Add the new item after `orders`.
return my_custom_insert_after_helper( $items, $new_items, 'orders' );
}
add_filter( 'woocommerce_account_menu_items', 'my_custom_my_account_menu_items' );
function my_albumspoint_content() {
echo do_shortcode('[total-albums]');
}
add_action( 'woocommerce_account_my-albums_endpoint', 'my_albumspoint_content' );
function my_albumspoint_title( $title ) {
global $wp_query;
$is_endpoint = isset( $wp_query->query_vars['my-albums'] );
if ( $is_endpoint && ! is_admin() && is_main_query() && in_the_loop() && is_account_page() ) {
// New page title.
$title = __( 'My Albums', 'woocommerce' );
remove_filter( 'the_title', 'my_albumspoint_title' );
}
return $title;
}
add_filter( 'the_title', 'my_albumspoint_title' );
Comments
Post a Comment