WP Document Revisions
A document management and version control plugin for WordPress that allows teams of any size to collaboratively edit files and manage their workflow.
Plugin info
Maintenance & Compatibility
Maintenance score
Maintained • Last updated 136 days ago • Support resolved 100% • 22 reviews
Is WP Document Revisions abandoned?
Likely maintained (last update 136 days ago).
Compatibility
Languages
Similar & Alternatives
Explore plugins with similar tags, and compare key metrics like downloads, ratings, updates, support, and WP/PHP compatibility.
Description
A document management and version control plugin for WordPress that allows teams of any size to collaboratively edit files and manage their workflow.
What is WP Document Revisions?
WP Document Revisions is a document management and version control plugin. Built for time-sensitive and mission-critical projects, teams can collaboratively edit files of any format — text documents, spreadsheets, images, sheet music… anything — all the while, seamlessly tracking the document’s progress as it moves through your organization’s existing workflow.
WP Document Revisions is three things
- 📁 Document Management System (DMS) – Track, store, and organize files of any format
- 👥 Collaboration Tool – Empower teams to collaboratively draft, edit, and refine documents
- 🔒 File Hosting Solution – Publish and securely deliver files to teams, clients, or the public
See the full list of features for more information.
📚 Documentation
Complete Documentation Site – Your one-stop resource for everything about WP Document Revisions.
🎯 Quick Start Guides
- Installation – Get up and running in minutes
- Features and Overview – Discover what WP Document Revisions can do
- Screenshots – See the plugin in action
📖 User Documentation
- Frequently Asked Questions – Common questions answered
- Plugin Actions – Available WordPress actions
- Plugin Filters – Available WordPress filters
- Plugin Shortcodes and Widget – Display documents on your site
- Useful Plugins and Tools – Extend functionality
- Translations – Multi-language support
- Links – Additional resources
🆘 Support & Community
- Where to get Support or Report an Issue – Get help when you need it
- How to Contribute – Join our community
- Join the Mailing List – Stay updated
Features
Overview
Powerful Collaboration Tools – With great power does not have to come great complexity. Based on a simple philosophy of putting powerful but intuitive tools in the hands of managers and content creators, WP Document Revisions leverages many of the essential WordPress features that, for more than eight years, have been tested and proven across countless industries — posts, attachments, revisions, taxonomies, authentication, and permalinks — to make collaborating on the creation and publication of documents a natural endeavor. Think of it as an open-source and more intuitive version of the popular Microsoft collaboration suite, Sharepoint.
Document History – At each step of the authoring process, WP Document Revisions gives you an instant snapshot of your team’s progress and the document’s history. It even gives you the option to revert back to a previous revision — so don’t fret if you make a mistake — or receive updates on changes to the document right in your favorite feed reader.
Access Control – Each document is given a persistent URL (e.g., yourcompany.com/documents/2011/08/TPS-Report.doc) which can be private (securely delivered only to members of your organization), password protected (available only to those you select such as clients or contractors), or public (published and hosted for the world to see). If you catch a typo and upload a new version, that URL will continue to point to the latest version, regardless of how many changes you make.
Enterprise Security – Worried about storing propriety or sensitive information? WP Document Revisions was built from the first line of code with government- and enterprise-grade security in mind. Each file is masked behind an anonymous 128-bit MD5 hash as soon as it touches the server, and requests for files are transparently routed through WordPress’s time-tested URL rewriting, authentication, and permission systems (which can even integrate with existing enterprise active directory or LDAP servers). Need more security? WP Document Revisions allows you to store documents in a folder above the htdocs or public_html web root, further ensuring that only those you authorize have access to your work.
Customization – WP Document Revisions recognizes that no two teams are identical, and as a result, molds to your firm’s needs, not the other way around. Need to track additional information associated with a document? Departments, editors, issues, sections, even arbitrary key-value pairs — whatever you can throw at it, it can handle. Development and customization costs are further minimized by its extensive plugin API, and the WordPress Custom Taxonomy Generator makes it easy for even the uninitiated to add custom taxonomies to documents. Need an audit trail to track check-ins and check-outs? User-level permissions based on the document’s state or another custom taxonomy? Support for third-party encryption? Check out the WP Document Revisions Code Cookbook for sample code. Looking for even more advanced control of your workflow? WP Document Revisions will detect the popular workflow plugin Edit Flow, if installed, and will automatically pull Edit Flow’s advanced workflow management tools into WP Document Revisions. Simply put, virtually every aspect of the plugin’s functionality from workflow states to user-level permissions can be fully customized to your team’s unique needs.
Future Proof – Switching costs a concern? WP Document Revisions is built with tomorrow’s uncertainty in mind. Equally at home in an in-house server room as it is in the cloud, moving individual files or entire document repositories in and out of WP Document Revisions is a breeze (history and all). And since the software is open-source, you can easily add tools to automate the process of moving to or integrating with future third-party systems.
Features
- Support for any file type (docs, spreadsheets, images, PDFs — anything!)
- Securely stores unlimited revisions of your business’s essential files
- Provides a full file history in the form of a revision log, accessible via RSS
- Helps you track and organize documents as they move through your organization’s existing workflow
- Each file gets a permanent, authenticated URL that always points to the latest version
- Each revision gets its own unique url (e.g.,TPS-Report-revision-3.doc) accessible only to those you deem
- Files are intuitively checked out and locked to prevent revisions from colliding
- Toggle documents between public, private, and password protected with a single mouse click
- Runs in-house or in the cloud
- Secure: filenames are hashed on upload and files are only accessible through WordPress’s proven authentication system
- Can move document upload folder to location outside of web root to further ensure government- and enterprise-grade security
- Documents and Revisions shortcodes, Recently Revised Documents widget
- Multisite and Windows (XAMPP) support
- Multiple language support including French, Spanish and German (easily translated to your language)
- Integration with Edit Flow, PublishPress or PublishPress Statuses.
- Recently Revised Documents Widget, shortcodes, and templating functions for front-end integration
Features Available via the [Code Cookbook](https://github.com/wp-document-revisions/wp-document-revisions-Code-Cookbook)
- Audit Trail – creates check in / check out audit trail for all documents
- Taxonomy-based Permissions – allows setting user-level permissions based on a custom taxonomy such as department
- Third Party Encryption – example of how to integrate at rest encryption using third-party tools
- Rename Documents – changes all references to “Documents” in the interface to any label of your choosing
- State Change Notification – how to use document api to allow users to receive notification whenever documents change workflow state
- Bulk Import – how to batch import a directory (or other list) of files as documents
- Filetype Taxonomy – Adds support to filter by filetype
- Track Changes – Auto-generates and appends revision summaries for changes to taxonomies, title, and visibility
- Change Tracker – Auto-generates and appends revision summaries for changes to taxonomies, title, and visibility
- WPML Support – Integration with WPML
Security Policy
To report a security vulnerability, please email [email protected].
Where to get help or report an issue
- For getting started and general documentation, please browse, and feel free to contribute to the project documentation.
- For support questions (“How do I”, “I can’t seem to”, etc.) please search and if not already answered, open a thread in the Support Forums.
- For technical issues (e.g., to submit a bug or feature request) please search and if not already filed, open an issue on GitHub.
- For implementation, and all general questions (“Is it possible to..”, “Has anyone…”), please search, and if not already answered, post a topic to the general discussion list serve
Things to check before reporting an issue
- Are you using the latest version of WordPress?
- Are you using the latest version of the plugin?
- Does the problem occur even when you deactivate all plugins and use the default theme?
- Have you tried deactivating and reactivating the plugin?
- Has your issue already been reported?
What to include in an issue
- What steps can another user take to recreate the issue?
- What is the expected outcome of that action?
- What is the actual outcome of that action?
- Are there any screenshots or screencasts that may be helpful to include?
- Only include one bug per issue. If you have discovered two bugs, please file two issues.
Links
- Source Code (GitHub)
- Latest Release – Download the newest version
- WordPress.org Plugin Page – Official plugin listing
- Development Version (CI Status)
- Code Cookbook – Code examples and customizations
- Translations (Crowdin)
- Where to get Support or Report an Issue – Get help when you need it
- How to Contribute – Join our community
Translations
Interested in translating WP Document Revisions? You can do so via Crowdin, or by submitting a pull request.
- French – Hubert CAMPAN
- Spanish – IBIDEM GROUP, TradiArt, and elarequi
- Norwegian – Daniel Haugen
- German –Konstantin Obenland
- Chinese – Tim Ren
- Swedish – Daniel Kroon, Examinare AB, Sweden.
- Czech – Hynek Šťavík
- Italian – @guterboit
- Russian – Evgeny Vlasov
- Dutch – @tijscruysen
Useful plugins and tools
Permissions management
-
Members – Membership & User Role Editor Plugin
(Previously called Members)
Taxonomy management
Email notification and distribution
Document workflow management
Installation
🚀 Automatic Install (Recommended)
- Log into WordPress Admin – Login to your WordPress site as an Administrator, or if you haven’t already, complete the WordPress installation
- Go to Plugins – Navigate to Plugins > Add New from the left menu
- Search – Search for “WP Document Revisions”
- Install – Click “Install Now” next to WP Document Revisions
- Activate – Click “Activate” to enable the plugin
📦 Manual Install
- Download – Get the latest version from WordPress.org or GitHub Releases
- Upload – Unzip the file and upload the “wp-document-revisions” folder to your
/wp-content/plugins/directory - Activate – Log into WordPress admin, go to Plugins, and activate “WP Document Revisions”
💻 Developer Install
For development or contributing:
`bash
git clone https://github.com/wp-document-revisions/wp-document-revisions.git
cd wp-document-revisions
composer install –no-dev
`
⚙️ Requirements
- WordPress: 4.9 or higher
- PHP: 7.4 or higher
- File Permissions: WordPress must be able to write to the uploads directory
🎯 Next Steps
After installation, you’ll find a new Documents menu in your WordPress admin. Start by:
- Creating your first document – Go to Documents > Add New
- Setting up workflow states (optional) – Go to Documents > Workflow States
- Configuring permissions – Review Settings > Document Revisions
Need help? Check our FAQ or get support.
Frequently Asked Questions
Of course. Please! WP Document Revisions is an open source project and is supported by the efforts of an entire community. We’d love for you to get involved. Whatever your level of skill or however much time you can give, your contribution is greatly appreciated. Check out the “How to Contribute” page for more information.
WP Document Revisions should work on just about any system with a browser. You can easily collaborate between, Mac, PC, and even Linux systems. Mobile browsers, such as iOS or Android should be able to download files, but may not be able to upload new versions in all cases.
Each document can have one of three “visibilities”:
- Private – visible only to logged in users (this can be further refined either based on users or based on the document’s status)
- Password Protected – Non-logged in users can view files, but they will require a document-specific password
- Public – Anyone with the document’s URL can download and view the file
A virtually unlimited number of people can view a document at the same time, but only one user can edit a document at a time.
Yes.
No. So long as the user remains on the document page (it’s okay if the window is minimized, etc.), the user will retain the file lock. By default, administrators can override this lock at any time. The origin lock-holder will receive a notification.
Yes and no. It will track who uploaded each version of the file, and will provide an opportunity to describe those changes. For more granular history, the plugin is designed to work with a format’s unique history features, such as tracked changes in Microsoft Word.
There are default permissions (based off the default post permissions), but they can be overridden either with third-party plugins such as the Members plugin, or for developers, via the document_caps filter.
In short, any. By default, WordPress accepts most common file types, but this can easily by modified to accept just about any file type. In WordPress multisite, the allowed file types are set on the Network Admin page. In non-multisite installs, you can simply install a 3d party plugin to do the same. The only other limitation may be maximum file size, which can be modified in your php.ini file or directly in wp-config.php
WP Document Revisions was built from the ground up with security in mind. Each request for a file is run through WordPress’s time-tested and proven authentication system (the same system that prevents private or un-published posts from being viewed) and documents filenames are hashed upon upload, thus preventing them from being accessed directly. For additional security, you can move the document upload folder above the web root, (via settings->media->document upload folder). Because WP Document Revisions relies on a custom capability, user permissions can be further refined to prevent certain user roles from accessing certain documents.
In the top right corner of the edit document screen (where you upload the document or make other changes) and on the document list (where you can search or sort documents), there is a small menu labeled “help”. Both should provide some contextual guidance. Additional information may be available on the WP Document Revisions page.
WP Document Revisions will “ping” the server every minute to let it know that you have the file open. If for some reason you lose connectivity, the server will give you roughly a two minute grace period before it lifts the file lock. If it’s brief (e.g., WiFi disconnected), you should be fine, but if it’s for an extended period of time (e.g., a flight), you may find that someone else has checked the file out. You do not need to re-download the file (if no one else has modified it), simply remain on the document page to maintain the file lock.
In short, “no”, because each site’s use would be radically different. Although, you can always link directly to the permalink of any public document, which will always point the latest revision and is available on the document edit screen (right click on the “download” link), or through the add-link wizard when editing a post or page (simply search for the document you want). The long answer, is “it’s really easy to adapt a front end to your needs.” There are more than 35 document-specific API hooks, and the plugin exposes two global functions, get_documents() and get_document_revisions(), all of which are designed to allow plugin and theme developers to extend the plugins native functionality (details below). Looking for a slightly more out-of-the-box solution? One site I know of uses a combination of two plugins count shortcode, which can make a front end to browse documents, especially in coordination with a faceted search widget.
A chronological list of all documents a user has access to can be seen at yourdomain.com/documents/. Moreover, because documents are really posts, many built in WordPress features should work and public documents should act similar to posts on the front end (searching, archives, etc.). The plugin comes with a customizable recently revised documents widget, as well as two shortcodes to display documents and document revisions (details below).
Yes! So far WP Document Revisions has been translated to French and Spanish, and is designed to by fully internationalized. If you enjoy the plugin and are interested in contributing a translation (it’s super easy), please take a look at the Translating WordPress page and the plugin’s translations repository. If you do translate the plugin, please be sure to contact the plugin author so that it can be included in future releases for other to use.
Yes! Each site can have its own document repository (with the ability to give users different permissions on each repository), or you can create one shared document repository across all sites.
Yes. Just follow the standard WordPress SSL instructions.
Yes. You can use the Simple Taxonomy Refreshed plugin to add taxonomies, or can share your existing taxonomies (e.g., the ones you use for posts) with documents.
WP Document Revisions doesn’t use the traditional folder metaphor to organize files. Instead, the same document can be described multiple ways, or in folder terms, be in multiple folders at once. This gives you more control over your documents and how they are organized. You can add a folder taxonomy with the Simple Taxonomy Refreshed plugin. Just add the taxonomy with a post type of “Documents”, and as the “Hierarchical” set to True.
Since a document can have many categories assigned at the same time, this is logically equivalent to being in many folders simultaneously.
Take a look at the Edit Flow Plugin which allows you to set up notifications based on roles, in-line comments, assign all sorts of metadata to posts, create a team calendar, budget, etc. WP Document Revisions will detect if Edit Flow is installed and activated, and will adapt accordingly (removing the workflow-state dialogs, registering documents with Edit Flow, etc.). If you’re looking for even more control over your team’s work flow, using the two plugins in conjunction is the way to go.
Equally the PublishPress Plugin, a fork of Edit Flow, is detected and can be used with WP Document Revisions in exactly the same manner as Edit Flow.
Yes, there are few Settings. However there are many filters that allows processing to be configured to your requirement. These are described here. This will need some coding to be done.
Yes. Each document has an “owner” which can be changed from a dialog on the edit-document screen at the time you create it, or later in the process (by default, the document owner is the person that creates it). If the document is marked as private, only users with the read_private_documents capability can access it. Out of the box, this is set to Authors and below, but you can customize things via the Members plugin (head over to roles after installing).
In a post or page, simply type [documents] to display a list of documents.
More information is on this page.
In a post or page, simply type [document_revisions id="100"] where ID is the ID of the document for which you would like to list revisions.
More information is on this page.
Go to your theme’s widgets page (if your theme supports widgets), and drag the widget to a sidebar of you choice. Once in a sidebar, you will be presented with options to customize the widget’s functionality.
Simply call get_documents(). Get documents accepts an array of Standard WP_Query parameters as an argument. Use it as you would get_posts. It returns an array of document objects. The post_content of each document object is the attachment ID of the revision. get_permalink() with that document’s ID will also get the proper document permalink (e.g., to link to the document).
Simply call get_document_revisions( 100 ) where 100 represents the ID of the document you’d like to query. The function returns an array of revisions objects. Each revisions’s post_content represents the ID of that revisions attachment object. get_permalink() should work with that revision’s ID to get the revision permalink (e.g., to link to the revision directly).
Yes. There’s a plugin in the WP Document Revisions Code Cookbook to help with that. Just install and network activate.
Yes. Download (and optionally customize) the taxonomy permissions plugin from the Code Cookbook. Out of the box, it will register a “departments” taxonomy (which can be easily changed at the top of the file, if you want to limit access by a different taxonomy), and will create additional permissions based on that taxonomy’s terms using WordPress’s built-in capabilities system. So for example, instead simply looking at edit_document to determine permissions, it will also look at edit_document_in_marketing, for example. You can create additional roles and assign capabilities using a plugin like Members.
Yes. It will need to be slightly customized to meet your needs, but take a look at the Bulk Import Script in the code cookbook.
Review feed
A useful and flexible tool
Changelog
Numbers in brackets show the issue number in https://github.com/wp-document-revisions/wp-document-revisions/issues/
3.7.0
- NEW: Protect document revision deletion by Database cleaners that use WordPress API to delete them. (#364)
- NEW: Filter ‘document_allow_revision_deletion’ to allow revision deletion by trusted plugins,e.g. PublishPress Revisions. (#364)
- NEW: PublishPress support withdrawn as replaced by PublishPress Statuses.
- NEW: Filter ‘document_validate’ to bypass structure validation for a specific document.
- NEW: Filter ‘document_thumbnail’ used to override the thumbnail image size on document lists.
- NEW: Image size post_thumbnail no longer created when theme does not create it; instead equivalent used on rendering. (#356)
- FIX: Document revision limits not working in non-admin contexts (e.g. with PublishPress Revisions plugin). (#366)
- FIX: Additional edge cases for revision deletion protection by plugin-managed operations. (#368)
- FIX: Document slug sanitization to prevent invalid characters like whitespace in URLs. (#369)
- FIX: Translations need to be called on ‘init’, not ‘plugins_loaded’.
- FIX: Uploading twice between document saves creates orphan attachment on deletion (#353)
- FIX: TypeError: window.WPDocumentRevisions is undefined (#348)
- FIX: Ensure File descriptor of Document Upload includes subdir component. (#342)
- DEV: Improved test coverage and compatibility testing for PHP 7.4-8.3 and WordPress 4.9+.
- DEV: Updated REST API tests for compatibility with latest WordPress versions. (#347)
3.6.0
- NEW: Integrate with PublishPress Statuses plugin for custom statuses. (#335)
- NEW: Accessibility rules states that links to PDF documents should have visible references. Blocks have an explicit switch. (#322)
- NEW: User pulldowns will show only relevant users. (#321)
- NEW: Filter ‘document_post_thumbnail’ used to define the post-thumbnail image size (if not set by theme). (#339)
- NEW: Filter ‘document_use_wp_filesystem’ used to serve document (instead of PHP readfile). Irrelevant if the file is compressed on output. (#320)
- NEW: Filter ‘document_internal_filename’ for updating internal file name additionally passed the original name. (#319)
- NEW: Filter ‘document_validate_md5’ to switch off attachment MD5 format validation. (#318)
- NEW: Optionally stop direct web access to document files to force access only via WordPress. (#317)
- NEW: If a role already has “read_documents” capability, do not touch capabilities on plugin reactivation. (#315)
- NEW: Filter ‘document_home_url’ to allow changes to be made to it (used with WPML). (#329)
- FIX: Ensure File descriptor of Document Upload includes subdir component. (#342)
- FIX: Use with plugin EditFlow gives PHP 8.0 error. (#331)
- FIX: Typo in description of default upload location. (#328)
- FIX: Filter ‘document_revisions_owner’ withdrawn as parameter acted on (who) deprecated in WP 5.9. (#316)
- FIX: Updates to document description do not enable the Submit button
- DEV: JS scripts will be called with Defer in WP 6.3 onwards. (#314)
- DEV: Review for WP Coding standard 3.0 (#313)
3.5.0
For complete changelog, see GitHub
