<?php
/// Replace the code: wp-content/themes/woodmart/inc/modules/layouts/elementor/woocommerce/class-page-title.php

<?php
/**
 * Page title map.
 *
 * @package Woodmart
 */

namespace XTS\Modules\Layouts;

use Elementor\Widget_Base;
use Elementor\Controls_Manager;
use Elementor\Plugin;
use XTS\Modules\Layouts\Global_Data as Builder_Data;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Direct access not allowed.
}

// Prevent redeclaration error.
if ( ! class_exists( 'XTS\\Modules\\Layouts\\Page_Title' ) ) {

	/**
	 * Elementor widget that inserts an embeddable content into the page.
	 */
	class Page_Title extends Widget_Base {
		/**
		 * Get widget name.
		 *
		 * @return string Widget name.
		 */
		public function get_name() {
			return 'wd_page_title';
		}

		/**
		 * Get widget title.
		 *
		 * @return string Widget title.
		 */
		public function get_title() {
			return esc_html__( 'Page title', 'woodmart' );
		}

		/**
		 * Get widget icon.
		 *
		 * @return string Widget icon.
		 */
		public function get_icon() {
			return 'wd-icon-wc-page-title';
		}

		/**
		 * Get widget categories.
		 *
		 * @return array Widget categories.
		 */
		public function get_categories() {
			return array( 'wd-woocommerce-elements' );
		}

		/**
		 * Show in panel.
		 *
		 * @return bool Whether to show the widget in the panel or not.
		 */
		public function show_in_panel() {
			return woodmart_woocommerce_installed();
		}

		/**
		 * Register the widget controls.
		 */
		protected function register_controls() {
			$this->start_controls_section(
				'general_style_section',
				array(
					'label' => esc_html__( 'General', 'woodmart' ),
					'tab'   => Controls_Manager::TAB_STYLE,
				)
			);

			$this->add_control(
				'css_classes',
				array(
					'type'         => 'wd_css_class',
					'default'      => 'wd-page-title-el',
					'prefix_class' => '',
				)
			);

			$this->add_control(
				'full_width',
				array(
					'label'   => esc_html__( 'Full width', 'woodmart' ),
					'type'    => Controls_Manager::SWITCHER,
					'default' => '',
				)
			);

			$this->end_controls_section();
		}

		/**
		 * Render the widget output on the frontend.
		 */
		protected function render() {
			$settings = wp_parse_args(
				$this->get_settings_for_display(),
				array(
					'enable_title'       => 'yes',
					'enable_breadcrumbs' => 'yes',
					'enable_categories'  => 'yes',
					'full_width'         => '',
				)
			);

			$title_classes = '';

			if ( $settings['full_width'] ) {
				$title_classes .= ' wd-section-stretch';
			}

			Builder_Data::get_instance()->set_data( 'builder', true );
			Builder_Data::get_instance()->set_data( 'title_classes', $title_classes );
			Builder_Data::get_instance()->set_data( 'layout_id', get_the_ID() );

			Main::setup_preview();

			woodmart_enqueue_inline_style( 'el-page-title-builder' );

			if ( is_product_taxonomy() || is_shop() || is_product_category() || is_product_tag() || woodmart_is_product_attribute_archive() ) {
				woodmart_enqueue_inline_style( 'woo-shop-page-title' );

				if ( ! woodmart_get_opt( 'shop_title' ) ) {
					woodmart_enqueue_inline_style( 'woo-shop-opt-without-title' );
				}

				if ( woodmart_get_opt( 'shop_categories' ) ) {
					woodmart_enqueue_inline_style( 'shop-title-categories' );
					woodmart_enqueue_inline_style( 'woo-categories-loop-nav-mobile-accordion' );
				}
			}

			woodmart_page_title();

			Main::restore_preview();
		}
	}

	// Register the widget only once.
	Plugin::instance()->widgets_manager->register( new Page_Title() );

} // End if class_exists check.
