Vai al contenuto Vai alla barra laterale

Questo thread è stato risolto. Ecco una descrizione del problema e della soluzione.

Problema:
I filtri nelle loop grid di categoria nelle pagine non appaiono nelle traduzioni in altre lingue, tranne il filtro 'all' che è traducibile.
Soluzione:
Il problema è legato ai nuovi campi dei prodotti WooCommerce introdotti da Elementor, specificamente nelle query dei prodotti che utilizzano i campi come

product_query_include_term_ids

.
Come soluzione temporanea, è possibile modificare il file

\wp-content\plugins\sitepress-multilingual-cms\addons\wpml-page-builders\classes\Integrations\Elementor\Hooks\QueryFilter.php

aggiungendo il seguente codice:

if ( ! empty( $data->settings->product_query_include_term_ids ) ) {<br />$data->settings->product_query_include_term_ids = $this->convertTermTaxonomyIds( $data->settings->product_query_include_term_ids );<br />}<br />if ( ! empty( $data->settings->product_query_exclude_term_ids ) ) {<br />$data->settings->product_query_exclude_term_ids = $this->convertTermTaxonomyIds( $data->settings->product_query_exclude_term_ids );<br />}

Questa correzione sarà inclusa nella prossima versione di WPML, la 4.9, eliminando la necessità di modifiche manuali.

Se questa soluzione non risolve il problema o sembra non essere più rilevante, ti consigliamo di aprire un nuovo ticket di supporto. Ti raccomandiamo inoltre di controllare gli argomenti noti, verificare la versione della correzione permanente e confermare di avere installato le ultime versioni di temi e plugin.

Questo è il forum di assistenza tecnica di WPML, il plug-in multilingue di WordPress.

La sua lettura è permessa a tutti, ma la pubblicazione è riservata esclusivamente ai clienti di WPML. Il team di WPML risponde sul forum 6 giorni su 7, 22 ore su 24.

Etichettato: 

Questo ticket contiene 14 risposte, ha 0 voci.

Ultimo aggiornamento da marcoC-2 3 mese, 2 settimana fa.

Assistito da: Paola Mendiburu.

Autore Post
Gennaio 19, 2026 alle 16:39 #17743543

marcoC-2

Ciao,
abbiamo inserito dei filtri nelle loop grid di categoria nelle pagine tipo
link nascosto

A parte il filtro all che è traducibile dalla scheda di traduzione della pagina, il resto dei filtri sparisce nelle altre lingue
es: link nascosto

Vedi anche screenshot.
Come si può risolvere questo problema?

Grazie

Gennaio 20, 2026 alle 8:25 #17744877

Paola Mendiburu
Sostenitore di WPML dal 11/2020

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Fuso orario: Europe/Madrid (GMT+02:00)

Ciao!

Sono Pala, spero vada tutto bene!

Vorrei richiedere un accesso temporaneo (wp-admin e FTP) al vostro sito per esaminare meglio il problema. Troverai i campi necessari sotto l'area commenti quando accedi per lasciare la tua prossima risposta. Le informazioni che inserirai sono private, il che significa che solo tu e io possiamo vederle e accedervi.

Politica sulla privacy e sulla sicurezza

Abbiamo politiche rigorose in materia di privacy e accesso alle tue informazioni. Perfavore guarda:
https://wpml.org/purchase/support-policy/privacy-and-security-when-provviding-debug-information-for-support/

**IMPORTANTE**

- Si prega di effettuare un backup dei file e del database del sito prima di fornirci l'accesso.

- Se non vedi i campi wp-admin/FTP significa che i dettagli di accesso al tuo post e al tuo sito web verranno resi PUBBLICI. NON pubblicare i dettagli del tuo sito web a meno che non vedi i campi wp-admin/FTP richiesti. Se non lo fai, chiedimi di abilitare la casella privata.

La casella privata è simile a questa: link nascosto
ente temporaneo, così potremo eliminarlo dopo aver chiuso la segnalazione.

Gennaio 20, 2026 alle 12:11 #17746126

Paola Mendiburu
Sostenitore di WPML dal 11/2020

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Fuso orario: Europe/Madrid (GMT+02:00)

Ci sto indagando.

Grazie.

Gennaio 21, 2026 alle 10:17 #17749634

marcoC-2

Grazie. Attendo news

Gennaio 21, 2026 alle 15:26 #17751089

marcoC-2

