WP Manifestindependent plugin directory
manifest / integrations / domos-wordpress

immocore for WordPress WP Registry grade D-. Critical findings · 1 findingWP RegistryCritical findings · 1 findingOpen the reportD-

Das offizielle WordPress-Plugin für die domos-Integration.

★ 0stars
43release downloads
3.4.1latest · 1 year ago

Install

Download domos-core-2.0.3.zip From the 2.0.3 release on GitHub, Apr 12, 2024

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/domos-technologies/domos-wordpress/releases/download/2.0.3/domos-core-2.0.3.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

immocore Logo

immocore WordPress Integration

Funktionen

  • Synchronisation von Objekten
  • Shortcodes für die Darstellung einer Objektliste und -suche
  • Seiten für die Darstellung von Objekten
  • Eingebettete Karte

  1. Installation
  2. Konfiguration der Synchronisation
  3. Einbettung der Objektsuche/-karte
  4. Überschreiben des Theme-Layouts für Exposés
  5. Zugriff auf Immobiliendaten in WordPress
  6. Weitere Konfigurationen via WordPress-Filter
  7. Hinweise

Hinweis zu domos-Bezeichnungen

Im Q1 2025 haben wir uns zu "immocore" umbenannt, und wir tauschen die Bezeichnungen in der Dokumentation kontinuierlich aus. Um Backwards-Compatibility zu gewährleisten, behalten wir die Bezeichnungen im PHP-Code aber vorerst bei.

Installation

  1. Lade das Plugin in das Verzeichnis /wp-content/plugins/ hoch
  2. Aktiviere das Plugin "domos Core" im Menü 'Plugins' in WordPress
  3. Konfiguriere das Plugin im Menü 'domos', indem du die URL zu deiner immocore-Instanz angibst
  4. Füge den Shortcode [domos-list] in eine Seite ein, um eine Liste der Objekte anzuzeigen
  5. Syncronisiere die Objekte im Menü 'domos'
  6. Fertig! Die Objekte werden nun regelmäßig synchronisiert

Konfiguration der Synchronisation

Um die Objekte zu synchronisieren, musst du die URL deiner immocore-Instanz angeben. Dies kannst du in den Einstellungen des Plugins machen.

Einstellung Wert
Einstellungen Die domos Einstellungen findest du im WordPress-Admin-Bereich unten im Menü 'domos'.
Einstellungen Du kannst die URL deiner immocore-Instanz hier angeben.
Einstellungen Nach dem Speichern wird die Verbindung zu deiner immocore-Instanz hergestellt und gespeichert.
Einstellungen Du kannst außerdem weitere Sprachen konfigurieren, die synchronisiert werden sollen. So kannst du übersetzte auch Inahlte & Exposés auf deiner Website anzeigen.
Einstellungen Unter dem Menüpunkt "Sync" kannst du die Objekte nun synchronisieren. Dies erfolgt automatisch jeden Tag um Mitternacht.
Einstellungen Wenn alles geklappt hat, siehst du, was synchronisiert wurde.

Einbettung der Objektsuche/-karte

Die einfache Objektsuche/-karte kann über den Shortcode [domos-list] in eine beliebige Seite eingebettet werden.


Überschreiben des Theme-Layouts für Exposés

WordPress Post Name: domos_estate Wenn du ein Theme verwendest, dass ein eigenes Layout für Objekte oder die Standard WordPress-Post-Liste verwendest, kannst du in deinem Theme die Datei single-domos_estate.php oder archive-domos_estate.php überschreiben.

  • single-domos_estate.php wird für einzelne Exposés verwendet.
  • archive-domos_estate.php wird für die Standard WordPress-Post-Liste verwendet.

Zugriff auf Immobiliendaten in WordPress

