* @copyright Copyright (C) 2019 wpopal.com. All Rights Reserved. * @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html * * @website http://www.wpopal.com * @support http://www.wpopal.com/support/forum.html */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } /** * @class OpalEstate_Enqueue * * @version 1.0 */ class OpalEstate_Enqueue { /** * Constructor */ public function __construct() { add_action( 'wp_enqueue_scripts', [ $this, 'load_scripts' ] ); add_action( 'wp_head', [ $this, 'add_custom_styles' ] ); } /** * Load javascript and css */ public function load_scripts() { $api = opalestate_get_map_api_uri(); wp_enqueue_script( 'opalestate-google-maps', $api, null, '0.0.1', false ); wp_enqueue_script( 'infobox', OPALESTATE_PLUGIN_URL . 'assets/js/infobox.js', [ 'jquery' ], OPALESTATE_VERSION, false ); wp_enqueue_script( 'markerclusterer', OPALESTATE_PLUGIN_URL . 'assets/js/markerclusterer.js', [ 'jquery' ], '1.3', false ); wp_enqueue_script( 'opalestate-scripts', OPALESTATE_PLUGIN_URL . 'assets/js/opalestate.js', [ 'jquery' ], OPALESTATE_VERSION, true ); wp_enqueue_script( 'opalestate-country-select', OPALESTATE_PLUGIN_URL . 'assets/js/country-select.js', [ 'jquery' ], OPALESTATE_VERSION, true ); wp_enqueue_script( 'noUiSlider', OPALESTATE_PLUGIN_URL . 'assets/js/nouislider.min.js', [ 'jquery' ], '1.0.0', true ); wp_enqueue_script( 'fitvids', OPALESTATE_PLUGIN_URL . 'assets/js/jquery.fitvids.js', [ 'jquery' ], '1.0.0', true ); /** * Google map. */ wp_enqueue_script( 'opalestate-gmap', OPALESTATE_PLUGIN_URL . 'assets/js/frontend/googlemaps.js', [ 'jquery' ], OPALESTATE_VERSION, false ); $custom_map_styles = json_decode( ( opalestate_options( 'google_map_custom_style', '' ) ) ); wp_localize_script( 'opalestate-gmap', 'opalestateGmap', [ 'style' => opalestate_options( 'google_map_style', 'standard' ), 'autocomplete_restrictions' => opalestate_get_autocomplete_restrictions(), 'custom_style' => json_encode( $custom_map_styles ), ] ); /** * Frontend property. */ wp_enqueue_script( 'opalestate-messages', OPALESTATE_PLUGIN_URL . 'assets/js/frontend/property.js', [ 'jquery' ], OPALESTATE_VERSION, false ); /** * Main plugin style. */ wp_enqueue_style( 'opalestate-style', OPALESTATE_PLUGIN_URL . '/assets/opalestate.css' ); /** * Enqueue 3rd. */ wp_register_style( 'font-awesome', OPALESTATE_PLUGIN_URL . 'assets/3rd/fontawesome/css/all.min.css', null, '5.11.2', false ); wp_enqueue_style( 'font-awesome' ); wp_enqueue_style( 'hint', OPALESTATE_PLUGIN_URL . 'assets/3rd/hint/hint.min.css', null, '1.3', false ); wp_enqueue_style( 'select2', OPALESTATE_PLUGIN_URL . 'assets/3rd/select2/css/select2.min.css', null, '1.3', false ); wp_enqueue_script( 'select2', OPALESTATE_PLUGIN_URL . 'assets/3rd/select2/js/select2.min.js', null, '1.3', false ); wp_register_script( 'chart-js', OPALESTATE_PLUGIN_URL . 'assets/3rd/chartjs/chart.min.js', null, '2.8.0', true ); wp_register_style( 'tooltipster', OPALESTATE_PLUGIN_URL . 'assets/3rd/tooltipster/css/tooltipster.bundle.min.css', [], false ); wp_register_script( 'tooltipster', OPALESTATE_PLUGIN_URL . 'assets/3rd/tooltipster/js/tooltipster.bundle.min.js', [ 'jquery' ], false, true ); if ( is_single_property() ) { wp_enqueue_script( 'chart-js' ); } if ( is_single_property() || is_single_agent() || is_single_agency() ) { wp_enqueue_style( 'tooltipster' ); wp_enqueue_script( 'tooltipster' ); } // Load global variables wp_localize_script( 'opalestate-scripts', 'opalesateJS', [ 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'siteurl' => get_template_directory_uri(), 'mapiconurl' => OPALESTATE_PLUGIN_URL . 'assets/map/', 'rtl' => is_rtl() ? 'true' : 'false', 'confirmed' => esc_html__( 'Are you sure to remove?', 'opalestate-pro' ), 'error_upload_size' => esc_html__( 'This file is has large volume size, please try to upload other.', 'opalestate-pro' ), 'size_image' => opalestate_options( 'upload_image_max_size', 0.5 ) * 1000000, 'mfile_image' => opalestate_options( 'upload_image_max_files', 10 ), 'size_other' => opalestate_options( 'upload_other_max_size', 0.8 ) * 1000000, 'mfile_other' => opalestate_options( 'upload_other_max_files', 10 ), ] ); $this->register_enqueue(); } /** * Register and enqueue javascript, css library */ public function register_enqueue() { wp_register_script( 'jquery-modernizr', OPALESTATE_PLUGIN_URL . '/assets/3rd/magnific-popup/jquery.magnific-popup.min.js', [ 'jquery', ], '4.4.3', true ); wp_enqueue_script( 'jquery-magnific-popup' ); wp_register_script( 'jquery-sticky-kit', trailingslashit( OPALESTATE_PLUGIN_URL ) . 'assets/3rd/sticky/jquery.sticky-kit.min.js', [], null, true ); wp_enqueue_script( 'jquery-sticky-kit' ); wp_enqueue_script( 'opalestate-elementor', OPALESTATE_PLUGIN_URL . 'assets/js/frontend/elementor.js', [], null, true ); wp_enqueue_script( 'jquery-ui-datepicker' ); wp_enqueue_style( 'jquery-ui-datepicker-style', OPALESTATE_PLUGIN_URL . '/assets/3rd/datepicker.css' ); /// wp_register_script( 'jquery-toast', OPALESTATE_PLUGIN_URL . 'assets/3rd/toast/jquery.toast.js', [], null, true ); wp_enqueue_script( 'jquery-toast' ); wp_register_script( 'jquery-swiper', OPALESTATE_PLUGIN_URL . '/assets/3rd/swiper/js/swiper.min.js', [ 'jquery', ], '4.4.3', true ); if ( ! defined( "ELEMENTOR_VERSION" ) || is_single_property() ) { wp_enqueue_style( 'jquery-swiper', OPALESTATE_PLUGIN_URL . '/assets/3rd/swiper/css/swiper.min.css', [], '4.5.0' ); } wp_enqueue_script( 'jquery-swiper' ); } /** * Add custom styles. */ public function add_custom_styles() { $custom = ''; $status_color = $this->add_custom_property_status_color(); if ( $status_color ) { $custom .= $status_color; } $label_color = $this->add_custom_property_label_color(); if ( $label_color ) { $custom .= $label_color; } if ( $custom ) { echo ''; } } /** * Add custom property status color. * * @return string */ public function add_custom_property_status_color() { $statuses = Opalestate_Taxonomy_Status::get_list(); $custom = ''; if ( $statuses ) { foreach ( $statuses as $status ) { $bg = get_term_meta( $status->term_id, 'opalestate_status_lb_bg', true ); $color = get_term_meta( $status->term_id, 'opalestate_status_lb_color', true ); if ( $bg || $color ) { $custom .= '.property-status-' . trim( $status->slug ) . ' { '; if ( $bg ) { $custom .= 'background-color:' . $bg . ' !important;'; } if ( $color ) { $custom .= 'color:' . $color . '!important'; } $custom .= ' } '; } } } return $custom; } /** * Add custom property status color. * * @return string */ public function add_custom_property_label_color() { $labels = Opalestate_Taxonomy_Label::get_list(); $custom = ''; if ( $labels ) { foreach ( $labels as $label ) { $bg = get_term_meta( $label->term_id, 'opalestate_label_lb_bg', true ); $color = get_term_meta( $label->term_id, 'opalestate_label_lb_color', true ); if ( $bg || $color ) { $custom .= '.property-label-' . trim( $label->slug ) . ' { '; if ( $bg ) { $custom .= 'background-color:' . $bg . ' !important;'; } if ( $color ) { $custom .= 'color:' . $color . '!important'; } $custom .= ' } '; } } } return $custom; } } new OpalEstate_Enqueue();