235 lines
7.7 KiB
PHP
Executable File
235 lines
7.7 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* $Desc$
|
|
*
|
|
* @version $Id$
|
|
* @package opalestate
|
|
* @author Opal Team <info@wpopal.com >
|
|
* @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 '<style type="text/css">' . $custom . '</style>';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 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();
|