Sacconi69

FUNZIONE RICERCA

Mar 5th, 2024
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.46 KB | None | 0 0
  1. //CUSTOM SEARCH BOX E SUO SHORTCODE
  2. //CODICE GURU di WordPress Buddha
  3.  
  4. function wpb_demo_shortcode() {
  5. global $wpdb, $wp_query;
  6.  
  7. // Retrieve categories dropdown
  8. $categories = wp_dropdown_categories([
  9. 'show_count' => 1,
  10. 'hierarchical' => 1,
  11. 'show_option_all' => esc_html__('All destinations', 'sacconicase'),
  12. 'echo' => false,
  13. ]);
  14. //fine categoria
  15.  
  16. // Retrieve tipologia dropdown
  17.  
  18. $select = $wp_query->get('tipologia');
  19. $select = '' == $select ? 0 : $select;
  20. $taxonomy = wp_dropdown_categories([
  21. 'hierarchical' => false,
  22. 'name' => 'tipologia',
  23. 'taxonomy' => 'tipologia',
  24. 'selected' => $select,
  25. 'show_option_all' => esc_html__('Typology', 'sacconicase'),
  26. 'value_field' => 'slug',
  27. 'echo' => false
  28. ]);
  29.  
  30. $tipologia= '<select>
  31. $select =
  32. </select>';
  33.  
  34.  
  35. //nuovi ospiti e camere
  36.  
  37. // Retrieve unique values for 'function_camere' custom field
  38. $functionCamereValues = $wpdb->get_col("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = 'function_camere' ORDER BY meta_value");
  39. $functionCamereDropdown = '<select name="function_camere">';
  40. $functionCamereDropdown .= '<option value="">' . esc_html__('n.Bedrooms', 'sacconicase') . '</option>';
  41.  
  42. foreach ($functionCamereValues as $value) {
  43. $number = empty($_GET['function_camere']) ? '': $_GET['function_camere'];
  44. $functionCamereDropdown .= '<option value="' . esc_attr($value) . '" '.
  45. selected( $number, $value, false ) .' >' . esc_html($value) . '+' . '</option>';
  46.  
  47. }
  48. $functionCamereDropdown .= '</select>';
  49.  
  50.  
  51.  
  52. // Retrieve unique values for 'function_ospiti' custom field
  53. $functionOspitiValues = $wpdb->get_col("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = 'function_ospiti' ORDER BY meta_value");
  54. $functionOspitiDropdown = '<select name="function_ospiti">';
  55. $functionOspitiDropdown .= '<option value="">' . esc_html__('n.Guests', 'sacconicase') . '</option>';
  56.  
  57.  
  58. foreach ($functionOspitiValues as $value) {
  59. $number = empty($_GET['function_ospiti']) ? '': $_GET['function_ospiti'];
  60. $functionOspitiDropdown .= '<option value="' . esc_attr($value) . '" '.
  61. selected( $number, $value, false ) .' >' . esc_html($value) .'+'. '</option>';
  62.  
  63. }
  64. $functionOspitiDropdown .= '</select>';
  65.  
  66.  
  67.  
  68.  
  69. // Form output
  70. $output = '<form class="sacconi_form" method="get" action="' . home_url('/') . '">' .
  71. $categories . $taxonomy . $tipologia .$functionOspitiDropdown . $functionCamereDropdown . '<br><br>' .
  72. '<input type="submit" name="search" value="' . esc_html__('Search', 'sacconicase') . '">' .
  73. '</form>';
  74.  
  75. return $output;
  76. }
  77.  
  78.  
  79. // register shortcode
  80.  
  81. add_shortcode('ricerca', 'wpb_demo_shortcode');
  82.  
  83.  
  84. // FILTRO CAMERE E OSPITI
  85.  
  86. add_action( 'pre_get_posts', 'bedrooms_guests_search_query');
  87.  
  88. function bedrooms_guests_search_query( $query ) {
  89. if (! is_admin() && $query->is_main_query()) {
  90. if ( array_key_exists('funzione_camere', $_GET ) &&
  91.  
  92. array_key_exists('funzione_ospiti', $_GET )) {
  93.  
  94. $meta_query = array(
  95. array(
  96. 'key' => 'function_ospiti',
  97. 'value' => (int) $_GET['funzione_ospiti'],
  98. 'type' => 'numeric',
  99. 'compare' => '>=',
  100. ),
  101. array(
  102. 'key' => 'function_camere',
  103. 'value' => (int) $_GET['funzione_camere'],
  104. 'type' => 'numeric',
  105. 'compare' => '>=',
  106. ),
  107. );
  108.  
  109. $query->set("meta_query", $meta_query);
  110. }
  111. }
  112. }
  113.  
  114.  
Advertisement
Add Comment
Please, Sign In to add comment