Ciao Paola,
hai novità? Ti servono altri dettagli per capire la issue o è chiara?

Fammi sapere
Grazie
m

Gennaio 21, 2026 alle 16:36 #17751473

Paola Mendiburu
Sostenitore di WPML dal 11/2020

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Fuso orario: Europe/Madrid (GMT+02:00)

Ciao!

Ho provato a riprodurre il problema su un sito di test
link nascosto
e lì funziona correttamente.

Ho fatto la stessa prova anche sul tuo sito, creando una pagina di test, e in questo caso funziona senza problemi:
link nascosto

Ti chiederei quindi di aggiungerlo nuovamente sulla pagina interessata e di farmi sapere se ora tutto funziona correttamente.

Gennaio 22, 2026 alle 9:14 #17752821

marcoC-2

Ciao. Credo di non aver capito bene. Cosa dovrei aggiungere sulla pagina interessata? Come dovrei procedere?

Gennaio 22, 2026 alle 12:27 #17753835

Paola Mendiburu
Sostenitore di WPML dal 11/2020

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Fuso orario: Europe/Madrid (GMT+02:00)

Puoi provare a creare nuovamente il loop grid sulla pagina originale e aggiornare la traduzione.

Gennaio 22, 2026 alle 13:54 #17754144

marcoC-2

Provato ma non funziona.
Non vorrei che quando si includono solo alcune categorie poi smette di funzionare.
Altre idee?

Gennaio 22, 2026 alle 13:58 #17754147

marcoC-2

Infatti ho provato a includere solo alcuni termini nella pagina di test che avevi creato link nascosto e nelle altre lingue non funziona più

Gennaio 22, 2026 alle 17:30 #17755024

Paola Mendiburu
Sostenitore di WPML dal 11/2020

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Fuso orario: Europe/Madrid (GMT+02:00)

Grazie mille per avermi indicato questo dettaglio.

Proprio grazie a questa informazione mi sono resa conto di dove si trova il problema: si verifica quando nella query viene applicato il filtro per term.

Sono riuscita a riprodurre il problema e l’ho già passato al secondo livello di supporto, così che possano analizzarlo e trovare una soluzione il prima possibile.

Ti avviso non appena avrò aggiornamenti.

Grazie ancora per la collaborazione!

Gennaio 27, 2026 alle 9:24 #17765968

marcoC-2

Ok grazie
Attendo news

m

Gennaio 27, 2026 alle 12:41 #17766983

Paola Mendiburu
Sostenitore di WPML dal 11/2020

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Fuso orario: Europe/Madrid (GMT+02:00)

Ciao!

Grazie ancora per la pazienza.

Il comportamento è legato ai nuovi campi dei prodotti WooCommerce introdotti da Elementor. In particolare, riguarda le query dei prodotti che utilizzano i campi come product_query_include_term_ids.

Workaround:

Al momento, WPML converte correttamente i termini per le query standard, ma non per le nuove query prodotto di Elementor.
Come soluzione temporanea, è possibile intervenire direttamente nel seguente file: \wp-content\plugins\sitepress-multilingual-cms\addons\wpml-page-builders\classes\Integrations\Elementor\Hooks\QueryFilter.php

Vai su:

	if ( ! empty( $data->settings->query_include_term_ids ) ) {
				$data->settings->query_include_term_ids = $this->convertTermTaxonomyIds( $data->settings->query_include_term_ids );
			}

Aggiungendo questo codice:

			if ( ! empty( $data->settings->product_query_include_term_ids ) ) {
				$data->settings->product_query_include_term_ids = $this->convertTermTaxonomyIds( $data->settings->product_query_include_term_ids );
			}
			if ( ! empty( $data->settings->product_query_exclude_term_ids ) ) {
				$data->settings->product_query_exclude_term_ids = $this->convertTermTaxonomyIds( $data->settings->product_query_exclude_term_ids );
			}

Questa correzione sarà inclusa nella prossima versione di WPML, la 4.9, così non sarà più necessario applicare modifiche manuali al codice.

Gennaio 27, 2026 alle 14:33 #17767747

marcoC-2

Ciao, il mio file sembra un po' diverso nel senso che non ho trovato esattamente il codice che mi hai indicato. Però aggiungendo il codice sotto ad una riga simile sembra funzionare tutto!

Questo è il mio codice. Ti chiedo se possibile di vedere se è corretto:

<?php

