{CODICTS} Snippets is now available

MyListing Listing Changes Manager

The {CODICTS} MyListing Listing Changes Manager plugin adds a field-level change approval workflow to the listing editing process. When listing owners edit their published listings on the frontend, the plugin intercepts the submission, compares old vs. new values for admin-selected fields, prevents direct changes, and stores the differences for admin review. Admins can then approve or decline each change request from a dedicated dashboard.

Installation & Activation

Start by downloading the plugin from the Downloads page on your dashboard on the CoDicts website.

After downloading, install and activate the plugin in WordPress by navigating to “Plugins” > “Add New” > “Upload Plugin” and selecting the downloaded zip file. Click “Install Now” and then “Activate”.

Once activated, navigate to “Changes” → “Settings” in the WordPress admin sidebar to configure which listing types and fields require approval.

⚠️ Critical: In your MyListing theme settings, the “Allow editing of published listings” option must be set to “Users can edit without admin approval”. This plugin implements its own approval layer. If MyListing’s built-in approval is also active, submissions will be double-intercepted, causing conflicts.


Key Features

FeatureDescription
Field-Level ApprovalChoose exactly which fields on each listing type require admin approval before changes take effect.
Per-Listing-Type ConfigEach MyListing listing type can have its own set of tracked fields and approval settings.
Admin Review DashboardA dedicated page with a color-coded diff view (old → new values) and approve/decline/delete actions.
Bulk ActionsApprove, decline, or delete multiple change requests at once.
Email NotificationsListing authors are notified by email when their changes are approved or declined.
Frontend IndicatorsColored badges on form fields tell users which fields require approval and which have pending changes.
Field LockingOptionally lock fields that already have pending changes, preventing further edits until reviewed.
Automatic Cache RefreshOn approval, MyListing’s preview card cache is refreshed for the listing and all related listings.
Admin Email SuppressionOptionally suppress the WordPress admin notification email for edits that don’t affect tracked fields.

How It Works

The plugin creates a controlled workflow between listing owners and site administrators:

1. Admin configures approval rules — In the plugin settings, you enable approval for specific listing types and select which fields require approval.

2. Listing owner edits their listing — On the frontend edit form, colored badges indicate which fields require approval. Fields with pending changes can optionally be locked.

3. Plugin intercepts the submission — When the form is submitted, the plugin compares old vs. new values for each tracked field. If differences are found, the plugin reverts the tracked fields to their original values (preventing direct changes) and stores the differences for admin review. Untracked fields save normally.

4. Admin reviews changes — On the Changes review page, admins see a color-coded diff (red for current value, green for new value) for each changed field. They can approve, decline, or delete each request.

5. Changes are applied or rejected — Approved changes are applied to the listing and the author receives an approval email. Declined changes are not applied and the author receives a decline email.

Merging behavior: If a user submits new changes while they already have a pending request for the same listing, the new changes are merged with the existing request. The newest values overwrite previously pending values for the same fields. Only one pending record per listing exists at any time.


Admin Settings

Navigate to “Changes” → “Settings” in the WordPress admin sidebar.

Global Settings

SettingDescriptionDefault
Custom submit success notificationThe message shown to users after submitting changes that require approval.“Your changes will be saved once an admin approves it.”
Enable indicator for fields that require approvalShows a red badge on fields that need approval. You can customize the badge text.Disabled / “Admin review required”
Enable indicator for fields not required for approvalShows a gray badge on fields that don’t need approval. You can customize the badge text.Disabled / “No admin review required”
Enable indicator for fields waiting for approvalShows an orange badge on fields with pending changes. You can customize the badge text.Disabled / “Changes currently under review”
Disable admin email notificationSuppresses the default MyListing admin email (“listing updated”) when a user edits a listing but none of the tracked fields were changed.Disabled

Per-Listing-Type Settings

For each listing type registered in MyListing, the settings page shows:

SettingDescription
Enabled?Toggle to enable or disable change approval for this listing type.
Allow editing of pending changesWhen enabled, users can still edit fields that have pending approval. When disabled, those fields are locked (read-only with a visual overlay) on the frontend until reviewed.
Field checkboxesA list of all fields in the listing type. Check each field that should require admin approval before changes take effect.

