{"id":311489,"date":"2026-05-31T19:01:46","date_gmt":"2026-05-31T19:01:46","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/block-profile-edits\/"},"modified":"2026-06-01T07:54:38","modified_gmt":"2026-06-01T07:54:38","slug":"block-profile-edits","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/block-profile-edits\/","author":8382768,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Block Profile Edits","header_author":"treeflips","header_description":"Restrict user profile edits by role. Uses server-side enforcement on frontend and backend.","assets_banners_color":"080809","last_updated":"2026-06-01 07:54:38","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/paypalme\/wpjohnny","header_plugin_uri":"","header_author_uri":"https:\/\/wpjohnny.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":34,"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":"treeflips","date":"2026-06-01 07:54:38"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3556360,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3556360,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3556360,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3556360,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2085,9271,1914,1915,9246],"plugin_category":[58],"plugin_contributors":[181733],"plugin_business_model":[],"class_list":["post-311489","plugin","type-plugin","status-publish","hentry","plugin_tags-lock","plugin_tags-profile-fields","plugin_tags-restrict","plugin_tags-roles","plugin_tags-user-profile","plugin_category-user-management","plugin_contributors-treeflips","plugin_committers-treeflips"],"banners":{"banner":"https:\/\/ps.w.org\/block-profile-edits\/assets\/banner-772x250.png?rev=3556360","banner_2x":"https:\/\/ps.w.org\/block-profile-edits\/assets\/banner-1544x500.png?rev=3556360","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/block-profile-edits\/assets\/icon-128x128.png?rev=3556360","icon_2x":"https:\/\/ps.w.org\/block-profile-edits\/assets\/icon-256x256.png?rev=3556360","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Block Profile Edits lets administrators restrict specific user roles from editing their own profile fields. You can choose which roles and profile fields to restrict, and also show a custom message to restricted users.<\/p>\n\n<p>This plugin was originally inspired to prevent users from unauthorized redistributing or reselling account access. A common problem with unwanted abuse of GPL themes\/plugins. Sites using PDF-stampers to watermark ebooks will also benefit since users cannot change their personal information.<\/p>\n\n<h3>Features:<\/h3>\n\n<ul>\n<li>Choose user roles to restrict - Subscriber, Customer, Student, etc. (Administrators are exempt.)<\/li>\n<li>Choose profile fields to lock - Name, Email, etc.<\/li>\n<li>Display custom message - to restricted users, e.g. \"Sorry this info cannot be changed.\"<\/li>\n<li>Frontend\/Backend restriction - works anywhere account profile fields are shown.<\/li>\n<li>Server-side enforcement - for WP-admin profile saves and WordPress user update APIs.<\/li>\n<li>Clean, modular code - lightweight, minimalist, no site-slowdown.<\/li>\n<\/ul>\n\n<h3>Technical Notes:<\/h3>\n\n<ul>\n<li>Restriction only works on default WordPress profile fields. Extra fields added by plugins are not yet integrated, may be considered for future development.<\/li>\n<li>Frontend behavior may vary depending the page template. Most cases appear as normal, fields are visually blocked (greyed out) and custom message is shown. In some cases, fields appear as editable but data won't save when submitted.<\/li>\n<li>Testing shortcode - add <code>[treeflips_bpe_test_form]<\/code> to any page to test frontend restrictions for logged-in users. Locked fields should render as read-only and display the restriction message.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/block-profile-edits<\/code>.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Go to <strong>Users &gt; Block Profile Edits<\/strong> to configure restrictions.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20affect%20frontend%20profile%20editing%20plugins%3F\"><h3>Will this affect frontend profile editing plugins?<\/h3><\/dt>\n<dd><p>It can. Frontend forms that use WordPress user update APIs will be blocked for locked fields. Custom forms that write directly to the database may bypass WordPress hooks.<\/p><\/dd>\n<dt id=\"are%20administrators%20restricted%3F\"><h3>Are administrators restricted?<\/h3><\/dt>\n<dd><p>No. Users with the administrator role always have full edit access.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed testing shortcode to <code>treeflips_bpe_test_form<\/code> for distinct prefixing.<\/li>\n<li>Replaced inline <code>&lt;style&gt;<\/code> and <code>&lt;script&gt;<\/code> tags with <code>wp_add_inline_style()<\/code> and <code>wp_add_inline_script()<\/code>.<\/li>\n<li>Removed unnecessary custom translation loader (auto-loaded in WP 5.8+).<\/li>\n<li>Updated public code identifiers and options to use the distinct <code>treeflips_bpe<\/code> prefix.<\/li>\n<li>Removed the deprecated testing shortcode alias.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Updated readme descriptions and text.<\/li>\n<li>Removed domain path \"\/languages\".<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Updated the frontend test shortcode to submit with AJAX and show inline success\/error messages without page reloads.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Updated the frontend test shortcode to visually lock restricted fields and show the configured restriction message.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added frontend restriction testing shortcode.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Strengthened server-side protection for locked core profile fields across backend, frontend, AJAX, REST, and WordPress user update API requests.<\/li>\n<li>Prevented locked profile meta from being added, updated, or deleted for restricted users.<\/li>\n<li>Removed duplicate native browser tooltip on locked backend fields.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed profile screen asset loading for locked backend fields.<\/li>\n<li>Improved locked field message behavior for pointer and touch users.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Restrict user profile edits by role. Uses server-side enforcement on frontend and backend.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/311489","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=311489"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/treeflips"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=311489"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=311489"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=311489"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=311489"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=311489"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=311489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}