Die EstatePost-Klasse stellt eine Brücke zwischen dem Immobiliendatenschema und WordPress her und ermöglicht es Ihnen, Immobilieninformationen abzurufen und anzuzeigen, die als WordPress-Beiträge gespeichert sind. Dieser Abschnitt erklärt, wie Sie die EstatePost-Klasse verwenden, um auf Immobiliendaten in einer WordPress-Umgebung zuzugreifen, wobei der Schwerpunkt auf Aufgaben liegt, die für die Erstellung von Websites relevant sind.

Zugriff auf Immobiliendaten via Immocore-ID

Um eine Immobilie anhand ihrer externen ID abzurufen:

$externalId = 'immocore-ID'; // Ihre externe ID
$estatePost = \Domos\Core\EstatePost::find($externalId);

if ($estatePost !== null) {
    $estate = $estatePost->data; // Dies ist eine Instanz von SchemaImmo\Estate
    echo "Immobilienname: " . $estate->name;
    echo "Immobilienadresse: " . $estate->address->street . " " . $estate->address->number;
} else {
    echo "Immobilie nicht gefunden";
}

Zugriff auf Immobiliendaten via WordPress-Post

Wenn mit Immobiliendaten in WordPress-Templates gearbeitet werden soll, kann die Methode EstatePost::fromPost() verwendet werden, um die Immobiliendaten aus einem $post zu erhalten:

global $post;

if ($post->post_type === \Domos\Core\EstatePost::POST_TYPE) {
    $estatePost = \Domos\Core\EstatePost::fromPost($post);
    $estate = $estatePost->data;

    // Jetzt können Sie auf alle Immobiliendaten zugreifen
    echo "<h1>{$estate->name}</h1>";
    echo "<p>Adresse: {$estate->address->street} {$estate->address->number}, {$estate->address->city}</p>";

    if ($estate->media->thumbnail) {
        echo "<img src='{$estate->media->thumbnail->src}' alt='{$estate->media->thumbnail->alt}'>";
    }

    // Merkmale anzeigen
    if (!empty($estate->features)) {
        echo "<h2>Merkmale:</h2><ul>";
        foreach ($estate->features as $feature => $value) {
            echo "<li>{$feature}: {$value}</li>";
        }
        echo "</ul>";
    }

    // Mietflächen anzeigen
    if (!empty($estate->buildings)) {
        foreach ($estate->buildings as $building) {
            echo "<h2>Gebäude: {$building->name}</h2>";
            foreach ($building->rentables as $rentable) {
                echo "<h3>Mietfläche: {$rentable->name}</h3>";
                echo "<p>Fläche: {$rentable->area} qm</p>"; // "sqm" zu "qm" lokalisiert
                echo "<p>Preis: {$rentable->price->base->amount} {$rentable->price->base->currency->value}</p>";
            }
        }
    }
}

Dieses Beispiel zeigt, wie auf verschiedene Aspekte der Immobiliendaten in einem WordPress-Template zugegriffen werden kann.

Zugriff auf übersetzte Immobiliendaten

Wenn andere Sprachen synchronisiert wurden, kann der find- und fromPost-Methode eine Sprache übergeben werden, um übersetzte Daten zu erhalten (solange diese vorhanden sind). Sind sie es nicht, wird die Standardsprache verwendet.

$estatePost = \Domos\Core\EstatePost::find($externalId, language: 'en');
$estatePost = \Domos\Core\EstatePost::fromPost($post, language: 'en');
$estate = $estatePost->data;

// Texte & Exposé sind auf Englisch

Wenn die gewünschte Sprache nicht verfügbar ist, wird die Standardsprache verwendet.

[!NOTE] Nicht für jede Sprache gibt es auch zwangsläufig ein WebExpose, auch wenn das Objekt selber übersetzt wurde. Die Variable $estate->expose ist dann null.

Um zu prüfen, ob Daten für eine bestimmte Sprache verfügbar sind, kann die EstatePost::hasLanguage($post_id, $language)-Methode verwendet werden:

$hasLanguage = \Domos\Core\EstatePost::hasLanguage($post->ID, 'en');