The following field types cannot be tracked (they are not data fields): form-heading and form-wizard. All other MyListing field types are supported, including text, textarea, select, term-select, file, related-listing, checkboxes, links, number, date, location, and more.


Setting Up Approval for a Listing Type

1. Navigate to “Changes” → “Settings”.

2. Find the listing type you want to configure and check “Enabled?”.

3. Decide whether to allow editing of pending changes. If you disable this, fields with pending changes will be locked on the frontend until the admin reviews them.

4. Check the boxes next to each field that should require admin approval. For example, you might track “Job Title”, “Description”, “Location”, and “Categories” but leave “Phone Number” or “Website” untracked so those save immediately.

5. Optionally configure the global settings — enable field indicators so users know which fields need approval, and customize the notification messages.

6. Click “Save Changes”.


Reviewing Changes

Navigate to “Changes” in the WordPress admin sidebar. The menu item shows a pending count badge (red circle) indicating how many changes are awaiting review.

The Changes Table

The review page displays all change requests in a table with the following columns:

ColumnDescription
ListingThe listing name, linked to the listing page.
ChangesA color-coded diff view showing each changed field with the current value (red background) and the proposed new value (green background). Click “Expand” to see all changes.
DateWhen the changes were submitted.
StatusColor-coded badge: orange for Pending, green for Approved, red for Declined.

The diff view handles different field types intelligently — term-select fields show term names instead of IDs, related-listing fields show listing titles, and file fields show linked filenames.

Actions

Single actions (hover over a row):

ActionAvailable ForWhat It Does
ApprovePending and DeclinedApplies the new values to the listing, refreshes caches, and sends an approval email to the author.
DeclinePending onlyRejects the changes (listing stays unchanged) and sends a decline email to the author.
DeleteAll statusesPermanently removes the change record.

Bulk actions: Select multiple rows using the checkboxes and choose Approve, Decline, or Delete from the bulk actions dropdown.

Filtering & Sorting

Use the status filter dropdown to show All / Pending / Approved / Declined requests. Use the search box to search by listing name. Click column headers to sort by listing name, date, or status.


Frontend User Experience

When a listing owner edits their published listing on the frontend, the plugin enhances the edit form with visual indicators and optional field locking.

Field Indicators

When enabled in settings, colored badges appear on each form field:

BadgeColorMeaning
“Admin review required”RedThis field requires approval — changes won’t take effect until an admin approves them.
“Changes currently under review”OrangeThis field already has a pending change awaiting admin review.
“No admin review required”GrayThis field saves immediately — no approval needed.

All badge text is customizable from the admin settings page.

Field Locking

When “Allow editing of pending changes” is disabled for a listing type, fields that already have pending changes are locked on the frontend — they appear dimmed, all inputs become read-only, and an invisible overlay prevents interaction. This ensures users can’t submit conflicting changes while a request is pending.

Success Message

When a user submits changes and some tracked fields were modified, the default MyListing success message is replaced with your custom approval-pending message (default: “Your changes will be saved once an admin approves it.”). Untracked fields still save immediately as normal.


Email Notifications

The plugin sends email notifications to listing authors when their change requests are approved or declined. These emails use MyListing’s built-in notification template system for consistent styling.

EventRecipientSubjectContent
ApprovedListing authorYour listing changes “[Listing Name]” has been approvedGreeting, approval message, and a “View Listing” button.
DeclinedListing authorYour listing changes “[Listing Name]” has been declinedGreeting, decline message, and a “View Listing” button.

Notifications are only sent for published listings with a valid author.


Automatic Cache Refresh

When changes are approved and applied to a listing, the plugin automatically refreshes MyListing’s preview card cache. This ensures the updated data is immediately visible across the site — on explore pages, search results, and anywhere the listing card appears.

The cache refresh also covers related listings. If the approved listing appears in other listings’ related-listing fields, those cards are refreshed too.


Supported Field Types

The plugin supports all MyListing field types except decorative elements that don’t contain data:

SupportedNot Supported
text, textarea, wp-editor, select, multiselect, number, date, location, links, checkbox, radio, password, email, url, color, term-select, related-listing, file, job_title, job_descriptionform-heading (decorative only), form-wizard (step divider only)

For term-select fields, the plugin compares term ID arrays and displays term names in the diff view. For related-listing fields, it compares post ID arrays and displays listing titles. For file fields, it compares file URLs and displays linked filenames.


Frequently Asked Questions

Do I need to change any MyListing settings?

Yes. You must set MyListing’s “Allow editing of published listings” option to “Users can edit without admin approval”. The plugin provides its own approval layer — if MyListing’s built-in approval is also active, the two systems will conflict.

What happens to fields I don’t track?

Untracked fields save immediately as normal, just like they would without the plugin. Only the fields you check in the settings require admin approval.

What happens if a user edits again while a change is pending?

The new changes are merged with the existing pending request. The newest values overwrite previously pending values for the same fields. Only one pending record per listing exists at any time.

Can I lock fields that have pending changes?

Yes. Disable “Allow editing of pending changes” for the listing type. Fields with pending changes will be locked (dimmed and read-only) on the frontend until the admin reviews them.

Does approving changes update the listing immediately?

Yes. When you approve a change request, the new values are applied to the listing immediately. The MyListing preview card cache is also refreshed for the listing and any related listings.

Can I approve a previously declined request?

Yes. The “Approve” action is available on both Pending and Declined records.

Does the plugin send emails to listing owners?

Yes. Listing authors receive an email when their changes are approved or declined. These emails use MyListing’s notification template for consistent styling.

Can I suppress admin emails for minor edits?

Yes. Enable the “Disable admin email notification” setting. When a user edits a listing but none of the tracked fields were changed, the default MyListing admin email (“listing updated”) is suppressed.

Does the plugin work with the backend/admin listing editor?

No. The plugin only intercepts frontend listing edit submissions (the form users see at ?job_id=X&action=edit). Admin edits in the WordPress backend are not intercepted.

Does it work for draft or pending listings?

The frontend approval workflow activates only for listings with publish or unpublish status. Draft or pending listings are not intercepted.


Troubleshooting

Changes Saving Directly Without Approval

CauseSolution
Listing type not enabledGo to Changes → Settings and check “Enabled?” for the relevant listing type.
No fields selectedCheck at least one field for the listing type on the settings page.
Listing is not publishedThe plugin only intercepts edits on listings with publish or unpublish status.
MyListing built-in approval is activeSet MyListing’s “Allow editing of published listings” to “Users can edit without admin approval”. The plugin provides its own approval layer.

Field Indicators Not Showing

CauseSolution
Indicators not enabledIn the settings, enable the indicator toggles for the badge types you want to show (fields requiring approval, fields not requiring approval, fields with pending changes).
JavaScript errorCheck the browser console (F12 → Console) for errors that might prevent the frontend script from running.

Approved Changes Not Appearing on the Site

CauseSolution
Browser/server cacheClear your browser cache and any server-side caching (CDN, page cache plugin). The plugin refreshes MyListing’s internal card cache, but external caching layers may still serve stale content.
Related listing cards not updatingThe plugin refreshes related listing caches automatically, but if you use an external caching plugin, you may need to purge its cache manually.

No Email Notifications Being Sent

CauseSolution
Listing not publishedNotifications are only sent for published listings with a valid author.
Email delivery issuesCheck your WordPress email configuration. Use an SMTP plugin if emails are not being delivered.

Double Approval / Conflicting Behavior

CauseSolution
MyListing’s built-in approval is activeThis is the most common conflict. Set MyListing’s “Allow editing of published listings” to “Users can edit without admin approval”. This plugin replaces MyListing’s basic approve/reject flow with a granular, per-field approval system.

“MyListing Theme Not Detected” Error

The MyListing theme must be installed and active. Go to Appearance → Themes to verify.


For further support, visit codicts.com or contact us at support@codicts.com.

CoDicts Co., Ltd. © 2021-2026. All rights reserved