WP ULike
Get Pro

Database & Meta Reference

Pulse ledger, legacy vote tables, counter meta, post meta keys, and the votes_info REST field.

WP ULike stores votes in custom database tables and syncs counters to meta. From 5.2+, new installs (and migrated sites) use the Pulse ledger. Pro adds view tracking, sessions, and standard WordPress meta keys.

Table prefix: {wpdb->prefix} (typically wp_).

Overview for site owners: Pulse Storage Engine.


Pulse ledger (5.2+)

TablePurpose
{prefix}ulike_pulse
Unified engagement ledger (likes, dislikes, emoji, stars)

Important columns

ColumnMeaning
item_id / item_type
Target (post, comment, activity, topic, …)
engagement_kind
e.g. vote, emoji, star
engagement_key
e.g. like, dislike, reaction key, star bucket
value
Optional numeric value (star rating)
status
active or removed
date_time
Event timestamp
user_id / ip / fingerprint
Actor identity
country_code / device / os / browser
Audience fields (when available)
dedupe_token
Unique token to prevent duplicate rows

Modes: legacydualpulse. See helpers wp_ulike_pulse_mode(), wp_ulike_pulse_read_mode(), wp_ulike_use_pulse_queries().


Legacy vote log tables

Still present on older sites until Storage Upgrade cleanup. Fresh Pulse-only installs may never create them for new votes.

TableContent typeKey column
{prefix}ulike
Posts
post_id
{prefix}ulike_comments
Comments
comment_id
{prefix}ulike_activities
BuddyPress activities
activity_id
{prefix}ulike_forums
bbPress topics
topic_id
{prefix}ulike_meta
Counter cache
item_id + meta_group

Legacy log row fields

  • user_id — WordPress user ID (0 for guests)
  • item_id — post, comment, activity, or topic ID
  • statuslike, unlike, dislike, undislike
  • ip — visitor IP (may be anonymized or empty)
  • date_time — vote timestamp
  • fingerprint — guest vote fingerprint (when used)

Pro may add GeoIP columns on insert: country_code, device, os, browser.


Pro-only tables

TablePurpose
{prefix}ulike_views
Page view tracking for engagement rate
{prefix}ulike_sessions
Pro form and OAuth session data

Counter meta (wp_ulike_meta API)

WP ULike maintains fast counter values in {prefix}ulike_meta. Use the meta API functions rather than querying directly:

wp_ulike_get_meta_data($item_id, 'post', 'like_amount', true);
wp_ulike_update_meta_data($item_id, 'post', 'like_amount', 42, 'like');

Meta groups: post, comment, activity, topic, user, statistics.

Only active like / dislike counters are cached in meta. Period filters and removed statuses (unlike / undislike) recount from the ledger (Pulse or legacy logs). Passing period "all" is treated as all-time (meta-safe), not as a date filter.

User meta group stores serialized vote history keyed by user_{type}_status.


Standard WordPress meta [pro]

When Enable Standard Meta Data is on under Posts or Comments settings, counters sync to native meta:

Meta keyDescription
like_amount
Total likes
dislike_amount
Total dislikes
net_votes
Likes minus dislikes
likes_counter_quantity
Legacy counter key (migration)
dislikes_counter_quantity
Legacy counter key (migration)
$likes = get_post_meta($post_id, 'like_amount', true);

Schema Generator post meta [pro]

Per-post structured data lives in post meta — not included in settings backup:

  • wp_ulike_pro_meta_box — main schema config flag
  • wp_ulike_pro_{key} — type-specific schema fields (~50 keys)
  • FAQ repeater data, star rating overrides, review counts

Use Tools → Schema Generator or the post editor panel to manage these.


Editor panel meta [pro]

Per-post display overrides (when Show Display Panel In Post Editor is enabled):

Stored in post/comment meta via serialized format when Enable Serialized Data Storage is on. Run Convert to Serialized Format under Maintenance after enabling on upgraded sites.


REST field: votes_info [pro]

When Standard Meta Data is enabled, WordPress core REST responses for posts and comments include:

"votes_info": {
  "like_amount": 42,
  "dislike_amount": 3,
  "likers_ids": [1, 5, 12]
}

Available on GET /wp-json/wp/v2/posts/{id} and GET /wp-json/wp/v2/comments/{id} when meta is enabled for that type.


Options stored outside backup scope

OptionPurpose
wp_ulike_settings
Settings panel (included in backup)
wp_ulike_customize
Customizer (included in backup)
wp_ulike_pulse_config
Pulse mode / migration state (not a settings backup field)
wp_ulike_pro_display_rules
Display Automation (included via extensions)
wp_ulike_rest_api_settings
REST config (included via extensions)
wp_ulike_rest_api_keys
Bearer tokens (not in backup)
wp_ulike_pro_license_key
License (not in backup)
wp_ulike_use_inline_custom_css
CSS delivery mode

Maintenance & GDPR impact

Tool actionAffects
Delete all logs
Legacy vote tables / ledger paths in use — run Sync Counters after
Sync counter values
Rebuilds meta from logs / Pulse
Delete view records
{prefix}ulike_views
GDPR Remove Logs / core export-erase
User vote rows across legacy tables and Pulse

See Maintenance Tools and GDPR tool.

Related: Pulse WP-CLI · Backup and Restore · Developer Functions

Continue with these guides