AlkantarClanX12

Your IP : 216.73.217.24


Current Path : /www/capitalgmcbuickregina_830/public/wp-content/plugins/popup-maker/classes/Site/
Upload File :
Current File : /www/capitalgmcbuickregina_830/public/wp-content/plugins/popup-maker/classes/Site/Assets.php

<?php
/**
 * Site Assets
 *
 * @package   PopupMaker
 * @copyright Copyright (c) 2024, Code Atlantic LLC
 */

class PUM_Site_Assets {

	/**
	 * @var string
	 */
	public static $cache_url;

	/**
	 * @var string
	 */
	public static $suffix;

	/**
	 * @var string
	 */
	public static $js_url;

	/**
	 * @var string
	 */
	public static $css_url;

	/**
	 * @var array
	 */
	public static $enqueued_scripts = [];

	/**
	 * @var array
	 */
	public static $enqueued_styles = [];

	/**
	 * @var bool
	 */
	public static $scripts_registered = false;

	/**
	 * @var bool
	 */
	public static $styles_registered = false;

	/**
	 * @var bool Use minified libraries if SCRIPT_DEBUG is turned off.
	 */
	public static $debug;

	/**
	 * Initialize
	 */
	public static function init() {
		self::$cache_url = PUM_Helpers::get_cache_dir_url();
		self::$debug     = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG;
		self::$suffix    = self::$debug ? '' : '.min';
		self::$js_url    = Popup_Maker::$URL . 'dist/assets/';
		self::$css_url   = Popup_Maker::$URL . 'dist/assets/';

		// Register assets early.
		add_action( 'wp_enqueue_scripts', [ __CLASS__, 'register_styles' ], 9 );
		add_action( 'wp_enqueue_scripts', [ __CLASS__, 'register_scripts' ], 9 );

		// Localize after popups rendered in PUM_Site_Popups.
		add_action( 'wp_footer', [ __CLASS__, 'late_localize_scripts' ], 19 );

		// Checks preloaded popups in the head for which assets to enqueue.
		add_action( 'pum_preload_popup', [ __CLASS__, 'enqueue_popup_assets' ] );
		add_filter( 'wp_enqueue_scripts', [ __CLASS__, 'enqueue_page_assets' ] );

		// add_action( 'wp_enqueue_scripts', [ __CLASS__, 'fix_broken_extension_scripts' ], 100 );

		// Allow forcing assets to load.
		add_action( 'wp_head', [ __CLASS__, 'check_force_script_loading' ] );
	}

	public static function fix_broken_extension_scripts() {
		if ( wp_script_is( 'pum_aweber_integration_js' ) && class_exists( 'PUM_Aweber_Integration' ) && defined( 'PUM_AWEBER_INTEGRATION_VER' ) && version_compare( PUM_AWEBER_INTEGRATION_VER, '1.1.0', '<' ) ) {
			wp_dequeue_script( 'pum_aweber_integration_js' );
			wp_dequeue_style( 'pum_aweber_integration_css' );
			wp_dequeue_script( 'pum_newsletter_script' );
			wp_dequeue_style( 'pum-newsletter-styles' );

			wp_enqueue_style( 'pum-newsletter-styles', PUM_AWEBER_INTEGRATION_URL . '/includes/pum-newsletters/newsletter-styles.css', [], PUM_AWEBER_INTEGRATION_VER );
			wp_enqueue_script(
				'pum_newsletter_script',
				PUM_AWEBER_INTEGRATION_URL . '/includes/pum-newsletters/newsletter-scripts.js',
				[
					'jquery',
					'popup-maker-site',
				],
				PUM_AWEBER_INTEGRATION_VER,
				true
			);
		}

		$mc_ver_test = in_array(
			true,
			[
				class_exists( 'PUM_MailChimp_Integration' ) && defined( 'PUM_MAILCHIMP_INTEGRATION_VER' ) && PUM_MAILCHIMP_INTEGRATION_VER,
				class_exists( 'PUM_MCI' ) && version_compare( PUM_MCI::$VER, '1.3.0', '<' ),
			],
			true
		);

		if ( $mc_ver_test ) {
			wp_dequeue_script( 'pum_mailchimp_integration_admin_js' );
			wp_dequeue_style( 'pum_mailchimp_integration_admin_css' );
			wp_dequeue_script( 'pum-mci' );
			wp_dequeue_style( 'pum-mci' );
			wp_dequeue_script( 'pum-newsletter-site' );
			wp_dequeue_style( 'pum-newsletter-site' );

			wp_enqueue_style( 'pum-newsletter-site', PUM_NEWSLETTER_URL . 'assets/css/pum-newsletter-site.css', null, PUM_NEWSLETTER_VERSION );
			wp_enqueue_script( 'pum-newsletter-site', PUM_NEWSLETTER_URL . 'assets/js/pum-newsletter-site.js', [ 'jquery' ], PUM_NEWSLETTER_VERSION, true );
			wp_localize_script(
				'pum-newsletter-site',
				'pum_sub_vars',
				[
					'ajaxurl'          => admin_url( 'admin-ajax.php' ),
					'message_position' => 'top',
				]
			);
		}
	}

