<?php
/**
 * Theme functions and definitions
 *
 * @package Cargo Transport
 */ 

if ( ! function_exists( 'cargo_transport_enqueue_styles' ) ) :
	/**
	 * Load assets.
	 *
	 * @since 1.0.0
	 */
	function cargo_transport_enqueue_styles() {
		wp_enqueue_style( 'cargo-transport-block-patterns-style-frontend', get_theme_file_uri('/css/block-frontend.css') );
		wp_enqueue_style( 'bootstrap-css', get_template_directory_uri().'/css/bootstrap.css' );
		wp_enqueue_style( 'cargo-transport-style-parent', get_template_directory_uri() . '/style.css' );
		wp_enqueue_style( 'cargo-transport-style', get_stylesheet_directory_uri() . '/style.css', array( 'cargo-transport-style-parent' ), '1.0.0' );
	}
endif;
add_action( 'wp_enqueue_scripts', 'cargo_transport_enqueue_styles');

/**
 * Enqueue block editor style
 */
function cargo_transport_block_editor_styles() {
	wp_enqueue_style( 'logistic-transport-font', logistic_transport_font_url(), array() );
	wp_enqueue_style( 'cargo-transport-block-patterns-style-editor', get_theme_file_uri( '/css/block-editor.css' ), false, '1.0', 'all' );
    wp_enqueue_style( 'bootstrap-style', get_template_directory_uri().'/css/bootstrap.css' );
    wp_enqueue_style( 'font-awesome-css', get_template_directory_uri().'/css/fontawesome-all.css' );
}
add_action( 'enqueue_block_editor_assets', 'cargo_transport_block_editor_styles' );

function cargo_transport_customize_register() {
	global $wp_customize;
	$wp_customize->remove_setting( 'logistic_transport_theme_color_first' );
	$wp_customize->remove_control( 'logistic_transport_theme_color_first' );
	$wp_customize->remove_setting( 'logistic_transport_theme_color_second' );
	$wp_customize->remove_control( 'logistic_transport_theme_color_second' );
	$wp_customize->remove_section( 'logistic_transport_about_theme' );
	$wp_customize->remove_setting( 'logistic_transport_menu_settings_premium_features' );
	$wp_customize->remove_control( 'logistic_transport_menu_settings_premium_features' );
	$wp_customize->remove_setting( 'logistic_transport_post_settings_premium_features' );
	$wp_customize->remove_control( 'logistic_transport_post_settings_premium_features' );

	//About Section
		$wp_customize->add_section( 'cargo_transport_about_theme' , array(
	    	'title' => esc_html__( 'About Theme', 'cargo-transport' ),
	    	'priority' => 10,
		) );

		$wp_customize->add_setting('cargo_transport_demo_link',array(
			'sanitize_callback'	=> 'sanitize_text_field'
		));
		$wp_customize->add_control('cargo_transport_demo_link',array(
			'type'=> 'hidden',
			'description' => "<h3>Theme Demo</h3>Our premium version of Cargo Transport has unlimited sections with advanced control fields. Dedicated support and no limititation in any field.<br> <a target='_blank' href='". esc_url('https://www.themescaliber.com/cargo-transport-pro/') ." '>View Demo</a>",
			'section'=> 'cargo_transport_about_theme'
		));
		
		$wp_customize->add_setting('cargo_transport_doc_link',array(
			'sanitize_callback'	=> 'sanitize_text_field'
		));
		$wp_customize->add_control('cargo_transport_doc_link',array(
			'type'=> 'hidden',
			'description' => "<h3>Theme Documentation</h3>We have well prepared documentation that provides the general guidelines and suggestions needed for this theme.<br> <a target='_blank' href='". esc_url('https://themescaliber.com/demo/doc/free-cargo-transport/') ." '>View Documentation</a>",
			'section'=> 'cargo_transport_about_theme'
		));

		$wp_customize->add_setting('cargo_transport_forum_link',array(
			'sanitize_callback'	=> 'sanitize_text_field'
		));
		$wp_customize->add_control('cargo_transport_forum_link',array(
			'type'=> 'hidden',
			'description' => "<h3>Theme Support</h3>Regarding any theme issue, we offer 24/7 support. You can get assistance from our support staff in resolving any problem. Please get in touch with us.<br><a target='_blank' href='". esc_url('https://wordpress.org/support/theme/cargo-transport/') ." '>Support Forum</a>",
			'section'=> 'cargo_transport_about_theme'
		));

		$wp_customize->add_setting( 'cargo_transport_menu_settings_premium_features',array(
        'sanitize_callback' => 'sanitize_text_field'
    	));
    	$wp_customize->add_control('cargo_transport_menu_settings_premium_features', array(
	    	'type'=> 'hidden',
	        'description' => "<h3>More Features in the Premium Version!</h3>
	        	<ul>
	        		<li>Menu Background Colors</li>
	        		<li>Menu Item Fonts</li>
	        		<li>Responsive Menu Colors</li>
	        		<li>Header Search Icons Colors</li>
	        		<li>... and Other Premium Features</li>
	        	</ul>
	        	<a target='_blank' href='". esc_url('https://www.themescaliber.com/themes/cargo-wordpress-theme/') ." '>Upgrade Now</a>",
        	'section' => 'logistic_transport_header'
        	)
    	);

	    $wp_customize->add_setting( 'cargo_transport_post_settings_premium_features',array(
        'sanitize_callback' => 'sanitize_text_field'
	    ));
	    $wp_customize->add_control('cargo_transport_post_settings_premium_features', array(
	    	'type'=> 'hidden',
	        'description' => "<h3>More Features in the Premium Version!</h3>
	        	<ul>
	        		<li>Section Heading Option</li>
	        		<li>Animated Elements Colors</li>
	        		<li>... and Other Premium Features</li>
	        	</ul>
	        	<a target='_blank' href='". esc_url('https://www.themescaliber.com/themes/cargo-wordpress-theme/') ." '>Upgrade Now</a>",
	        'section' => 'logistic_transport_blog_post'
	        )
	    );
}
add_action( 'customize_register', 'cargo_transport_customize_register', 11 );

