{"id":376597,"date":"2026-10-27T09:40:32","date_gmt":"2026-10-27T09:40:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/hubu-panel\/"},"modified":"2026-10-29T18:44:12","modified_gmt":"2026-10-29T18:44:12","slug":"hubu-panel","status":"publish","type":"plugin","link":"https:\/\/tw.wordpress.org\/plugins\/hubu-panel\/","author":23574990,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1.4","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"Hubu Panel","header_author":"HUBU Team","header_description":"Hubu is a special product that creates a beautiful user dashboard for your WordPress site.","assets_banners_color":"","last_updated":"2026-10-29 18:44:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/hubu.pro","rating":0,"author_block_rating":0,"active_installs":0,"downloads":144,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"hubupro","date":"2026-10-27 09:40:09","revision":3768148},"1.0.1":{"tag":"1.0.1","author":"hubupro","date":"2026-10-27 13:13:06","revision":3768645},"1.0.2":{"tag":"1.0.2","author":"hubupro","date":"2026-10-29 18:44:12","revision":3773783}},"upgrade_notice":{"1.0.2":"<p>Restores the Dashboard and Account endpoints missing after a first activation, and returns visitors to the page they asked for after signing in.<\/p>","1.0.1":"<p>Fixes an error on the first screen after activating the plugin.<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3768343,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3768343,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[602,603,22712,9246,214867],"plugin_category":[38,58],"plugin_contributors":[288893],"plugin_business_model":[],"class_list":["post-376597","plugin","type-plugin","status-publish","hentry","plugin_tags-login","plugin_tags-registration","plugin_tags-user-dashboard","plugin_tags-user-profile","plugin_tags-woocommerce-my-account","plugin_category-authentication","plugin_category-user-management","plugin_contributors-hubupro","plugin_committers-hubupro"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/hubu-panel\/assets\/icon-128x128.gif?rev=3768343","icon_2x":"https:\/\/ps.w.org\/hubu-panel\/assets\/icon-256x256.gif?rev=3768343","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Hubu gives the logged-in half of your site the same care as the public half. Instead of dropping members into the WordPress admin, it builds a front-end dashboard on your own pages, with login and registration screens that look like they belong to your brand.<\/p>\n\n<p>Everything is organised into modules you switch on from one screen, so a site that only needs a nicer login page never loads the rest.<\/p>\n\n<h4>User Panel<\/h4>\n\n<p>A complete front-end dashboard for your members: profile editing, activity and security widgets, all styled to match your brand.<\/p>\n\n<p>The panel menu is yours to arrange. Rename, reorder or switch off its endpoints, choose who sees each one by role, pick an icon, and add your own content to an endpoint \u2014 no template editing required.<\/p>\n\n<h4>Authentication<\/h4>\n\n<p>Branded login, registration and password-recovery flows with strong-password rules, rate limiting, an international phone field, and a form builder to choose, order and label the registration fields.<\/p>\n\n<h4>WooCommerce<\/h4>\n\n<p>Merges the WooCommerce My Account area into the user panel: orders, downloads and addresses become native endpoints with matching icons and styling. WooCommerce's own hooks keep firing, so extensions that add to My Account keep working.<\/p>\n\n<p>This module only appears when WooCommerce is active.<\/p>\n\n<h4>Asset Cleanup<\/h4>\n\n<p>Blocks theme and plugin CSS\/JS from the panel and login pages, so your layout stays pixel-perfect on any theme and loads noticeably faster.<\/p>\n\n<h4>Built to be extended<\/h4>\n\n<p>Every module exposes filters under the <code>hubu\/<\/code> prefix \u2014 dashboard boxes, panel menus, endpoint providers, notification templates and email views are all filterable. Notifications are delivered through a queue rather than during the request that triggered them.<\/p>\n\n<h4>Translation ready<\/h4>\n\n<p>Every string ships translatable in the <code>hubu-panel<\/code> text domain, with translations loaded from <code>\/languages<\/code>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Hubu Panel works on its own. It contacts the services below only in the situations described. It performs no license checks and gets its updates from WordPress.org.<\/p>\n\n<h4>hubu.pro: optional account connection<\/h4>\n\n<p>Hubu's own service, used only if you connect your site to a hubu.pro account.<\/p>\n\n<ul>\n<li><strong>Connecting:<\/strong> when you click to connect in the Hubu admin screens, your browser goes to your account page on hubu.pro (<code>https:\/\/hubu.pro\/my-account\/<\/code>) to sign in, and your site URL is included so the account can be linked back to the site.<\/li>\n<li><strong>Disconnecting:<\/strong> when you disconnect the site, or deactivate the plugin while the site is connected, the plugin sends your Hubu username, the site's API key and the site URL to hubu.pro's API, so the site is unlinked from your account.<\/li>\n<\/ul>\n\n<p>Nothing is sent to hubu.pro unless you connected the site. The service is provided by Hubu: <a href=\"https:\/\/hubu.pro\/licence-terms\/\">terms of service<\/a>, <a href=\"https:\/\/hubu.pro\/privacy-policy\/\">privacy policy<\/a>.<\/p>\n\n<h4>Gravatar: profile pictures<\/h4>\n\n<p>The panel header and the account page show each member's profile picture through WordPress's own avatar functions. Unless another plugin supplies local avatars, WordPress serves those pictures from Gravatar: the visitor's browser loads the image from gravatar.com, which receives a hash of the member's email address and the usual request data, such as the visitor's IP address. This happens whenever a panel page with a profile picture is displayed. The service is provided by Automattic: <a href=\"https:\/\/gravatar.com\/tos\">terms of service<\/a>, <a href=\"https:\/\/automattic.com\/privacy\/\">privacy policy<\/a>.<\/p>\n\n<h4>ipapi.co: country detection for phone fields (off by default)<\/h4>\n\n<p>Phone fields preselect the visitor's country. By default the country is detected on your server only, and nothing is sent anywhere. If you choose a \"Detection source\" that uses the browser (in a phone field's options, in the registration or account form builder), the visitor's browser asks ipapi.co for its country when a form with a phone field is shown; ipapi.co receives the visitor's IP address. The answer is cached in the browser for a week. The service is provided by ipapi.co: <a href=\"https:\/\/ipapi.co\/terms\/\">terms of service<\/a>, <a href=\"https:\/\/ipapi.co\/privacy\/\">privacy policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install it through <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate <strong>Hubu Panel<\/strong> through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Open <strong>Hubu<\/strong> in the admin menu and enable the modules you want.<\/li>\n<li>Under <strong>Hubu \u2192 Settings \u2192 Pages<\/strong>, choose which page hosts the user panel and which hosts login and registration.<\/li>\n<\/ol>\n\n<p>Hubu creates those pages for you on activation if they do not exist yet.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>Yes. The panel and authentication screens render on ordinary pages and bring their own styles. If a theme's CSS still interferes, enable the Asset Cleanup module, which stops theme and plugin stylesheets from loading on those screens.<\/p><\/dd>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>No. WooCommerce is optional. When it is active, the WooCommerce module folds My Account into the panel; when it is not, that module stays hidden.<\/p><\/dd>\n<dt id=\"my%20site%20is%20behind%20cloudflare%20and%20rate%20limiting%20behaves%20oddly.%20what%20do%20i%20do%3F\"><h3>My site is behind Cloudflare and rate limiting behaves oddly. What do I do?<\/h3><\/dt>\n<dd><p>By default Hubu identifies visitors only by <code>REMOTE_ADDR<\/code>, because headers like <code>X-Forwarded-For<\/code> can be set by anyone and trusting them would let a caller walk past per-IP limits. Behind a reverse proxy that means every visitor looks like the proxy, so they share one bucket.<\/p>\n\n<p>Tell Hubu which header your proxy sets, and only then is it trusted:<\/p>\n\n<pre><code>add_filter( 'hubu\/trusted_proxy_headers', function () { return array( 'HTTP_CF_CONNECTING_IP' ); } );\n<\/code><\/pre><\/dd>\n<dt id=\"does%20uninstalling%20delete%20my%20data%3F\"><h3>Does uninstalling delete my data?<\/h3><\/dt>\n<dd><p>No. Deleting the plugin removes its files and cancels its scheduled jobs, but leaves your settings, user data and tables in place, so reinstalling picks up where you left off.<\/p>\n\n<p>If you do want a clean removal, opt in from a must-use plugin \u2014 ordinary plugins are not loaded while WordPress runs an uninstall:<\/p>\n\n<pre><code>add_filter( 'hubu_clear_data_on_uninstall', '__return_true' );\n<\/code><\/pre><\/dd>\n<dt id=\"can%20i%20translate%20it%3F\"><h3>Can I translate it?<\/h3><\/dt>\n<dd><p>Yes. All strings use the <code>hubu-panel<\/code> text domain. Name your files <code>hubu-panel-{locale}.po<\/code> \/ <code>.mo<\/code> (for example <code>hubu-panel-fa_IR.mo<\/code>) and drop them in <code>\/wp-content\/languages\/plugins\/<\/code> so they survive plugin updates.<\/p><\/dd>\n<dt id=\"where%20is%20the%20source%20code%20of%20the%20minified%20scripts%3F\"><h3>Where is the source code of the minified scripts?<\/h3><\/dt>\n<dd><p>It ships with the plugin. The minified bundles are built with webpack from the readable sources in <code>assets\/admin\/src<\/code>, <code>assets\/front\/src<\/code> and each module's <code>assets\/src<\/code> folder. To rebuild them, run <code>npm install<\/code> and then <code>npm run build<\/code> in the plugin folder. The plugin's own stylesheets and other scripts ship unminified.<\/p><\/dd>\n<dt id=\"which%20third-party%20libraries%20does%20it%20include%3F\"><h3>Which third-party libraries does it include?<\/h3><\/dt>\n<dd><p><a href=\"https:\/\/github.com\/twbs\/bootstrap\">Bootstrap<\/a>, <a href=\"https:\/\/github.com\/floating-ui\/floating-ui\/tree\/v2.x\">Popper<\/a>, <a href=\"https:\/\/github.com\/hammerjs\/hammer.js\">Hammer.js<\/a>, <a href=\"https:\/\/github.com\/fians\/Waves\">Node Waves<\/a>, <a href=\"https:\/\/github.com\/algolia\/autocomplete\">Algolia Autocomplete<\/a>, <a href=\"https:\/\/github.com\/simonwep\/pickr\">Pickr<\/a>, <a href=\"https:\/\/github.com\/mdbootstrap\/perfect-scrollbar\">perfect-scrollbar<\/a>, <a href=\"https:\/\/github.com\/CodeSeven\/toastr\">toastr<\/a> and <a href=\"https:\/\/github.com\/jackocnr\/intl-tel-input\">intl-tel-input<\/a>, all MIT; <a href=\"https:\/\/github.com\/malsup\/blockui\">jQuery BlockUI<\/a> (MIT or GPL); <a href=\"https:\/\/github.com\/FortAwesome\/Font-Awesome\">Font Awesome Free<\/a> (MIT code, SIL OFL 1.1 fonts, CC BY 4.0 icons); <a href=\"https:\/\/github.com\/tabler\/tabler-icons\">Tabler Icons<\/a> (MIT); <a href=\"https:\/\/github.com\/Leaflet\/Leaflet\">Leaflet<\/a> (BSD-2-Clause); and <a href=\"https:\/\/github.com\/typekit\/webfontloader\">Web Font Loader<\/a> (Apache-2.0).<\/p><\/dd>\n<dt id=\"does%20hubu%20add%20a%20credit%20link%20to%20my%20site%3F\"><h3>Does Hubu add a credit link to my site?<\/h3><\/dt>\n<dd><p>Not unless you ask for one. A \"Powered by Hubu\" link in the panel footer appears only after you turn it on under Settings \u203a Panel \u203a Footer.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20support%3F\"><h3>Where do I get support?<\/h3><\/dt>\n<dd><p>Use the support forum on this plugin's WordPress.org page, or visit <a href=\"https:\/\/hubu.pro\/\">hubu.pro<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: on a first activation with WooCommerce or other modules active, the Dashboard and Account settings endpoints were missing from the user panel menu and the Endpoints screen. They are now always registered, shown first, cannot be deleted and can still be switched off. Sites that already lost them get them back on update.<\/li>\n<li>Fix: a visitor who is not signed in and opens a panel page is now sent to the plugin's login page and, after signing in, returns to the exact page they asked for, including its endpoint and query string. Moving between the login, registration and password-recovery pages keeps that destination.<\/li>\n<li>Fix: a signed-in user who opens the login or registration page is sent to the user panel (or the page they asked for) instead of seeing the form again. The reset-password page stays available.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: the screen shown right after the first activation ended on a \"Sorry, you are not allowed to access this page\" error. It now opens the Hubu dashboard.<\/li>\n<li>Fix: login, registration and password-recovery validation, OTP code entry and the registration consent checkbox.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>User Panel: front-end dashboard with configurable widgets, an arrangeable menu and role-based visibility.<\/li>\n<li>Authentication: branded login, registration and password recovery, with a registration form builder.<\/li>\n<li>WooCommerce: My Account endpoints rendered inside the user panel.<\/li>\n<li>Asset Cleanup: stops theme and plugin assets from loading on panel and authentication screens.<\/li>\n<li>Queued notifications with filterable email templates.<\/li>\n<li>Translations: German, French, Spanish, Arabic, Turkish and Persian. A regional locale such as es_MX, de_AT or fr_CA reads the translation of its language.<\/li>\n<\/ul>","raw_excerpt":"A front-end dashboard for your members, with branded login and registration and a WooCommerce My Account area that finally matches your design.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/376597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=376597"}],"author":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hubupro"}],"wp:attachment":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=376597"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=376597"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=376597"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=376597"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=376597"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=376597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}