Immobilien Plugins für WordPress – immonex WordPress-Plugins › Foren › immonex OpenImmo2WP › Kickstart und OpenImmo2WP + ACF-Plugin
- Dieses Thema hat 10 Antworten und 2 Stimmen, und wurde zuletzt aktualisiert vor 2 Jahre, 10 Monaten von
Carsten Scheuer.
-
AutorBeiträge
-
17. November 2020 um 13:04 #16211
Daniel Kurzeja
TeilnehmerGuten Tag zusammen,
ich habe mich noch nicht ausgiebig mit den Plug-Ins beschäftigt, allerdings möchte ich die unterschiedlichen Werte in ACF-Felder eintragen lassen. Gibt es hierfür eine Anleitung, die ich selbst vielleicht noch nicht gefunden habe oder gibt es hier jemanden, der das bereits umgesetzt hat?
Ich würde mich sehr über eure Unterstützung freuen.Mit freundlichen Grüßen
Daniel17. November 2020 um 14:28 #16212Carsten Scheuer
VerwalterHallo Daniel,
die OpenImmo-Daten können mit einer individuell angepassten Mapping-Tabelle beim Import relativ einfach beliebigen Custom Fields zugeordnet werden, auf die natürlich auch per ACF zugegriffen werden kann.
Ist allerdings parallel auch Kickstart im Einsatz, macht die zusätzliche Verwendung von ACF wenig Sinn. Hier bietet sich als Alternative die selektive Einbindung von Immobilien-Detail-Elementen per Shortcode an.
Der Hintergrund ist, dass bei den Kickstart-Detail-Elementen bereits von Haus aus eine praxisnahe Gruppierung der (sehr umfangreichen) OpenImmo-Angaben gegeben ist, die bei Bedarf auch noch angepasst werden kann. Es hängt natürlich vom gewünschten Umfang ab, eine Abbildung des OpenImmo-Standards allein in Form von selbst per ACF definierten Custom Fields dürfte aber in den allermeisten Fällen viel zu aufwendig sein.
18. November 2020 um 15:29 #16218Daniel Kurzeja
TeilnehmerVielen lieben Dank für die schnelle Rückmeldung. Ich bin gerade am Umdenken, ob es nicht tatsächlich Sinn machen würde auf ACF zu verzichten. Mal angenommen, ich verwende diesen Shortcode [inx-property-details elements=“prices“]. Dieser gibt mir die bereits grafische Tabelle mit Kaufpreis: 230.000 €, Hausgeld: 261 € und Courtage: 3,48 % inkl. 16% MwSt. an. Gibt es denn eine Möglichkeit auf den einzelnen Wert zuzugreifen? Also lediglich den Kaufpreis anzugeben?
18. November 2020 um 20:12 #16223Daniel Kurzeja
TeilnehmerAlso nochmal kurz zusammengefasst: Ich nutze das Hello-Theme von Elementor. Wichtig ist mir die maximale Gestaltungsfreiheit. Bisher wurden für Immobilien Beiträge hinzugefügt. Die Immobiliendaten wurden in ACF-Feldern eingetragen. Diese Felder wurden in Elementor an der korrekten Stelle mit der korrekten Darstellung angezeigt. Grundsätzlich möchte ich das genauso umsetzen, ob ich nun ACF dazu einsetzen muss oder nicht spielt keine Rolle. Gibt es eine Möglichkeit über Shortcodes auf die einzelnen Werte zuzugreifen? Also in dem oben genannten Beispiel auf den Kaufpreis (nur auf den Kaufpreis).
18. November 2020 um 20:34 #16225Daniel Kurzeja
TeilnehmerWichtig noch zu erwähnen: Ich benötige nicht alle Immobiliendaten, sondern nur die üblichen Daten. (Objektart, Lage, Größe, Zimmer, Baujahr, Kaufpreis, …) Der Interessent kann ein Expose anfordern, das wird allerdings unabhängig vom Webprojekt stattfinden.
19. November 2020 um 0:18 #16226Carsten Scheuer
VerwalterDie Möglichkeit, mit Kickstart ohne Umweg einzelne OpenImmo-Detailangaben einzubinden, fehlt in der Tat noch – ist bereits auf unserer To-Do-Liste! Ein entsprechender Shortcode kann aber mit den folgenden Funktionen in der Datei functions.php des Child-Themes relativ einfach ergänzt werden.
Die Shortcodes für die Einbindung von Baujahr oder Wohnfläche würden bspw. folgendermaßen aussehen:
[mysite-property-detail name="baujahr"]
bzw.[mysite-property-detail name="flaechen.wohnflaeche"]
Grundlage hierfür sind die Namen der OpenImmo-Angaben, die in der Kickstart-Mapping-Tabelle in der zweiten Spalte hinterlegt sind. (Die Quelldatei im OpenDocument-Format ist im Unterordner „mappings“ des Plugin-Ordners enthalten und kann mit LibreOffice/OpenOffice oder Google Tabellen bearbeitet werden.)
Da die primären Flächen- und Preisangaben sowie die Anzahl der Zimmer/Räume je nach Objekt- und Vermarktungsart unterschiedlich sind, können diese mit den folgenden Bezeichnungen abgerufen bzw. eingebunden werden:
- primaerflaeche
- primaeranzahl_zimmer
- primaerpreis
Alternativ ist auch ein Zugriff über die jeweiligen Custom Fields möglich:
- _inx_primary_area
- _inx_primary_rooms
- _inx_primary_price
Objektart und -ort sowie bestimmte Ausstattungsmerkmale und der Vermarktungsstatus (zu verkaufen/zu vermieten) sind wiederum in den folgenden Taxonomien gespeichert, die sich per Elementor-Widget sicherlich ebenso einfach einbinden lassen:
- inx_type_of_use (Nutzungsart)
- inx_property_type (Objektart)
- inx_location (Ort/Lage)
- inx_feature (Ausstattung)
- inx_marketing_type (Vermarktungsart)
- inx_label (Labels, z. B. „verkauft“)
Hier die Shortcode-Funktion(en):
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647/*** immonex Kickstart: Shortcode zum Einbinden einzelner Detailangaben.* Beispiel: [mysite-property-detail name="flaechen.wohnflaeche"]*/add_action( 'after_setup_theme', 'mysite_register_property_detail_shortcode' );function mysite_register_property_detail_shortcode() {add_shortcode( 'mysite-property-detail', 'mysite_shortcode_property_detail' );} // mysite_register_property_detail_shortcodefunction mysite_shortcode_property_detail( $atts ) {if ( empty( $atts['name'] ) ) {return '';}$name = sanitize_key( $atts['name'] );$property_id = apply_filters( 'inx_current_property_post_id', false );$args = ['name' => $name,'value_only' => true,];if ( ! empty( $atts['group'] ) ) {$args['group'] = sanitize_key( $atts['group'] );}// OpenImmo-Angabe anhand des Namens in der Mapping-Tabelle abrufen.$value = apply_filters('inx_get_property_detail_item',false,$property_id,$args);if ( ! $value ) {// Alternativ: Wert eines Kickstart-spezifischen Custom Fields abrufen.$value = get_post_meta( $property_id, "_inx_{$name}", true );}if ( ! $value ) {// Alternativ: Wert eines allgemeinen Custom Fields abrufen.$value = get_post_meta( $property_id, $name, true );}return $value;} // mysite_shortcode_property_details19. November 2020 um 9:23 #16228Daniel Kurzeja
TeilnehmerDanke für die sehr schnelle und ausführliche Rückmeldung. Das hilft mir weiter. Ich habe den Code soeben eingefügt und mit dem Shortcode [
mysite-property-detail name="baujahr"]
erhalte ich allerdings diesen Wert:_inx_build_year
. Wie kann ich diesen nun in den korrekten Wert (1992) umwandeln?19. November 2020 um 9:29 #16229Daniel Kurzeja
TeilnehmerUpdate: Ich hab’s. Mit [mysite-property-detail name=“_inx_build_year“] hat es geklappt
19. November 2020 um 9:39 #16230Daniel Kurzeja
TeilnehmerWenn ich jetzt noch herausfinde, wie ich die Bilder der Bildergalerie einfügen kann, dann bin ich komplett zufrieden mit 👍
19. November 2020 um 14:26 #16233Carsten Scheuer
VerwalterIn der folgenden aktualisierten Version der Shortcode-Funktionen wurde noch eine Ergänzung für Fälle vorgenommen, in denen der Custom-Field-Name anstatt des eigentlichen Wertes zurückgeliefert wird.
Bzgl. der Bilder hatte ich verbummelt auf einen Punkt hinzuweisen, der auch andere Inhalte (Taxonomien oder Custom Fields) betrifft, wenn diese mit einem regulären WP- oder Elementor-Widget o. ä. eingebunden werden sollen: Bei diesen wird standardmäßig die ID der Seite (Vorlage) als Basis für den Abruf der zugehörigen Daten verwendet. Diese ID entspricht aber nicht der der eigentlichen Immobilie, die hierüber dargestellt wird. (Die ID des Immobilien-Beitrags kann via Hook
inx_current_property_post_id
(siehe unten) oder direkt über die GET-Variable inx-property-id ermittelt werden.)Auch hier ist eine Option, mit individuell angepassten „Meta-Shortcodes“ zu arbeiten: Anbei eine Beispielfunktion, mit der der Standard-Galerie-Shortcode
[gallery]
durch die erweiterte Variante[mysite-property-gallery]
ergänzt wird. Bei letzterer wird einfach der reguläre Gallery-Shortcode um ein Attribut mit der ID des Immobilien-Beitrags erweitert und der Inhalt entsprechend zurückgeliefert.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596/*** immonex Kickstart: Shortcode zum Einbinden einzelner Detailangaben.* Beispiel: [mysite-property-detail name="flaechen.wohnflaeche"]*/add_action( 'after_setup_theme', 'mysite_register_property_shortcodes' );function mysite_register_property_shortcodes() {add_shortcode( 'mysite-property-detail', 'mysite_shortcode_property_detail' );add_shortcode( 'mysite-property-gallery', 'mysite_shortcode_property_gallery' );} // mysite_register_property_shortcodesfunction mysite_shortcode_property_detail( $atts ) {if ( empty( $atts['name'] ) ) {return '';}$name = sanitize_key( $atts['name'] );$property_id = apply_filters( 'inx_current_property_post_id', false );$args = ['name' => $name,'value_only' => true,];if ( ! empty( $atts['group'] ) ) {$args['group'] = sanitize_key( $atts['group'] );}// OpenImmo-Angabe anhand des Namens in der Mapping-Tabelle abrufen.$value = apply_filters('inx_get_property_detail_item',false,$property_id,$args);if ( ! $value ) {// Alternativ: Wert eines Kickstart-spezifischen Custom Fields abrufen.$value = get_post_meta( $property_id, "_inx_{$name}", true );}if ( ! $value ) {// Alternativ: Wert eines allgemeinen Custom Fields abrufen.$value = get_post_meta( $property_id, $name, true );if ( $value && '_inx_' === substr( $value, 0, 5 ) ) {// Eigentlichen Wert aus ermitteltem Custom Field abrufen.$value = get_post_meta( $property_id, $value, true );}}if ( $value && ! empty( $atts['format'] ) ) {$format = explode( ',', $atts['format'] );foreach ( $format as $key ) {$key = trim( strtolower( $key ) );switch ( $key ) {case 'number' :if ( is_numeric( $value ) ) {$value = number_format( $value, 2, ',', '.' );}break;case 'currency' :if ( is_numeric( $value ) ) {$value = number_format( $value, 2, ',', '.' ) . ' €';}break;// Bei Bedarf weitere Formatierungsmöglichkeiten hier ergänzen...}}}return $value;} // mysite_shortcode_property_detailsfunction mysite_shortcode_property_gallery( $atts ) {$property_id = apply_filters( 'inx_current_property_post_id', false );$atts_string = '';if ( ! empty( $atts ) ) {foreach ( $atts as $key => $value ) {$atts_string .= wp_sprintf( '%s="%s" ', $key, $value );}$atts_string = trim( $atts_string );}$shortcode = wp_sprintf('[gallery id="%s"%s]',$property_id,$atts_string ? ' ' . $atts_string : '');return do_shortcode( $shortcode );} // mysite_shortcode_property_gallery19. November 2020 um 14:40 #16236Carsten Scheuer
VerwalterBevor ich’s vergesse: In spezielleren Funktionen/Shortcodes zur individuellen Einbindung/Darstellung des Bildmaterials kann der Filter-Hook inx_get_property_ids zum Abrufen der Anhang-IDs oder -URLs verwendet werden (Infos hierzu in der Plugin-Dokumentation).
-
AutorBeiträge
- Du musst angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.