Mehrere Immobilien finden

Um mehrere Immobilien abzurufen, kann die WordPress-Klasse WP_Query in Kombination mit EstatePost::fromPost() verwendet werden:

$args = array(
    'post_type' => \Domos\Core\EstatePost::POST_TYPE,
    'posts_per_page' => 10,
    // ...
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        $estatePost = \Domos\Core\EstatePost::fromPost($query->post);
        $estate = $estatePost->data;

        // Immobilieninformationen anzeigen
        echo "<h2>{$estate->name}</h2>";
        echo "<p>{$estate->address->city}, {$estate->address->country}</p>";
    }
    wp_reset_postdata();
} else {
    echo "Keine Immobilien gefunden";
}

Dieses Beispiel zeigt, wie man mehrere Immobilien abfragt und grundlegende Informationen für jede anzeigt.

Immobilienverwaltungsoperationen (Interne Verwendung)

Die folgenden Operationen sind hauptsächlich für den internen Gebrauch und die Datenverwaltung vorgesehen:

  • Erstellen einer neuen Immobilie: EstatePost::create($externalId, $estateData)
  • Aktualisieren einer bestehenden Immobilie: EstatePost::update($externalId, $updatedEstateData)
  • Löschen einer Immobilie: EstatePost::delete($externalId)
  • Finden nicht mehr benötigter Immobilien: EstatePost::findUnneeded($activeIds)

Diese Methoden sollten mit Vorsicht und typischerweise innerhalb von administrativen Oberflächen oder Hintergrundprozessen verwendet werden, anstatt in öffentlich zugänglichem Website-Code.

Durch die Verwendung der EstatePost-Klasse kann das Immobiliendatenschema nahtlos in WordPress integriert werden, was den einfachen Abruf und die Anzeige komplexer Immobilieninformationen auf der WordPress-Site ermöglicht.


Weitere Konfigurationen via WordPress-Filter

1. domos_primary_shades

Modifiziert die primären Farben, die im Plugin verwendet werden. Verwendet Farb-Paletten im Tailwind-Format.

Standardwert: Ein Array von Farbcodes für die Schattierungen 50 bis 950.

Anwendung:

add_filter('domos_primary_shades', fn () => [
    '50' => '#f4f7fb',
    '100' => '#e9eff7',
    '200' => '#c7d7ec',
    '300' => '#a5bee1',
    '400' => '#628eca',
    '500' => '#1e5db3',
    '600' => '#1b54a1',
    '700' => '#174686',
    '800' => '#12386b',
    '900' => '#0f2e58',
    '950' => '#091c36',
]);

2. domos_gray_shades

Modifiziert die grauen Farben, die im Plugin verwendet werden. Verwendet Farb-Paletten im Tailwind-Format.

Standardwert: Ein Array von Farbcodes für die Schattierungen 50 bis 950.

Anwendung:

add_filter('domos_gray_shades', fn () => [
    '50' => '#fafafa',
    '100' => '#f5f5f5',
    '200' => '#e5e5e5',
    '300' => '#d4d4d4',
    '400' => '#a3a3a3',
    '500' => '#737373',
    '600' => '#525252',
    '700' => '#404040',
    '800' => '#262626',
    '900' => '#171717',
    '950' => '#0a0a0a',
]);

3. domos_is_using_dark_mode

Bestimmt, ob das Plugin den Dunkelmodus verwenden soll.

Standardwert: false

Anwendung:

add_filter('domos_is_using_dark_mode', fn () => true);

4. domos_privacy_policy_url

Legt die URL für die Datenschutzrichtlinie fest.

Standardwert: '/datenschutz'

Anwendung:

add_filter('domos_privacy_policy_url', fn () => '/neue-datenschutzrichtlinie');

5. domos_default_navbar_height