namespace WPML\PB\Elementor\Hooks;

use WPML\Convert\Ids;
use WPML\FP\Fns;
use WPML\FP\Maybe;
use WPML\LIB\WP\Hooks;
use WPML\PB\Elementor\DataConvert;
use WPML_Elementor_Data_Settings;

use function WPML\FP\spreadArgs;

class QueryFilter implements \IWPML_Frontend_Action, \IWPML_DIC_Action {

/**
* @var \SitePress
*/
private $sitepress;

/**
* @var \WPML_Term_Translation
*/
private $wpmlTermTranslation;

/**
* @param \SitePress $sitepress
* @param \WPML_Term_Translation $wpmlTermTranslation
*/
public function __construct( \SitePress $sitepress, \WPML_Term_Translation $wpmlTermTranslation ) {
$this->sitepress = $sitepress;
$this->wpmlTermTranslation = $wpmlTermTranslation;
}

public function add_hooks() {
Hooks::onFilter( 'get_post_metadata', 10, 4 )
->then( spreadArgs( Fns::withoutRecursion( Fns::identity(), [ $this, 'translateQueryIds' ] ) ) );
}

/**
* @param mixed $value
* @param int $object_id
* @param string $meta_key
* @param bool $single
*
* @return mixed
*/
public function translateQueryIds( $value, $object_id, $meta_key, $single ) {
if ( WPML_Elementor_Data_Settings::META_KEY_DATA === $meta_key && $single ) {
return Maybe::of( get_post_meta( $object_id, WPML_Elementor_Data_Settings::META_KEY_DATA, true ) )
->map( function ( $data ) {
return DataConvert::unserialize( $data, false );
} )
->map( function( $data ) {
return $this->recursivelyTranslateQueryIds( $data ); }
)
->map( function ( $data ) {
return DataConvert::serialize( $data, false );
} )
->getOrElse( $value );
}

return $value;
}

/**
* @param array|object|mixed $data
*
* @return array|object|mixed
*/
private function recursivelyTranslateQueryIds( $data ) {
if ( is_array( $data ) ) {
foreach ( $data as $key => $value ) {
$data[ $key ] = $this->recursivelyTranslateQueryIds( $value );
}
} elseif ( is_object( $data ) ) {
if ( ! empty( $data->elements ) ) {
$data->elements = $this->recursivelyTranslateQueryIds( $data->elements );
}
if ( ! empty( $data->settings->post_query_include_term_ids ) ) {
$data->settings->post_query_include_term_ids = $this->convertTermTaxonomyIds( $data->settings->post_query_include_term_ids );
}
if ( ! empty( $data->settings->post_query_exclude_term_ids ) ) {
$data->settings->post_query_exclude_term_ids = $this->convertTermTaxonomyIds( $data->settings->post_query_exclude_term_ids );
}
if ( ! empty( $data->settings->post_query_posts_ids ) ) {
$data->settings->post_query_posts_ids = Ids::convert( $data->settings->post_query_posts_ids, Ids::ANY_POST );
}
if ( ! empty( $data->settings->product_query_include_term_ids ) ) {
$data->settings->product_query_include_term_ids = $this->convertTermTaxonomyIds( $data->settings->product_query_include_term_ids );
}
if ( ! empty( $data->settings->product_query_exclude_term_ids ) ) {
$data->settings->product_query_exclude_term_ids = $this->convertTermTaxonomyIds( $data->settings->product_query_exclude_term_ids );
}
}

return $data;
}

/**
* @param int[] $ids
*
* @return int[]
*/
private function convertTermTaxonomyIds( $ids ) {
$currentLanguage = $this->sitepress->get_current_language();

$translateTermTaxonomyId = function ( $termTaxonomyId ) use ( $currentLanguage ) {
return $this->wpmlTermTranslation->element_id_in( $termTaxonomyId, $currentLanguage, true );
};

return wpml_collect( $ids )
->map( $translateTermTaxonomyId )
->filter()
->toArray();
}
}

Gennaio 27, 2026 alle 18:15 #17768675

Paola Mendiburu
Sostenitore di WPML dal 11/2020

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Fuso orario: Europe/Madrid (GMT+02:00)

Confermo che il codice è corretto e la soluzione è stata applicata nel modo giusto.

Ti informo inoltre che questa modifica sarà inclusa nella prossima versione di WPML 4.9, quindi non sarà più necessario mantenerla manualmente.