Immobilien Plugins für WordPress – immonex WordPress-Plugins › Foren › immonex OpenImmo2WP › Ansprechpartner beim Import erstellen
- Dieses Thema hat 5 Antworten und 2 Stimmen, und wurde zuletzt aktualisiert vor 6 Jahre, 11 Monaten von
Carsten Scheuer.
-
AutorBeiträge
-
18. Oktober 2016 um 20:12 #6060
Manfred Sandner
TeilnehmerHallo inveris team,
werden die Ansprechpartner während des Imports nicht automatisch erstellt und zugeordnet?
Wir haben die ersten 3 Kunden in unser Portal importiert (wp residence) die Firmen haben unterschiedliche Ansprechpartner für Ihre Immobilien.
Diese sollten idealerweise zugeordnet werden. Wenn der Ansprechpartner nicht vorhanden ist sollte der erstellt werden. So ist es doch angedacht oder?
LG Manfred19. Oktober 2016 um 9:15 #6070Carsten Scheuer
VerwalterHallo Manfred,
standardmäßig werden beim Import nur vorhandene Benutzer und/oder Ansprechpartner (Agenten) anhand der E-Mail-Adressen bzw. Namen automatisch zugeordnet.
Das automatische Anlegen von Ansprechpartnern kann aber mit einer Zusatzfunktion (bspw. über den Action-Hook immonex_oi2wp_property_imported) realisiert werden.
Läuft der Import aktuell über benutzerbezogene Importordner ab? (D. h. es ist für jeden Kunden jeweils ein Benutzer vorhanden und es sollen nun automatisiert Ansprechpartner unabhängig von diesen Benutzerkonten erstellt werden?)
19. Oktober 2016 um 9:45 #6071Manfred Sandner
TeilnehmerHallo Carsten,
ja genau. Es gibt für jeden Benutzer (Maklerbüro) einen Benutzer Account. Die XMLs liegen auch in den user Unterordnern. Nun sollen die Ansprechpartner die in den XMLs den Objekten zugeordnet sind angelegt werden (wenn nicht vorhanden). Das wäre für uns sehr wichtig denn wenn wir viele Makler von unserem Portal überzeugen können ist das manuelle Anlegen zu aufwändig bzw. fast nicht machbar. Ein Makler macht sich erfahrungsgemäß nicht die Mühe Seine Mitarbeiter auf einer kleinen Platform zu pflegen.LG Manfred
19. Oktober 2016 um 13:24 #6072Carsten Scheuer
VerwalterEine einfache Funktion für das automatisierte Anlegen der Ansprechpartner für WP Residence könnte folgendermaßen aussehen und bspw. in der functions.php des Child-Themes hinterlegt werden:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091/*** Objekt-Ansprechpartner (Agent) automatisch anlegen und zuordnen,* sofern noch nicht vorhanden (Theme: WP Residence).*/add_action( 'immonex_oi2wp_property_imported', 'mysite_save_agent', 90, 2 );function mysite_save_agent( $post_id, $immobilie ) {global $immonex_openimmo2wp;$property_contact = mysite_get_agent_data( $immobilie );// Ansprechpartner anhand des Namens suchen.$args = array('post_type' => 'estate_agent','numberposts' => -1,'title' => $property_contact['name']);$agents = get_posts( $args );if ( 0 === count( $agents ) ) {// Kein Ansprechpartner mit dem betr. Namen gefunden:// Neuen Ansprechpartner anlegen...$post_data = array('post_type' => 'estate_agent','post_status' => 'publish','post_title' => $property_contact['name']);$agent_id = wp_insert_post( $post_data );if ( is_wp_error( $agent_id ) ) {if ( isset( $immonex_openimmo2wp ) ) $immonex_openimmo2wp->log->add( wp_sprintf( 'Neuer Ansprechpartner konnte nicht angelegt werden, Fehler: %s', $agent_id->get_error_message() ), 'debug' );} else {add_post_meta( $agent_id, 'agent_email', $property_contact['email'], true );add_post_meta( $agent_id, 'agent_phone', $property_contact['phone'], true );add_post_meta( $agent_id, 'agent_mobile', $property_contact['mobile'], true );add_post_meta( $agent_id, 'agent_website', $property_contact['url'], true );// ...und dem aktuellen Objekt zuweisen.update_post_meta( $post_id, 'property_agent', $agent_id );if ( isset( $immonex_openimmo2wp ) ) $immonex_openimmo2wp->log->add( wp_sprintf( 'Neuer Ansprechpartner angelegt: %s (ID: %s)', $property_contact['name'], $agent_id ), 'debug' );}}} // mysite_save_agentfunction mysite_get_agent_data( $immobilie ) {$name_contact_temp = '';if ( isset( $immobilie->kontaktperson->titel ) ) $name_contact_temp .= (string) $immobilie->kontaktperson->titel . ' ';if ( isset( $immobilie->kontaktperson->vorname ) ) $name_contact_temp .= (string) $immobilie->kontaktperson->vorname . ' ';if ( isset( $immobilie->kontaktperson->name ) ) $name_contact_temp .= (string) $immobilie->kontaktperson->name;$name_contact = trim( $name_contact_temp );$email_company = isset( $immobilie->kontaktperson->email_zentrale ) ? strtolower( $immobilie->kontaktperson->email_zentrale ) : '';if ( isset( $immobilie->kontaktperson->email_direkt ) )$email_contact = strtolower( $immobilie->kontaktperson->email_direkt );elseif ( $email_company )$email_contact = $email_company;else$email_contact = '';if ( isset( $immobilie->kontaktperson->tel_durchw ) )$phone_contact = strtolower( $immobilie->kontaktperson->tel_durchw );elseif ( isset( $immobilie->kontaktperson->tel_handy ) )$phone_contact = strtolower( $immobilie->kontaktperson->tel_handy );elseif ( isset( $immobilie->kontaktperson->tel_zentrale ) )$phone_contact = strtolower( $immobilie->kontaktperson->tel_zentrale );else$phone_contact = '';$mobile = isset( $immobilie->kontaktperson->tel_handy ) ? $immobilie->kontaktperson->tel_handy : '';if ( isset( $immobilie->kontaktperson->url ) ) {$url = str_replace( 'http://', '', $immobilie->kontaktperson->url );$url = trim( str_replace( 'https://', '', $url ) );} else {$url = '';}return array('name' => $name_contact,'email' => $email_contact,'email_company' => $email_company,'phone' => $phone_contact,'mobile' => $mobile,'url' => $url);} // mysite_get_agent_dataNatürlich ist hier noch viel Spielraum für individuelle Anpassungen. Anstatt des Namens könnte z. B. auch die Mailadresse des Ansprechpartners als (zusätzliches) Abfragekriterium verwendet werden. (Es kann auch Fälle geben, bei denen mehreren Ansprechpartnern die gleiche Mailadresse zugewiesen ist, deswegen wurde dieses Merkmal im obigen Snippet nicht berücksichtigt.)
19. Oktober 2016 um 18:30 #6079Manfred Sandner
TeilnehmerHallo Carsten,
wow super Service den Du hier lieferst.
Das hat schon mal funktioniert.
Ich habe aber dennoch ein kleines Problem. Ich werde das selbst hin bekommen, wollte Dich aber dennoch vorher Fragen, vielleicht gibts ja in deinem Fundus schon codeschnipsel.
Für eine normale Maklerseite reicht diese Zuordnung weil die Seite ja nur für ein Büro ist.Portal
Bei mir soll es ja so sein dass der WordPress User das Maklerbüro ist. Wenn nun Objekte importiert werden und dabei Ansprechpartner angelegt werden dann sollen diese natürlich mit dem
Maklerbüro verbunden sein. Ich würde jetzt einfach die Kategorie in den Ansprechpartnert dafür verwenden. Soll heißen dass für jedes Maklerbüro eine Kategorie bei den Ansprechpartnern erstellt wird damit die Ansprechpartner einem Büro zugeordnet werden können. Macht das in deinen Augen Sinn oder habe ich evtl. eine bereits vorhandene Funktion in WP Residence übersehen?LG Manfred
20. Oktober 2016 um 9:39 #6084Carsten Scheuer
VerwalterHallo Manfred,
wie du bereits richtig erkannt hast bietet WP Residence von Haus aus nicht die Möglichkeit, verschiedene Makler (Ansprechpartner) einer Makleragentur zuzuordnen. (Es ist nur eine 1:1-Zuordnung von WP-Benutzer zu Ansprechpartner vorgesehen.)
Die Nutzung der Ansprechpartner-Kategorien hierfür ist definitiv eine Möglichkeit. Alternativ könnte man auch die WP-Benutzer um zwei Custom Fields erweitern: Eins für die OpenImmo-ANID (eindeutige Anbieter-ID, erleichtert die spätere Zuordnung) sowie ein weiteres Feld für eine Liste von Ansprechpartner-IDs (kommagetrennt oder Array).
Die jeweils aktuelle ANID kann übrigens mit der folgenden Filterfunktion beim Import (global) zwischengespeichert und so in folgenden Funktionen für die Zuordnung von Ansprechpartner zu entspr. Agentur genutzt werden:
1234567891011121314/*** OpenImmo-ANID jeweils beim Start des Importvorgangs für einen bestimmten* Anbieter zwischenspeichern.*/add_filter( 'immonex_oi2wp_import_agency_xml_before_import', 'mysite_set_current_anid' );function mysite_set_current_anid( $anbieter ) {global $mysite_current_anid;$mysite_current_anid = (string) $anbieter->openimmo_anid;return $anbieter;} // mysite_set_current_anid -
AutorBeiträge
- Du musst angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.