HEX
Server: LiteSpeed
System: Linux cpir1.prohostdns.com 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP Thu May 7 23:17:13 UTC 2026 x86_64
User: pelakir (2976)
PHP: 8.2.31
Disabled: exec, shell_exec, system, passthru, proc_open, proc_close, proc_terminate, proc_get_status, popen, pclose, pcntl_exec
Upload Files
File: /home/pelakir/www/wp-content/themes/woodmart/inc/modules/header-builder/class-header-factory.php
<?php

namespace XTS\Modules\Header_Builder;

/**
 * ------------------------------------------------------------------------------------------------
 * Wrapper for our header class instance. CRUD actions
 * ------------------------------------------------------------------------------------------------
 */
class Header_Factory {

	private $_elements = null;
	private $_list     = null;

	/**
	 * Constructor
	 */
	public function __construct( $elements, $list ) {
		$this->_elements = $elements;
		$this->_list     = $list;
	}

	/**
	 * Get header by ID.
	 *
	 * @param integer $id Header ID.
	 *
	 * @return Header
	 */
	public function get_header( $id ) {
		return new Header( $this->_elements, $id );
	}

	/**
	 * Update header settings.
	 *
	 * @param integer $id Header ID.
	 * @param string  $name Header name.
	 * @param array   $structure Header structure.
	 * @param array   $settings Header settings.
	 *
	 * @return Header
	 */
	public function update_header( $id, $name, $structure, $settings ) {
		$header = new Header( $this->_elements, $id );

		$header->set_name( $name );
		$header->set_structure( $structure );
		$header->set_settings( $settings );

		$header->save();

		return $header;
	}

	/**
	 * Create new header.
	 *
	 * @param integer $id Header ID.
	 * @param string  $name Header name.
	 * @param array   $structure Header structure.
	 * @param array   $settings Header settings.
	 *
	 * @return Header
	 */
	public function create_new( $id, $name, $structure = false, $settings = false ) {
		$header = new Header( $this->_elements, $id, true );

		if ( $structure ) {
			$header->set_structure( $structure );
		}
		if ( $settings ) {
			$header->set_settings( $settings );
		}

		$header->set_name( $name );
		$header->save();

		return $header;
	}

	/**
	 * Create new draft header.
	 *
	 * @param integer $id Header ID.
	 * @param string  $name Header name.
	 * @param array   $structure Header structure.
	 * @param array   $settings Header settings.
	 * @return Header
	 */
	public function draft_header( $id, $name, $structure = false, $settings = false ) {
		$header = new Header( $this->_elements, $id, true );

		if ( $structure ) {
			$header->set_structure( $structure );
		}
		if ( $settings ) {
			$header->set_settings( $settings );
		}

		$header->set_name( $name );

		return $header;
	}
}