Support » Plugins » The Events Calendar: Permalinks schützen

  • Gelöst Thobie

    (@thobie)


    Hallo,

    ich habe einen geschützten Mitgliederbereich auf der Website. Nach Login mit Zugangsdaten gelange ich auf die Veranstaltungsseite von The Events Calendar, https://www.mydomain.de/events. Von dort gelange ich die jeweilige Seite mit der Veranstaltung und Registrierung.

    Der Mitgliederbereich ist, wie erwähnt, geschützt.

    Nicht jedoch die Permalinks https://www.mydomain.de/events und https://www.mydomain.de/event/myevent.

    Normale Seiten kann ich durch eine Option beim Editieren der Seiten (durch das Mitgliedsbereich-Plugin eingerichtet) schützen, so dass der Permalink der Seite geschützt, der Zugriff verweigert und der Login erzwungen wird.

    Nur kann ich die beiden oben genannten Permalinks von The Events Calendar nicht schützen, die Seite events finde ich erst gar nicht. Und somit ist zwar der Mitgliederbereich geschützt, aber jeder Hacker kommt mit den reinen Permalinks auf die Veranstaltungsseiten und somit in den (!) Mitgliederbereich hinein.

    Grüße aus Hamburg

    Thobie

Ansicht von 7 Antworten - 1 bis 7 (von insgesamt 7)
  • Moderator Bego Mario Garde

    (@pixolin)

    Ich habe das nicht geprüft, weil ich The Events Calendar noch nie eingesetzt habe, aber du kannst mit ein paar Zeilen Code nicht angemeldete Benutzer bei Aufruf einer bestimmten Seite auf eine andere Seite weiterleiten, sinngemäß sowas wie

    add_action( 'template_redirect', 'redirect_if_user_not_logged_in' );
    
    function redirect_if_user_not_logged_in() {
      if( is_page( 'events' ) && ! is_user_logged_in() ) {
        wp_redirect( home_url() ); 
        exit;
      } 
    }
    Thread-Starter Thobie

    (@thobie)

    Danke, Bego, ich teste diese Umleitung nachher mal. Funktioniert dies denn grundsätzlich, damit die beiden genannten Permalinks auch definitiv geschützt sind? Oder sind die beiden Permalinks definitiv ein Einfalltor für Hacker?

    Kannst Du mir auch noch sagen, in welcher php-Datei dieser Code eingefügt werden muss?

    Moderator Bego Mario Garde

    (@pixolin)

    Wie gesagt: ich nutze The Events Calendar nicht.

    Die Weiterleitung sollte aber „grundsätzlich“ funktionieren, wenn
    a) die Seite „events“ aufgerufen wird und
    b) der Benutzer nicht angemeldet ist (auch nicht als Abonnent).

    Kannst Du mir auch noch sagen, in welcher php-Datei dieser Code eingefügt werden muss?

    Ich dachte du kennst dich so weit aus?
    Du kannst die Funktion in der functions.php eines Child-Themes anhängen, ein eigenes Plugin schreiben oder Code Snippets verwenden.

    Thread-Starter Thobie

    (@thobie)

    Moin, Moin, Bego,

    Dein Code funktioniert nicht. Ich habe ihn in Code Snippets eingegeben und gespeichert. Dennoch gelange ich mit dem Permalink auf die Seite der Events, also nicht auf die Startseite der Website. Ich habe dies extra in einem zweiten Browser durchgeführt, in dem ich nicht auf der Website angemeldet war.

    Ich habe noch zwei weitere Frage dazu.

    1) Kann ich den Terminus home_url, der auf die Startseite führt, durch eine beliebige URL einer Seite austauschen, auf der der Besucher mitgeteilt bekommt, er müsse sich vor dem Zugang zu der Seite Events erst anmelden?

    2) Kann ich Deinen Code, so er denn funktioniert, duplizieren und ebenfalls in Code Snippet eingeben, da ich auch den Permalink der einzigen Veranstaltung SingleEvent, also nicht den der Übersicht, schützen will? Ich bekomme dabei nämlich eine Fehlermeldung.

    Moderator Bego Mario Garde

    (@pixolin)

    Dein Code funktioniert nicht. Ich habe ihn in Code Snippets eingegeben und gespeichert. Dennoch gelange ich mit dem Permalink auf die Seite der Events, also nicht auf die Startseite der Website. Ich habe dies extra in einem zweiten Browser durchgeführt, in dem ich nicht auf der Website angemeldet war.

    So? Hat die Seite denn einen Slug events? (Slug bezeichnet die Titelform in der URL, bei https://example.com/events ist das events.)

    Kann ich den Terminus home_url, der auf die Startseite führt, durch eine beliebige URL einer Seite austauschen …

    Ja. https://developer.wordpress.org/reference/functions/wp_redirect/#comment-409

    Kann ich Deinen Code, so er denn funktioniert, duplizieren und ebenfalls in Code Snippet eingeben, da ich auch den Permalink der einzigen Veranstaltung SingleEvent, also nicht den der Übersicht, schützen will?

    Die Funktion is_page( 'events )prüft, ob eine Seitehttps://example.com/eventsaufgerufen wird und gibt danntruezurück. Möchtest du prüfen, ob die Seite mit der ID 42, dem Seitennameneventsoder dem TitelRolling Stonesabgerufen wird, kannst duis_page( array( 42, ‚events‘, ‚Rolling Stones‘ ) );` verwenden. (vgl. https://developer.wordpress.org/reference/functions/is_page/#comment-370)

    Thread-Starter Thobie

    (@thobie)

    Die Seite hat den Slug /events, die restlichen Seiten /event/einzelneveranstaltung_1 usw.

    Ich habe jetzt festgestellt, dass die Seite events eine Archivseite ist, die nicht editierbar ist. Gibt es da mit dem Script Probleme?

    Thread-Starter Thobie

    (@thobie)

    Ich denke, ich habe das Problem anders gelöst. Im Forum des Plugins für den Mitgliederbereich wurden mir zwei Addons empfohlen. Eines mit Full Page Protection und eines mit Customer Messages. Das erstere lässt angemeldete Mitglieder auf die Veranstaltungsseiten, blockiert jedoch die Permalinks eines anonymen Besuchers der Website. Und mit dem zweiten kann ich die Fehlermeldung dabei anpassen. Aber dennoch Danke für Eure Hilfe.

Ansicht von 7 Antworten - 1 bis 7 (von insgesamt 7)