Title: Meta Ledger &#8211; Track, compare, and restore post meta Changes
Author: SmilingSyntax
Published: <strong>January 29, 2026</strong>
Last modified: January 29, 2026

---

Search plugins

![](https://ps.w.org/meta-ledger/assets/banner-772x250.png?rev=3449467)

![](https://ps.w.org/meta-ledger/assets/icon-256x256.png?rev=3449467)

# Meta Ledger – Track, compare, and restore post meta Changes

 By [SmilingSyntax](https://profiles.wordpress.org/smilingsyntax/)

[Download](https://downloads.wordpress.org/plugin/meta-ledger.1.0.1.zip)

 * [Details](https://wordpress.org/plugins/meta-ledger/#description)
 * [Reviews](https://wordpress.org/plugins/meta-ledger/#reviews)
 *  [Installation](https://wordpress.org/plugins/meta-ledger/#installation)
 * [Development](https://wordpress.org/plugins/meta-ledger/#developers)

 [Support](https://wordpress.org/support/plugin/meta-ledger/)

## Description

Meta Ledger automatically tracks all post meta changes for posts, custom post types,
and WooCommerce products. It stores a versioned history, allows field-level diffs,
and provides a restore option. Designed for developers, high-performance, and WordPress
standards.

Perfect for tracking product prices, custom fields, metadata changes, and any post
meta modifications with complete audit trails.

#### Key Features

 * **Automatic Tracking**: Hooks into WordPress meta functions to automatically 
   track all meta changes
 * **Version History**: Complete history of all meta changes with timestamps, user
   information, and action types
 * **Field-Level Diffs**: View side-by-side comparisons of old and new values
 * **Restore Functionality**: Restore any meta field to a previous version with 
   one click
 * **Source Tracking**: See which file and line triggered each meta change, including
   changes from Meta Ledger UI
 * **Inline Editing**: Edit meta values directly from the admin interface
 * **REST API**: Developer-friendly REST API endpoints for programmatic access
 * **WP-CLI Support**: Command-line tools for viewing and restoring meta versions
 * **Performance Optimized**: Configurable retention policies, batching, and efficient
   database storage
 * **WooCommerce Compatible**: Works seamlessly with WooCommerce products

## Screenshots

 * [[
 * History tab displaying complete version history with source tracking
 * [[
 * Source popover showing file location, line number, and stack trace
 * [[
 * Restore confirmation dialog
 * [[
 * Settings page for configuring post types, retention, and ignored keys

## Installation

 1. Upload the `meta-ledger` folder to `/wp-content/plugins/`
 2. Activate the plugin through the ‘Plugins’ menu in WordPress
 3. The database table will be created automatically on activation
 4. Navigate to any post, page, or product to see the Meta Ledger meta box

## FAQ

### Which post types are tracked?

By default, Meta Ledger tracks posts, pages, and WooCommerce products. You can add
more post types in Settings  Meta Ledger or using the `meta_ledger_tracked_post_types`
filter.

### How do I ignore certain meta keys?

Navigate to Settings  Meta Ledger and add meta keys to ignore (one per line). Supports
wildcards (e.g., `_edit_*`). You can also use the `meta_ledger_ignored_meta_keys`
filter.

### Will this slow down my site?

Meta Ledger is designed for performance. It uses indexed database queries, batches
changes at shutdown, and skips high-frequency meta keys like `_edit_lock` by default.
The performance impact is minimal.

### How do I restore a previous value?

Click on the “History” tab in the Meta Ledger meta box on any post, then click the
restore button next to any version. The restore action is also tracked in history.

### Can I track changes made from code?

Yes! Meta Ledger tracks all changes made through WordPress meta functions (`update_post_meta`,`
add_post_meta`, `delete_post_meta`), regardless of whether they come from code, 
plugins, themes, or the Meta Ledger UI.

### How do I see where a change came from?

Each history entry includes a source button. Click it to see the file path, line
number, function name, and full stack trace for code changes. Changes made from 
Meta Ledger UI are marked as “Meta Ledger UI”.

### Can I use this with WooCommerce?

Yes! Meta Ledger works seamlessly with WooCommerce products and tracks all product
meta changes, including prices, stock, and custom fields.

### How many versions are kept?

By default, 50 versions per meta key are kept. You can adjust this in Settings  
Meta Ledger under “History Entries per Meta Key”.

### Is there a REST API?

Yes! The plugin provides REST API endpoints at `/wp-json/meta-ledger/v1/` for accessing
history and restoring versions programmatically.

### Are there WP-CLI commands?

Yes! Use `wp meta-ledger show`, `wp meta-ledger restore`, and `wp meta-ledger cleanup`
commands for command-line operations.

## Reviews

![](https://secure.gravatar.com/avatar/3ce630a3b0bc12bcf9324f89cfe1b8caac80e19390e50fe2a5f8df14beafb1b3?
s=60&d=retro&r=g)

### 󠀁[Finally a proper way to debug meta field issues.](https://wordpress.org/support/topic/finally-a-proper-way-to-debug-meta-field-issues/)󠁿

 [queryra](https://profiles.wordpress.org/queryra/) February 3, 2026 1 reply

I’ve been developing WooCommerce sites for years and debugging meta field problems
was always painful – either var_dump everywhere or digging through the database 
manually. What I really like: Source tracking shows exactly which file/line changed
the meta (huge for finding rogue plugins) Side-by-side diff view makes it easy to
spot what changed One-click restore saved me twice already when a bulk edit went
wrong WP-CLI support is a nice touch for staging/production workflows Clean code,
follows WP standards, lightweight. This should be in every developer’s toolkit.

 [ Read all 1 review ](https://wordpress.org/support/plugin/meta-ledger/reviews/)

## Contributors & Developers

“Meta Ledger – Track, compare, and restore post meta Changes” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ SmilingSyntax ](https://profiles.wordpress.org/smilingsyntax/)

[Translate “Meta Ledger – Track, compare, and restore post meta Changes” into your language.](https://translate.wordpress.org/projects/wp-plugins/meta-ledger)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/meta-ledger/), check
out the [SVN repository](https://plugins.svn.wordpress.org/meta-ledger/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/meta-ledger/) by
[RSS](https://plugins.trac.wordpress.org/log/meta-ledger/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.1

 * Settings link on plugins page (links to Meta Ledger settings)
 * Fix restore failing when value unchanged or already deleted (`meta_ledger_restore_failed`)
 * View full value: click long old/new values in history to open a popover
 * Side-by-side diff view: old vs new values in a diff-checker style popover
 * Improved value popover with colored columns (old = red tint, new = green tint)

#### 1.0.0

 * Initial release
 * Automatic meta tracking for posts, pages, and custom post types
 * Version history UI with tabbed interface (Meta Values & History tabs)
 * Inline meta editing with add, edit, and delete functionality
 * Restore functionality with one-click restore to any previous version
 * Source file and line tracking with detailed popover view
 * Source tracking for changes made from Meta Ledger UI
 * Refresh button on History tab to reload latest changes
 * Search and filter functionality for meta keys
 * Collapsible history groups organized by meta key
 * REST API endpoints for programmatic access (`/wp-json/meta-ledger/v1/`)
 * WP-CLI commands: `show`, `restore`, `cleanup`
 * Settings page with post type selection, retention count, and ignored keys
 * Performance optimizations with batching and efficient JSON storage
 * WooCommerce product support
 * Responsive design for all screen sizes
 * WordPress coding standards compliance

## Meta

 *  Version **1.0.1**
 *  Last updated **2 months ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [history](https://wordpress.org/plugins/tags/history/)[post meta](https://wordpress.org/plugins/tags/post-meta/)
   [postmeta](https://wordpress.org/plugins/tags/postmeta/)[restore](https://wordpress.org/plugins/tags/restore/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/meta-ledger/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/meta-ledger/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/meta-ledger/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/meta-ledger/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/meta-ledger/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/meta-ledger/reviews/?filter=1)

[Add my review](https://wordpress.org/support/plugin/meta-ledger/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/meta-ledger/reviews/)

## Contributors

 *   [ SmilingSyntax ](https://profiles.wordpress.org/smilingsyntax/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/meta-ledger/)