This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

WP Document Revisions

Description

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

  1. A document management system (DMS), to track, store, and organize files of any format
  2. A collaboration tool to empower teams to collaboratively draft, edit, and refine documents
  3. A file hosting solution to publish and securely deliver files to a team, to clients, or to the public

See the full list of features for more information.

Documentation

See the full documentation

Learn

Get Involved

Features

Overview

Powerful?Collaboration ToolsWith 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
  • French and Spanish language support (easily translated to your language)
  • Integration with Edit Flow
  • 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

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.

WP-Documents-Revisions Action Hooks

This plugin makes use of many action hooks to tailor the delivered processing according to a site’s needs.

Most of them are named with a leading ‘document-‘ but there are a few additional non-standard ones.

Action change_document_workflow_state

Called when the post is saved and Workflow_State taxonomy value is changed. (Only post_ID and new value are available)

In: class-wp-document-revisions-admin.php

Action document_change_workflow_state

Called when the post is saved and Workflow_State taxonomy value is changed. (post_ID, new and old value are available)

In: class-wp-document-revisions-admin.php

Action document_edit

Called as part of the Workflow_State taxonomy when putting the metabox on the admin page

In: class-wp-document-revisions-admin.php

Action document_lock_notice

Called when putting the lock notice on the admin edit screen.

In: class-wp-document-revisions-admin.php

Action document_lock_override

Called after trying to over-ride the lock and possibly a notice has been sent.

In: class-wp-document-revisions.php

Action document_saved

Called when a document has been saved and all plugin processing done.

In: class-wp-document-revisions-admin.php

Action document_serve_done

Called just after serving the file to the user.

In: class-wp-document-revisions.php

Action serve_document

Called just before serving the file to the user.

In: class-wp-document-revisions.php

WP-Documents-Revisions Data Design and Data Structure

Requirements

  • To maintain a reference to a document and to hold a list of published versions of the documents.

    • It is not particularly concerned about how the document is created and the process to arrive at the state ready to upload.
    • It will maintain a status of where it is in the publishing process.
  • It makes use of a custom post type “document” and revisions to maintain the history of Document file uploads.

  • The Document file will be uploaded using the standard Media loader.

    • This will result in an Attachment post being created with the Document post as its parent.
    • It will not be visible in the Media library as Queries to the Media library remove attachments with parents that are documents.
    • Document files can be stored in a different host library.
  • The Document file should not be accessible directly by the user, but ideally via the WP interface.

    • This will be supported by changing the uploaded file name to be an MD5-hash of the original file name and load time.
    • This can be supplemented by changing .htaccess rules to stop direct access to files with MD5 format names
    • Standard WP processing may create a JPEG image of PDF uploads.
    • Since it will store these using the MD5 file name that will be downloaded to the user this would expose the MD5 file name. Therefore there is a process to change these images to use another name.
  • The document post record can also support Featured Images.

    • If loaded via the Edit document page, it would be considered as a Document file. So the parent post identifier will be removed to eliminate confusion between it being a Featured Image and a Document file being stored.
  • Since version 3.4 of the plugin, it is possible to enter a user-oriented description that can be displayed to users with the shortcodes or blocks provided with the plugin.

  • An audit trail of changes to published versions of the Document file.

    • The user can enter a reason for changing the Document including uploading a Document file; changing the Document Description; or Title; or any Taxonomy element.
    • This reason will be stored in the Excerpt field.
    • The aggregate information may be displayed as a Revision Log.
  • Use will be made of the standard WP Revisions functionality to contain the Audit Trail itself.

    • Standard WP processing creates a Revision if any one of these fields are changed: title, content or excerpt.
    • Since all Attachments are linked to the parent Document record, by storing the Attachment Id in the content field, then a Revision record will be created automatically.
  • This plugin is delivered with just one Taxonomy – Workflow_State. This shows the status of the Document file in its processing.

    • This is not considered very useful for user data classification.
    • However, being a generic tool, sites can use of a dedicated Taxonomy plugin.

Data Structure

The records held in the database will be:

  1. Document Record
  • post_content contains the id of the latest Document file attachment record.

    • When a Document file is loaded on editing this Document record, the post_content will be modified to contain the ID of the Attachment record created.
    • In plugin versions prior to 3.4, this would simply be the numeric ID.
    • Subsequent versions hold this in the form of an HTML comment “<!– WPDR nnn –>” where nnn is the ID of an attachment post. It can also contain a text Document description.
    • When editing the post, this field is decomposed into its two parts of ID and description with program management of the former and user management of the latter, recombined automatically when changes are made.
  • post_excerpt will contain any comment entered when the document record is updated.

  • As taxonomy records are held only against this Document record, there is no effective audit trail of changes to Taxonomy. Changes can be noted manually in the excerpt field

  1. Attachment Record(s)

There can be multiple Attachment records, one for each Document file loaded.

  • The name and title of the Attachment record is set to a MD5 hash of the original file name and the load time.

  • The Document file name is also set as this MD5 hash.

  • post_parent is set to the Document Record ID.

  • When a PDF Document file is loaded, then standard WP processing will attempt to make a JPEG image of the first page as a thumbnail (using all sizes). These will be held in the same directory as the Document file.

    • However if the file name is MD5Hash.pdf, then these images will be called MD5Hash-pdf.jpg.
    • If used on a page, this would expose the name of the file to the user.
    • To avoid this, there is a process to transform this name to another (essentially random) MD5 and rename these image files.
    • Once done, a postmeta record is created with these new file names (and a field denoting this process has been done).
  • If a Featured Image is loaded whilst editing the Document record, this would also have the same post_parent set, so in this case, the post_parent is set to 0 leaving the functional postmeta link to denote the presence of the featured image.

  1. Revision Record(s)

When saving a Document Record, standard WP processing will be invoked to detect a change in title, content or excerpt fields. If one is found then a Revision record is created.