require_once( ABSPATH . WPINC . '/class-wp-customize-section.php' );

class Cargo_Transport_Customize_Section_Pro extends WP_Customize_Section {

    /**
     * Outputs the Underscore.js template.
     *
     * @since  1.0.0
     * @access public
     * @return void
     */
    protected function render_template() { ?>

        <li id="accordion-section-{{ data.id }}" class="accordion-section control-section control-section-{{ data.type }} cannot-expand">
            <h3 class="accordion-section-title">
                {{ data.title }}

                <# if ( data.pro_text && data.pro_url ) { #>
                    <a href="{{ data.pro_url }}" class="button button-secondary alignright" target="_blank">{{ data.pro_text }}</a>
                <# } #>
            </h3>
        </li>
    <?php }
}


/**
 * Singleton class for handling the theme's customizer integration.
 *
 * @since  1.0.0
 * @access public
 */
final class Cargo_Transport_Customize {

    /**
     * Returns the instance.
     *
     * @since  1.0.0
     * @access public
     * @return object
     */
    public static function get_instance() {

        static $instance = null;

        if ( is_null( $instance ) ) {
            $instance = new self;
            $instance->setup_actions();
        }

        return $instance;
    }

    /**
     * Constructor method.
     *
     * @since  1.0.0
     * @access private
     * @return void
     */
    private function __construct() {}

    /**
     * Sets up initial actions.
     *
     * @since  1.0.0
     * @access private
     * @return void
     */
    private function setup_actions() {

        // Register panels, sections, settings, controls, and partials.
        add_action( 'customize_register', array( $this, 'sections' ) );

        // Register scripts and styles for the controls.
        add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_control_scripts' ), 0 );
    }

    /**
     * Sets up the customizer sections.
     *
     * @since  1.0.0
     * @access public
     * @param  object  $manager
     * @return void
     */
    public function sections( $manager ) {

        // Register custom section types.
        $manager->register_section_type( 'Cargo_Transport_Customize_Section_Pro' );

    }

    /**
     * Loads theme customizer CSS.
     *
     * @since  1.0.0
     * @access public
     * @return void
     */

    public function enqueue_control_scripts() {
        wp_enqueue_style( 'cargo_transport-customize-controls', get_stylesheet_directory_uri() . '/css/customize-controls-child.css' );
    }
}

// Doing this customizer thang!
Cargo_Transport_Customize::get_instance();

/* Theme Setup */
if ( ! function_exists( 'cargo_transport_setup' ) ) :

