PluginProbe
Property Hive / 2.4.0
Property Hive v2.4.0
2.4.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 All 262 releases
← All changes | includes/elementor-widgets/property-search-form.php +29 -29 2.2.3 → 2.4.0 View file →
@@ -3,8 +3,9 @@
3 3 * Elementor Property Search Form Widget.
4 4 *
5 5 * @since 1.0.0
6 6 */
7 +// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound -- Existing public Elementor widget class; retain its registered name for extension compatibility.
7 8 class Elementor_Property_Search_Form_Widget extends \Elementor\Widget_Base {
8 9
9 10 public function get_name() {
10 11 return 'property-search-form';
@@ -382,35 +383,34 @@
382 383 }
383 384 </style>';
384 385 }
385 386
386 - $original_department = isset($_GET['department']) ? sanitize_text_field($_GET['department']) : false;
387 - $changed_department = false;
388 - if (
389 - isset($settings['default_department']) && !empty($settings['default_department']) &&
390 - (
391 - !isset($_GET['department']) ||
392 - ( isset($_GET['department']) && empty($_GET['department']) )
393 - )
394 - )
395 - {
396 - $_GET['department'] = $settings['default_department'];
397 - $_REQUEST['department'] = $settings['default_department'];
398 -
399 - $changed_department = true;
400 - }
401 - ph_get_search_form( ( ( isset($settings['form_id']) && !empty($settings['form_id']) ) ? $settings['form_id'] : 'default' ) );
402 - if ( $changed_department === true )
403 - {
404 - if ( $original_department === false )
405 - {
406 - unset($_GET['department']);
407 - unset($_REQUEST['department']);
408 - }
409 - else
410 - {
411 - $_GET['department'] = $original_department;
412 - $_REQUEST['department'] = $original_department;
413 - }
414 - }
387 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Snapshot read-only search state for exact restoration after rendering.
388 + $original_get = $_GET;
389 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- GET and REQUEST can differ; preserve each caller's original search state.
390 + $original_request = $_REQUEST;
391 + $department = isset( $original_get['department'] ) && is_string( $original_get['department'] ) ? sanitize_text_field( wp_unslash( $original_get['department'] ) ) : '';
392 + if ( empty( $department ) && isset( $settings['default_department'] ) && is_string( $settings['default_department'] ) ) {
393 + $department = sanitize_text_field( $settings['default_department'] );
394 + }
395 + if ( '' !== $department ) {
396 + $_GET['department'] = wp_slash( $department );
397 + $_REQUEST['department'] = wp_slash( $department );
398 + } else {
399 + unset( $_GET['department'], $_REQUEST['department'] );
400 + }
401 + try {
402 + ph_get_search_form( ( isset( $settings['form_id'] ) && ! empty( $settings['form_id'] ) ) ? $settings['form_id'] : 'default' );
403 + } finally {
404 + if ( array_key_exists( 'department', $original_get ) ) {
405 + $_GET['department'] = $original_get['department'];
406 + } else {
407 + unset( $_GET['department'] );
408 + }
409 + if ( array_key_exists( 'department', $original_request ) ) {
410 + $_REQUEST['department'] = $original_request['department'];
411 + } else {
412 + unset( $_REQUEST['department'] );
413 + }
414 + }
415 415 }
416 416 }