	/**
	 * Checks the current page content for the newsletter shortcode.
	 */
	public static function enqueue_page_assets() {
		global $post;

		if ( ! empty( $post ) && isset( $post->post_content ) && has_shortcode( $post->post_content, 'pum_sub_form' ) ) {
			wp_enqueue_script( 'popup-maker-site' );
			wp_enqueue_style( 'popup-maker-site' );
		}
	}

	/**
	 * @param int $popup_id
	 */
	public static function enqueue_popup_assets( $popup_id = 0 ) {
		/**
		 * TODO Replace this with a pum_get_popup function after new Popup model is in place.
		 *
		 * $popup = pum_get_popup( $popup_id );
		 *
		 * if ( ! pum_is_popup( $popup ) ) {
		 *        return;
		 * }
		 */

		$popup = new PUM_Popup( $popup_id );

		wp_enqueue_script( 'popup-maker-site' );
		wp_enqueue_style( 'popup-maker-site' );

		if ( $popup->mobile_disabled() || $popup->tablet_disabled() ) {
			wp_enqueue_script( 'mobile-detect' );
		}

		/*
		 * TODO Implement this in core $popup model & advanced targeting conditions.
		 *
		 * if ( $popup->has_condition( array(
		 *    'device_is_mobile',
		 *    'device_is_phone',
		 *    'device_is_tablet',
		 *    'device_is_brand',
		 * ) ) ) {
		 *    self::enqueue_script( 'mobile-detect' );
		 * }
		 */
	}

	/**
	 * Register JS.
	 */
	public static function register_scripts() {
		self::$scripts_registered = true;

		wp_register_script( 'mobile-detect', self::$js_url . 'vendor/mobile-detect.min.js', null, '1.3.3', true );
		wp_register_script( 'iframe-resizer', self::$js_url . 'vendor/iframeResizer.min.js', [ 'jquery' ], '4.3.1', false );

		if ( PUM_AssetCache::enabled() && false !== self::$cache_url ) {
			$cached = get_option( 'pum-has-cached-js' );

			if ( ! $cached || self::$debug ) {
				PUM_AssetCache::cache_js();
				$cached = get_option( 'pum-has-cached-js' );
			}

			// Get base dependencies and merge with collected dependencies from bundled scripts.
			$base_deps = [
				'jquery',
				'jquery-ui-core',
				'jquery-ui-position',
				'wp-hooks',
			];

			$bundled_deps = PUM_AssetCache::get_bundled_script_dependencies();
			$merged_deps  = array_unique( array_merge( $base_deps, $bundled_deps ) );

			$cached_script_deps = apply_filters( 'pum_site_cached_scripts_dependencies', $merged_deps );

			wp_register_script(
				'popup-maker-site',
				self::$cache_url . '/' . PUM_AssetCache::generate_cache_filename( 'pum-site-scripts' ) . '.js?defer&generated=' . $cached,
				$cached_script_deps,
				Popup_Maker::$VER,
				true
			);

			do_action( 'pum_registered_cached_scripts' );
		} else {
			wp_register_script(
				'popup-maker-site',
				self::$js_url . 'site.js?defer',
				[
					'jquery',
					'jquery-ui-core',
					'jquery-ui-position',
				],
				Popup_Maker::$VER,
				true
			);
		}

		do_action( 'pum_registered_scripts' );

		if ( popmake_get_option( 'enable_easy_modal_compatibility_mode', false ) ) {
			wp_register_script( 'popup-maker-easy-modal-importer-site', self::$js_url . 'popup-maker-easy-modal-importer-site.js?defer', [ 'popup-maker-site' ], POPMAKE_VERSION, true );
		}

		self::localize_scripts();
	}

