{"id":269783,"date":"2026-01-05T09:02:27","date_gmt":"2026-01-05T09:02:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/frederix-external-login\/"},"modified":"2026-01-05T09:01:51","modified_gmt":"2026-01-05T09:01:51","slug":"frederix-external-login","status":"publish","type":"plugin","link":"https:\/\/hau.wordpress.org\/plugins\/frederix-external-login\/","author":23427102,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.0","stable_tag":"1.1.0","tested":"6.9.4","requires":"5.0","requires_php":"","requires_plugins":null,"header_name":"Frederix External Login","header_author":"Frederix Hotspot","header_description":"A WordPress plugin to handle the external login flow for CloudWiFi. Use shortcode [frederix_external_login] to display the login button.","assets_banners_color":"","last_updated":"2026-01-05 09:01:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/frederix-hotspot.atlassian.net\/wiki\/spaces\/FHK\/pages\/2159640662\/External+Login+Plugin","header_author_uri":"https:\/\/www.frederix-hotspot.de","rating":0,"author_block_rating":0,"active_installs":0,"downloads":122,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"frederixhotspot","date":"2026-01-05 09:01:51"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[152778,6720,602,29607],"plugin_category":[38],"plugin_contributors":[253324],"plugin_business_model":[],"class_list":["post-269783","plugin","type-plugin","status-publish","hentry","plugin_tags-external-login","plugin_tags-hotspot","plugin_tags-login","plugin_tags-wifi","plugin_category-authentication","plugin_contributors-frederixhotspot","plugin_committers-frederixhotspot"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/frederix-external-login.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This plugin allows any WordPress page to act as an External Login page for CloudWiFi.<\/p>\n\n<p>It handles the entire flow:\n1.  <strong>Login<\/strong>: Displays a login button that redirects the user back to the hotspot.\n2.  <strong>Success<\/strong>: Displays a success message after authorization.\n3.  <strong>Error<\/strong>: Displays detailed error messages if the login fails (e.g., timeout, license exceeded).<\/p>\n\n<p><strong>Features:<\/strong>\n*   <strong>One Shortcode<\/strong>: Use <code>[frederix_external_login]<\/code> for everything.\n*   <strong>Automatic Mode<\/strong>: Automatically detects if it should show the Login button, Success message, or Error message based on the URL parameters.\n*   <strong>Flexible Configuration<\/strong>: Use different pages for Login\/Success\/Error if desired.\n*   <strong>Customizable Messages<\/strong>: Change the button text and messages via shortcode attributes.\n*   <strong>Secure<\/strong>: Validates and sanitizes all inputs.<\/p>\n\n<h3>Shortcode Options<\/h3>\n\n<p>You can customize the shortcode with the following attributes:<\/p>\n\n<ul>\n<li><strong><code>mode<\/code><\/strong>: Controls what the shortcode displays.\n\n<ul>\n<li><code>auto<\/code> (default): Automatically switches based on URL status (<code>status=success<\/code> or <code>status=error<\/code>).<\/li>\n<li><code>login<\/code>: Forces the display of the login button.<\/li>\n<li><code>success<\/code>: Forces the display of the success message.<\/li>\n<li><code>error<\/code>: Forces the display of the error message.<\/li>\n<\/ul><\/li>\n<li><strong><code>text<\/code><\/strong>: The text on the login button. Default: \"Login &amp; Connect\".<\/li>\n<li><strong><code>success_message<\/code><\/strong>: The message shown on success. Default: \"You are now logged in...\"<\/li>\n<li><strong><code>error_message<\/code><\/strong>: The fallback error message. Default: \"An unknown error occurred.\"<\/li>\n<li><strong><code>tos_url<\/code><\/strong>: (Mandatory for Login) URL to your Terms of Service page.<\/li>\n<li><strong><code>privacy_url<\/code><\/strong>: (Mandatory for Login) URL to your Privacy Policy page.<\/li>\n<\/ul>\n\n<h3>Examples<\/h3>\n\n<p><strong>Standard Setup (One Page for everything):<\/strong>\n    [frederix_external_login tos_url=\"\/agb\" privacy_url=\"\/datenschutz\"]<\/p>\n\n<p><strong>Custom Button Text:<\/strong>\n    [frederix_external_login text=\"Start Free WiFi\" tos_url=\"\/agb\" privacy_url=\"\/datenschutz\"]<\/p>\n\n<p><strong>Separate Error Page:<\/strong>\nIf you want a dedicated error page with a custom message:\n    [frederix_external_login mode=\"error\" error_message=\"Something went wrong. Please ask at the reception.\"]<\/p>\n\n<h3>Dynamic Styling<\/h3>\n\n<p>The plugin automatically adds CSS classes to the main container based on the Hotspot parameters. This allows you to style the page differently for each location.<\/p>\n\n<p><strong>Classes added:<\/strong>\n*   <code>fhk-hotspot-{hotspotId}<\/code>\n*   <code>fhk-location-{locationId}<\/code>\n*   <code>fhk-external-{externalId}<\/code><\/p>\n\n<p><strong>Example CSS:<\/strong>\nIf you want a green button for Location 123 and a blue button for Location 456:<\/p>\n\n<pre><code>`css\n<\/code><\/pre>\n\n<p>\/* Location 123 - Green *\/\n.fhk-location-123 .frederix-login-button {\n    background-color: green;\n}<\/p>\n\n<p>\/* Location 456 - Blue *\/\n.fhk-location-456 .frederix-login-button {\n    background-color: blue;\n}\n    <code>&lt;h3&gt;Conditional Content&lt;\/h3&gt;\nYou can show or hide any content (images, text, other shortcodes) based on the location or hotspot ID using the<\/code>[frederix_show_if]` shortcode.<\/p>\n\n<p><strong>Attributes:<\/strong>\n*   <code>location<\/code>: Comma-separated list of Location IDs.\n*   <code>hotspot<\/code>: Comma-separated list of Hotspot IDs.\n*   <code>external<\/code>: Comma-separated list of External IDs.<\/p>\n\n<p><strong>Example 1: Show a specific logo only for Location 123:<\/strong><\/p>\n\n<pre><code>`text\n<\/code><\/pre>\n\n<p>[frederix_show_if location=\"123\"]\n\n[\/frederix_show_if]\n    `<\/p>\n\n<p><strong>Example 2: Show a special notice for multiple Hotspots:<\/strong><\/p>\n\n<pre><code>`text\n<\/code><\/pre>\n\n<p>[frederix_show_if hotspot=\"HS-01, HS-02\"]<\/p>\n\n\n    <p>Special maintenance today in this area!<\/p>\n\n\n<p>[\/frederix_show_if]\n    `<\/p>\n\n<p><strong>Example 3: Combine with the login shortcode:<\/strong><\/p>\n\n<pre><code>`text\n<\/code><\/pre>\n\n<p>[frederix_show_if location=\"123\"]<\/p>\n\nWelcome to the Beach Club!\n\n<pre><code>[frederix_external_login text=\"Connect to Beach WiFi\"]\n<\/code><\/pre>\n\n<p>[\/frederix_show_if]<\/p>\n\n<p>[frederix_show_if location=\"456\"]<\/p>\n\nWelcome to the Lobby!\n\n<pre><code>[frederix_external_login text=\"Connect to Lobby WiFi\"]\n<\/code><\/pre>\n\n<p>[\/frederix_show_if]\n    `<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>frederix-external-login<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Create a new page (e.g., \"WiFi Login\").<\/li>\n<li>Add the shortcode <code>[frederix_external_login]<\/code> to the page content.<\/li>\n<li>Configure your Hotspot's <strong>External Login URL<\/strong>, <strong>Success URL<\/strong>, and <strong>Error URL<\/strong> to point to this page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20do%20i%20test%20this%3F'><h3>How do I test this?<\/h3><\/dt>\n<dd><p>You need a running Frederix Hotspot that redirects to your WordPress page. The hotspot will append parameters like <code>?callback=...<\/code> or <code>?status=success<\/code>.<\/p><\/dd>\n<dt id='can%20i%20style%20the%20button%3F'><h3>Can I style the button?<\/h3><\/dt>\n<dd><p>Yes, the plugin includes basic CSS, but you can override <code>.frederix-login-button<\/code> in your theme's CSS.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added support for Success and Error states.<\/li>\n<li>Added <code>mode<\/code> attribute for manual control.<\/li>\n<li>Added customizable messages.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Handles the external login flow for CloudWiFi, including success and error pages.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/269783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=269783"}],"author":[{"embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/frederixhotspot"}],"wp:attachment":[{"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=269783"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=269783"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=269783"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=269783"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=269783"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=269783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}