HEX
Server: Apache
System: Linux 244.240.109.208.host.secureserver.net 5.14.0-611.11.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Dec 3 09:47:37 EST 2025 x86_64
User: icsla (1002)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/icsla/public_html/wp-content/plugins/megamenu/integration/bricks/location/element.php
<?php
/**
 * Bricks Builder element for rendering a Max Mega Menu location.
 *
 * @since   3.10
 * @package megamenu
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class MaxMegaMenu_Bricks_Location extends \Bricks\Element {

	public $category     = 'general';
	public $name         = 'maxmegamenu-location';
	public $icon         = 'ti-layout-menu-full';
	public $css_selector = '.maxmegamenu-bricks-location';

	public function get_label() {
		return esc_html__( 'Max Mega Menu', 'megamenu' );
	}

	public function get_keywords() {
		return [ 'menu', 'navigation', 'mega menu', 'nav' ];
	}

	public function set_controls() {
		$registered_menus = get_registered_nav_menus();
		$options          = [ '' => esc_html__( 'Select a location', 'megamenu' ) ];

		foreach ( $registered_menus as $slug => $label ) {
			$options[ $slug ] = $label;
		}

		$this->controls['location'] = [
			'tab'       => 'content',
			'label'     => esc_html__( 'Menu Location', 'megamenu' ),
			'type'      => 'select',
			'options'   => $options,
			'clearable' => false,
			'default'   => '',
		];
	}

	public function render() {
		$location = ! empty( $this->settings['location'] )
			? sanitize_key( (string) $this->settings['location'] )
			: '';

		if ( ! $location ) {
			echo '<p class="maxmegamenu-bricks-placeholder">'
				. esc_html__( 'Select a menu location in the element settings.', 'megamenu' )
				. '</p>';
			return;
		}

		$menu_html = wp_nav_menu( [ 'theme_location' => $location, 'echo' => false ] );

		if ( ! $menu_html ) {
			echo '<p class="maxmegamenu-bricks-placeholder">'
				. esc_html__( 'No menu assigned to this location.', 'megamenu' )
				. '</p>';
			return;
		}

		echo $menu_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}
}