	/**
	 * Localize scripts if enqueued.
	 */
	public static function localize_scripts() {
		$site_home_path = wp_parse_url( home_url() );
		$site_home_path = isset( $site_home_path['path'] ) ? $site_home_path['path'] : '/';

		wp_localize_script(
			'popup-maker-site',
			'pum_vars',
			apply_filters(
				'pum_vars',
				[
					'version'                => Popup_Maker::$VER,
					'pm_dir_url'             => Popup_Maker::$URL,
					'ajaxurl'                => admin_url( 'admin-ajax.php' ),
					'restapi'                => function_exists( 'rest_url' ) ? esc_url_raw( rest_url( 'pum/v1' ) ) : false,
					'rest_nonce'             => is_user_logged_in() ? wp_create_nonce( 'wp_rest' ) : null,
					'default_theme'          => (string) pum_get_default_theme_id(),
					'debug_mode'             => Popup_Maker::debug_mode(),
					'disable_tracking'       => popmake_get_option( 'disable_popup_open_tracking' ),
					'disable_url_params'     => (bool) pum_get_option( 'disable_pid_url_params' ),
					'home_url'               => trailingslashit( $site_home_path ),
					'message_position'       => 'top',
					'core_sub_forms_enabled' => ! PUM_Newsletters::$disabled,
					'popups'                 => [],
					'cookie_domain'          => apply_filters( 'pum_cookie_domain', '' ),
					'paramNames'             => \PopupMaker\get_param_names(),
				]
			)
		);

		// phpcs:ignore WordPress.Security.NonceVerification.Recommended
		if ( Popup_Maker::debug_mode() || isset( $_GET['pum_debug'] ) ) {
			wp_localize_script(
				'popup-maker-site',
				'pum_debug_vars',
				apply_filters(
					'pum_debug_vars',
					[
						'debug_mode_enabled'    => __( 'Popup Maker', 'popup-maker' ) . ': ' . __( 'Debug Mode Enabled', 'popup-maker' ),
						'debug_started_at'      => __( 'Debug started at:', 'popup-maker' ),
						'debug_more_info'       => sprintf(
							/* translators: 1. URL to documentation. */
							__( 'For more information on how to use this information visit %s', 'popup-maker' ),
							'https://wppopupmaker.com/docs/?utm_medium=js-debug-info&utm_campaign=contextual-help&utm_source=browser-console&utm_content=more-info'
						),
						'global_info'           => __( 'Global Information', 'popup-maker' ),
						'localized_vars'        => __( 'Localized variables', 'popup-maker' ),
						'popups_initializing'   => __( 'Popups Initializing', 'popup-maker' ),
						'popups_initialized'    => __( 'Popups Initialized', 'popup-maker' ),
						'single_popup_label'    => __( 'Popup: #', 'popup-maker' ),
						'theme_id'              => __( 'Theme ID: ', 'popup-maker' ),
						'label_method_call'     => __( 'Method Call:', 'popup-maker' ),
						'label_method_args'     => __( 'Method Arguments:', 'popup-maker' ),
						'label_popup_settings'  => __( 'Settings', 'popup-maker' ),
						'label_triggers'        => __( 'Triggers', 'popup-maker' ),
						'label_cookies'         => __( 'Cookies', 'popup-maker' ),
						'label_delay'           => __( 'Delay:', 'popup-maker' ),
						'label_conditions'      => __( 'Conditions', 'popup-maker' ),
						'label_cookie'          => __( 'Cookie:', 'popup-maker' ),
						'label_settings'        => __( 'Settings:', 'popup-maker' ),
						'label_selector'        => __( 'Selector:', 'popup-maker' ),
						'label_mobile_disabled' => __( 'Mobile Disabled:', 'popup-maker' ),
						'label_tablet_disabled' => __( 'Tablet Disabled:', 'popup-maker' ),
						/* translators: 1. Event name. */
						'label_event'           => __( 'Event: %s', 'popup-maker' ),
						'triggers'              => PUM_Triggers::instance()->dropdown_list(),
						'cookies'               => PUM_Cookies::instance()->dropdown_list(),
					]
				)
			);
		}

		/* Here for backward compatibility. */
		wp_localize_script(
			'popup-maker-site',
			'pum_sub_vars',
			[
				'ajaxurl'          => admin_url( 'admin-ajax.php' ),
				'message_position' => 'top',
			]
		);
	}

	/**
	 * Localize late script vars if enqueued.
	 */
	public static function late_localize_scripts() {
		// If scripts not rendered, localize these vars. Otherwise echo them manually.
		if ( ! wp_script_is( 'popup-maker-site', 'done' ) ) {
			wp_localize_script( 'popup-maker-site', 'pum_popups', self::get_popup_settings() );
		} else {
			echo "<script type='text/javascript'>";
			// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			echo 'window.pum_popups = ' . PUM_Utils_Array::safe_json_encode( self::get_popup_settings() ) . ';';
			// Backward compatibility fill.
			echo 'window.pum_vars = window.pum_vars || {}; window.pum_vars.popups = window.pum_popups;';
			echo '</script>';
		}
	}

