{"id":226265,"date":"2025-07-27T15:28:07","date_gmt":"2025-07-27T15:28:07","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cpp-custom-profile-picture\/"},"modified":"2026-01-08T01:16:04","modified_gmt":"2026-01-08T01:16:04","slug":"custom-profile-picture","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/custom-profile-picture\/","author":20874571,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"6.9.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Custom Profile Picture","header_author":"ifatwp","header_description":"Allows users to upload their own profile pictures in the profile section.","assets_banners_color":"ece8ee","last_updated":"2026-01-08 01:16:04","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ifatwp.wordpress.com\/","header_plugin_uri":"https:\/\/ifatwp.wordpress.com\/2025\/05\/07\/custom-profile-picture\/","header_author_uri":"https:\/\/ifatwp.wordpress.com\/","rating":3,"author_block_rating":0,"active_installs":90,"downloads":609,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"ifatwp","date":"2025-07-27 15:27:37"},"1.0.2":{"tag":"1.0.2","author":"ifatwp","date":"2026-01-08 01:16:04"}},"upgrade_notice":{"1.0.2":"<p>Major update! New centralized admin page for managing all user profile pictures from one place. Upload from media library, search users, and manage avatars with beautiful UX. Highly recommended upgrade!<\/p>","1.0.1":"<p>Important security and usability improvements. Recommended upgrade for all users.<\/p>","1.0.0":"<p>Initial release with profile picture upload and cropping functionality.<\/p>"},"ratings":{"1":1,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3335047,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3336659,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3335047,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3335047,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3434788,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/profile.php\",\"preferredVersions\":{\"wp\":\"latest\",\"php\":\"8.0\"},\"plugins\":[\"custom-profile-picture\"],\"steps\":[{\"step\":\"login\",\"username\":\"admin\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"custom-profile-picture\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Centralized admin page showing all users in a beautiful grid layout","2":"Hover over avatars to reveal change\/remove buttons","3":"Individual user profile upload interface with media library option","4":"Interactive image cropping modal for perfect avatars","5":"Search and filter users easily","6":"Mobile-responsive interface"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[129,9280,127,7894,9246],"plugin_category":[44],"plugin_contributors":[225950],"plugin_business_model":[],"class_list":["post-226265","plugin","type-plugin","status-publish","hentry","plugin_tags-avatar","plugin_tags-custom-avatar","plugin_tags-gravatar","plugin_tags-profile-picture","plugin_tags-user-profile","plugin_category-discussion-and-community","plugin_contributors-ifatwp","plugin_committers-ifatwp"],"banners":{"banner":"https:\/\/ps.w.org\/custom-profile-picture\/assets\/banner-772x250.png?rev=3335047","banner_2x":"https:\/\/ps.w.org\/custom-profile-picture\/assets\/banner-1544x500.png?rev=3335047","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/custom-profile-picture\/assets\/icon-128x128.png?rev=3335047","icon_2x":"https:\/\/ps.w.org\/custom-profile-picture\/assets\/icon-256x256.gif?rev=3336659","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Custom Profile Picture<\/strong> is the easiest way to replace WordPress default Gravatar avatars with custom profile pictures. Upload images directly or choose from your media library \u2013 managing user avatars has never been this simple!<\/p>\n\n<h4>\ud83d\ude80 Why Choose Custom Profile Picture?<\/h4>\n\n<p>Tired of relying on Gravatar for user avatars? Want complete control over your site's user profile pictures? This plugin gives you the freedom to upload custom profile pictures without depending on external services.<\/p>\n\n<h4>\u2728 Key Features<\/h4>\n\n<p><strong>\ud83d\udcf8 Dual Upload Methods<\/strong>\n* Upload images directly from your device\n* Choose from WordPress Media Library\n* Both methods available on individual user profiles<\/p>\n\n<p><strong>\u26a1 Centralized Management Dashboard<\/strong>\n* Manage ALL user profile pictures from one page\n* Beautiful grid view of all users\n* Hover to change or remove pictures instantly\n* AJAX-powered updates \u2013 no page refresh needed\n* Search users by name, email, or username\n* Pagination for sites with many users<\/p>\n\n<p><strong>\ud83c\udfa8 Professional Image Cropping<\/strong>\n* Built-in interactive cropping tool\n* Real-time crop preview\n* Maintains perfect square aspect ratio\n* Mobile-friendly interface<\/p>\n\n<p><strong>\ud83d\udd12 Security First<\/strong>\n* Proper nonce verification\n* Capability checks for user permissions\n* Secure AJAX handling\n* Sanitized and validated inputs<\/p>\n\n<p><strong>\ud83d\udcf1 Fully Responsive<\/strong>\n* Works perfectly on desktop, tablet, and mobile\n* Touch-friendly controls\n* Responsive admin interface<\/p>\n\n<p><strong>\u2699\ufe0f Developer Friendly<\/strong>\n* Clean, object-oriented code\n* Proper WordPress coding standards\n* Namespaced classes\n* Well-documented code\n* Extensible architecture<\/p>\n\n<h4>\ud83d\udca1 Perfect For<\/h4>\n\n<ul>\n<li>Community websites<\/li>\n<li>Membership sites<\/li>\n<li>Corporate intranets<\/li>\n<li>Educational platforms<\/li>\n<li>Any site wanting custom user avatars<\/li>\n<li>Sites not wanting to depend on Gravatar<\/li>\n<\/ul>\n\n<h4>\ud83c\udfaf How It Works<\/h4>\n\n<p><strong>Method 1: Individual User Profiles<\/strong>\n1. Go to Users \u2192 Your Profile (or edit any user)\n2. Scroll to \"Profile Picture\" section\n3. Click \"Choose from Media Library\" OR upload directly\n4. Image automatically replaces Gravatar everywhere<\/p>\n\n<p><strong>Method 2: Bulk Management (Admin)<\/strong>\n1. Go to \"Profile Pictures\" in admin menu\n2. See all users in a beautiful grid layout\n3. Hover over any user's avatar\n4. Click \"Change\" to select from media library\n5. Click \"Remove\" to revert to Gravatar<\/p>\n\n<h4>\ud83c\udf1f What Makes This Plugin Special?<\/h4>\n\n<p>Unlike other avatar plugins, Custom Profile Picture offers:\n* <strong>No configuration needed<\/strong> \u2013 works out of the box\n* <strong>Dual interface<\/strong> \u2013 individual and bulk management\n* <strong>Media library integration<\/strong> \u2013 use existing images\n* <strong>Beautiful UX<\/strong> \u2013 modern, intuitive design\n* <strong>Lightweight<\/strong> \u2013 no bloat, just what you need\n* <strong>100% WordPress compatible<\/strong> \u2013 uses standard avatar system<\/p>\n\n<h4>\ud83d\udd27 Technical Details<\/h4>\n\n<ul>\n<li>Integrates seamlessly with WordPress avatar system<\/li>\n<li>Works with <code>get_avatar()<\/code> function<\/li>\n<li>Replaces avatars site-wide automatically<\/li>\n<li>Stores images in WordPress media library<\/li>\n<li>Clean database structure with user meta<\/li>\n<li>No external dependencies (except Cropper.js for cropping)<\/li>\n<\/ul>\n\n<h4>\ud83d\udcda Documentation &amp; Support<\/h4>\n\n<p>Need help? Check out our:\n* <a href=\"https:\/\/ifatwp.wordpress.com\/\">Documentation<\/a>\n* <a href=\"https:\/\/wordpress.org\/support\/plugin\/custom-profile-picture\/\">Support Forum<\/a><\/p>\n\n<h3>Additional Information<\/h3>\n\n<h4>Credits<\/h4>\n\n<ul>\n<li>Cropper.js library for image manipulation<\/li>\n<li>WordPress core team for the amazing platform<\/li>\n<\/ul>\n\n<h4>Privacy Policy<\/h4>\n\n<p>This plugin does not collect, store, or transmit any user data outside your WordPress installation. All images are stored in your WordPress media library. No external services are used.<\/p>\n\n<h4>Want to Contribute?<\/h4>\n\n<p>We welcome contributions! Visit our <a href=\"https:\/\/github.com\/ifatwp\/custom-profile-picture\">GitHub repository<\/a> to report issues or submit pull requests.<\/p>\n\n<h4>Love This Plugin?<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/wordpress.org\/support\/plugin\/custom-profile-picture\/reviews\/#new-post\">Leave a review<\/a> \u2013 it helps others find this plugin!<\/li>\n<li><a href=\"https:\/\/ifatwp.wordpress.com\/\">Donate<\/a> \u2013 support continued development<\/li>\n<\/ul>\n\n<h4>For Developers<\/h4>\n\n<p>Custom Profile Picture is built with:\n* Object-oriented PHP\n* WordPress coding standards\n* Proper namespacing (Ifatwp\\CustomProfilePicture)\n* Action and filter hooks\n* AJAX for dynamic updates\n* WordPress Media Library API\n* Clean, documented code<\/p>\n\n<p>Filters available:\n* Custom hooks coming in future versions<\/p>\n\n<p>For questions, customizations, or feature requests, please visit the support forum.`<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to Plugins \u2192 Add New<\/li>\n<li>Search for \"Custom Profile Picture\"<\/li>\n<li>Click \"Install Now\"<\/li>\n<li>Activate the plugin<\/li>\n<li>Done! Start uploading profile pictures<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Go to Plugins \u2192 Add New \u2192 Upload Plugin<\/li>\n<li>Choose the downloaded file<\/li>\n<li>Click \"Install Now\"<\/li>\n<li>Activate the plugin<\/li>\n<\/ol>\n\n<h4>Usage<\/h4>\n\n<p><strong>For Individual Users:<\/strong>\n1. Navigate to Users \u2192 Your Profile\n2. Find \"Profile Picture\" section\n3. Upload or choose from media library\n4. Save changes<\/p>\n\n<p><strong>For Administrators:<\/strong>\n1. Go to \"Profile Pictures\" in WordPress admin menu\n2. View all users in grid layout\n3. Hover over user avatars to manage\n4. Use search to find specific users<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20this%20work%20with%20gravatar%3F'><h3>Does this work with Gravatar?<\/h3><\/dt>\n<dd><p>Yes! The plugin replaces Gravatar with custom images. If no custom image is uploaded, the default Gravatar will still show.<\/p><\/dd>\n<dt id='what%20image%20formats%20are%20supported%3F'><h3>What image formats are supported?<\/h3><\/dt>\n<dd><p>All standard web formats: JPEG, JPG, PNG, and GIF.<\/p><\/dd>\n<dt id='what%27s%20the%20recommended%20image%20size%3F'><h3>What's the recommended image size?<\/h3><\/dt>\n<dd><p>We recommend 150\u00d7150 pixels for optimal display across all devices.<\/p><\/dd>\n<dt id='can%20users%20upload%20their%20own%20profile%20pictures%3F'><h3>Can users upload their own profile pictures?<\/h3><\/dt>\n<dd><p>Yes! Users can upload their own pictures from their profile page. Admins can manage all user pictures from the centralized dashboard.<\/p><\/dd>\n<dt id='will%20this%20affect%20my%20site%27s%20performance%3F'><h3>Will this affect my site's performance?<\/h3><\/dt>\n<dd><p>No! The plugin is lightweight and only loads on relevant admin pages. Images are stored in WordPress media library using WordPress's own optimization.<\/p><\/dd>\n<dt id='can%20i%20bulk%20upload%20profile%20pictures%3F'><h3>Can I bulk upload profile pictures?<\/h3><\/dt>\n<dd><p>Yes! Use the \"Profile Pictures\" admin page to manage multiple users quickly from one interface.<\/p><\/dd>\n<dt id='does%20it%20work%20with%20buddypress%20or%20other%20profile%20plugins%3F'><h3>Does it work with BuddyPress or other profile plugins?<\/h3><\/dt>\n<dd><p>Yes, if they use WordPress's standard <code>get_avatar()<\/code> function. The plugin integrates with WordPress's core avatar system.<\/p><\/dd>\n<dt id='can%20i%20remove%20a%20custom%20profile%20picture%3F'><h3>Can I remove a custom profile picture?<\/h3><\/dt>\n<dd><p>Absolutely! Just click the \"Remove\" button on the admin page or delete it from the user's profile page. The avatar will revert to Gravatar.<\/p><\/dd>\n<dt id='is%20the%20plugin%20translation%20ready%3F'><h3>Is the plugin translation ready?<\/h3><\/dt>\n<dd><p>Yes! All strings are translatable using WordPress's translation system.<\/p><\/dd>\n<dt id='does%20it%20work%20with%20multisite%3F'><h3>Does it work with multisite?<\/h3><\/dt>\n<dd><p>Yes! The plugin is multisite compatible.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2 \u2013 January 8, 2026<\/h4>\n\n<p><strong>Major Update \u2013 New Features &amp; Improvements<\/strong><\/p>\n\n<ul>\n<li><strong>NEW:<\/strong> Centralized admin page for bulk profile picture management<\/li>\n<li><strong>NEW:<\/strong> Beautiful grid view of all users with avatars<\/li>\n<li><strong>NEW:<\/strong> Media library integration on user profiles<\/li>\n<li><strong>NEW:<\/strong> Hover actions \u2013 change\/remove pictures instantly<\/li>\n<li><strong>NEW:<\/strong> User search functionality by name, email, username<\/li>\n<li><strong>NEW:<\/strong> AJAX-powered updates without page refresh<\/li>\n<li><strong>NEW:<\/strong> Pagination support for large user bases<\/li>\n<li><strong>IMPROVED:<\/strong> Smaller, more compact user cards for better overview<\/li>\n<li><strong>IMPROVED:<\/strong> Better responsive design for mobile\/tablet<\/li>\n<li><strong>IMPROVED:<\/strong> Fixed header alignment and search box layout<\/li>\n<li><strong>IMPROVED:<\/strong> Enhanced UX with toast notifications<\/li>\n<li><strong>IMPROVED:<\/strong> Better attachment ID tracking for media library images<\/li>\n<li><strong>ADDED:<\/strong> Real-time image preview updates<\/li>\n<li><strong>ADDED:<\/strong> Success\/error notification system<\/li>\n<li><strong>ADDED:<\/strong> Loading states for better user feedback<\/li>\n<li><strong>OPTIMIZED:<\/strong> CSS for better performance and smaller file size<\/li>\n<li><strong>FIXED:<\/strong> Email display now shows on hover to save space<\/li>\n<li><strong>FIXED:<\/strong> Responsive search form for mobile devices<\/li>\n<\/ul>\n\n<h4>1.0.1 \u2013 July 21, 2025<\/h4>\n\n<ul>\n<li><strong>IMPROVED:<\/strong> Added proper namespacing for better code organization<\/li>\n<li><strong>IMPROVED:<\/strong> Enhanced error handling for image uploads<\/li>\n<li><strong>ENHANCED:<\/strong> Security with additional nonce verification<\/li>\n<li><strong>ADDED:<\/strong> Responsive styling for mobile devices<\/li>\n<li><strong>FIXED:<\/strong> Image preview display issues<\/li>\n<li><strong>IMPROVED:<\/strong> Cropping interface usability<\/li>\n<li><strong>ENHANCED:<\/strong> Proper sanitization for AJAX requests<\/li>\n<li><strong>ADDED:<\/strong> Alt text for better accessibility<\/li>\n<\/ul>\n\n<h4>1.0.0 \u2013 Initial Release<\/h4>\n\n<ul>\n<li><strong>ADDED:<\/strong> Image upload functionality<\/li>\n<li><strong>ADDED:<\/strong> Interactive image cropping with Cropper.js<\/li>\n<li><strong>ADDED:<\/strong> AJAX-based image saving<\/li>\n<li><strong>ADDED:<\/strong> Responsive modal design<\/li>\n<li><strong>ADDED:<\/strong> Security with nonce verification<\/li>\n<li><strong>ADDED:<\/strong> Input sanitization and validation<\/li>\n<li><strong>ADDED:<\/strong> Avatar replacement system<\/li>\n<li><strong>ADDED:<\/strong> User profile integration<\/li>\n<\/ul>","raw_excerpt":"Replace default Gravatars with custom profile pictures! Upload from media library or device. Bulk manage all users from one beautiful admin page.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/226265","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=226265"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ifatwp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=226265"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=226265"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=226265"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=226265"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=226265"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=226265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}