plugin_url() . '/assets/css/menu.css', array(), PH_VERSION ); $screen = get_current_screen(); if ( in_array( $screen->id, ph_get_screen_ids() ) ) { $jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2'; // Admin styles for PH pages only wp_enqueue_style( 'propertyhive_admin_styles', PH()->plugin_url() . '/assets/css/admin.css', array(), PH_VERSION ); wp_enqueue_style( 'font_awesome', PH()->plugin_url() . '/assets/css/font-awesome.min.css', array(), PH_VERSION ); wp_enqueue_style( 'jquery-ui-style', PH()->plugin_url() . '/assets/css/jquery-ui/jquery-ui.css', array(), PH_VERSION ); wp_enqueue_style( 'wp-color-picker' ); wp_enqueue_style( 'chosen', PH()->plugin_url() . '/assets/css/chosen.css', array(), PH_VERSION ); wp_enqueue_style( 'multiselect', PH()->plugin_url() . '/assets/css/jquery.multiselect.css', array(), '2.4.18' ); if ( apply_filters('propertyhive_disable_notes_mention', false) === false ) { wp_enqueue_style( 'tinymce-mention', PH()->plugin_url() . '/assets/js/tinymce-mention-plugin/autocomplete.css', array(), PH_VERSION ); } if ( get_option('propertyhive_maps_provider') == 'mapbox' ) { wp_enqueue_style('mapbox', PH()->plugin_url() . '/assets/js/mapbox/mapbox-gl.css', array(), '3.8.0' ); } } if ( in_array( $screen->id, array( 'property' ) ) ) { if ( isset($_GET['tutorial']) && sanitize_text_field($_GET['tutorial']) == 'yes' ) { wp_register_style( 'tour-css', PH()->plugin_url() . '/assets/css/tours/style.css', array(), '1.0.1' ); wp_register_style( 'driver-css', PH()->plugin_url() . '/assets/css/tours/driver-js.css', array(), '1.0.1' ); wp_enqueue_style( 'tour-css' ); wp_enqueue_style( 'driver-css' ); } } if ( in_array( $screen->id, array( 'edit-contact', 'edit-enquiry', 'edit-appraisal', 'edit-viewing', 'edit-offer', 'edit-sale', 'edit-key_date' ) ) ) { wp_enqueue_style( 'daterangepicker.css', '//cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css' ); } if ( in_array( $screen->id, array( 'edit-key_date') ) ) { wp_enqueue_style( 'admin-hide-default-post-data.css', PH()->plugin_url() . '/assets/css/admin-hide-default-post-data.css', PH_VERSION ); } if ( get_option('propertyhive_module_disabled_viewings', '') != 'yes' && in_array( $screen->id, array( 'property', 'contact' ) ) ) { wp_enqueue_style( 'propertyhive_fancybox_css', PH()->plugin_url() . '/assets/css/jquery.fancybox.css', array(), '3.5.7' ); } /*if ( in_array( $screen->id, array( 'dashboard' ) ) ) { wp_enqueue_style( 'propertyhive_admin_dashboard_styles', PH()->plugin_url() . '/assets/css/dashboard.css', array(), PH_VERSION ); }*/ if ( $screen->id === 'plugins' ) { // Enqueue the CSS file wp_enqueue_style( 'propertyhive_deactivate_survey', PH()->plugin_url() . '/assets/css/deactivate-survey.css', array(), '1.0.0' ); } do_action( 'propertyhive_admin_css' ); } /** * Enqueue scripts */ public function admin_scripts() { global $wp_query, $post, $tabs; $screen = get_current_screen(); $ph_screen_id = sanitize_title( __( 'PropertyHive', 'propertyhive' ) ); $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; // Register scripts wp_register_script( 'propertyhive_dashboard', PH()->plugin_url() . '/assets/js/admin/dashboard' . /*$suffix .*/ '.js', array( 'jquery' ), PH_VERSION ); wp_register_script( 'propertyhive_admin', PH()->plugin_url() . '/assets/js/admin/admin' . /*$suffix .*/ '.js', array( 'jquery', 'jquery-tiptip' ), PH_VERSION ); wp_register_script( 'jquery-tiptip', PH()->plugin_url() . '/assets/js/jquery-tiptip/jquery.tipTip' . /*$suffix .*/ '.js', array( 'jquery' ), PH_VERSION, true ); wp_register_script( 'propertyhive_admin_meta_boxes', PH()->plugin_url() . '/assets/js/admin/meta-boxes' . /*$suffix .*/ '.js', array( 'jquery', 'jquery-ui-datepicker', 'jquery-ui-sortable' ), PH_VERSION ); wp_register_script( 'propertyhive_admin_settings', PH()->plugin_url() . '/assets/js/admin/settings' . /*$suffix .*/ '.js', array( 'jquery', 'wp-color-picker' ), PH_VERSION ); wp_register_script( 'propertyhive_admin_recently_viewed', PH()->plugin_url() . '/assets/js/admin/recently-viewed' . /*$suffix .*/ '.js', array( 'jquery' ), PH_VERSION ); wp_register_script( 'ajax-chosen', PH()->plugin_url() . '/assets/js/chosen/ajax-chosen.jquery' . /*$suffix .*/ '.js', array('jquery', 'chosen'), PH_VERSION ); wp_register_script( 'chosen', PH()->plugin_url() . '/assets/js/chosen/chosen.jquery' . /*$suffix .*/ '.js', array('jquery'), PH_VERSION ); wp_register_script( 'multiselect', PH()->plugin_url() . '/assets/js/multiselect/jquery.multiselect' . /*$suffix .*/ '.js', array('jquery'), '2.4.18' ); wp_register_script( 'flot', PH()->plugin_url() . '/assets/js/jquery-flot/jquery.flot' . $suffix . '.js', array( 'jquery' ), PH_VERSION ); wp_register_script( 'flot-resize', PH()->plugin_url() . '/assets/js/jquery-flot/jquery.flot.resize' . $suffix . '.js', array( 'jquery', 'flot' ), PH_VERSION ); wp_register_script( 'flot-time', PH()->plugin_url() . '/assets/js/jquery-flot/jquery.flot.time' . $suffix . '.js', array( 'jquery', 'flot' ), PH_VERSION ); //wp_register_script( 'flot-pie', PH()->plugin_url() . '/assets/js/jquery-flot/jquery.flot.pie' . $suffix . '.js', array( 'jquery', 'flot' ), PH_VERSION ); //wp_register_script( 'flot-stack', PH()->plugin_url() . '/assets/js/jquery-flot/jquery.flot.stack' . $suffix . '.js', array( 'jquery', 'flot' ), PH_VERSION ); wp_enqueue_script( 'propertyhive_admin' ); $params = array(); // Add a bit better support for Gutenberg if enabled somehow (i.e. using Houzez) to load AJAX grids if ( isset($post->ID) && function_exists( 'use_block_editor_for_post_type' ) && use_block_editor_for_post_type( get_post_type($post->ID) ) && !isset( $_GET['classic-editor'] ) && is_array($tabs) && !empty($tabs) ) { $ajax_actions = array(); foreach ( $tabs as $key => $tab ) { if ( isset($tab['ajax_actions']) && !empty($tab['ajax_actions']) ) { foreach ( $tab['ajax_actions'] as $ajax_action ) { $ajax_actions[] = $ajax_action; } } } if ( !empty($ajax_actions) ) { $params = array( 'ajax_actions' => $ajax_actions, 'post_id' => $post->ID, ); } } wp_localize_script( 'propertyhive_admin', 'propertyhive_admin', $params ); $recently_viewed = get_user_meta( get_current_user_id(), '_propertyhive_recently_viewed', TRUE ); if ( !is_array($recently_viewed) ) { $recently_viewed = array(); } $params = array( 'recently_viewed' => $recently_viewed, ); wp_localize_script( 'propertyhive_admin_recently_viewed', 'propertyhive_admin_recently_viewed', $params ); wp_localize_script( 'multiselect', 'propertyhive_multiselect_params', apply_filters( 'propertyhive_multiselect_params', array( 'search' => false, 'selected_text' => __( 'selected', 'propertyhive' ), ) ) ); // PropertyHive admin pages if ( in_array( $screen->id, array( 'dashboard' ) ) ) { wp_enqueue_script( 'propertyhive_dashboard' ); $params = array( 'ajax_url' => admin_url('admin-ajax.php'), ); wp_localize_script( 'propertyhive_dashboard', 'propertyhive_dashboard', $params ); } if ( in_array( $screen->id, array( 'edit-contact', 'edit-enquiry', 'edit-appraisal', 'edit-viewing', 'edit-offer', 'edit-sale', 'edit-key_date' ) ) ) { wp_enqueue_script( 'moment.js', '//cdn.jsdelivr.net/momentjs/latest/moment.min.js' ); wp_enqueue_script( 'daterangepicker.js', '//cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js' ); wp_enqueue_script( 'date_range_filter.js', PH()->plugin_url() . '/assets/js/admin/date_range_filter.js', array('jquery', 'moment.js', 'daterangepicker.js'), PH_VERSION ); } if ( in_array( $screen->id, array( 'edit-key_date' ) ) ) { wp_enqueue_script( 'inline-edit-key_date.js', PH()->plugin_url() . '/assets/js/admin/inline-edit-key_date.js', array('jquery'), PH_VERSION ); } if ( get_option('propertyhive_module_disabled_viewings', '') != 'yes' && in_array( $screen->id, array( 'property', 'contact' ) ) ) { wp_enqueue_script( 'propertyhive_fancybox', PH()->plugin_url() . '/assets/js/fancybox/jquery.fancybox.js', array('jquery'), '3.5.7' ); } if ( in_array( $screen->id, array( 'property' ) ) ) { if ( ! class_exists( '_WP_Editors', false ) ) { require( ABSPATH . WPINC . '/class-wp-editor.php' ); } add_action( 'admin_print_footer_scripts', array( '_WP_Editors', 'print_default_editor_scripts' ) ); if ( isset($_GET['tutorial']) && sanitize_text_field($_GET['tutorial']) == 'yes' ) { wp_enqueue_script( 'driver-js', PH()->plugin_url() . '/assets/js/tours/driver-js.js', array(), '1.0.1' ); wp_register_script( 'tour', PH()->plugin_url() . '/assets/js/tours/tour.js', array( 'driver-js' ), '1.0.1' ); wp_enqueue_script( 'tour' ); $tours = [ 'add-property' => [ [ 'element' => '#title', 'popover' => [ 'title' => __( 'Enter the Property\'s Display Address', 'propertyhive' ), 'description' => __( 'This is the title or address that will be shown publicly. Make it clear and appealing for your audience.', 'propertyhive' ), 'side' => 'bottom', ], ], [ 'element' => '#propertyhive_metabox_tabs', 'popover' => [ 'title' => __( 'Explore the Property Record', 'propertyhive' ), 'description' => __( 'The property record is organized into sections for easy navigation. Use these tabs to switch between sections.

Go ahead, try clicking them now.', 'propertyhive' ), 'side' => 'bottom', 'onPrevClick' => 'revert_to_first_tab', 'onNextClick' => 'revert_to_first_tab', ], ], [ 'element' => '#propertyhive-property-address', 'popover' => [ 'title' => __( 'Enter the Property Details', 'propertyhive' ), 'description' => __( 'Use these fields to input essential property information like address, price, bedrooms, and more. You can also upload images to showcase the property.', 'propertyhive' ), 'side' => 'top', 'onNextClick' => 'revert_to_third_tab', ], ], [ 'element' => '#\\_on_market', 'popover' => [ 'title' => __( 'Put it on the Market', 'propertyhive' ), 'description' => __( 'For a property to show on your website it will need to be set to \'On Market\' under the \'Marketing\' tab.', 'propertyhive' ), 'side' => 'top', 'onPrevClick' => 'revert_to_first_tab', 'onNextClick' => 'revert_to_first_tab', ], ], [ 'element' => '#submitdiv', 'popover' => [ 'title' => __( 'Publish your Property', 'propertyhive' ), 'description' => __( 'When you\'re done and are ready to save your changes, simply click \'Publish\'', 'propertyhive' ), 'side' => 'left', 'onPrevClick' => 'revert_to_third_tab', ], ], ], ]; wp_localize_script( 'tour', 'tour_plugin', array( 'tours' => $tours, ) ); } } if ( in_array( $screen->id, ph_get_screen_ids() ) ) { wp_enqueue_script( 'ajax-chosen' ); wp_enqueue_script( 'chosen' ); wp_enqueue_script( 'jquery-ui-sortable' ); wp_enqueue_script( 'wp-tinymce' ); if ( get_option('propertyhive_maps_provider') == 'mapbox' ) { wp_register_script('mapbox', PH()->plugin_url() . '/assets/js/mapbox/mapbox-gl.js', false, '3.8.0'); wp_enqueue_script('mapbox'); if ( get_option('propertyhive_geocoding_provider') == '' ) { $api_key = get_option('propertyhive_google_maps_geocoding_api_key'); wp_register_script('googlemaps', '//maps.googleapis.com/maps/api/js?' . ( ( $api_key != '' && $api_key !== FALSE ) ? 'key=' . $api_key : '' ), false, '3'); wp_enqueue_script('googlemaps'); } } elseif ( get_option('propertyhive_maps_provider') == 'osm' ) { wp_register_style('leaflet', PH()->plugin_url() . '/assets/js/leaflet/leaflet.css', array(), '1.9.4'); wp_enqueue_style('leaflet'); wp_register_script('leaflet', PH()->plugin_url() . '/assets/js/leaflet/leaflet.js', array(), '1.9.4', false); wp_enqueue_script('leaflet'); if ( get_option('propertyhive_geocoding_provider') == '' ) { $api_key = get_option('propertyhive_google_maps_geocoding_api_key'); wp_register_script('googlemaps', '//maps.googleapis.com/maps/api/js?' . ( ( $api_key != '' && $api_key !== FALSE ) ? 'key=' . $api_key : '' ), false, '3'); wp_enqueue_script('googlemaps'); } } else { $api_key = get_option('propertyhive_google_maps_api_key'); wp_register_script('googlemaps', '//maps.googleapis.com/maps/api/js?' . ( ( $api_key != '' && $api_key !== FALSE ) ? 'key=' . $api_key : '' ), false, '3'); wp_enqueue_script('googlemaps'); } wp_enqueue_media(); wp_enqueue_script( 'propertyhive_admin_meta_boxes' ); wp_enqueue_script( 'propertyhive_admin_recently_viewed' ); wp_enqueue_script( 'jquery-ui-datepicker' ); wp_enqueue_script( 'jquery-ui-autocomplete' ); wp_enqueue_script( 'ajax-chosen' ); wp_enqueue_script( 'chosen' ); $params = array( 'plugin_url' => PH()->plugin_url(), 'ajax_url' => admin_url('admin-ajax.php'), 'post_id' => isset( $post->ID ) ? $post->ID : '', 'get_notes_nonce' => wp_create_nonce("get-notes"), 'pin_note_nonce' => wp_create_nonce("pin-note"), 'add_note_nonce' => wp_create_nonce("add-note"), 'delete_note_nonce' => wp_create_nonce("delete-note"), 'viewing_details_meta_nonce' => wp_create_nonce( 'viewing-details-meta-box' ), 'viewing_actions_nonce' => wp_create_nonce( 'viewing-actions' ), 'save_key_date_nonce' => wp_create_nonce( 'save-key-date' ), 'delete_key_date_nonce' => wp_create_nonce( 'delete-key-date' ), 'check_duplicate_reference_number_nonce' => wp_create_nonce("check-duplicate-reference-number"), 'enable_description_editor' => apply_filters('propertyhive_enable_description_editor', false), 'leasehold_tenures' => apply_filters('propertyhive_leasehold_tenure_names', array( 'leasehold', 'share of freehold' ) ), 'disable_notes_mention' => apply_filters('propertyhive_disable_notes_mention', false), ); wp_localize_script( 'propertyhive_admin_meta_boxes', 'propertyhive_admin_meta_boxes', $params ); if ( is_rtl() ) { wp_enqueue_script( 'chosen-rtl', PH()->plugin_url() . '/assets/js/chosen/chosen-rtl' . /*$suffix .*/ '.js', array( 'jquery' ), PH_VERSION, true ); } } if ( in_array( $screen->id, array('profile', 'user', 'user-edit') ) ) { wp_enqueue_media(); } if ( strpos($screen->id, 'page_ph-settings') !== FALSE ) { wp_enqueue_script( 'propertyhive_admin_settings' ); $params = array( 'confirm_not_selected_warning' => __( 'Please check the box to confirm that you are happy to remove this term', 'propertyhive' ), 'no_departments_selected_warning' => __( 'Please select at least one active department', 'propertyhive' ), 'primary_department_not_active_warning' => __( 'The chosen primary department has not been selected as active', 'propertyhive' ), 'no_countries_selected' => __( 'Please select which countries you operate in', 'propertyhive' ), 'default_country_not_in_selected' => __( 'The default country hasn\'t been selected as a country you operate in', 'propertyhive' ), 'admin_url' => admin_url(), 'taxonomy_section' => ( ( isset($_GET['section']) ) ? sanitize_text_field($_GET['section']) : '' ), 'ajax_nonce' => wp_create_nonce("updates"), 'features_settings_url' => admin_url('admin.php?page=ph-settings&tab=features'), ); if ( isset($_GET['tab']) && ph_clean($_GET['tab']) == 'licensekey' ) { $params['valid_pro_license_key'] = PH()->license->is_valid_pro_license_key(true); } else { $params['valid_pro_license_key'] = PH()->license->is_valid_pro_license_key(); } wp_localize_script( 'propertyhive_admin_settings', 'propertyhive_admin_settings', $params ); } // Reports Pages if ( strpos($screen->id, 'page_ph-reports') !== FALSE || in_array( $screen->id, array( 'property' ) ) ) { //wp_register_script( 'ph-reports', PH()->plugin_url() . '/assets/js/admin/reports' . /*$suffix .*/ '.js', array( 'jquery', 'jquery-ui-datepicker' ), PH_VERSION ); //wp_enqueue_script( 'ph-reports' ); wp_enqueue_script( 'flot' ); wp_enqueue_script( 'flot-resize' ); wp_enqueue_script( 'flot-time' ); //wp_enqueue_script( 'flot-pie' ); //wp_enqueue_script( 'flot-stack' ); } if ( $screen->id === 'plugins' ) { // Enqueue the JavaScript file wp_enqueue_script( 'propertyhive_deactivate_survey', PH()->plugin_url() . '/assets/js/deactivate-survey.js', array('jquery'), // Depend on jQuery '1.0.0', true // Load in footer ); wp_localize_script('propertyhive_deactivate_survey', 'deactivation_survey', array( 'nonce' => wp_create_nonce('deactivate-survey'), 'modalTitle' => __('If you have a moment, please let us know why you are deactivating:', 'propertyhive'), 'modalHeader' => __('Quick Feedback', 'propertyhive'), 'skipDeactivate' => __('Skip & Deactivate', 'propertyhive'), 'cancel' => __('Cancel', 'propertyhive'), 'deactivate' => __('Submit & Deactivate', 'propertyhive'), 'brokeSite' => __('The plugin broke my site', 'propertyhive'), 'confusing' => __('The plugin is confusing', 'propertyhive'), 'inadequateSupport' => __('The support/documentation is inadequate', 'propertyhive'), 'poorPerformance' => __('The plugin is too slow/affects performance', 'propertyhive'), 'notNeeded' => __('I no longer need the plugin', 'propertyhive'), 'betterPlugin' => __('I found a better plugin', 'propertyhive'), 'temporary' => __('It\'s a temporary deactivation', 'propertyhive'), 'other' => __('Other', 'propertyhive'), 'brokeSiteLabel' => __('Oh no! Can you tell us more? (optional)', 'propertyhive'), 'betterPluginLabel' => __('What\'s the plugin\'s name? (optional)', 'propertyhive'), 'otherLabel' => __('Additional feedback or comments: (optional)', 'propertyhive'), 'anonymous' => __('Anonymous feedback', 'propertyhive'), )); } } } endif; return new PH_Admin_Assets();