PluginProbe
Property Hive / 2.3.0
Property Hive v2.3.0
2.3.1 2.3.0 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 1.4.46 1.4.47 1.4.48 1.4.49 1.4.5 1.4.50 1.4.51 1.4.52 1.4.53 1.4.54 1.4.55 1.4.56 1.4.57 1.4.58 1.4.59 1.4.6 1.4.60 1.4.61 All 261 releases
← All changes | includes/class-ph-frontend-scripts.php +105 -15 1.4.592.3.0 View file →
@@ -19,8 +19,9 @@
19 19 * Hook in methods
20 20 */
21 21 public static function init() {
22 22 add_action( 'wp_enqueue_scripts', array( __CLASS__, 'load_scripts' ) );
23 + add_filter( 'script_loader_tag', array( __CLASS__, 'embed_script_attributes' ), 10, 2 );
23 24 add_action( 'wp_print_scripts', array( __CLASS__, 'check_jquery' ), 25 );
24 25 add_action( 'wp_print_scripts', array( __CLASS__, 'localize_printed_scripts' ), 5 );
25 26 add_action( 'wp_print_footer_scripts', array( __CLASS__, 'localize_printed_scripts' ), 5 );
26 27 }
@@ -25,8 +26,22 @@
25 26 add_action( 'wp_print_footer_scripts', array( __CLASS__, 'localize_printed_scripts' ), 5 );
26 27 }
27 28
28 29 /**
30 + * Preserve the provider attributes used by the original Reel embeds.
31 + */
32 + public static function embed_script_attributes( $tag, $handle ) {
33 + if ( 'propertyhive-instagram-embed' === $handle ) {
34 + return str_replace( '<script ', '<script async ', $tag );
35 + }
36 + if ( 'propertyhive-facebook-embed' === $handle ) {
37 + $tag = str_replace( array( 'id="propertyhive-facebook-embed-js"', "id='propertyhive-facebook-embed-js'" ), 'id="facebook-jssdk"', $tag );
38 + return str_replace( '<script ', '<script async defer crossorigin="anonymous" ', $tag );
39 + }
40 + return $tag;
41 + }
42 +
43 + /**
29 44 * Get styles for the frontend
30 45 * @return array
31 46 */
32 47 public static function get_styles() {
@@ -56,11 +71,15 @@
56 71
57 72 // Register any scripts for later use, or used as dependencies
58 73 wp_register_script( 'jquery-cookie', $assets_path . 'js/jquery-cookie/jquery.cookie' . $suffix . '.js', array( 'jquery' ), '1.3.1', true );
59 74
60 - wp_register_script( 'propertyhive_fancybox', $assets_path . 'js/fancybox/jquery.fancybox' . $suffix . '.js', array( 'jquery' ), '3.3.5', true );
61 - wp_register_style( 'propertyhive_fancybox_css', $assets_path . 'css/jquery.fancybox' . $suffix . '.css', array(), '3.3.5' );
75 + wp_register_script( 'propertyhive_fancybox', $assets_path . 'js/fancybox/jquery.fancybox' . $suffix . '.js', array( 'jquery' ), '3.5.7', true );
76 + wp_register_style( 'propertyhive_fancybox_css', $assets_path . 'css/jquery.fancybox' . $suffix . '.css', array(), '3.5.7' );
62 77
78 + wp_register_script( 'tiny_slider', $assets_path . 'js/tiny-slider/tiny-slider.js', array( 'jquery' ), '2.9.4', true );
79 + wp_register_script( 'propertyhive_carousel', $assets_path . 'js/frontend/carousel.js', array( 'jquery' ), PH_VERSION, true );
80 + wp_register_style( 'tiny_slider_css', $assets_path . 'js/tiny-slider/tiny-slider.css', array(), '2.9.4' );
81 +
63 82 if ( get_option('propertyhive_lettings_fees_display_search_results', '') == 'yes' )
64 83 {
65 84 wp_enqueue_script( 'propertyhive_fancybox' );
66 85 wp_enqueue_style( 'propertyhive_fancybox_css' );
@@ -65,17 +84,16 @@
65 84 wp_enqueue_script( 'propertyhive_fancybox' );
66 85 wp_enqueue_style( 'propertyhive_fancybox_css' );
67 86 }
68 87
69 - if ( is_property() ) {
88 + if ( is_property() )
89 + {
70 90 wp_enqueue_script( 'propertyhive_fancybox' );
71 91 wp_enqueue_style( 'propertyhive_fancybox_css' );
72 92
73 - wp_enqueue_script( 'flexslider', $assets_path . 'js/flexslider/jquery.flexslider' . $suffix . '.js', array( 'jquery' ), '2.2.2', true );
93 + wp_enqueue_script( 'flexslider', $assets_path . 'js/flexslider/jquery.flexslider' . $suffix . '.js', array( 'jquery' ), '2.7.2', true );
74 94 wp_enqueue_script( 'flexslider-init', $assets_path . 'js/flexslider/jquery.flexslider.init' . $suffix . '.js', array( 'jquery','flexslider' ), PH_VERSION, true );
75 - wp_enqueue_style( 'flexslider_css', $assets_path . 'css/flexslider.css' );
76 -
77 - wp_enqueue_script( 'ph-single-property' );
95 + wp_enqueue_style( 'flexslider_css', $assets_path . 'css/flexslider.css', array(), '2.7.2' );
78 96 }
79 97
80 98 // Global frontend scripts
81 99 wp_enqueue_script( 'propertyhive_search', $frontend_script_path . 'search' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
@@ -81,11 +99,25 @@
81 99 wp_enqueue_script( 'propertyhive_search', $frontend_script_path . 'search' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
82 100 wp_enqueue_script( 'propertyhive_make_enquiry', $frontend_script_path . 'make-enquiry' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
83 101 //wp_enqueue_script( 'propertyhive', $frontend_script_path . 'propertyhive' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
84 102
103 + $captcha_service = get_option( 'propertyhive_captcha_service', '' );
104 + if ( $captcha_service == 'turnstile' )
105 + {
106 + if ( get_option( 'propertyhive_captcha_site_key', '' ) != '' && get_option( 'propertyhive_captcha_secret', '' ) != '' )
107 + {
108 + // phpcs:ignore PluginCheck.CodeAnalysis.EnqueuedResourceOffloading.OffloadedContent -- Required by the configured Cloudflare Turnstile service.
109 + wp_enqueue_script( 'turnstile', 'https://challenges.cloudflare.com/turnstile/v0/api.js?onload=ph_init_turnstile', array(), PH_VERSION, array( 'strategy' => 'defer', 'in_footer' => true ) );
110 + }
111 + }
112 +
85 113 wp_register_script( 'multiselect', $assets_path . 'js/multiselect/jquery.multiselect' . /*$suffix .*/ '.js', array('jquery'), '2.4.18', true );
86 114 wp_enqueue_style( 'multiselect', $assets_path . 'css/jquery.multiselect.css', array(), '2.4.18' );
87 115
116 + wp_register_script( 'propertyhive_dynamic_population', $assets_path . 'js/frontend/dynamic-population' . /*$suffix .*/ '.js', array('jquery'), '1.0.0', true );
117 +
118 + wp_enqueue_script( 'propertyhive_utm_tracker', $assets_path . 'js/frontend/utm-tracker' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
119 +
88 120 // CSS Styles
89 121 $enqueue_styles = self::get_styles();
90 122
91 123 if ( $enqueue_styles ) {
@@ -102,22 +134,80 @@
102 134 global $wp;
103 135
104 136 $assets_path = str_replace( array( 'http:', 'https:' ), '', PH()->plugin_url() ) . '/assets/';
105 137
106 - if ( wp_script_is( 'propertyhive_make_enquiry' ) ) {
107 - wp_localize_script( 'propertyhive_make_enquiry', 'propertyhive_make_property_enquiry_params', apply_filters( 'propertyhive_make_property_enquiry_params', array(
108 - 'ajax_url' => PH()->ajax_url()
109 - ) ) );
138 + if ( wp_script_is( 'propertyhive_search' ) )
139 + {
140 + $params = array(
141 + 'custom_departments' => ph_get_custom_departments(),
142 + 'do_image_resize' => false,
143 + 'image_ratio' => 2 / 3,
144 + );
145 +
146 + $current_settings = get_option( 'propertyhive_template_assistant', array() );
147 +
148 + if (
149 + is_post_type_archive('property')
150 + ||
151 + ( isset($current_settings['search_result_css_all_pages']) && $current_settings['search_result_css_all_pages'] == 'yes' )
152 + )
153 + {
154 + if (
155 + isset($current_settings['search_result_layout']) &&
156 + isset($current_settings['search_result_layout']) == 2
157 + )
158 + {
159 + $params['do_image_resize'] = true;
160 + }
161 + }
162 +
163 + $params = apply_filters( 'propertyhive_search_params', $params );
164 + $params = apply_filters( 'propertyhive_template_assistant_script_params', $params );
165 +
166 + wp_localize_script( 'propertyhive_search', 'propertyhive_search_params', $params );
110 167 }
111 168
112 - if ( wp_script_is( 'propertyhive_account' ) ) {
113 - wp_localize_script( 'propertyhive_account', 'propertyhive_account_params', apply_filters( 'propertyhive_account_params', array(
169 + if ( wp_script_is( 'propertyhive_make_enquiry' ) )
170 + {
171 + $data = array(
172 + 'ajax_url' => PH()->ajax_url(),
173 + 'default_validation_error_message' => esc_html(__( 'Please ensure all required fields have been completed', 'propertyhive' )),
174 + );
175 + if ( get_option('propertyhive_captcha_service', '') != '' )
176 + {
177 + $data['captcha_service'] = get_option('propertyhive_captcha_service', '');
178 + $data['recaptcha_site_key'] = get_option('propertyhive_captcha_site_key', 'recaptcha-v3');
179 + }
180 + wp_localize_script( 'propertyhive_make_enquiry', 'propertyhive_make_property_enquiry_params', apply_filters( 'propertyhive_make_property_enquiry_params', $data ) );
181 + }
182 +
183 + if ( wp_script_is( 'propertyhive_account' ) )
184 + {
185 + $data = array(
114 186 'ajax_url' => PH()->ajax_url(),
115 187 'my_account_url' => get_permalink( ph_get_page_id('my_account') ),
188 + 'custom_departments' => ph_get_custom_departments(),
116 189 'login_nonce' => wp_create_nonce( "ph_login" ),
190 + 'lost_password_nonce' => wp_create_nonce( "ph_lost_password" ),
191 + 'reset_password_nonce' => wp_create_nonce( "ph_reset_password" ),
117 192 'register_nonce' => wp_create_nonce( "ph_register" ),
118 - 'details_nonce' => wp_create_nonce( "ph_details" ),
193 + 'userdetails_nonce' => wp_create_nonce( "ph_userdetails" ),
119 194 'requirements_nonce' => wp_create_nonce( "ph_requirements" ),
195 + 'default_validation_error_message' => esc_html(__( 'Please ensure all required fields have been completed', 'propertyhive' )),
196 + );
197 + if ( get_option('propertyhive_captcha_service', '') != '' )
198 + {
199 + $data['captcha_service'] = get_option('propertyhive_captcha_service', '');
200 + $data['recaptcha_site_key'] = get_option('propertyhive_captcha_site_key', 'recaptcha-v3');
201 + }
202 +
203 + wp_localize_script( 'propertyhive_account', 'propertyhive_account_params', apply_filters( 'propertyhive_account_params', $data ) );
204 + }
205 +
206 + if ( wp_script_is( 'multiselect' ) ) {
207 + wp_localize_script( 'multiselect', 'propertyhive_multiselect_params', apply_filters( 'propertyhive_multiselect_params', array(
208 + 'search' => false,
209 + 'selected_text' => __( 'selected', 'propertyhive' ),
120 210 ) ) );
121 211 }
122 212 }
123 213
@@ -135,9 +225,9 @@
135 225
136 226 // Enforce minimum version of jQuery
137 227 if ( ! empty( $wp_scripts->registered['jquery']->ver ) && ! empty( $wp_scripts->registered['jquery']->src ) && 0 >= version_compare( $wp_scripts->registered['jquery']->ver, '1.8' ) ) {
138 228 wp_deregister_script( 'jquery' );
139 - wp_register_script( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), '1.8' );
229 + wp_register_script( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), '1.8', false );
140 230 wp_enqueue_script( 'jquery' );
141 231 }
142 232 }
143 233 }