There can be multiple Revision records held, one for each saving event where a change in these fields are detected.

Because the document content contains the latest Attachment ID, an upload of …

Screenshots

Blocks

This plugin provides 3 blocks.

  • Latest Documents
  • Documents List
  • Document Revisions

Installation

Automatic Install

  1. Login to your WordPress site as an Administrator, or if you haven’t already, complete the famous WordPress Five Minute Install
  2. Navigate to Plugins->Add New from the menu on the left
  3. Search for WP Document Revisions
  4. Click “Install”
  5. Click “Activate Now”

Manual Install

  1. Download the plugin from the link in the top left corner
  2. Unzip the file, and upload the resulting “wp-document-revisions” folder to your “/wp-content/plugins directory” as “/wp-content/plugins/wp-document-revisions”
  3. Log into your WordPress install as an administrator, and navigate to the plugins screen from the left-hand menu
  4. Activate WP Document Revisions

FAQ

I’m a user/developer/administrator… can I contribute?

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.

Does it work on Mac? PC? Mobile?

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.

What are the different levels of visibility?

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

How many people can access a document at a time?

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.

While a file is “checked out” can others view it? What about a previous versions?

Yes.

Is there a time limit for checking out a file?

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.

Does it keep track of each individual’s changes?

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.

How do permissions work?

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.

What types of documents can my team collaborate on?

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

Are the documents I upload secure?

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.

Is there any additional documentation?

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.

What happens if I lose internet connectivity while I have a file checked out?

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.

Do you have any plans to implement a front end?

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.

No really, how do I present documents on the front end?

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).

Can WP Document Revisions work in my language?

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.

Will in work with WordPress MultiSite

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.

Will it work over HTTPS (SSL)

Yes. Just follow the standard WordPress SSL instructions.

Can I tag my documents? What about categories or some other grouping?

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.

Can I put my documents in folders?

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.

What if I want even more control over my workflow?

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.

I want some small changes to the processing, but there are few configuration options. How do I do this?

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.

Can I make it so that users can only access documents assigned to them (or documents that they create)?

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).

How do I use the documents shortcode?

In a post or page, simply type [documents] to display a list of documents.
More information is on this page.

How do I use the document revisions shortcode?

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.

How do I use the recently revised documents widget?

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.

How do I use the `get_documents` function in my theme or plugin?

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).

How do I use the `get_document_revisions` function in my theme or plugin?

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).

Can I set the upload directory on multisite installs if I don’t want to network activate the plugin?

Yes. There’s a plugin in the WP Document Revisions Code Cookbook to help with that. Just install and network activate.

Can I limit access to documents based on workflow state, department, or some other custom taxonomy?

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.

Is it possible to do a bulk import of existing documents / files already on the server?

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.

Reviews

February 6, 2018 1 reply
Ben Balter has put together a solid plugin that does a good job of maintaining documents for your WP install. The plugin works well, and functions as described. The plugin also has filter and action hooks which allow developers to integrate with the plugin without hacking it. It is also translation ready, something that a plugin must have for wide adoption. A five star plugin must be not only usable but flexible. WP Document Revisions meets that qualification. I hope Ben continues his ongoing development. It’s good to see WP coding standards being implemented. Would be good to see more inline documentation for hooks, but that doesn’t affect functionality at all so it’s more of a want than a need. This is a good plugin with some good features. Unfortunately, there are some very old reviews that don’t paint an accurate picture. Anytime you read a review, look at its age and compare that to the plugin (or theme’s) current development. In this case, there has been active development in the time since some of the older reviews were written (and in my opinion, some of those other reviews are simply not justified).
Read all 24 reviews

Contributors & Developers

“WP Document Revisions” is open source software. The following people have contributed to this plugin.

Contributors

“WP Document Revisions” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “WP Document Revisions” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

