Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if ( ! function_exists( 'jnews_filter_my_account_menu' ) ) {
- /**
- * Add New or Filter the Menu on My Account element
- *
- * @param mixed $dropdown
- * @return array
- */
- function jnews_filter_my_account_menu( $dropdown ) {
- /**
- * Please add the new menu in this variable
- */
- $new_items = array(
- 'custom-menu' => array(
- 'after' => 'order',
- 'item' => array(
- 'text' => esc_html__( 'Custom Menu', 'jnews-child' ),
- 'url' => esc_url( 'https://www.jegtheme.com/' ),
- ),
- ),
- // Example additional item:
- 'another-menu' => array(
- // 'after' => 'edit-account',
- 'item' => array(
- 'text' => esc_html__( 'Another', 'jnews-child' ),
- 'url' => esc_url( 'https://example.com/' ),
- ),
- ),
- );
- $result = array();
- $inserted_keys = array();
- foreach ( $dropdown as $key => $value ) {
- $result[ $key ] = $value;
- // Check for any new items that should be inserted after this key
- foreach ( $new_items as $new_key => $spec ) {
- if ( isset( $spec['after'] ) && $spec['after'] === $key && ! in_array( $new_key, $inserted_keys, true ) ) {
- $result[ $new_key ] = $spec['item'];
- $inserted_keys[] = $new_key;
- }
- }
- }
- // Append any new items that weren't inserted (fallback)
- foreach ( $new_items as $new_key => $spec ) {
- if ( ! in_array( $new_key, $inserted_keys, true ) ) {
- $result[ $new_key ] = $spec['item'];
- }
- }
- return $result;
- }
- add_filter( 'jnews_dropdown_link', 'jnews_filter_my_account_menu', 99 );
- }
Advertisement
Add Comment
Please, Sign In to add comment