This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

This topic contains 22 risposte, has 2 voci.

Last updated by Alejandro 1 mese, 1 settimana fa.

Assigned support staff: Alejandro.

Autore Post
November 25, 2019 at 5:00 pm #5015871

Alejandro
Supporter

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

Timezone: Europe/Rome (GMT+01:00)

Passerò anche questa informazione che mi hai dato ai nostri sviluppatori, perché oggi mi hanno risposto che in realtà non c'è proprio un hook visto che i cambiamenti sono diversi, quindi vediamo se riescono a darmi qualche altra dritta nel frattempo.

Ti terrò aggiornato.

November 26, 2019 at 12:24 pm #5021277

Alejandro
Supporter

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

Timezone: Europe/Rome (GMT+01:00)

I nostri sviluppatori consigliano di cancellare i transient alla fine del codice perché WooCommerce Multilingual non aggiunge niente extra, prova tanto con la funzione che ti ho dato io e con

wc_delete_product_transients()

Forse con queste 2 riesci a risolvere.

Fammi sapere come va.

December 4, 2019 at 5:15 pm #5071063

User7887

Ciao Alejandro, purtroppo come avevo già ipotizzato, la vostra soluzione che comprende i 2 comandi non funziona. Il risultato (quindi l'errore) rimane sempre.

Ho provato con:
/shop/designer/designer-women/loriblu-women/slipon-with-pearls/10323

E nonostante tutto, tale pronto non compare come dovrebbe in:
/it/categoria-prodotto/prodotti/prodotti-donna/scarpe-donna/slip-on-donna

La prova è stata effettuata con il seguente codice:
$my_post = array(
'ID' => 10323,
'post_type' => 'product',
);

// Update the post into the database
var_dump(wp_update_post( $my_post ));wc_delete_product_transients();

Oltre ad avere provato ad immettere anche l'ID della corrispettiva altra lingua, ma niente.
Ci deve per forza essere qualche funzione in più che viene innescata dal Vostro wpml multinguage al momento del salvataggio e che sistema tale incoerenza.

Sentitevi liberi pure di testare su tale prodotto, però urge una soluzione quanto prima.

Grazie ancora

December 5, 2019 at 10:10 am #5075093

Alejandro
Supporter

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

Timezone: Europe/Rome (GMT+01:00)

Potresti provare ad usare save_post() invece? https://developer.wordpress.org/reference/hooks/save_post/

Prima usa save_post() e dopo usa il wc_delete_product_transients(); (nella stessa funzione, intendo)

perché in realtà quello che si deve aggiornare e non si sta aggiornando nel tuo caso non viene proprio da WPML o WooCommerce Multilingual ma da WordPress direttamente.

Ho chiesto comunque al nostro sviluppatore di ricontrollare se per caso c'è qualcosa che ancora non stiamo controllando.

Saluti.

December 6, 2019 at 9:16 am #5082263

User7887

Provato con save_post con il seguente codice:

do_action( 'save_post', $id_post, WP_Post::get_instance($id_post), true );

wc_delete_product_transients();

E confermo che NON funziona.
Per altro, save_post, è un hook che viene chiamato già dalla funzione wp_update_post, quindi non comprendo tale suggerimento.

No, quello che si vede aggiornare viene sicuramente da Woocommerce, in quanto la query che ti ho già evidenziato è una caratteristica aggiunta da woocommerce per permettere la non visibilità dei prodotti out of stock. E che, in qualche modo, c'entra anche wpml dato che in inglese funziona benissimo e in italiano no.

Quindi, ricapitolando, sicuramente c'è una funzione che il vostro plugin multilingua richiama al salvataggio che non è tra quelle che mi hai indicato.

Attendo news,
grazie ancora

December 6, 2019 at 12:12 pm #5083865

Alejandro
Supporter

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

Timezone: Europe/Rome (GMT+01:00)

Ho inviato i risultati al nostro sviluppatore e aspetto una loro risposta.

December 6, 2019 at 1:01 pm #5083991

User7887

Grazie mille come sempre,
io nel mentre ho trovato delle cose potenzialmente interessanti nel vostro plugin:
woocommerce-multilingual/inc/translation-editor/class-wcml-synchronize-variations-data.php

Tuttavia, aspetto risposta dal vostro sviluppatore per sapere quali di queste funzioni fa da "trigger" per risolvere finalmente il nostro problema.

December 9, 2019 at 12:00 pm #5092537

Alejandro
Supporter

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

Timezone: Europe/Rome (GMT+01:00)

Ho parlato con i nostri dev e come già sapevamo, al momento tutto questo cade sempre nella categoria del custom development, cosa che non rientra nel nostro supporto.

Proviamo però a fare un altro tentativo, con un approccio diverso, visto che pensi che il problema possa essere dovuto a WPML/WCML.

- Questa pagina qui è un sandbox: hidden link , configura qui le tue lingue e categorie dei prodotti

- Carica il tuo tema con il file che importa i prodotti e nel file CSV crea 4 prodotti con stock 1 di ciuscun prodotto.

Gli articoli devono essere così:
- 1 Articolo senza traduzione
- 1 articolo variabile senza traduzione
- 1 Articolo semplice con traduzione
- 1 articolo variabile con traduzione

- Ora prova ad eseguire il file che importa i prodotti (quei 4 prodotti che presumo si fanno direttamente da un CSV, giusto?

Vedi se inizialmente si caricano bene, anche negli archive e fammelo sapere.

- Crea un backup con duplicator chiamato "initial import"
★ Instruzioni Duplicator
hidden link
https://wpml.org/faq/provide-supporters-copy-site/

- Poi, prova a fare un acquisto e fai esaurire i 4 prodotti creati

- Crea un altro duplicator questa volta chiamato "Prodotti esauriti"

- Fai quello che normalmente fai per aggiornare i prodotti e dimmi esattamente cos'è, tanto per avere tutto il processo correttamente e meticolosamente registrato

- Vedi se i prodotti si aggiornano bene e se compaiono nelle categorie.

- Crea un ultimo duplicator chiamato "out of stock to in stock"

ATTENZIONE: Non migrare tutto il sito perché il proposito di questo test è di comprovare che il problema si riesce a riprodurre in un ambiente pulito, per poi poter vedere se il problema proviene da WPML/WCML e da dove, perché è l'unico modo che ho per poter inviare il caso ai nostri sviluppatori.

Con questo test stiamo facendo una specie di debugging in un ambiente pulito, per vedere esattamente come ricreare il problema perché forse il problema si trova in un altro posto e quindi stiamo provando tutto a vuoto.

Se ci sono dei passi extra a quello che ti ho chiesto (su come importare i prodotti, come cambiare da out of stock a in stock) ti prego di scrivere qui come si fa, perché questo mi servirà per i test e servirà anche allo sviluppatore che segue il nostro caso.

Saluti.

December 9, 2019 at 5:53 pm #5094829

User7887

Alejandro, "custom development" è se avessi chiesto la risoluzione del problema.

La risoluzione la creo io senza alcun problema ma, data la carenza di documentazione, pensavo che almeno i vostri sviluppatori mi sapessero indicare anche solo il "nome" della funzione che ci interessa e che è risolutiva. Per un semplice risparmio di tempo che poi si riversa inevitabilmente sull'utilizzatore finale. (i prodotti sono inseriti e bisogna urgentemente metterli in uno stato corretto e visibile nella griglia dei prodotti).

Purtroppo ad oggi è più urgente la correzione del problema e la visibilità dei prodotti, piuttosto che la diagnosi che mi hai proposto.
Non avrebbe comunque risolto perché sui nuovi carichi dei prodotti non vi è alcun problema da quello che ho testato. Quindi mi viene da pensare che magari il problema può anche essere nato dall'utilizzo delle funzioni di troubleshooting di WPML per la sincronia prodotti e stock sui vecchi prodotti.

Ricapitolando nei prossimi giorni individuerò la funzione (o funzioni) che Wpml Multil. esegue quando l'utente clicca su "Save" e che risolvono il nostro problema out of stock in modo bulk, senza dover cliccare su salva su oltre 800 prodotti. Rimapperò tali funzioni e risolverò dunque il problema in modo definitivo.

Ben accette risposte/indicazioni (non custom development) per accelerare questo unico processo risolutivo e urgente.

grazie ancora e Saluti

December 9, 2019 at 6:23 pm #5095077

Alejandro
Supporter

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

Timezone: Europe/Rome (GMT+01:00)

Forse non mi sono spiegato bene. quando ho detto che cade nella categoria "custom development" non ti sto dicendo che non ti posso aiutare, ma che siccome il problema giace nel codice che hai scritto, in qualcosa in quel codice (che sia per mancanza di una funzione/hook WPML/WCML o meno), non riusciamo a trovare il modo per risolvere il problema.

Per poterlo trovare dovremmo fare un debug al codice che hai scritto e al processo che stai seguendo, cosa che potevamo fare (più o meno) se facevi tutto in un sandbox, dove avremmo avuto il controllo di quello che stava succedendo.

Lo so che il problema non succede ai prodotti nuovi, ma questo problema deve uscire da qualche parte, perché se il codice non è cambiato da quando hai caricato i prodotti vecchi, allora vuol dire che il processo non dovrebbe dare risultati diversi (invece, però li da, quindi ci deve essere qualcosa che succede soltanto ai prodotti vecchi che non succede ai prodotti nuovi, giusto? ).

Non so se tu hai eseguito il troubleshooting di WooCommerce Multilingual o di WPML (cioè quello che menzioni quando dici " mi viene da pensare che magari il problema può anche essere nato dall'utilizzo delle funzioni di troubleshooting di WPML per la sincronia prodotti e stock sui vecchi prodotti.") ma il problema c'era già prima che io ti consigliassi di farlo.

Tu parli di una diagnosi, ma come possiamo fare noi a risolvere un problema se non abbiamo la più pallida idea di come funziona tutto il sito e se non abbiamo idea di cosa succede quando non ci sono parti terze che possono interferire in questo processo?

Quando ti ho chiesto di riprodurre il problema te l'ho chiesto proprio perché i nostri sviluppatori mi hanno proposto che magari seguendo queste istruzioni, anche loro potrebbero capire meglio cosa stava succedendo (nel database) e quindi sicuramente il problema si sarebbe visto più chiaramente.

Anche perché ormai per risolvere il problema si sono fatte tante cose e quindi non sappiamo a questo punto com'è iniziata la cosa e da dove, e quindi non possiamo controllarle per poter vedere come risolverlo.

Di nuovo, ti dico questo, perché i nostri sviluppatori hanno visto il codice (che è basicamente una query) e insomma, se stai usando una query, non dovrebbe mancare niente, visto che stai facendo tutto tu, e da quel che mi hanno detto, non sembra mancare una funzione/hook dalla nostra parte che possa interagire con il problema che hai, sopratutto perché se quando esegui questo processo con un prodotto nuovo, il problema non si presenta, e al meno io, purtroppo non so neanche quale sarebbe la differenza tra i prodotti vecchi e quelli nuovi.

Una parte del test del sandbox ti chiedeva di aggiornare un prodotto proprio per "trasformare" il prodotto in uno "vecchio" e quindi cercare di vedere cosa succedeva in quel caso, in un ambiente pulito, con nessun tipo di aggiornamento o procedura extra oltre alla procedura custom che stai eseguendo tu.

Spero di essermi spiegato meglio questa volta. anche noi vogliamo aiutarti a risolvere il problema, credimi, ma se non sappiamo come funziona il tuo sito, ci viene quasi impossibile poter vedere che cosa non sta funzionando come si deve e sopratutto come procedere a risolverlo.

The topic ‘[Closed] Prodotto non compare nella categoria tradotta’ is closed to new replies.