Numbers in brackets show the issue number in https://github.com/wp-document-revisions/wp-document-revisions/issues/

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

  • SECURITY: Rest media interface may expose document name.
  • NEW: Site can decide to save permalinks without year/month part.
  • NEW: Permalinks may be updated on the documents screen.
  • FIX: guid field for documents was generally incorrect. Will be stored as a valid value.
  • FIX: Upload directory processing reviewed and simplified.
  • FIX: Document permalink month can be incorrect when saved at month end. (#300).
  • FIX: Valid document may not be found.
    ” FIX: Improve notification process when activation user does not have edit_documents capability.

3.4.0

  • SECURITY: WordPress can create images for PDF documents which if used would leak the hidden document name so image name changed.
  • NEW: An action ‘document_saved’ is provided for processing after a document has been saved or updated and all plugin processing complete. (#278)
  • NEW: A filter ‘document_serve_attachment’ is provided to review the attachment id being served. Return false to stop display. (#278)
  • NEW: A filter ‘document_show_in_rest’ is provided to display document data via the REST interface using document permissions. {#258, #259)
  • NEW: A tool is provided to validate the internal structure of all documents that the user can edit. If fixable then a button is displayed to fix it. (#260)
  • NEW: A user-oriented description may be entered for each document. This can be displayed with the Documents List shortcode and Latest Documents widget or their block equivalents. (#263)
  • NEW: These blocks can also display the featured image or generated image for PDF documents. (#264)
  • NEW: Blocks extended to support standard Colour and Fontsize attributes. (#264}
  • NEW: Revisions can be merged if made within a user-defined interval using filter ‘document_revisions_merge_revisions’ (Default 0 = No merging). (#263)
  • FIX: jQuery ready verb usage removed. (#262}
  • FIX: Caching strategy reviewed to ensure updates delivered to users. (#261}
  • FIX: Blocks used incorrect, but previously tolerated, parameter for RadioControls rendering them difficult to use.
  • FIX: Blocks are categorised within the Editor differently with 5.8

3.3.1

  • FIX: Content-Length header suppressed for HTTP/2 File Serve. {#254)
  • FIX: MOD_DEFLATE modifies etag, so no caching occurred in this case.
  • FIX: Gzip process invoked for encodings gzip, x-gzip and deflate.

3.3.0

  • SECURITY: Password-protected document can leak existence (by showing next/previous)
  • SECURITY: Queries on post_status do not do proper permissions check
  • SECURITY: Suppress excerpt output in feeds to stop information leakage
  • SECURITY: WP creates images when saving PDF documents (using the encoded name). These were being left when deleting the document.
  • NEW: Rewrite rules extended to access documents without year/month and/or file extension. (#253) @NeilWJames
  • NEW: Use standard WP process for Taxonomy workflow_state on Document Admin List. Note that it will change the column order seen as taxonomiees are on the end.
  • NEW: Implement Gutenberg Blocks for Shortcodes and Widget.
  • NEW: Integrate with either Edit-flow or PublishPress plugins
  • NEW: Taxonomy workflow_state is set as show_in_rest.
  • NEW: Add action ‘document_serve_done’ which can be use to delete decrypted files (needed for encrypted at rest files)
  • NEW: Add filter ‘document_buffer_size’ to define file writing buffer size (Default 0 = No buffering).
  • NEW: Add filter ‘document_output_sent_is_ok’ to serve file even if output already written.
  • NEW: Add filter ‘document_read_uses_read’ to use read_document capability (and not read) to read documents
  • NEW: Add filter ‘document_serve_use_gzip’ to determine if gzip should be used to serve file (subject to browser negotiation).
  • NEW: Add filter ‘document_serve’ to filter the file to be served (needed for encrypted at rest files)
  • NEW: New Crowdin updates (#244, #245)
  • FIX: Access to revisions when permalink structure not defined.
  • FIX: Design conflict with Elementor (#230) @NeilWJames
  • FIX: Document directory incorrect test for Absolute/Relative entry on Windows implementations
  • FIX: Document Taxonomies using default term counts will use same method as WORKFLOW_STATE, i.e. count all not-trashed documents
  • FIX: Ensure the action point to detect change in workflow_state worked (for CookBook functionality).
  • FIX: Fix error in time difference display when client and server are in different time zones
  • FIX: Fix WP 5.7 Breaking change (#38843) for Term Counts. (#250) @NeilWJames
  • FIX: Remove existing workaround for WP bug 16215 and long time fixed – and made information incorrect
  • FIX: Remove restore option on the current document and latest revision as it makes no sense.
  • FIX: Review document serving process to try to identify where other plugins could output text and corrupt file download
  • FIX: Review documentation. (#208) @NeilWJames
  • FIX: Review of Rewrite rules with/without trailing slash; also extend file extension length
  • FIX: Testing of blocks showed that if document taxonomies are changed, then existing blocks may not work. Some changes are now handled. (#217) @NeilWJames
  • FIX: Fixing compatibility issue with double slash in Documents URL when using WPML (#218) @BobbyKarabinakis
  • DEV: Update code to WP Coding Standards 2.2.1 (and fix new sniff errors)
  • DEV: Update coveralls to 2.2, dealerdirect/codesniffer to 0.6, phpunit/phpunit to 8.5 and wp/cli to 2.4.1
  • DEV: Rewrite Test library to increase code coverage.
  • DEV: Use GitHub Actions for CI (#251)
  • DEV: Fixed wp_die() tests ending tests prematurely (#252)

3.2.4

  • Address technical debt for WP Document Standards (#192) @NeilWJames
  • On plugin activation, check that the user has edit_documents capability. If not, a warning message will be output that the menu may be incorrect. (#180) @NeilWJames
  • PHPCS review (#179) @NeilWJames
  • Bump phpunit/phpunit from 8.2.5 to 8.3.4 (#177) @dependabot-preview
  • Addresses phpunit and toolset versions and prepare for future release (#174) @NeilWJames
  • Version 3.2.2 gives an “property of non-object” at line 1403 on load (#161) @NeilWJames

3.2.3

  • Full phpcs 2.2 standardisation, complete filter documentation (#192) @NeilWJames
  • On plugin activation, admin warning if user doesn’t have edit_documents capability (#180) @NeilWJames
  • PHPCS Review (no functional changes) (#179) @NeilWJames
  • Review for WP Coding standard 2.1.1 and newer phpunit (#174) @NeilWJames
  • Bump version to V3.2.3 and Tested WP 5.2.2 (#174) @NeilWJames

3.2.2

  • Version 3.2.2 gives an “property of non-object” at line 1403 on load (#161) @NeilWJames
  • Add default capabilities only when they are absent. (#146) @NeilWJames
  • Fix multi-network (needs WP 4.6) (#143) @geminorum
  • Allow Sites to use WP_POST_REVISIONS for other post types (#140)
  • Media Library URL’s change after plugin update (#139) @NeilWJames
  • New crowdin translations (#137/#138) @benbalter

3.2.1

  • Fix for $wp_query->query_vars being null (#136) @benbalter
  • Media Library URL’s change after plugin update (#139) @NeilWJames
  • New Crowdin translations (#137) @benbalter
  • New Crowdin translations (#138) @benbalter

3.2.0

  • Enable filter by workflow_state on Admin screen (#121) @NeilWJames
  • missing translate on metabox titles (#122) @geminorum
  • Addresses #124 (is_feed has doing_it_wrong error) (#125) @NeilWJames
  • New Crowdin translations (#120) @benbalter
  • Allow HTTP headers to be filtered in serve_file() (#123) @jeremyfelt
  • Small fixes in Admin function (#126) @NeilWJames
  • Support Featured Images (#131) @NeilWJames
  • Error if directory option not present (#132) @NeilWJames
  • Create Edit link on document shortcode (#133) @NeilWJames
  • Bump version to V3.2 and Tested WP 4.9.8 (#134) @NeilWJames

3.1.2

Fix for 404 error when serving documents from non-standard upload directory.

3.1.1

Updated documentation.

3.1.0

  • NEW: Added dashboard widget (#109, props @NeilWJames)
  • NEW: Added Finish translation (Props @xcoded)
  • NEW: Added Spanish translation (Props @alejnavarro)
  • NEW: Added Indonesian translation (Props @barzah and @fajarsdq)
  • NEW: Provide a way to filter or skip mime type detection (#106, props @jeremyfelt)
  • FIX: Do not escape end list widget HTML in function widget (#99, props @NeilWJames)
  • FIX: Only cache revisions output if revisions exist (#101, props @jeremyfelt)
  • FIX: Update WPCS and adjust code to meet new standards (#104, props @jeremyfelt)
  • FIX: Fix possible data pollution in archive views (#103, props @jeremyfelt)
  • FIX: Account for the_title filter used with only one arg (#105, props @jeremyfelt)
  • FIX: Don’t verify posts that don’t exist (#107, props @jeremyfelt)
  • FIX: Fixed issue with translation files not properly loading (#108, props @NeilWJames)
  • FIX: Better multisite support (#113, props @JonasBrand)
  • DEV: You can now contribute to the project’s translation’s via Crowdin: https://crowdin.com/project/wordpress-document-revisions
  • DEV: Added Contributor Code of Conduct
  • DEV: Updated contributing documentation

3.0.1

  • Fix for calling the wrong escaping function in the widget code.

3.0.0

2.2.0

2.0.0

1.3.6

  • Fix for workflow state not properly saving under certain circumstances
  • Added Italian translation, props @guterboit
  • Added Russian translation, props Evgeny Vlasov
  • Updated all translations
  • Workflow state saving improvements, props @cojennin (#48)
  • Fix restore revision link bug, props @cojennin (#55)
  • Welcome @cojennin to the core team. Want to join?

1.3.5

  • Added Dutch translation, props @tijscruysen.
  • To prevent potential errors, verify workflow_state is set before checking for change, props @rachelbaker.
  • Added document_custom_feed and document_verify_feed_key filters to customize feed behavior, props @nodakjones.
  • Prevent errors when newly added documents do not have attached files, props @rachelbaker.
  • Better compatibility with WordPress 3.5 media uploader
  • Significant Javascript improvements to prevent conflicts with other plugins

1.3.4

  • Testing framework no longer distributed with the plugin.
  • Added Swedish translation, special thanks to Daniel Kroon, Examinare AB, Sweden.
  • Added Czech translation set, special thanks to Hynek ??avík.

1.3.3

  • Fix for fatal error (undefined function) when Edit Flow custom post status were enabled, props Leho Kraav, fixes #24
  • Fix for testing framework not being properly included in plugin repository due to bad deploy script
  • Added German translation (de_DE), special thanks to Konstantin Obenland
  • Added Chinese translation (zh_CN), special thanks to Tim Ren
  • Updated Spanish, French, and Norwegian translations

1.3.2

1.3.1

  • Better permalink support for draft and pending documents
  • Whenever possible browser will attempt to display documents in browser, rather than prompting with save as dialog (e.g., PDFs)
  • Fix for function get_file_type() breaking the global $post variable when no document argument is supplied
  • Improved Spanish translation with additional strings (special thanks, elarequi)

1.3

  • Plugin now includes unit tests to ensure security and stability, and undergoes extensive testing (WordPress 3.2/3.3/Trunk, Multisite/single, PHP 5.3/5.4) via continuous integration service Travis CI prior to release.
  • Translations now curated on collaborative editing platform GlotPress if any user would like to submit a translation (no technical knowledge necessary)
  • If you would like to help out by testing early releases, please try the continuously updated development version. Any feedback, technical or prose is helpful.
  • Added Spanish Translation Support (es_ES?—?special thanks to TradiArt)
  • Document URL slug (used for archive and prefixing all documents) now customizable via settings page and translatable. (e.g., https://domain.com/documentos/2012/04/test.txt rather than /documents/)
  • Subscribers and unauthenticated users no longer have the ability to read revisions by default (you can override this setting using the Members plugin.
  • Attempts to access unauthorized files now properly respond with HTTP code 403 (rather than 500 previously). Note: attempting to access private documents will continue to result in 404s.
  • Enhanced authentication prior to serving files now provides developers more granular control of permissions via serve_document_auth filter.
  • Better Edit Flow support (can now toggle document support on and off using native Edit Flow user interface). Note: You may need to manually toggle on custom status support for documents after upgrading.
  • Default document upload directory now honors WordPress-wide defaults and features enhanced multisite support
  • Ability to separate documents on server by site subfolder on multisite installs

1.2.4

  • Better support for custom document upload directories on multisite installs
  • Gallery, URL, and Media Library links now hidden from media upload popup when uploading revisions
  • Fix for plugin breaking media gallery when filtered by mimetype (MySQL ambiguity error)
  • Fix for upload new version button appearing for locked out users in WordPress 3.3
  • Fix for upload new version button not appearing after document lock override on WordPress 3.3

1.2.3

  • Owner metabox no longer displays if user does not have the ability to edit_others_documents
  • Fix for serving documents via SSL to Internet Explorer version 8 and earlier
  • GPL License now distributed with plugin
  • Code cleanup, minor bug fixes, and additional inline documentation

1.2.2

  • Plugin posted to Github if developers would like to fork and contribute
  • Documents shortcode now accepts additional parameters. See the FAQ for a full list.
  • Performance and scalability improvements to backend; files attached to documents are now excluded from media lists by join statements rather than subqueries
  • If plugin is unable to locate requested file on server, standard theme’s 404 template is served (rather than serving “404?—?file not found” via wp_die() previously) and E_USER_NOTICE level error is thrown. Diagnostic information will be available via debug bar (if WP_DEBUG is enabled) or in the standard PHP error log
  • /documents/ now supports pagination
  • Support for linking to revisions with ugly permalinks
  • Custom post type’s has_archive property changed to true to help with theme compatibility
  • Fix for fatal error when user without read_document_revisions capability called wp_get_attachment_url() on file attached to a revision
  • Fix for broken permalink returned when get_permalink is called multiple times on the same document revision
  • Fix for wp_get_attachment_image_src returning broken URLs or the direct path to the document
  • Fix for “Call-time pass-by-reference has been deprecated” error when running certain versions of PHP
  • General code cleanup

1.2.1

  • French translation (Special thanks to Hubert CAMPAN)
  • Enhanced support for running on WAMP systems (XAMPP, etc.)
  • Improved integration with WordPress 3.3’s new upload handler
  • Significant performance improvements to verify_post_type() method
  • Document requests no longer canonically 301 redirect with a trailing slash
  • Fix for wp_get_attachment_url returning the attachment URL, rather than the document permalink when called directly
  • Menu item now reads “All Documents” (rather than simply “Documents”) for clarity
  • Fix for E_WARNING level error on edit-tags.php with custom taxonomies
  • Taxonomy counts (e.g., workflow states) now reflects non-published documents
  • Better translation support (see the FAQ if you are interested in translating the plugin into your language)
  • Compatibility fix for WordPress SEO’s “Clean Permalinks” mode

1.2

  • Added shortcode to display list of documents meeting specified criteria
  • Added shortcode to display a document’s revisions (formerly in code cookbook)
  • Added widget to display recently revised documents (formerly in code cookbook)
  • Created new global get_documents() and get_document_revisions() functions to help build and customize themes and plugins
  • Added filter to wp_get_attachment_url to force document/revision urls when attachments are queried directly
  • Better organization of plugin files within plugin folder
  • Fixed bug where revision summary would not display under certain circumstances

1.1

  • Added support for the Edit Flow Plugin if installed
  • Added “Currently Editing” column to documents list to display document’s lock holder, if any
  • Added support for new help tabs in WordPress versions 3.3 and greater
  • Fixed bug where media library would trigger an SQL error when no documents had been uploaded
  • Fixed bug where owner dropdown on edit screen would only list “author” level users
  • “- Latest Revision” only appended to titles on feeds

1.0.5

  • Fixed bug where password-protected documents would not prompt for password under certain circumstances

1.0.4

  • Significant performance improvements (now relies on wp_cache)
  • Feed improvements (performance improvements, more consistent handling of authors and timestamps)
  • Workflow States in documents list are now link to a list of all documents in that workflow state
  • Changed “Author” column heading to “Owner” in documents list to prevent confusion
  • If a revision’s attachment ID is unknown, the plugin now defaults to the latest attached file, rather than serving a 404

1.0.3

  • A list of all documents a user (or visitor) has permission to view is now available at yourdomain.com/documents/
  • Changed functions get_latest_version and get_latest_version_url to “revision” instead of “version” for consistency
  • Forces get_latest_revision to rely on get_revisions to fix inconsistencies in WP revision author bug
  • Support for ugly permalink structures
  • Changing metabox options does not enable the publish button on non-document pages
  • Changing the title or other text fields enables the update button
  • Fix for authors not having capability to edit documents by default
  • No longer displays attachment ID when posts are queried via the frontend

1.0.2

  • Fixed bug where RSS feeds would erroneously deny access to authorized users in multisite installs

1.0.1

  • Better handling of uploads in WordPress versions 3.3 and above
  • Added shadow to document menu icon (thanks to Ryan Imel of WPCandy.com)
  • Fixed E_WARNING level error for undefined index on workflow_state_nonce when saving posts with WP_DEBUG on
  • Corrected typos in contextual help dropdown
  • Fixed permission issue where published documents were not accessible to non-logged in users
  • Fixed last-modified author not displaying the proper author on document-edit screen

1.0

  • Stable Release

0.6

0.5

  • Initial beta

0.1

  • Proof of concept prototype
VIP777 login Philippines Ok2bet PRIZEPH online casino Mnl168 legit PHMAYA casino Login Register Jilimacao review Jl777 slot login 90jili 38 1xBet promo code Jili22 NEW com register Agila Club casino Ubet95 WINJILI ph login WINJILI login register Super jili168 login Panalo meaning VIP JILI login registration AGG777 login app 777 10 jili casino Jili168 register Philippines APALDO Casino link Weekph 50JILI APP Jilievo xyz PH365 casino app 18JL login password Galaxy88casino com login superph.com casino 49jili login register 58jili JOYJILI apk Jili365 asia ORION88 LOGIN We1win withdrawal FF777 casino login Register Jiligo88 philippines 7777pub login register Mwgooddomain login SLOTSGO login Philippines Jili188 App Login Jili slot 777 Jili88ph net Login JILIMACAO link Download Gcash jili login GG777 download Plot777 app download VIPPH register Peso63 jili 365.vip login Ttjl casino link download Super Jili 4 FC178 casino - 777 slot games JILIMACAO Philippines S888 register voslot LOVE jili777 DOWNLOAD FK777 Jili188 app CG777 app 188 jili register 5JILI login App Download Pkjili login Phdream Svip slot Abcjili6 App Fk777 vip download Jili888 register 49jili VIPPH register Phmacao co super Taya777 link Pogo88 real money Top777 app VIP777 slot login PHMACAO 777 login APALDO Casino link Phjili login Yaman88 promo code ME777 slot One sabong 888 login password PHMAYA casino Login Register tg777 customer service 24/7 Pogibet slot Taya777 org login register 1xBet live Acegame888 OKBet registration JILIASIA Promotion Nice88 voucher code AgilaClub Gaming Mnl168 link Ubet95 free 50 PHMAYA casino login JLBET 08 Pb777 download 59superph Nice88 bet sign up bonus Jiliyes SG777 download apk bet88.ph login JILIPARK casino login Register Philippines PHMAYA APK CC6 casino login register mobile PHMACAO com download MWPLAY app JILIPARK Download Jili999 register link download Mnl646 login Labet8888 download 30jili jilievo.com login Jollibee777 open now LOVEJILI 11 18JL casino login register Philippines JILIKO register Philippines login Jililuck 22 WJPESO casino PHMAYA casino login Jili777 login register Philippines Ttjl casino link download W888 login Register Galaxy88casino com login OKBet legit tg777 customer service 24/7 Register ROYAL888 Plot777 login Philippines BigWin Casino real money PHLOVE 18JL PH 18JL casino login register Philippines SG777 Pro Taya777 pilipinong sariling casino Jiligames app MNL168 free bonus YesJili Casino Login 100 Jili casino no deposit bonus FC178 casino free 100 Mwcbet Download Jili888 login Gcash jili download JILIMACAO 123 Royal888 vip 107 Nice888 casino login Register FB777 link VIPPH app download PHJOIN 25 Ubet95 legit phcash.vip log in Rrrbet Jilino1 games member deposit category S888 live login FF777 download FC777 VIP APK ME777 slot Peso 63 online casino OKGames app Joyjili customer service superph.com casino FB777 Pro Rbet456 PH cash online casino Okbet Legit login taruhan77 11 VIPPH 777Taya win app Gogo jili 777 Plot777 login register Bet99 app download Jili8989 NN777 VIP JP7 fuel Wjevo777 download Jilibet donnalyn login Register Bossjili ph download 58jili login registration YE7 login register FC777 new link login 63win register Crown89 JILI no 1 app Jili365 asia JLBET Casino 77PH fun Jili777 download APK Jili8 com log in CC6 casino login register mobile ph365.com promotion phjoin.com login register 77PH VIP Login download Phdream live chat Jlslot2 Me777 download Xojili legit PLDT 777 casino login Super Jili Ace Phdream 44 login Win888 casino JP7 Bp17 casino login TTJL Casino register FB777 slot casino Jili games online real money phjoin.com login register BET99 careers ORION88 LOGIN Plot777 login Philippines Labet8888 login JILI Official Pogibet app download PH777 casino register LOVEJILI app Phvip casino VIP jili casino login PHMACAO app 777pnl legit YE7 casino online Okbet download CC6 bet app 63win club Osm Jili GCash LOVEJILI 11 Www jililive com log in Jili58 casino SuperAce88 JiliLuck Login Acegame 999 777pnl promo code MWPLAY good domain login Philippines Pogo88 app Bet casino login Superph98 18jl app download BET999 App EZJILI gg 50JILI VIP login registration Jilino1 new site pogibet.com casino Jili Games try out Gogojili legit 1xBet Aviator WINJILI ph login Jili168 register How to play Jili in GCash 777pnl PHDream register login JILISM slot casino apk FB777 c0m login EZJILI Telegram MWCASH88 APP download Jili88 vip03 APaldo download 1xBet 58JL Casino 58jl login register Jili scatter gcash OKJL slot jili22.net register login 10phginto APaldo 888 app download 1xBet live FC178 Voucher Code 58jl Jili888 ph Login 365 Jili casino login no deposit bonus JP7 VIP login PHBET Login registration 58jili login registration VVJL online Casino Club app download Jili77 login register Jili88 ph com download KKJILI casino WJ peso app Slot VIP777 BigWin69 app Download Nice88 bet Suhagame philippines Jiliapp Login register Qqjili5 Gogo jili helens ABJILI Casino OKJL download 1xBet login mobile Pogibet 888 777 game Okgames casino login Acegame888 Bet86 promotion Winph99 com m home login JP7 VIP login 20phginto VIPPH register KKJILI casino OKJILI casino Plot777 app download NN777 register bossphl Li789 login Jiligo88 app Mwcbet Download Betjilivip Https www BETSO88 ph 30jili Https www BETSO88 ph Jilievo Club Jili888 register Jili777 download APK JILI77 app download New member register free 100 in GCash 2024 Royal888casino net vip JOLIBET withdrawal MW play casino Jili365 login FB777 Pro Gold JILI Bet99 registration 55BMW red envelope Bet199 login philippines JILI188 casino login register download Phjoin legit or not Bigwin 777 Bigwin pro Apaldo PH pinasgame JILIPARK Login registration JiliApp ph04 Ph143 Jili168 login app Philippines MW Play online casino APK 77tbet register 8k8t Bigwin casino YE7 Download App Ph365 download apk Acejili Ph888 login S888 juan login 63win withdrawal Okbet cc labet 8888.com login password Mwbet188 com login register Philippines MNL168 net login registration kkjili.com download Jili888 Login registration Abc Jili com Download JILIPARK casino login Register Download AbcJili customer service live777. casino Jilievo casino jilievo APP live casino slots jilievo vip Jolibet legit PH888 login Register 888php register 55BMW win Mwbet188 com login register Philippines AbcJili customer service Jili88 ph com app 200Jili App MAXJILI casino ROYAL888 deposit mi777 Jili games free 100 ACEGAME Login Register Jilibet donnalyn login Voslot register Jilino1 live casino 18jl login app apk JILI Vip777 login Phtaya login Super Ace casino login Bigwin 777 Ubet95 free 190 superph.com casino Jili22 NEW com register SG777 win Wjpeso Logo 1xBet login mobile Jili88 casino login register Philippines sign up Okbet cc Agg777 slot login Phv888 login P88jili download jiliapp.com- 777 club Fish game online real money One sabong 888 login password QQJili Taya365 slot mnl168.net login Taya365 download Yes Jili Casino PHMACAO APK free download 365 casino login Bigwin 29 JILISM slot casino apk Wow88 jili777.com ph 888php login 49jili VIP Jilino1 legit SG777 slot Fish game online real money Voslot free 100 18jl login app apk OKJL app Jili22 NEW com register Nice88 free 120 register no deposit bonus Sugal777 app download 288jili PHJOIN VIP com Register Jl77 Casino login KKjili com login Lovejili philippines Pogo88 casino SLOTSGO VIP login password Jili22 net register login password Winph 8 we1win 100 Jili slot 777pnl promo code Sg77701 Bet88 download for Android PH365 casino Royal Club login Jili88 casino login register MWPLAY login register Jilibay Promotion 7SJILI com Register FC777 casino link download Royal meaning in relationship OKBET88 AbcJili customer service 777ph VIP BOSS JILI login Register 200Jili App KKJILI casino login register maxjili Mwcbet legit JILIASIA 50 login Milyon88 com casino login 8k8app17 Royal slot Login Phmacao rest 338 SLOTSGO Ph888 login PHGINTO com login YY777 app Phdream register Jili22 net register login password Lucky Win888 Jiligames API Agila club VIP 77PH VIP Login download Acegame888 register PHMAYA Download Jili88 online casino 7XM Lovejili philippines 63win register Jilimax VOSLOT 777 login 18JL Casino Login Register JILIASIA 50 login 50JILI VIP login registration 7XM com PH Nice888 casino login Register 58jl Jili168 casino login register download Timeph philippines 90jilievo Jili88 casino login register OKBet legit JILI slot game download Bet99 promo code 58jili app 55BMW com PH login password KKjili casino login bet999 How to play Jili in GCash BigWin69 app Download OKJL Milyon88 com casino login phdream 888php register Ph888 PH777 registration bonus JLBET Asia LOVEJILI download Royal Casino login 646 ph login Labet8888 review JLBET Casino Jili888 ph Login Wjpeso Wins JILIMACAO 666 Jiliplay login register JILIAPP com login Download JiliLuck download WIN888 PH JL777 app Voslot777 legit Pkjili login 20jili casino Jolibet login registration Phjoin legit or not Milyon88 com casino register JILI apps download 88jili login register Jili 365 Login register download 11phginto Jili777 vip login Ta777 casino online Swertegames Taya365 download 777PNL online Casino login Mi777 join panalo 123 JILI slot 18jili link Panalo lyrics Jiliplay login philippines yaman88 Bet88 login Jili888 Login registration FF777 TV Ok2bet app Pogibet casino philippines Www jilino1 club WOW JILI secret code AB JILI Jili168 online casino BET99 careers Go88 slot login JILI Vip777 login CG777 Casino link OKBet GCash www.50 jili.com login WINJILI download Lucky bet99 Acegame888 77ph com Login password ACEGAME Login Register ACEGAME casino Swerte88 login password Wj slots casino APALDO Casino Phjoin slot JLBET com JLBET ph Taya777 org login 49jili slot Svip slot Jili77 download APK 200jiliclub Bet199 philippines Jili888 Login registration 88jili withdrawal phjoin.com login register Swerte88 login registration Voslot777 legit Superph11 AAA JILI app download Www jililive com log in VIP777 Casino login download Jili77 download APK Jilibet donnalyn login Register JILICC sign up Pogibet app download www.mwplay888.com download apk Jili68 Jililuck App Download APK Yy777 apk mod Jili77 vipph.com login labet8888.com app Phdream live chat Ph646 login register mobile 7777pub download Jolibet Fortune Tree 90JILI app 18JL login Philippines JLSLOT login password 50JILI fun m.nn777 login 88jili withdrawal PH Cash Casino APK 888PHP Casino LINK Boss jili app download Jili999 login register FB777 download APK Free 100 promotion JILIPARK Download VIP PH casino JILIHOT ALLIN88 login 8K8 com login PHMAYA casino login 58jili withdrawal Ubet95 free 100 no deposit bonus KKJILI online casino M GG777 100jili APP JILI888 slot download PHBET88 Jili Games demo 1xBet OKJL Casino Login Nice888 casino login Register Betso88 App download APK VIP777 app Gcash jili register 1xBet registration 58jili withdrawal Jili63 Suhagame23 218 SLOTSGO AGG777 login Philippines Bay888 login JILIVIP 83444 PHCASH com casino login Jilievo 666 Jili 365 VIP register PHMAYA link PH cash VIP login register Yaman88 casino JP7 VIP We1Win download free rbet.win apk Jili168 casino login register download Milyon88 com casino register 18JL login app 88jili withdrawal AAA Casino jilibet.com register Winjili55 UG777 login app PH777 download Jili365 bet login app Osm Jili GCash 77tbet philippines GI Casino login philippines 88jili login FC178 casino free 100 SG777 Com Login registration Nice88 free 100 Oxjili Royal777 Top777 login FB777 live 200jili login Gogojili legit Yes Jili com login phcash.vip casino Sugal777 app download 58JL app Login Panalo login JILI games APK Lucky99 Slot login Jili scatter gcash 7XM APP download FB JILI casino login download PHMACAO app ROYAL888 Link Alternatif ACEPH Casino - Link 55bmw.com casino Timeph app Osm Jili GCash M GG777 Ubet95 login Jiligo88 CG777 Casino Philippines Tayabet login Boss jili app download YY777 app download Nice88 free 120 register no deposit bonus Bossjili7 XOJILI login 68 PHCASH login ezjili.com download apk Jili 365 VIP APK Milyon88 pro Jili88 casino login register download Jili online casino AgilaPlay Jili scatter gcash 7777pub login CC6 app bonus JK4 online PHJOIN casino Joyjili login register 22phmaya 5JILI Casino login register Betso88 VIP Winph 8 Phmacao rest JILI Slot game download free s888.live legit APALDO Casino link Plot 777 casino login register Philippines Ph646wincom Jili168 login app Philippines KKJILI casino Apaldo PH Phdream live chat Slot VIP777 PH888BET 22 phginto 50JILI APP MWPLAY login register Slotph We1Win apk VIP777 slot login Nice88 PRIZEPH online casino Jilipark App 7XM app for Android Jili58 Jili168 free 100 APALDO 888 CASINO login APaldo download Jiliasia8 com slot game phcash.vip casino OKJL Casino Login YY777 live Jili888 register Winjiliph QQ jili casino login registration Abcjili5 NN777 register Phvip casino Taya 365 casino login OKBet app Osm Jili GCash Nice88 free 100 5JILI Casino login register Bet88 app download 5 55bmw vip Jlph11 JILI slot casino login Nice88 bet sign up bonus JILI Slot game download for Android Abc Jili com Download FF777 TV Peso 63 online casino MILYON88 register free 100 7777pub JILIASIA 50 login CC6 online casino latest version Royal Club apk 1xBet login registration CG777 Casino Philippines 1xBet app Mwcbet net login Password LOVEJILI 21 FBJILI Now use Joyjili Promo code JILI188 casino login register download PHMACAO SuperPH login AGG777 login app Peso 63 online casino filiplay Sugal777 app download Galaxy88casino com login EZJILI Telegram JiliApp ph04 Jilino1 com you can now claim your free 88 PHP download 63win Coupon Code PHDream 8 login register Philippines MNL168 website CC6 online casino register login 3jl app download apk Jlph7 TA777 com Login Register password 5jili11 FF777 casino login Register KKJILI casino login register 10 JILI slot game 3JL login app Jili100 APP Winjili55 Milyon88 info Jilino1 VIP login YE7 bet sign up bonus Apaldo games Wj casino app AbcJili win.ph log in Jili22 VIP 204 SG777 Jl77 Casino login YY777 app download Jilimacao Okjl space Wjevo777 download Ubet95 free 100 no deposit bonus PHMAYA APK Xojili legit 77PH bet login Taya365 pilipinong sariling casino LOVEJILI AAAJILI Casino link Jollibee777 How to play mwplay888 18jl app download jilievo.com login password VIP PH casino mnl168.net login JiliLuck download Win2max casino 777PNL download app Ubet Casino Philippines Win888 Login Jili88 casino login register Philippines sign up Bet99 APK 18JL casino Login register Download Naga888 login JLPH login PHMACAO APK free download How to register Milyon88 Royal888ph com login JiliCC entertainment WINJILI customer service PHBET88 Jili888 Login Philippines SG777 slot FBJILI Jili365 bet login app Ubet95 free 100 no deposit bonus Taya 365 casino login LOVEJILI Jili777 free 150 YE7 casino login register download QQJili 58jili login Download S888 sabong Gi77 casino Login taya777 customer service philippines number 24/7 WINJILI customer service Https www wjevo com promocenter promotioncode Nice99 casino login Phdream 44 login Mi777app 777PNL online Casino login phjl.com casino JILILUCK promo code Pogibet 888 login BigWin Casino legit Jolibet app download Jilli pogibet.com casino JP7 VIP login Ug7772 Phjoy JILIMACAO 123 PH143 online casino jili365.bet download PH cash VIP login register Abc Jili Register Mwgooddomain login 58JL Casino link 365 Jili casino login no deposit bonus JILIEVO Casino 777 60win OKGames casino 49jili VIP kkjili.com app JILIPARK casino login Register Philippines Agila Club casino OKGames GCash OKBet casino online S888 juan login Yaman88 log in Winph99 com m home login Jili88 casino login register Winjiliph CG777 Casino LOGIN Register Ubet Casino Philippines Agilaclub review Is 49jili legit ph646 JLBET link JiliCC entertainment Jilicity withdrawal Ta777 casino online Jili777 login register Philippines JP7 coupon code Milyon88 one Ug7772 Jilibet casino 77PH VIP Login download Jili live login 68 PHCASH 7XM APP download Boss jili login MWCASH88 APP download Jilicity login Acegame888 real money LIKE777 JILILUCK app JiliBay Telegram Bet199 login philippines Ph646wincom PHJOIN login OKGames register JILIASIA withdrawal Panalo login 88jili Login Philippines Wjevo777 download phjl.com casino Fcc777 login Labet8888 login JILI8998 casino login PHJL Login password Jilibay Voucher Code 28k8 Casino P88jili download 49jili apps download Fk777city we1win CG777 Casino login no deposit bonus MW play casino FF777 casino login Register Philippines download JILIAPP com login Download Bet199 PHGINTO com login Bet88 bonus Sw888 withdrawal Vvjl666 Jiliapp 777 Login QQ jili login Jilicity download Jili188 login Philippines Timeph philippines Casino Club app download Nice88 bet login registration Bay888 login PH Cash casino download Jiliko777 Nice88 PH 777pnl Jiliplay login register JILI VIP casino cg777 mwcbets.com login Fbjili2 JILIAPP download 7xm login 77jl.com login JILI Slot game download for Android MWPLAY app superph.com casino Nice88 free 120 WJ peso app Jili58 register 3jl app download apk Betso88 link OKGames login free JILIASIA 888 login 58jl login register Jilibet888 68 PHCASH login Jili88ph net register 55BMW Casino app download APK Abc Jili com Download FB777 register login Philippines Jilievo org m home JiliLuck download jlbet.com login register Jp7 casino login 18JL Casino Login Register YE7 casino APK prizeph Boss jili login Royal logo FC178 casino - 777 slot games Taya777 pilipinong sariling casino Ph888 MWPLAY app @Plot777_casino CG777 login BOSS JILI login Register JILI PH646 login Vvjlstore Mi777 casino login Download Okgames redeem code 50JILI VIP login registration Bet88 login AGG777 login Philippines JILIMACAO Yesjili com legit P88jili com login OKBET88 Gold JILI VIP PH casino VIP PH log in bet88.ph legit kkjili.com app JiliLuck Login JILI Vip777 login 63win withdrawal bet999.ph login m.nn777 login 58JL 8k8app17