{"id":290200,"date":"2026-04-05T08:39:59","date_gmt":"2026-04-05T08:39:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/melmium\/"},"modified":"2026-04-05T08:40:24","modified_gmt":"2026-04-05T08:40:24","slug":"melmium","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/melmium\/","author":18446787,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"6.9.4","requires":"6.9","requires_php":"8.1","requires_plugins":null,"header_name":"Melmium","header_author":"Takashi Ito","header_description":"A minimal plugin to help you build a membership site.","assets_banners_color":"","last_updated":"2026-04-05 08:40:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/melmium.com","header_author_uri":"https:\/\/siorr.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":22,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"itokuchen","date":"2026-04-05 08:40:24"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Login page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[710,602,1932,14860,603],"plugin_category":[38,58],"plugin_contributors":[259449],"plugin_business_model":[],"class_list":["post-290200","plugin","type-plugin","status-publish","hentry","plugin_tags-authentication","plugin_tags-login","plugin_tags-membership","plugin_tags-password-reset","plugin_tags-registration","plugin_category-authentication","plugin_category-user-management","plugin_contributors-itokuchen","plugin_committers-itokuchen"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/melmium.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Melmium provides custom authentication pages for building a membership site on WordPress. It replaces the default wp-login.php flow with theme-integrated pages for registration, login, and password reset.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Custom authentication pages (register, login, logout, password reset)<\/li>\n<li>Email-based registration flow with token verification<\/li>\n<li>Template override support \u2014 customize templates in your theme's <code>auth\/<\/code> directory<\/li>\n<li>Google reCAPTCHA Enterprise integration (optional)<\/li>\n<li>Configuration via <code>wp-config.php<\/code> constants (no settings page required)<\/li>\n<\/ul>\n\n<p><strong>\u65e5\u672c\u8a9e:<\/strong><\/p>\n\n<p>Melmium \u306f WordPress \u3067\u4f1a\u54e1\u5236\u30b5\u30a4\u30c8\u3092\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u3059\u3002\u30ab\u30b9\u30bf\u30e0\u8a8d\u8a3c\u30da\u30fc\u30b8\uff08\u4f1a\u54e1\u767b\u9332\u30fb\u30ed\u30b0\u30a4\u30f3\u30fb\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\uff09\u3092\u63d0\u4f9b\u3057\u3001\u30c6\u30fc\u30de\u5074\u3067\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u81ea\u7531\u306b\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin optionally connects to the <strong>Google reCAPTCHA Enterprise<\/strong> service for bot detection on authentication forms (registration, login, and password reset).<\/p>\n\n<p><strong>When data is sent:<\/strong> When the <code>MELMIUM_RECAPTCHA_ENABLED<\/code> constant is set to <code>true<\/code> in <code>wp-config.php<\/code>, a reCAPTCHA token is sent to Google's servers each time a user submits an authentication form.<\/p>\n\n<p><strong>What data is sent:<\/strong> The reCAPTCHA token generated by the user's browser and the site key configured for your project.<\/p>\n\n<p><strong>Service provider:<\/strong> Google LLC<\/p>\n\n<ul>\n<li><a href=\"https:\/\/policies.google.com\/terms\">Google reCAPTCHA Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a><\/li>\n<\/ul>\n\n<p>If reCAPTCHA is not enabled (default), no data is sent to any external service.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>melmium<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Ensure that <strong>Pretty Permalinks<\/strong> are enabled (Settings &gt; Permalinks \u2014 choose any structure other than \"Plain\").<\/li>\n<li>The plugin automatically creates an authentication page and registers URL rewrite rules on activation.<\/li>\n<li>Optionally, add configuration constants to your <code>wp-config.php<\/code> to customize behavior (e.g., <code>MELMIUM_RECAPTCHA_ENABLED<\/code>, <code>MELMIUM_REDIRECT_AFTER_LOGIN<\/code>).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20plugin%20free%3F\"><h3>Is this plugin free?<\/h3><\/dt>\n<dd><p>Yes. Melmium is free and open-source under the GPLv2 license.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20data%20to%20external%20servers%3F\"><h3>Does this plugin send data to external servers?<\/h3><\/dt>\n<dd><p>By default, no. However, if you enable Google reCAPTCHA Enterprise (<code>MELMIUM_RECAPTCHA_ENABLED<\/code>), form submissions will send data to Google's reCAPTCHA API for bot detection.<\/p><\/dd>\n<dt id=\"why%20do%20i%20need%20pretty%20permalinks%3F\"><h3>Why do I need Pretty Permalinks?<\/h3><\/dt>\n<dd><p>Melmium uses WordPress rewrite rules to map authentication URLs (e.g., <code>\/login<\/code>, <code>\/register<\/code>). These rules require Pretty Permalinks to be enabled. The plugin will display an admin notice if Plain permalinks are detected.<\/p><\/dd>\n<dt id=\"how%20do%20i%20customize%20the%20authentication%20templates%3F\"><h3>How do I customize the authentication templates?<\/h3><\/dt>\n<dd><p>On activation, the plugin copies default templates to your theme's <code>auth\/<\/code> directory. You can edit these template files directly in your theme to customize the look and behavior of each authentication page.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Renamed JavaScript global variables to use <code>melmium_<\/code> prefix to avoid conflicts with other plugins<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed reCAPTCHA library script version argument (null to MELMIUM_VERSION)<\/li>\n<li>Fixed Plugin Check reported issues<\/li>\n<li>Improved .DS_Store exclusion pattern to cover all subdirectories<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security improvements: added nonce verification, input sanitization, and output escaping<\/li>\n<li>Added direct file access protection to template files<\/li>\n<li>Added third-party service disclosure for Google reCAPTCHA Enterprise<\/li>\n<li>Renamed constants and classes to use <code>melmium<\/code> prefix (4+ characters)<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"A minimal plugin to help you build a membership site with custom authentication pages.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/290200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=290200"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/itokuchen"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=290200"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=290200"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=290200"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=290200"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=290200"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=290200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}