Das offizielle Heyrecruit-Plugin lässt Dich mithilfe von Shortcodes die Karriereseite und Stellenanzeigen Deiner Firma in Deine Wordpress-Seite integrieren. Deine Heyrecruit-Client-ID und Dein Secret-Key ist alles, was Du zum Einrichten des Plugins benötigst.
Lege eine Keycolor in den Plugin-Einstellungen fest, um die Heyrecruit-Elemente Deinen Unternehmensfarben anzupassen.
Aktiviere die Karte in Deinen Heyrecruit-Account-Einstellungen, um die Standorte Deiner Stellenanzeigen auf Deiner Karriereseite anzeigen zu lassen. Die Karte nutzt OpenFreeMap auf Basis von OpenStreetMap – ein API-Key ist nicht nötig.
Style Deine Heyrecruit-Seiten nach Belieben per CSS mithilfe von vordefinierten Klassen.
Bei Fragen und für Feedback schreibe uns gerne an info@heyrecruit.de.
Du brauchst ein Heyrecruit-Konto. Client-ID und Secret-Key findest Du dort in den Account-Einstellungen.
- Plugin installieren und aktivieren.
- Beim Aktivieren legt das Plugin drei Seiten als Entwurf an – "Heyrecruit – Career Page", "Heyrecruit – Job Page" und "Heyrecruit – Confirm Page". Sie sind bereits mit den passenden Shortcodes gefüllt. Entwurf deshalb, damit nichts unveröffentlicht ins Netz geht, bevor Du es gesehen hast.
- Im Menü Heyrecruit → Einstellungen die Client-ID und den Secret-Key eintragen und speichern.
- Unter Page Settings prüfen, ob die drei Seiten zugeordnet sind. Wurden sie automatisch angelegt, stehen die IDs schon drin. Nutzt Du eigene Seiten, trage deren IDs hier ein.
- Die drei Seiten veröffentlichen.
- Optional unter User Options eine Keycolor und eine Hintergrundfarbe setzen. Ohne Eintrag wird die Farbe aus Deinem Heyrecruit-Account verwendet.
Ein Google-Maps-API-Key ist nicht nötig. Die Karte läuft über OpenFreeMap.
1.4.0
- Die Karte läuft jetzt über OpenFreeMap statt über Google Maps. Damit entfällt der Google-Maps-API-Key: die Karte funktioniert ohne Registrierung, ohne Schlüssel und ohne Nutzungslimit. Das Feld "Dein Google Maps API-Key" ist aus den Plugin-Einstellungen entfernt. Ein bereits hinterlegter Schlüssel wird nicht mehr verwendet und beim Deinstallieren des Plugins mitentfernt.
- Es geht kein Request mehr an Google. Die Kartenbibliothek (MapLibre GL JS 5.24.0) liegt im Plugin und wird nicht von einem fremden CDN nachgeladen; die Kartenkacheln kommen von OpenFreeMap. Die Karte setzt keine Cookies.
- Karte blieb nach dem Filtern stehen: Beim Aktualisieren der Marker nach einer Suche oder einem Seitenwechsel brach das Skript ab, weil die alten Marker mit einer Methode entfernt wurden, die es an diesem Objekt nicht gibt. Die Karte zeigte danach dauerhaft die ungefilterten Standorte.
- Karte blieb komplett leer, wenn eine Adresse ein Anführungszeichen enthielt: Die Standortdaten wurden doppelt kodiert an das Skript übergeben und ließen sich dann nicht mehr einlesen.
- Die Karte zoomt jetzt automatisch auf die vorhandenen Standorte, statt immer auf einem festen Kartenausschnitt zu starten.
- Stellentitel und Adressen werden in den Info-Fenstern der Karte nicht mehr als HTML eingesetzt. Ein Stellentitel mit spitzen Klammern konnte vorher Markup in die Seite einfügen.
- Fehlte die Adresse eines Standorts, stand im Info-Fenster der Karte das Wort "null".
- Eine Stellenanzeige ohne zugeordneten Standort erzeugte PHP-Warnungen, die die JSON-Antwort der Suche unbrauchbar machen konnten.
- Die Marker der Karte sind jetzt per Tastatur erreichbar und haben eine Beschriftung für Screenreader.
- Der Kartenstil lässt sich über den Filter heyrecruit_map_style_url austauschen (z.B. "bright" oder "positron" von OpenFreeMap oder ein selbst gehosteter Stil).
- "Es ist ein Fehler aufgetreten" sagte nichts aus. War der Bewerbungsdienst nicht erreichbar, bekam der Bewerber dieselbe Meldung wie bei einem Tippfehler im Formular. Eine nicht zustande gekommene Verbindung ist jetzt als solche erkennbar und wird mit einem passenden Hinweis beantwortet – die Eingaben bleiben dabei erhalten.
- Seiten laden auch dann zügig, wenn der Heyrecruit-Dienst gestört ist. Bisher wartete jeder der drei Aufrufe pro Seitenaufbau einzeln in sein Zeitlimit – gemessen 25 Sekunden pro Aufruf der Karriereseite. Scheitert ein Aufruf jetzt, wird das für 5 Minuten gemerkt und in dieser Zeit nicht bei jedem Seitenaufbau erneut versucht: derselbe Fall dauert dann 5,5 Sekunden beim ersten und 0,2 Sekunden bei jedem weiteren Aufruf. Alle 30 Sekunden geht ein einzelner Versuch durch, damit das Ende der Störung bemerkt wird – die Seite ist dadurch spätestens eine halbe Minute später wieder vollständig statt erst nach 5 Minuten. Anpassbar über die Filter heyrecruit_api_lockout_seconds und heyrecruit_api_probe_seconds; jeweils 0 schaltet Sperre bzw. Zwischenversuche ab. Das Absenden einer Bewerbung ist bewusst ausgenommen und versucht es immer.
- Ein Serverfehler des Dienstes gilt jetzt als Störung. Antwortete ein vorgeschalteter Proxy mit 502 oder 503, wurde dessen Fehlerseite bisher wie eine gültige Antwort behandelt: die Sperre griff nicht und jeder Seitenaufbau fragte erneut an. Statuscodes ab 500 zählen nun als Ausfall. Antworten der Schnittstelle selbst – etwa 401 oder 422 – bleiben davon unberührt und werden weiterhin ausgewertet.
- Kürzere Wartezeit bei gestörter Verbindung. Aufrufe während des Seitenaufbaus warten jetzt höchstens 10 statt 30 Sekunden, das Absenden einer Bewerbung weiterhin 30, weil dort der Anhang mit hochgeht. Ein nicht erreichbarer Server wird nach 5 Sekunden als solcher erkannt. Über den Filter heyrecruit_api_timeout lässt sich das an eine langsame Anbindung anpassen.
- Zu große Anhänge scheiterten wortlos. Die Dokumente gehen kodiert im Formular mit; überschritt das die Größe, die der Server pro Anfrage annimmt, verwarf PHP die komplette Übermittlung und der Bewerber sah nur "Es ist ein Fehler aufgetreten" – ohne Hinweis auf die Ursache und mit demselben Ergebnis bei jedem weiteren Versuch. Die Größe wird jetzt schon im Browser geprüft, mit einer klaren Meldung samt erlaubtem Maximum, und die Datei wird gar nicht erst hochgeladen. Das Maximum richtet sich nach der Server-Einstellung post_max_size – bei den üblichen 8 MB sind das rund 5,6 MB für alle Dokumente zusammen.
- Die Keycolor wird jetzt aus Deinem Heyrecruit-Account übernommen. Bisher musste sie in den Plugin-Einstellungen doppelt gepflegt werden. Ein dort eingetragener Wert hat weiterhin Vorrang – lässt Du das Feld leer, gilt die Farbe aus Deinem Account. Hinweis: unmittelbar nach der Aktivierung greift sie erst ab dem zweiten Seitenaufruf, weil die Farbe erst mit den Firmendaten eintrifft.
- Die Texte der Karte sind übersetzt; die Sprachdateien enthalten die Einträge der Kartenansicht und nicht mehr die der alten Google-Maps-Anbindung.
- Enthält diese Version zusätzlich alle Korrekturen aus 1.3.10 (siehe unten).
1.3.10
- Sicherheit: Stellentitel, Standort-Adressen und Filterwerte werden vor der Ausgabe konsequent escaped. Ein im Heyrecruit-Backend gepflegter Stellentitel mit spitzen Klammern konnte vorher Markup in die Übersichtsseite einfügen.
- Sicherheit: Die Google-Tag-Manager-ID wird geprüft, bevor sie in die Seite geschrieben wird.
- Sicherheit: Template-Namen, die aus den API-Daten kommen, werden auf zulässige Zeichen begrenzt.
- Suche und Filter: Beschäftigungsarten mit Großbuchstaben-Umlaut (z.B. "ANÜ") wurden beim Filtern stillschweigend verworfen.
- Suche und Filter: Leerzeichen nach dem Semikolon in Shortcode-Parametern (z.B. [hr_jobs locations="1; 2"]) haben den zweiten Wert verschluckt.
- Suche und Filter: Wurde ein unbekannter Begriff verworfen, kam der Filter als JSON-Objekt statt als Liste im Browser an und wirkte dadurch nicht.
- Suche und Filter: Ein "<" in einem Filterwert hat den kompletten Filter verworfen statt nur diesen Wert.
- Ein manipulierter Suchaufruf konnte die Job-Suche mit einem Fehler 500 beantworten.
- Die Seitenzahl der Suche wird geprüft; ein ungültiger Wert ging vorher unverändert an die API.
- Derselbe Shortcode zweimal auf einer Seite hat beim zweiten Mal nichts mehr ausgegeben.
- Eine Stellenanzeige ohne zugeordneten Standort erzeugte PHP-Warnungen, die die Antwort der Suche unbrauchbar machen konnten. Fehlte die Adresse eines Standorts, stand dort das Wort "null".
- Adressen ohne Stadt wurden als "Hauptstr. 5, , NRW, DE" ausgegeben.
- Ein Aufruf der Detailseite mit ungültiger Job-ID führte zu einem Fehler statt zu "kein Job gefunden".
- Stellenanzeigen ohne Treffer konnten in der Seitenaufteilung einen Fehler auslösen.
- Bilder in Stellenbeschreibungen wurden nie angezeigt, weil Controller und Template unterschiedliche Feldnamen benutzt haben.
- Übersetzungen: "Ja", "Nein", "Bitte wählen" und "Suchen" werden jetzt zuverlässig übersetzt. Selbst installierte Sprachdateien und Sprachpakete von wordpress.org werden jetzt geladen – vorher nur die mitgelieferten. Die Beispiel-URL in den Einstellungen zeigt wieder die eigene Domain.
- Einstellungen: Alle Optionen werden beim Speichern geprüft.
- Beim Deinstallieren über die Kommandozeile blieben Zugangsdaten in der Datenbank zurück.
- Aufräumarbeiten für die WordPress.org-Richtlinien: eine nicht verwendete, unleserlich gemachte JavaScript-Datei und eine ungenutzte Template-Datei entfernt, Debug-Hilfen aus der Release-Version genommen, Angaben im Plugin-Header und in dieser Datei vervollständigt.
1.3.9
- Bewerben-Button reagiert nicht: Das Plugin-JavaScript brach ab, sobald das per wp_localize_script gesetzte Objekt "args" fehlte – z.B. wenn ein Consent-Manager oder ein JS-Optimizer das Inline-Skript blockiert. Dadurch war das gesamte Bewerbungsformular ohne Funktion. Das Skript ist jetzt unabhängig davon lauffähig.
- Fehlende Assets bei Page-Buildern: CSS und JavaScript werden jetzt von jedem Heyrecruit-Shortcode automatisch geladen. Bisher waren dafür zwingend [hr_css_files] und [hr_js_files] nötig – fehlten sie auf einer mit einem Page-Builder gebauten Seite, blieben Formular, Filter und Pagination ohne Funktion.
- Hinweismeldungen bei offenen Pflichtfeldern: Pflichtfelder werden jetzt als solche ausgezeichnet und vor dem Absenden geprüft. Der Bewerber bekommt eine Meldung am betroffenen Feld, statt dass der Button scheinbar nicht reagiert.
- Fehler behoben, durch den die Initialisierung abbrach, wenn eine Stellenanzeige kein Einverständniserklärungs-Feld hatte. In dem Fall funktionierte der Dokumenten-Upload nicht mehr.
- Mehrfach-Dateiauswahl: Es wurden nicht alle ausgewählten Dateien mitgeschickt. Konnte eine Datei nicht gelesen werden, blieb der Absenden-Button dauerhaft deaktiviert.
- Die Weiterleitung auf die Bestätigungsseite läuft nicht mehr über ein separates Inline-Skript und funktioniert damit auch bei aktivem Consent-Manager.
- Beim Absenden wurden die Job- und Standort-ID aus den falschen Feldnamen gelesen; die Anfrage ging dadurch mit job_id=0 an die API.
- Antworten aus Checkbox-Gruppen mit mehreren Haken wurden beim Absenden verworfen.
- Eine nicht erreichbare Heyrecruit-API konnte einen Fatal Error auslösen, weil der API-Aufruf schon beim Laden des Plugins stattfindet.
- Fehlende Feldwerte (z.B. nicht gesetzte Einverständniserklärung) erzeugten PHP-Warnungen, die die JSON-Antwort unbrauchbar machen konnten.
- Key-Color auf der Übersichtsseite: Der Shortcode [hr_jobs] (Tabellenansicht) hat die Key-Color bisher gar nicht ausgegeben.
- Key-Color bei den Icons der Detailseite: Die Regel greift jetzt auch auf den SVG-Pfaden. Zusätzlich stehen die Klassen .primary-color, .primary-background-color und .primary-color-for-background sowie die CSS-Variablen --hr-key-color und --hr-background-color auf allen Heyrecruit-Seiten zur Verfügung – bisher nur innerhalb von [hr_jobs_list].
- Key-Color-Werte werden jetzt geprüft. Ein Hex-Wert ohne führende Raute (z.B. 0089A7) wird akzeptiert statt ignoriert.
- Google Maps wird nur noch dort geladen, wo auch eine Karte eingebunden ist und ein API-Key hinterlegt wurde.
1.3.8
- Optimierung des Einverständniserklärungsmodals
1.3.7
- Anpassung zum Laden der Sprachdatei
1.3.6
- Für die Job-Detailseite wurde ein neuer Shortcode [hr_job_internal_title] erstellt. Dieser gibt den internen Titel der Stellenanzeige aus.
- Für die Shortcodes [hr_jobs_map], [hr_filter_options], [hr_jobs] und [hr_jobs_list] wurde der Parameter "employments" hinzugefügt. Dieser ist analog zum Parameter departments zu verwenden. Ein Beispiel hierfür wäre [hr_jobs_map employments="Teilzeit;Praktikum;Freelancer"]. Es kann nach einzelnen sowie mehreren Begriffen durch Semikolon-Trennung gefiltert werden.
- Für die Shortcodes [hr_jobs_map], [hr_filter_options], [hr_jobs] und [hr_jobs_list] wurde der Parameter "internal_title" hinzugefügt. Dieser ist analog zum Parameter departments/employments zu verwenden. Bei diesem Parameter darf nur ein einzelner Begriff verwendet werden, mehrere Begriffe sind nicht zulässig.
- Für die Shortcodes [hr_jobs_map], [hr_filter_options], [hr_jobs] und [hr_jobs_list] wurde der Parameter "locations" und "address" hinzugefügt. Es kann nur ein Parameter, entweder locations oder address, aktiv sein. Für den Parameter "locations" können eine oder mehrere IDs durch Semikolon-Trennung verwendet werden. Ein Beispiel hierfür wäre [hr_jobs_map locations="123;456;789"]. Für den Parameter "address" ist nur ein Begriff zulässig, also z.B. [hr_jobs_map address="Frankfurt am Main"].
1.3.5
- Leere Sections im Bewerbungsformular werden ausgeblendet
- Fehler beim Filtern nach Fachabteilung behoben
1.3.4
- Branche(n) in Fachabteilung(en) umbenannt.
1.3.3
Neuerungen
Shortcode-Filter hinzugefügt: Es ist nun möglich, die Shortcodes mit Filtern zu versehen, um spezifische Stellenanzeigen von bestimmten Fachabteilungen anzuzeigen. Die Fachabteilungen werden durch ein Semikolon (;) getrennt.
Verfügbare Shortcodes
[hr_jobs_list departments="Produktion;Konstruktion"]
Zeigt eine Liste von Stellenanzeigen für die Abteilungen Produktion und Konstruktion an.
[hr_jobs departments="Produktion;Konstruktion;IT"]
Zeigt Stellenanzeigen in Tabellenform für die Abteilungen Produktion, Konstruktion und IT an.
[hr_filter_options departments="Produktion"]
Zeigt Filteroptionen für die Abteilung Produktion an.
[hr_jobs_map departments="Konstruktion"]
Zeigt eine Kartenansicht der Stellenanzeigen für die Abteilung Konstruktion an.
Hinweise zur Nutzung
Um spezifische Fachabteilungen anzuzeigen, geben Sie die gewünschten Abteilungen in den Shortcodes mit einem Semikolon (;) getrennt an.
Die Shortcodes sind flexibel und ermöglichen es, mehrere Abteilungen gleichzeitig zu filtern und anzuzeigen.
1.3.2
- Das Heyrecruit-Plugin wird nun als eigenständiger Menüpunkt in Wordpress aufgeführt.
- Alle Einstellungen wurden in die verschiedenen Unterpunkte einsortiert. Der Punkt "Allgemein" & "Benutzeroptionen" beinhaltet alle bereits bestehenden Einstellungen.
- Der Punkt "Seiteneinstellungen" wurde hinzugefügt. Hier sind alle ID's der aktuell genutzten Seiten des Plugins hinterlegt.
- Die "Seiteneinstellungen" bieten nun eine Referenzierung einer Bestätigungsseite, per ID oder einer externen Seite per URL.
- Eine Bestätigungsseite wurde eingeführt. Diese wird bei Installation des Plugins nun ebenfalls erstellt.
- Unter dem Punkt "Seiteneinstellungen" können bequem per Button-Klick alle Seiten (Job-Übersichtsseite, Job-Detailseite & Bestätigungsseite) neu generiert werden. Die ID's der neuen Seiten werden automatisch referenziert. Die alten Seiten bleiben unreferenziert erhalten.
- Wird eine URL zu einer externen Bestätigungsseite angegeben, so wird diese priorisiert.
- Nach Neuinstallation des Plugins oder Neugenerierung der Seiten wird nun standardmäßig der Shortcode [hr_jobs_list] statt [hr_jobs] verwendet.
1.3.1
- Die Deklaration der JavaScript-Variablen wurde korrigiert.
1.3.0
- Erweiterung um den Shortcode [hr_jobs_list]. Neben der Ausgabe als Tabelle können hiermit die offenen Stellenanzeigen auch als Liste ausgegeben werden.
- Zusätzlich zur Keycolor deines Unternehmens, kann nun in den Einstellungen eine Hintergrundfarbe für spezifische Elemente, z.B. für die Boxen in der neu hinzugefügten Listenansicht, gewählt werden.
- Erweiterung der Pagination
- Stellenanzeigen werden nicht mehr gruppiert. Ab 11 Stellenanzeigen wird nun die erweiterte Pagination angezeigt.
1.2.1
- Kompatibilität mit neuerer Version der Heyrecruit-API und PHP v.7.4 hergestellt
1.2.0
- Aufschlüsselung des Shortcodes [hr_company_info] in [hr_company_header] & [hr_company_description] für eine noch individuellere Gestaltung.
- Aufsplittung des Job Headers in die Anzeigen-Details und Anzeigentitel, Anzeigensubtitel und Anzeigenbild.
- Kopfzeile wird nun mit und ohne Bild zur Verfügung gestellt.
- Soziale Medien erhalten einen eigenen Shortcode [hr_social-links]. Sie sind eigenständig auf Übersichtsseite und Detailseite, auch ohne die Firmenbeschreibung, verwendbar.
- Kompatibilität FontAwesome 6 Pro integriert