Utilizzo di Clerk.io con WPML in WooCommerce

Clerk.io può essere integrato in diverse lingue che condividono lo stesso backend di WooCommerce.

IMPORTANTE - È fondamentale notare che il completamento di un'integrazione WPML richiede competenze tecniche; suggeriamo di chiedere assistenza al proprio sviluppatore. I nostri sviluppatori interni di Clerk.io non sono in grado di eseguire questa operazione per voi.

Quando si utilizza WPML in WooCommerce, si dovrebbe essere in grado di differenziare le lingue in base all’URL, in questo modo:

Se avete URL unici come questi, potete estendere il plugin WooCommerce per supportare WPML.

1. Creare negozi

Il modo più semplice per implementare Clerk.io in più domini in impostazioni standard è creare un negozio separato per ogni dominio in my.clerk.io.

In questo modo, è possibile separare i prodotti, le vendite, le valute, ecc. per tenere traccia di ciascun dominio.

1. Iniziate creando il vostro negozio principale e seguite la Guida all’installazione per collegare il vostro negozio a Clerk.io, e scegliete le Raccomandazioni e/o i Risultati della ricerca che volete visualizzare nel vostro negozio web.

2. Una volta terminata la configurazione iniziale, tornate alla pagina iniziale di my.clerk.io (cliccando sul logo Clerk.io nell’angolo in alto a sinistra del menu laterale) e poi cliccate su "+ Aggiungi un nuovo negozio “ l’ultima opzione dell’elenco a scorrimento (generalmente sotto il/i negozio/i esistente/i e il nome della vostra azienda).:

3. Nella pagina Aggiungi un nuovo negozio, fare clic su Avanzate per visualizzare tutte le impostazioni.

4. Compilate i dettagli del vostro webshop e scegliete il vostro negozio principale dal menu a tendina Copy Content From Existing Store, quindi fate clic su Add Store.

In questo modo verranno trasferiti i Contenuti e i Design del negozio principale.

Ricordarsi di tradurre anche Titoli, in Contenuto-> Modifica -> Seleziona design nella lingua giusta.

2. Estendere il plugin

Invece di utilizzare la pagina del plugin in WooCommerce per aggiungere le chiavi pubbliche e private, è necessario inserire manualmente ogni coppia nei file del plugin e utilizzarle rispettivamente per ogni lingua.

Di seguito sono riportate le descrizioni dei 3 file da modificare.

2.1. plugin > clerk-woocommerce-x.x.x > includes > class-clerk-rest-api.php

Questo file è responsabile dell’autorizzazione di ogni negozio a ricevere i dati dei prodotti, delle categorie e degli ordini dal vostro dominio.

Il codice seguente può essere usato per controllare le lingue e autorizzarle in base ai negozi creati in my.clerk.io.

Assicurarsi di utilizzare i codici lingua corretti. L’esempio seguente utilizza inglese(en), tedesco(de), italiano(it) e francese(fr).

Inoltre, sostituite INSERT_PUBLIC_KEY e INSERT_PRIVATE_KEY con le chiavi pubbliche e private corrette del vostro negozio:

$my_current_lang = apply_filters( 'wpml_current_language', "en" );
            if ($my_current_lang == "en") {
                $plugin_public_key = "INSERT_PUBLIC_KEY";
                $plugin_private_key = "INSERT_PRIVATE_KEY";
            }
            if ($my_current_lang == "de") {
                $plugin_public_key = "INSERT_PUBLIC_KEY";
                $plugin_private_key = "INSERT_PRIVATE_KEY";
            }
            if ($my_current_lang == "it") {
                $plugin_public_key = "INSERT_PUBLIC_KEY";
                $plugin_private_key = "INSERT_PRIVATE_KEY";
            }
            if ($my_current_lang == "fr") {
                $plugin_public_key = "INSERT_PUBLIC_KEY";
                $plugin_private_key = "INSERT_PRIVATE_KEY";
            }

            if ($public_key === $plugin_public_key && $private_key === $plugin_private_key ) {

                return true;
            }

Inserire il codice nella funzione private function validateRequest($request), e assicurarsi di sostituire la parte inferiore, in modo che solo il codice sopra abbia return true.

Dovrebbe essere così:

2.2. plugin > clerk-woocommerce-x.x.x > include > class-clerk-visitor-tracking.php

Questo file è responsabile del recupero dei risultati linguistici corretti in base alla chiave API pubblica dei negozi in my.clerk.io.

Inserite il seguente codice vicino al tracking-script, appena prima del tag di chiusura ?> e, ancora una volta, assicuratevi di utilizzare i codici lingua corretti e sostituite INSERT_PUBLIC_KEY con la chiave pubblica corretta del vostro negozio:

$my_current_lang = apply_filters( 'wpml_current_language', "en" );
            if ($my_current_lang == "en") {
                $plugin_public_key = "INSERT_PUBLIC_KEY";
            }
            if ($my_current_lang == "de") {
                $plugin_public_key = "INSERT_PUBLIC_KEY";
            }
            if ($my_current_lang == "it") {
                $plugin_public_key = "INSERT_PUBLIC_KEY";
            }
            if ($my_current_lang == "fr") {
                $plugin_public_key = "INSERT_PUBLIC_KEY";
            }

Poi, all’interno di Clerk(‘config’, inserire il seguente codice come chiave:

<?php echo $plugin_public_key ?>

Infine, rimuovere la lingua impostata in Clerk.js.

È questo il codice da rimuovere:

language: '<?php echo $Lang; ?>'

Controllare questa schermata per verificare che il codice sia corretto:

2.3. plugin > clerk-woocommerce-x.x.x > include > class-clerk-api.php

Questo file è responsabile degli aggiornamenti in tempo reale da ciascuno dei negozi.

Iniziare aggiungendo le seguenti due variabili protette, sotto $logger:

protected $plugin_public_key;
protected $plugin_private_key;

Quindi, all’interno della funzione pubblica _costruzione() inserire il seguente codice, utilizzando i codici della lingua e le chiavi API pubbliche/private:

 $my_current_lang = apply_filters( 'wpml_current_language', "en" );
        if ($my_current_lang == "en") {
            $this->plugin_public_key = "INSERT_PUBLIC_KEY";
            $this->plugin_private_key = "INSERT_PRIVATE_KEY";
        }
        if ($my_current_lang == "it") {
            $this->plugin_public_key = "INSERT_PUBLIC_KEY";
            $this->plugin_private_key = "INSERT_PRIVATE_KEY";
        }
        if ($my_current_lang == "lang3") {
            $this->plugin_public_key = "INSERT_PUBLIC_KEY";
            $this->plugin_private_key = "INSERT_PRIVATE_KEY";
        }
        if ($my_current_lang == "lang4") {
            $this->plugin_public_key = "INSERT_PUBLIC_KEY";
            $this->plugin_private_key = "INSERT_PRIVATE_KEY";
        }

Infine, utilizzare il codice seguente per recuperare la chiave e la chiave privata all’interno di ciascuna delle funzioni removeProduct, addProduct e getContent.

'key' => $this->plugin_public_key,
'private_key' => $this->plugin_private_key,

Controllare le schermate sottostanti per verificare che il codice sia corretto:

3. Sincronizzare i domini

Una volta esteso il plugin, è possibile sincronizzare ciascuno dei negozi con il proprio dominio linguistico.

Avendo già installato l’estensione, si può saltare il primo passo e iniziare direttamente la configurazione e la sincronizzazione dei dati.

8. Quando la sincronizzazione è terminata, il dominio è pronto e utilizza la stessa configurazione del negozio principale.