	/**
	 * Gets public settings for each popup for a global JS variable.
	 *
	 * @return array
	 */
	public static function get_popup_settings() {
		$popups = \PopupMaker\plugin()->get_controller( 'Frontend\Popups' )->get_loaded_popups();

		$settings = [];

		// Get current popup to restore later.
		$current_popup = \PopupMaker\get_current_popup();

		if ( $popups ) {
			foreach ( $popups as $popup ) {
				\PopupMaker\set_current_popup( $popup );
				// Set the key to the CSS id of this popup for easy lookup.
				$settings[ 'pum-' . $popup->ID ] = $popup->get_public_settings();
			}

			// Restore current popup.
			\PopupMaker\set_current_popup( $current_popup );
		}

		return $settings;
	}

	/**
	 * Register CSS.
	 */
	public static function register_styles() {
		self::$styles_registered = true;

		if ( PUM_AssetCache::enabled() && false !== self::$cache_url ) {
			$cached = get_option( 'pum-has-cached-css' );

			if ( ! $cached || self::$debug ) {
				PUM_AssetCache::cache_css();
				$cached = get_option( 'pum-has-cached-css' );
			}

			// Get collected dependencies from bundled styles.
			$bundled_style_deps = PUM_AssetCache::get_bundled_style_dependencies();

			$cached_style_deps = apply_filters( 'pum_site_cached_styles_dependencies', $bundled_style_deps );

			wp_register_style( 'popup-maker-site', self::$cache_url . '/' . PUM_AssetCache::generate_cache_filename( 'pum-site-styles' ) . '.css?generated=' . $cached, $cached_style_deps, Popup_Maker::$VER );

			do_action( 'pum_registered_cached_styles' );
		} else {
			wp_register_style( 'popup-maker-site', self::$css_url . 'site' . ( is_rtl() ? '-rtl' : '' ) . '.css', [], Popup_Maker::$VER );
			self::inline_styles();
		}

		do_action( 'pum_registered_styles' );
	}

	/**
	 * Render popup inline styles.
	 */
	public static function inline_styles() {
		if ( ( current_action() === 'wp_head' && popmake_get_option( 'disable_popup_theme_styles', false ) ) || ( current_action() === 'admin_head' && ! popmake_is_admin_popup_page() ) ) {
			return;
		}

		wp_add_inline_style( 'popup-maker-site', PUM_AssetCache::inline_css() );
	}

	/**
	 * Defers loading of scripts with ?defer parameter in url.
	 *
	 * @param string $url URL being cleaned
	 *
	 * @return string $url
	 */
	public static function defer_js_url( $url ) {
		if ( false === strpos( $url, '.js?defer' ) ) {
			// not our file
			return $url;
		}

		return "$url' defer='defer";
	}

	/**
	 *
	 */
	public static function check_force_script_loading() {
		global $wp_query;
		if (
			( ! empty( $wp_query->post ) && has_shortcode( $wp_query->post->post_content, 'popup' ) ) ||
			( defined( 'POPMAKE_FORCE_SCRIPTS' ) && POPMAKE_FORCE_SCRIPTS )
		) {
			wp_enqueue_script( 'popup-maker-site' );
			wp_enqueue_style( 'popup-maker-site' );
		}
	}
}

Home - Capital GMC Buick Regina

No data

Welcome to Capital GMC BUICK – REGINA

Thank you for choosing Capital GMC Buick | Regina, your premier certified Buick and GMC dealership proudly serving drivers in Regina and the surrounding communities. Whether you’re searching for a brand-new Buick or GMC vehicle or a meticulously inspected pre-owned model, we have a diverse selection to match your needs and lifestyle.

Beyond our impressive inventory, we offer a seamless and stress-free financing experience through our well-connected finance centre, where our team of experts is dedicated to securing the best loan or lease options for you, quickly, transparently, and hassle-free.

But our commitment to you doesn’t stop at the sale. Our state-of-the-art service centre is staffed with skilled Buick and GMC technicians who use the latest equipment and genuine OEM parts to keep your vehicle running at its best. From routine maintenance to complex repairs, we’ve got you covered.

Experience top-tier customer service, quality vehicles, and expert care, all in one place. Visit Capital GMC Buick | Regina today or call us at 306-205-8072 with any questions. We’re here to help!

Ask a Question