Salta la navigazione

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.

Sun Mon Tue Wed Thu Fri Sat
- 11:00 – 15:00 11:00 – 15:00 11:00 – 15:00 11:00 – 15:00 11:00 – 15:00 -
- 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 -

Fuso orario del fornitore: Europe/Rome (GMT+01:00)

Etichettato: 

Questo ticket contiene 21 risposte, ha 2 voci.

Ultimo aggiornamento da Laura 11 mese, 3 settimana fa.

Assistito da: Laura.

Autore Messaggi
Febbraio 26, 2024 a 9:49 am #15343277

Laura
Supporter

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+01:00)

Hai provato quello che ti suggerivo qui? https://wpml.org/it/forums/topic/custom-post-types-e-acf-relationship/#post-15335074

Febbraio 26, 2024 a 12:28 pm #15344129

lucaM-21

La soluzione che suggerivi, si riferisce al CPT destinazioni mentre il problema è sul CPT Offerte. Ad ogni modo il problema sembra essere nella corretta copia del campo relationship acf. Entrando in modalità wordpress nel post in inglese e facendo semplicemente aggiorna, viene associato il corretto id, unico problema è che questo campo così facendo non viene serializzato (vedi allegato).

Screenshot 2024-02-26 alle 13.25.57.png
Screenshot 2024-02-26 alle 13.25.45.png
Febbraio 26, 2024 a 7:01 pm #15345938

Laura
Supporter

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+01:00)

Per la mancata serializzazione prova così

- Vai in acfml/classes/class-wpml-acf-post-ids.php
- Cambia questa riga

$ids_unpacked = (array) maybe_unserialize($acf_field->meta_value);

con

$ids_unpacked = maybe_unserialize( $acf_field->meta_value );
 
$came_as_array = is_array( $ids_unpacked );

- Cambia questa riga

foreach ($ids_unpacked as $id) {

con

foreach ( (array) $ids_unpacked as $id ) {

- Rimuovi il contenuto della relazione e salva il post
- Riaggiungi il contenuto della relazione, salva il post e aggiorna la traduzione

Febbraio 28, 2024 a 2:44 pm #15354400

lucaM-21

Quest non ha funzionato per la serializzazione.
Inoltre mi aspetto che nel CPT Destinazioni venga scritto anche l'ID del post che ho creato in quando il campo ACF è impostato relationship bidirectional, invece non viene scritto l'id corretto.
Come puoi vedere nel post WPML Testing (id 6434) in Inglese trovi il campo destination con id (non serializzato) 6359 che corrisponde al CPT Destinazioni Italy (id 6359) in Inglese. Nel campo invece offers del post Italy è presente un id 6366 mentre invece mi aspetto l'id 6359

Febbraio 28, 2024 a 8:05 pm #15355731

Laura
Supporter

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+01:00)

Per la serializzazione faccio presente, al momento non abbiamo altre soluzioni da suggerire.

Quanto all'ID non corretto, non riesco a riprodurlo, nella Sandbox gli ID sono corretti.
In entrambe i post del CPT offerte l'ID in relazione che appare (non serializzato, ok) è 67, che è l'ID dell'unico post destinazioni "Italia" che a sua volta ha in array

Array
(
    [0] => 66
    [1] => 72
)

che sono gli ID dei post tradotti, come atteso.
Se aggiornando tutti i post sul tuo sito il problema non si risolve lo mando al secondo livello, ma mi serve una copia del sito da esaminare visto che non è riproducibile.

Febbraio 28, 2024 a 8:52 pm #15355755

lucaM-21

Ho ricreato l'errore nella sandbox.
Come puoi vedere in Destinazioni > Francia (IT) il campo "offerta_su" è empty.
Questi sono i passaggi che ho effettuato:
- Creazione CPT Francia (EN)
- Aggiunta traduzione (IT) CPT Francia
- Creazione CPT Offer Paris (EN) e associazione acf destinatiozioni > France
- Aggiunta traduzione (IT) CPT Offerta Parigi

Febbraio 29, 2024 a 12:38 pm #15357954

Laura
Supporter

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+01:00)

Ma IT Francia non è stato aggiornato *dopo* aver aggiunto la relazione, quindi è normale che sia vuoto. Le traduzioni anche se hanno i campi impostati su copia *devono* essere aggiornate, è così che funziona WPML.

Vedi il video link nascosto
Capisco che con una relazione bidirezionale sia seccante ma al momento non c'è modo di aggiornare automaticamente le traduzioni.

Per quanto riguarda la mancata serializzazione invece rimando al team di compatibilità