function cargo_transport_setup() {

	$GLOBALS['content_width'] = apply_filters( 'cargo_transport_content_width', 640 );

	add_theme_support( 'automatic-feed-links' );
	add_theme_support( 'post-thumbnails' );
	add_theme_support( 'title-tag' );
	add_theme_support( 'wp-block-styles' );
	add_theme_support( 'align-wide' );
	add_theme_support( 'custom-logo', array(
		'height'      => 240,
		'width'       => 240,
		'flex-height' => true,
	) );
	add_image_size('cargo-transport-homepage-thumb',240,145,true);

	add_theme_support( 'custom-background', array(
		'default-color' => 'f1f1f1'
	) );

	add_theme_support ('html5', array (
        'search-form', 'comment-form', 'comment-list', 'gallery', 'caption'
    ) );

	add_theme_support('responsive-embeds');

	add_theme_support( 'post-formats', array('image','video','gallery','audio',) );

	add_editor_style( array( 'css/editor-style.css' ) );
}

endif;
add_action( 'after_setup_theme', 'cargo_transport_setup' );

function cargo_transport_widgets_init() {
	register_sidebar( array(
		'name'          => __( 'Blog Sidebar', 'cargo-transport' ),
		'description'   => __( 'Appears on blog page sidebar', 'cargo-transport' ),
		'id'            => 'sidebar-1',
		'before_widget' => '<aside id="%1$s" class="widget %2$s mb-4 p-2">',
		'after_widget'  => '</aside>',
		'before_title'  => '<h3 class="widget-title pt-0">',
		'after_title'   => '</h3>',
	) );
}
add_action( 'widgets_init', 'cargo_transport_widgets_init' );

function cargo_transport_enqueue_comments_reply() {
    if( is_singular() && comments_open() && ( get_option( 'thread_comments' ) == 1) ) {
        wp_enqueue_script( 'comment-reply', '/wp-includes/js/comment-reply.min.js', array(), false, true );
    }
}
add_action( 'wp_enqueue_scripts', 'cargo_transport_enqueue_comments_reply' );

add_action( 'init', 'cargo_transport_remove_action');
function cargo_transport_remove_action() {
    remove_action( 'admin_menu','logistic_transport_gettingstarted' );
    remove_action( 'admin_notices','logistic_transport_activation_notice' );
}

// URL DEFINES
define('CARGO_TRANSPORT_SUPPORT',__('https://wordpress.org/support/theme/cargo-transport/','cargo-transport'));
define('CARGO_TRANSPORT_REVIEW',__('https://wordpress.org/support/theme/cargo-transport/reviews/','cargo-transport'));
define('CARGO_TRANSPORT_BUY_NOW',__('https://www.themescaliber.com/themes/cargo-wordpress-theme','cargo-transport'));
define('CARGO_TRANSPORT_LIVE_DEMO',__('https://www.themescaliber.com/cargo-transport-pro/','cargo-transport'));
define('CARGO_TRANSPORT_PRO_DOC',__('https://themescaliber.com/demo/doc/cargo-transport-pro/','cargo-transport'));
define('CARGO_TRANSPORT_CHILD_THEME',__('https://developer.wordpress.org/themes/advanced-topics/child-themes/','cargo-transport'));
define('CARGO_TRANSPORT_THEME_URL',__('https://www.themescaliber.com/themes/free-cargo-wordpress-theme/', 'cargo-transport'));

if ( ! defined( 'LOGISTIC_TRANSPORT_PRO_NAME' ) ) {
	define( 'LOGISTIC_TRANSPORT_PRO_NAME', esc_html__( 'Cargo Pro Theme', 'cargo-transport' ));
}
if ( ! defined( 'LOGISTIC_TRANSPORT_PRO_URL' ) ) {
	define( 'LOGISTIC_TRANSPORT_PRO_URL', esc_url('https://www.themescaliber.com/themes/cargo-wordpress-theme/'));
}

function cargo_transport_credit_link() {
    echo "<a href=".esc_url(CARGO_TRANSPORT_THEME_URL)." target='_blank'>".esc_html__('Cargo WordPress Theme','cargo-transport')."</a>";
}

/* Implement the get started page */
require get_theme_file_path() . '/inc/dashboard/getstart.php';

/* Block Pattern */
require get_theme_file_path() . '/block-patterns.php';