{"id":330957,"date":"2026-06-24T01:16:19","date_gmt":"2026-06-24T01:16:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/unstoppable-user-profiles\/"},"modified":"2026-06-24T01:16:08","modified_gmt":"2026-06-24T01:16:08","slug":"unstoppable-user-profiles","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/unstoppable-user-profiles\/","author":13116230,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.3","stable_tag":"1.1.3","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Unstoppable User Profiles","header_author":"Unstoppable Solutions","header_description":"Let logged-in members edit their own profile and upload a profile photo from the front end \u2014 no media library access, works with any membership plugin.","assets_banners_color":"415f8c","last_updated":"2026-06-24 01:16:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/unstoppablesolutions.app\/plugins\/unstoppable-user-profiles","header_author_uri":"https:\/\/unstoppablesolutions.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.3":{"tag":"1.1.3","author":"paramedic192","date":"2026-06-24 01:16:08"}},"upgrade_notice":{"1.1.3":"<p>Clears all Plugin Check warnings. Recommended before submitting or distributing.<\/p>","1.1.2":"<p>Hides the duplicate native profile picture row so only the plugin&#039;s photo uploader shows.<\/p>","1.1.1":"<p>Internal hardening to align file handling with WordPress.org standards. No changes to features or behavior.<\/p>","1.1.0":"<p>Adds the photo uploader directly to the WordPress profile screen and the MemberPress Account page.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3583950,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3583950,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3583950,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3583950,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The front-end profile editor shown by the shortcode.","2":"The admin settings screen.","3":"The photo approval queue when moderation is enabled."}},"plugin_section":[],"plugin_tags":[129,2788,435,22299,9246],"plugin_category":[43,44],"plugin_contributors":[253147],"plugin_business_model":[],"class_list":["post-330957","plugin","type-plugin","status-publish","hentry","plugin_tags-avatar","plugin_tags-front-end","plugin_tags-profile","plugin_tags-profile-photo","plugin_tags-user-profile","plugin_category-customization","plugin_category-discussion-and-community","plugin_contributors-paramedic192","plugin_committers-paramedic192"],"banners":{"banner":"https:\/\/ps.w.org\/unstoppable-user-profiles\/assets\/banner-772x250.png?rev=3583950","banner_2x":"https:\/\/ps.w.org\/unstoppable-user-profiles\/assets\/banner-1544x500.png?rev=3583950","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/unstoppable-user-profiles\/assets\/icon-128x128.png?rev=3583950","icon_2x":"https:\/\/ps.w.org\/unstoppable-user-profiles\/assets\/icon-256x256.png?rev=3583950","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Unstoppable User Profiles gives your members a simple front-end form to edit their own profile details and upload their own profile photo \u2014 without ever touching the WordPress media library and without you having to add anyone's picture by hand.<\/p>\n\n<p>Drop the <code>[uupr_profile_form]<\/code> shortcode on any page (built with the block editor, Elementor, or any page builder) and logged-in users get a self-service profile editor.<\/p>\n\n<p><strong>Key features<\/strong><\/p>\n\n<ul>\n<li>Front-end profile editing for the logged-in user only (name, display name, email, website, bio \u2014 all toggleable).<\/li>\n<li>Secure profile photo upload that is stored in its own folder, kept out of the media library so it never clutters it and members never see other people's files.<\/li>\n<li>Uploaded photos appear everywhere automatically. Because the plugin overrides WordPress core avatars, the member's photo shows in any plugin that uses standard avatars \u2014 membership directories, community profiles, comment lists, author boxes, and more \u2014 with no extra setup.<\/li>\n<li>Optional admin moderation: require approval before a new photo goes live.<\/li>\n<li>Configurable maximum upload size and allowed fields.<\/li>\n<li>Uploaded images are re-encoded server-side to strip metadata and normalise dimensions.<\/li>\n<\/ul>\n\n<p><strong>Privacy and external services<\/strong><\/p>\n\n<p>This plugin does not connect to any external services, does not load any third-party scripts or fonts, and does not collect, send, or track any data. All uploads stay on your own server.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/unstoppable-user-profiles<\/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>Go to User Profiles &gt; Settings to choose which fields members can edit and set your photo size limit.<\/li>\n<li>Add the <code>[uupr_profile_form]<\/code> shortcode to any page where logged-in members should edit their profile.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20members%20need%20a%20wordpress%20account%3F\"><h3>Do members need a WordPress account?<\/h3><\/dt>\n<dd><p>They already have one. Most membership plugins create a WordPress user behind the scenes when someone registers, so members never see wp-admin \u2014 this plugin simply lets them edit that account from the front end.<\/p><\/dd>\n<dt id=\"will%20the%20uploaded%20photo%20show%20in%20my%20membership%20directory%3F\"><h3>Will the uploaded photo show in my membership directory?<\/h3><\/dt>\n<dd><p>If your directory or community plugin uses standard WordPress avatars, yes \u2014 automatically. The plugin overrides core avatar output, so no per-plugin configuration is needed.<\/p><\/dd>\n<dt id=\"do%20uploaded%20photos%20clutter%20my%20media%20library%3F\"><h3>Do uploaded photos clutter my media library?<\/h3><\/dt>\n<dd><p>No. Photos are stored in a dedicated uploads folder and are never added as media library attachments.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fixed: resolved Plugin Check input-sanitization warnings \u2014 profile fields are now sanitized on access, and file-upload arrays carry correct, documented handling notes.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Improved: hide the redundant native \"Profile Picture\" row (and its Gravatar link) on the profile screens, since the plugin now manages photos.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Hardened file handling to use the WordPress upload and filesystem APIs (wp_handle_upload, WP_Filesystem) ahead of WordPress.org review.<\/li>\n<li>Removed silenced PHP operators and cleaned up account-tab navigation handling.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: photo uploader on the WordPress profile screen (Users &gt; Profile \/ Edit User), for admins and staff.<\/li>\n<li>Added: \"Profile Photo\" tab on the MemberPress Account page so members can upload from the front end.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Let logged-in members edit their own profile and upload a profile photo from the front end. No media library access. Works with any membership plugin.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/330957","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=330957"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/paramedic192"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=330957"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=330957"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=330957"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=330957"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=330957"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=330957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}