private static function get_trending_terms(string $lang): array { global $wpdb; $out = []; $stats = $wpdb->prefix . 'dgwt_wcas_stats'; // Esiste la tabella? $exists = $wpdb->get_var( $wpdb->prepare("SHOW TABLES LIKE %s", $stats) ); if ( $exists !== $stats ) return $out; // Colonne opzionali $cols = $wpdb->get_col("SHOW COLUMNS FROM {$stats}", 0); $has_autocomplete = in_array('autocomplete', $cols, true); $has_lang = in_array('lang', $cols, true); // Helper che esegue una query costruita dinamicamente $run = function(array $opts) use ($wpdb, $stats) { $where = []; $params = []; $where[] = "created_at >= (NOW() - INTERVAL %d DAY)"; $params[] = FG_FiboSearch_Smart_Suggest_Single::DAYS_WINDOW; $where[] = "CHAR_LENGTH(phrase) BETWEEN 3 AND 50"; if (!empty($opts['regex_clean'])) { $where[] = "(" . "phrase REGEXP '^[0-9]{6,9}$' OR " . // SKU 6–9 cifre "phrase REGEXP '^[A-Za-z0-9À-ÖØ-öø-ÿ .,''’-]+$'" . ")"; $where[] = "phrase NOT REGEXP '\\\\.[a-z]{2,5}($|\\\\s)'"; // niente domini } if (!empty($opts['only_autocomplete']) && $opts['has_autocomplete']) { $where[] = "COALESCE(autocomplete,0) = 1"; } if (!empty($opts['lang_it']) && $opts['has_lang']) { $where[] = "(COALESCE(lang,'') IN ('it','it_IT',''))"; } $sql = " SELECT phrase, COUNT(*) AS cnt FROM {$stats} WHERE " . implode(' AND ', $where) . " GROUP BY phrase HAVING cnt >= %d ORDER BY cnt DESC LIMIT %d "; $params[] = 3; // frequenza minima $params[] = FG_FiboSearch_Smart_Suggest_Single::LIMIT_TERMS; $prepared = $wpdb->prepare($sql, $params); return $wpdb->get_results($prepared); }; // 1) Pulita ma prudente $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, // prima prova senza restringere troppo 'has_autocomplete' => $has_autocomplete, 'lang_it' => true, 'has_lang' => $has_lang, ]); // 2) Se pochi risultati, togli filtro lingua if (count($rows) < 5) { $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 3) Se ancora pochi, togli pulizia regex (accettiamo un po' di rumore) if (count($rows) < 5) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 4) Ultimo step (opzionale): limita ad autocomplete se la colonna esiste e c'è volume if (count($rows) < 5 && $has_autocomplete) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> true, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } foreach ($rows as $r) { $out[] = ['phrase' => $r->phrase, 'count' => (int)$r->cnt]; } return $out; } private static function get_trending_terms(string $lang): array { global $wpdb; $out = []; $stats = $wpdb->prefix . 'dgwt_wcas_stats'; // Esiste la tabella? $exists = $wpdb->get_var( $wpdb->prepare("SHOW TABLES LIKE %s", $stats) ); if ( $exists !== $stats ) return $out; // Colonne opzionali $cols = $wpdb->get_col("SHOW COLUMNS FROM {$stats}", 0); $has_autocomplete = in_array('autocomplete', $cols, true); $has_lang = in_array('lang', $cols, true); // Helper che esegue una query costruita dinamicamente $run = function(array $opts) use ($wpdb, $stats) { $where = []; $params = []; $where[] = "created_at >= (NOW() - INTERVAL %d DAY)"; $params[] = FG_FiboSearch_Smart_Suggest_Single::DAYS_WINDOW; $where[] = "CHAR_LENGTH(phrase) BETWEEN 3 AND 50"; if (!empty($opts['regex_clean'])) { $where[] = "(" . "phrase REGEXP '^[0-9]{6,9}$' OR " . // SKU 6–9 cifre "phrase REGEXP '^[A-Za-z0-9À-ÖØ-öø-ÿ .,''’-]+$'" . ")"; $where[] = "phrase NOT REGEXP '\\\\.[a-z]{2,5}($|\\\\s)'"; // niente domini } if (!empty($opts['only_autocomplete']) && $opts['has_autocomplete']) { $where[] = "COALESCE(autocomplete,0) = 1"; } if (!empty($opts['lang_it']) && $opts['has_lang']) { $where[] = "(COALESCE(lang,'') IN ('it','it_IT',''))"; } $sql = " SELECT phrase, COUNT(*) AS cnt FROM {$stats} WHERE " . implode(' AND ', $where) . " GROUP BY phrase HAVING cnt >= %d ORDER BY cnt DESC LIMIT %d "; $params[] = 3; // frequenza minima $params[] = FG_FiboSearch_Smart_Suggest_Single::LIMIT_TERMS; $prepared = $wpdb->prepare($sql, $params); return $wpdb->get_results($prepared); }; // 1) Pulita ma prudente $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, // prima prova senza restringere troppo 'has_autocomplete' => $has_autocomplete, 'lang_it' => true, 'has_lang' => $has_lang, ]); // 2) Se pochi risultati, togli filtro lingua if (count($rows) < 5) { $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 3) Se ancora pochi, togli pulizia regex (accettiamo un po' di rumore) if (count($rows) < 5) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 4) Ultimo step (opzionale): limita ad autocomplete se la colonna esiste e c'è volume if (count($rows) < 5 && $has_autocomplete) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> true, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } foreach ($rows as $r) { $out[] = ['phrase' => $r->phrase, 'count' => (int)$r->cnt]; } return $out; } private static function get_trending_terms(string $lang): array { global $wpdb; $out = []; $stats = $wpdb->prefix . 'dgwt_wcas_stats'; // Esiste la tabella? $exists = $wpdb->get_var( $wpdb->prepare("SHOW TABLES LIKE %s", $stats) ); if ( $exists !== $stats ) return $out; // Colonne opzionali $cols = $wpdb->get_col("SHOW COLUMNS FROM {$stats}", 0); $has_autocomplete = in_array('autocomplete', $cols, true); $has_lang = in_array('lang', $cols, true); // Helper che esegue una query costruita dinamicamente $run = function(array $opts) use ($wpdb, $stats) { $where = []; $params = []; $where[] = "created_at >= (NOW() - INTERVAL %d DAY)"; $params[] = FG_FiboSearch_Smart_Suggest_Single::DAYS_WINDOW; $where[] = "CHAR_LENGTH(phrase) BETWEEN 3 AND 50"; if (!empty($opts['regex_clean'])) { $where[] = "(" . "phrase REGEXP '^[0-9]{6,9}$' OR " . // SKU 6–9 cifre "phrase REGEXP '^[A-Za-z0-9À-ÖØ-öø-ÿ .,''’-]+$'" . ")"; $where[] = "phrase NOT REGEXP '\\\\.[a-z]{2,5}($|\\\\s)'"; // niente domini } if (!empty($opts['only_autocomplete']) && $opts['has_autocomplete']) { $where[] = "COALESCE(autocomplete,0) = 1"; } if (!empty($opts['lang_it']) && $opts['has_lang']) { $where[] = "(COALESCE(lang,'') IN ('it','it_IT',''))"; } $sql = " SELECT phrase, COUNT(*) AS cnt FROM {$stats} WHERE " . implode(' AND ', $where) . " GROUP BY phrase HAVING cnt >= %d ORDER BY cnt DESC LIMIT %d "; $params[] = 3; // frequenza minima $params[] = FG_FiboSearch_Smart_Suggest_Single::LIMIT_TERMS; $prepared = $wpdb->prepare($sql, $params); return $wpdb->get_results($prepared); }; // 1) Pulita ma prudente $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, // prima prova senza restringere troppo 'has_autocomplete' => $has_autocomplete, 'lang_it' => true, 'has_lang' => $has_lang, ]); // 2) Se pochi risultati, togli filtro lingua if (count($rows) < 5) { $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 3) Se ancora pochi, togli pulizia regex (accettiamo un po' di rumore) if (count($rows) < 5) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 4) Ultimo step (opzionale): limita ad autocomplete se la colonna esiste e c'è volume if (count($rows) < 5 && $has_autocomplete) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> true, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } foreach ($rows as $r) { $out[] = ['phrase' => $r->phrase, 'count' => (int)$r->cnt]; } return $out; } private static function get_trending_terms(string $lang): array { global $wpdb; $out = []; $stats = $wpdb->prefix . 'dgwt_wcas_stats'; // Esiste la tabella? $exists = $wpdb->get_var( $wpdb->prepare("SHOW TABLES LIKE %s", $stats) ); if ( $exists !== $stats ) return $out; // Colonne opzionali $cols = $wpdb->get_col("SHOW COLUMNS FROM {$stats}", 0); $has_autocomplete = in_array('autocomplete', $cols, true); $has_lang = in_array('lang', $cols, true); // Helper che esegue una query costruita dinamicamente $run = function(array $opts) use ($wpdb, $stats) { $where = []; $params = []; $where[] = "created_at >= (NOW() - INTERVAL %d DAY)"; $params[] = FG_FiboSearch_Smart_Suggest_Single::DAYS_WINDOW; $where[] = "CHAR_LENGTH(phrase) BETWEEN 3 AND 50"; if (!empty($opts['regex_clean'])) { $where[] = "(" . "phrase REGEXP '^[0-9]{6,9}$' OR " . // SKU 6–9 cifre "phrase REGEXP '^[A-Za-z0-9À-ÖØ-öø-ÿ .,''’-]+$'" . ")"; $where[] = "phrase NOT REGEXP '\\\\.[a-z]{2,5}($|\\\\s)'"; // niente domini } if (!empty($opts['only_autocomplete']) && $opts['has_autocomplete']) { $where[] = "COALESCE(autocomplete,0) = 1"; } if (!empty($opts['lang_it']) && $opts['has_lang']) { $where[] = "(COALESCE(lang,'') IN ('it','it_IT',''))"; } $sql = " SELECT phrase, COUNT(*) AS cnt FROM {$stats} WHERE " . implode(' AND ', $where) . " GROUP BY phrase HAVING cnt >= %d ORDER BY cnt DESC LIMIT %d "; $params[] = 3; // frequenza minima $params[] = FG_FiboSearch_Smart_Suggest_Single::LIMIT_TERMS; $prepared = $wpdb->prepare($sql, $params); return $wpdb->get_results($prepared); }; // 1) Pulita ma prudente $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, // prima prova senza restringere troppo 'has_autocomplete' => $has_autocomplete, 'lang_it' => true, 'has_lang' => $has_lang, ]); // 2) Se pochi risultati, togli filtro lingua if (count($rows) < 5) { $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 3) Se ancora pochi, togli pulizia regex (accettiamo un po' di rumore) if (count($rows) < 5) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 4) Ultimo step (opzionale): limita ad autocomplete se la colonna esiste e c'è volume if (count($rows) < 5 && $has_autocomplete) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> true, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } foreach ($rows as $r) { $out[] = ['phrase' => $r->phrase, 'count' => (int)$r->cnt]; } return $out; } private static function get_trending_terms(string $lang): array { global $wpdb; $out = []; $stats = $wpdb->prefix . 'dgwt_wcas_stats'; // Esiste la tabella? $exists = $wpdb->get_var( $wpdb->prepare("SHOW TABLES LIKE %s", $stats) ); if ( $exists !== $stats ) return $out; // Colonne opzionali $cols = $wpdb->get_col("SHOW COLUMNS FROM {$stats}", 0); $has_autocomplete = in_array('autocomplete', $cols, true); $has_lang = in_array('lang', $cols, true); // Helper che esegue una query costruita dinamicamente $run = function(array $opts) use ($wpdb, $stats) { $where = []; $params = []; $where[] = "created_at >= (NOW() - INTERVAL %d DAY)"; $params[] = FG_FiboSearch_Smart_Suggest_Single::DAYS_WINDOW; $where[] = "CHAR_LENGTH(phrase) BETWEEN 3 AND 50"; if (!empty($opts['regex_clean'])) { $where[] = "(" . "phrase REGEXP '^[0-9]{6,9}$' OR " . // SKU 6–9 cifre "phrase REGEXP '^[A-Za-z0-9À-ÖØ-öø-ÿ .,''’-]+$'" . ")"; $where[] = "phrase NOT REGEXP '[.][a-z]{2,5}($|[[:space:]])'"; } if (!empty($opts['only_autocomplete']) && $opts['has_autocomplete']) { $where[] = "COALESCE(autocomplete,0) = 1"; } if (!empty($opts['lang_it']) && $opts['has_lang']) { $where[] = "(COALESCE(lang,'') IN ('it','it_IT',''))"; } $sql = " SELECT phrase, COUNT(*) AS cnt FROM {$stats} WHERE " . implode(' AND ', $where) . " GROUP BY phrase HAVING cnt >= %d ORDER BY cnt DESC LIMIT %d "; $params[] = 3; // frequenza minima $params[] = FG_FiboSearch_Smart_Suggest_Single::LIMIT_TERMS; $prepared = $wpdb->prepare($sql, $params); return $wpdb->get_results($prepared); }; // 1) Pulita ma prudente $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, // prima prova senza restringere troppo 'has_autocomplete' => $has_autocomplete, 'lang_it' => true, 'has_lang' => $has_lang, ]); // 2) Se pochi risultati, togli filtro lingua if (count($rows) < 5) { $rows = $run([ 'regex_clean' => true, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 3) Se ancora pochi, togli pulizia regex (accettiamo un po' di rumore) if (count($rows) < 5) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> false, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } // 4) Ultimo step (opzionale): limita ad autocomplete se la colonna esiste e c'è volume if (count($rows) < 5 && $has_autocomplete) { $rows = $run([ 'regex_clean' => false, 'only_autocomplete'=> true, 'has_autocomplete' => $has_autocomplete, 'lang_it' => false, 'has_lang' => $has_lang, ]); } foreach ($rows as $r) { $out[] = ['phrase' => $r->phrase, 'count' => (int)$r->cnt]; } return $out; }
Notice: wp_woocommerce_session_a59ea2e80aa4813e0db8c1fcd52b8cc9 cookie cannot be set - headers already sent by /home/floralgarden/public_html/wp-content/mu-plugins/fg-fibosearch-smart-suggest.php on line 1 in /home/floralgarden/public_html/wp-content/plugins/woocommerce/includes/wc-core-functions.php on line 1121

Notice: wordpress_sp_pswp_recent_view cookie cannot be set - headers already sent by /home/floralgarden/public_html/wp-content/mu-plugins/fg-fibosearch-smart-suggest.php on line 1 in /home/floralgarden/public_html/wp-content/plugins/woocommerce/includes/wc-core-functions.php on line 1121
Sottovaso Dioniso Avana 25x25cm in Plastica - FloralGarden Skip to content
🍂 Festa d’Autunno 2025 è online il nuovo Volantino: offerte, idee e anteprime! Sfoglia il VolantinoSfoglia

Sottovaso Dioniso Avana 25x25cm in Plastica

  • CM: 25×25
  • Materiale: Plastica

Il prezzo originale era: 3,50€.Il prezzo attuale è: 2,80€.

Sconto del 20%Risparmierai 0,70 Offerta valida fino al 16/11/2025

Prezzo più basso negli ultimi 30 giorni: 2,80€.

Disponibile

Questa offerta scade tra:
06 07
days
05 06
hours
02 03
minutes
04 05
seconds

Potresti essere interessato a…

  • Sconto del 20%Risparmierai 1,20
    Valida fino al 16/11/2025

    Sottovaso Dioniso Avana 34x34cm in Plastica

    Il prezzo originale era: 5,99€.Il prezzo attuale è: 4,79€.
    • CM: 34x34x4h
    • Materiale: Plastica
  • Sconto del 20%Risparmierai 1,60
    Valida fino al 16/11/2025

    Sottovaso Dioniso Grigio 37x37cm in Plastica

    Il prezzo originale era: 7,99€.Il prezzo attuale è: 6,39€.
    • CM: 37×37
    • Materiale: Plastica
Disponibile nei Garden Center
GittoGarden - Mondello (PA 90149)13 pezzi disponibiliVedi i dettagli di contatto
Tecnowood - VillaTasca (PA 90129)5 pezzi disponibiliVedi i dettagli di contatto

Descrizione

Descrizione

Il sottovaso è un accessorio utile e indispensabile per i vasi. Impedisce la fuoriuscita dell’acqua dopo l’annaffiatura e consente una circolazione di ossigeno sufficiente nel vaso. L’articolo è resistente sia al gelo che al caldo

QR Code

Informazioni aggiuntive

Peso 1 kg
FORNITORE

FLORAL GARDEN

AMBIENTE

GIARDINO

MATERIALE

PLASTICA

COLORI

MARRONE

OGGETTISTICA

sottovasi

Recensioni

Ancora non ci sono recensioni.

Lascia una recensione al cliente
Torna su
1