Die Kopfbereiche der Exposés können "Full-Height"-Varianten verwenden, welche den Kopfbereich auf die gesamte Höhe des Bildschirms bringen. Legt die Höhe für die Navigationsleiste fest, damit diese von der "Full-Height" abgezogen werden kann. (HTML-Einheiten wie px, em oder rem möglich).

Standardwert: 80px

Anwendung:

add_filter('domos_default_navbar_height', fn () => '100rem');

6. domos_lottie_colors

Modifiziert die Farben, die in den Merkmal-Icons verwendet werden.

Animiertes Icon

Standardwert: Ein Array mit 'color1' (primäre Schattierung 900) und 'color2' (primäre Schattierung 500).

Anwendung:

add_filter('domos_lottie_colors', fn () => [
    'color1' => '#0f2e58',  // Angepasstes Dunkelblau
    'color2' => '#1e5db3',  // Angepasstes Hellblau
]);

7. domos_font_families

Konfiguriert die Schriftarten, die innerhalb des Exposés verwendet werden sollen. Akzeptiert ein Array von Schriftarten, die von WordPress verwendet werden. Es werden automatisch "" doppelte Anführungszeichen hinzugefügt, außer bei Werten wie inherit, sans-serif, etc...

[!NOTE] Die Schriftarten müssen selber via normales WordPress CSS importiert werden. Dieser Filter legt nur fest, welche Schriftart von den Exposé-Elementen verwendet werden soll.

Standardwert: ['sans-serif']

Anwendung:

add_filter('domos_font_families', fn () => ['Roboto Slab', 'serif']);

8. domos_estate_escape_hatch

[!TIP] Dies ist kein Filter via add_filter(), sondern eine "Action" via add_action().

Diese Action dient dazu, eigenes CSS und JS innerhalb des Shadow DOM eines Exposés zu platzieren. Durch die Funktionsweise des Shadow DOM, kann es schwieriger sein, Inhalte innerhalb des Shadow DOMs zu stylen und zu bearbeiten.

Diese Action wird innerhalb des Shadow DOMs ausgeführt, wodurch jeder `

Releases

14 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
3.4.1 latest
Oct 17, 2025 1 year ago
tag only
—
Oct 17, 2025 1 year ago
tag only
—
Oct 16, 2025 1 year ago
tag only
—
Sep 30, 2025 1 year ago
tag only
—
Sep 25, 2025 1 year ago
tag only
—
Sep 24, 2025 1 year ago
tag only
—
Sep 4, 2025 1 year ago
tag only
—
Jul 11, 2025 1 year ago
tag only
—
Apr 12, 2024 2 years ago
domos-core-2.0.3.zip
5
Mar 11, 2024 2 years ago
domos-core-2.0.1.zip
13
Mar 11, 2024 2 years ago
domos-core-2.0.0.zip
3
Jan 11, 2024 2 years ago
domos-core-1.0.9.zip
9
Oct 30, 2023 2 years ago
domos-core-1.0.8.zip
9
Oct 26, 2023 2 years ago
domos-wordpress-1.0.6.zip
4
D- grade

Security

immocore for WordPress 2.0.3 · audited by WP Registry

Critical findings.

1 critical
Audited release
2.0.3
Findings
1
Worst severity
critical
Content hash
aee53f244da2b8b97196e98c…

Findings

  • critical Hardcoded Bearer token bypasses auth on /domos/admin/sync

    hardcoded_credentials

    permission_callback for POST /wp-json/domos/admin/sync accepts Authorization: Bearer f,yU!>1eN0J176s%*@IiynP48w6*hfcK as equivalent to manage_options. The token is embedded in plugin source (comment notes it will be replaced). Any unauthenticated caller who knows/reads the plugin can trigger full estate synchronize() (create/update/delete property posts).

    src/Providers/ApiServiceProvider.php:21-36

    Recommendation

    Remove the hardcoded bearer; require manage_options or a per-site secret stored in options/ENV and rotatable. Rotate any deployments that shipped this build.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.