Verwendung von Clerk.io mit WPML in WooCommerce

Clerk.io kann in mehrere Sprachen integriert werden, die das gleiche WooCommerce-Backend nutzen

WICHTIG - Bitte beachten Sie, dass eine WPML-Integration technisches Fachwissen erfordert. Wir empfehlen Ihnen, sich an Ihren eigenen Entwickler zu wenden. Bitte beachten Sie, dass unsere internen Entwickler bei Clerk.io nicht in der Lage sind, diese Aufgabe für Sie zu übernehmen.

Wenn Sie WPML in WooCommerce verwenden, sollten Sie in der Lage sein, Ihre Sprachen anhand der URL zu unterscheiden, etwa so:

Wenn Sie eindeutige URLs wie diese haben, können Sie das WooCommerce-Plugin so erweitern, dass es WPML unterstützt.

1. Stores erstellen

Der einfachste Weg, Clerk.io in mehreren Domains in Standardkonfigurationen zu implementieren, ist die Erstellung eines separaten Stores für jede Domain in my.clerk.io.

Auf diese Weise können Sie Produkte, Verkäufe, Währungen usw. für jede Domain separat verwalten.

1. Beginnen Sie mit der Erstellung Ihres Haupt-Shops und folgen Sie der Setup-Anleitung zur Verbindung Ihres Shops mit Clerk.io, und wählen Sie die Empfehlungen und/oder Suchergebnisse, die Sie in Ihrem Webshop anzeigen möchten.

2. Wenn Sie mit der Ersteinrichtung fertig sind, kehren Sie zur Startseite von my.clerk.io zurück (indem Sie auf das Clerk.io-Logo in der _oberen linken Ecke des Seitenmenüs klicken) und klicken Sie dann auf "+ Neuen Laden hinzufügen “, die letzte Option in der Scroll-Down-Liste (in der Regel unter dem/den vorhandenen Laden und Ihrem Firmennamen):_

3. Klicken Sie auf der Seite Neuen Shop hinzufügen auf Erweitert, um alle Einstellungen zu sehen.

4. Geben Sie die Details Ihres Webshops ein, und wählen Sie Ihren Haupt-Shop aus dem Dropdown-Menü Inhalt aus bestehendem Shop kopieren, und klicken Sie dann auf Shop hinzufügen.

Dadurch werden der Inhalt und die Designs aus Ihrem Haupt-Shop übernommen.

Vergessen Sie nicht, Überschriften, in Inhalt-> Bearbeiten -> Design auswählen ebenfalls in die richtige Sprache zu übersetzen.

2. Erweitern Sie das Plugin

Anstatt die Plugin-Seite in WooCommerce zu verwenden, um die öffentlichen und privaten Schlüssel hinzuzufügen, müssen Sie jedes Paar manuell in den Plugin-Dateien eintragen und für jede Sprache verwenden.

Nachstehend finden Sie eine Beschreibung der 3 Dateien, die Sie ändern müssen.

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

Diese Datei ist dafür verantwortlich, dass jeder Shop die Produkt-, Kategorie- und Bestelldaten von Ihrer Domain empfangen kann.

Der folgende Code kann verwendet werden, um die Sprachen zu überprüfen und sie basierend auf den Stores, die Sie in my.clerk.io erstellt haben, zu autorisieren.

Stellen Sie sicher, dass Sie die richtigen Sprachcodes verwenden. Das folgende Beispiel verwendet englisch(en), deutsch(de), italienisch(it) und französisch(fr).

Ersetzen Sie außerdem INSERT_PUBLIC_KEY und INSERT_PRIVATE_KEY mit den richtigen öffentlichen und privaten Schlüsseln aus Ihrem Store:

$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;
            }

Fügen Sie den Code in die Funktion private function validateRequest($request) ein, und stellen Sie sicher, dass der untere Teil ersetzt wird, so dass nur der obige Code return true. hat.

Es sollte wie folgt aussehen:

2.2. plugins > clerk-woocommerce-x.x.x > includes > class-clerk-visitor-tracking.php

Diese Datei ist für das Abrufen der korrekten Sprachergebnisse auf der Grundlage des öffentlichen API-Schlüssels aus Ihren Stores in my.clerk.io verantwortlich.

Fügen Sie den folgenden Code in der Nähe des Tracking-Skripts ein, kurz vor dem abschließenden ?>-Tag. Stellen Sie sicher, dass Sie die richtigen Sprachcodes verwenden und ersetzen Sie INSERT_PUBLIC_KEY durch den richtigen öffentlichen Schlüssel Ihres Shops:

$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";
            }

Fügen Sie dann innerhalb von Clerk(‘config’ den folgenden Code als Schlüssel ein:

<?php echo $plugin_public_key ?>

Entfernen Sie schließlich die eingestellte Sprache in Clerk.js.

Es ist dieser Code, der entfernt werden sollte:

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

Überprüfen Sie diesen Screenshot, um sicherzustellen, dass Ihr Code korrekt aussieht:

2.3. plugins > clerk-woocommerce-x.x.x > includes > class-clerk-api.php

Diese Datei ist für die Echtzeit-Updates der einzelnen Stores zuständig.

Fügen Sie zunächst die folgenden zwei geschützten Variablen unter $logger hinzu:

protected $plugin_public_key;
protected $plugin_private_key;

Fügen Sie dann innerhalb der öffentlichen Funktion __construct() den folgenden Code ein, wobei Sie Ihre Sprachcodes und öffentlichen/privaten API-Schlüssel verwenden:

 $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";
        }

Verwenden Sie schließlich den folgenden Code, um den Schlüssel und private_key in jeder der Funktionen removeProduct, addProduct und getContent abzurufen

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

Überprüfen Sie anhand der folgenden Screenshots, ob Ihr Code korrekt aussieht:

3. Synchronisieren Sie Ihre Domains

Sobald Sie das Plugin erweitert haben, können Sie nun jeden Ihrer Stores mit seiner Sprachdomain synchronisieren.

Da Sie die Erweiterung bereits installiert haben, können Sie den ersten Schritt überspringen und direkt mit der Konfiguration und der Synchronisierung der Daten beginnen.

8. Wenn die Synchronisierung abgeschlossen ist, ist Ihre Domäne bereit und verwendet dieselbe Einrichtung wie Ihr Hauptshop.