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 -13 1.4.622.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,15 +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' );
95 + wp_enqueue_style( 'flexslider_css', $assets_path . 'css/flexslider.css', array(), '2.7.2' );
76 96 }
77 97
78 98 // Global frontend scripts
79 99 wp_enqueue_script( 'propertyhive_search', $frontend_script_path . 'search' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
@@ -79,11 +99,25 @@
79 99 wp_enqueue_script( 'propertyhive_search', $frontend_script_path . 'search' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
80 100 wp_enqueue_script( 'propertyhive_make_enquiry', $frontend_script_path . 'make-enquiry' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
81 101 //wp_enqueue_script( 'propertyhive', $frontend_script_path . 'propertyhive' . $suffix . '.js', array( 'jquery' ), PH_VERSION, true );
82 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 +
83 113 wp_register_script( 'multiselect', $assets_path . 'js/multiselect/jquery.multiselect' . /*$suffix .*/ '.js', array('jquery'), '2.4.18', true );
84 114 wp_enqueue_style( 'multiselect', $assets_path . 'css/jquery.multiselect.css', array(), '2.4.18' );
85 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 +
86 120 // CSS Styles
87 121 $enqueue_styles = self::get_styles();
88 122
89 123 if ( $enqueue_styles ) {
@@ -100,22 +134,80 @@
100 134 global $wp;
101 135
102 136 $assets_path = str_replace( array( 'http:', 'https:' ), '', PH()->plugin_url() ) . '/assets/';
103 137
104 - if ( wp_script_is( 'propertyhive_make_enquiry' ) ) {
105 - wp_localize_script( 'propertyhive_make_enquiry', 'propertyhive_make_property_enquiry_params', apply_filters( 'propertyhive_make_property_enquiry_params', array(
106 - 'ajax_url' => PH()->ajax_url()
107 - ) ) );
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 );
108 167 }
109 168
110 - if ( wp_script_is( 'propertyhive_account' ) ) {
111 - 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(
112 186 'ajax_url' => PH()->ajax_url(),
113 187 'my_account_url' => get_permalink( ph_get_page_id('my_account') ),
188 + 'custom_departments' => ph_get_custom_departments(),
114 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" ),
115 192 'register_nonce' => wp_create_nonce( "ph_register" ),
116 - 'details_nonce' => wp_create_nonce( "ph_details" ),
193 + 'userdetails_nonce' => wp_create_nonce( "ph_userdetails" ),
117 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' ),
118 210 ) ) );
119 211 }
120 212 }
121 213
@@ -133,9 +225,9 @@
133 225
134 226 // Enforce minimum version of jQuery
135 227 if ( ! empty( $wp_scripts->registered['jquery']->ver ) && ! empty( $wp_scripts->registered['jquery']->src ) && 0 >= version_compare( $wp_scripts->registered['jquery']->ver, '1.8' ) ) {
136 228 wp_deregister_script( 'jquery' );
137 - 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 );
138 230 wp_enqueue_script( 'jquery' );
139 231 }
140 232 }
141 233 }