What it does
mam-reviews-manager is the MAM Suite plugin that puts ratings and reviews into the mobile app. It does three jobs:
- Shows reviews on a listing’s detail screen — a summary header (average, total, rating distribution), the review list, and an “add a review” form — built as MAM content sections.
- Accepts new reviews submitted from the app and saves them.
- Keeps app and web in sync. The defining principle of the plugin is read/write symmetry: every rating the app shows comes from the same native store the website reads from, and every rating the app submits is written back into that same store. A rating left in the app and a rating left on the website are the same data — interchangeable by construction.
That last point is what the provider model delivers. Instead of inserting bare WordPress comments (which is what the plugin used to do, and why app reviews never showed up in GeoDirectory or WooCommerce averages), the plugin resolves one provider per post and delegates all reads and writes to it. The provider knows how that post type stores ratings:
| Post type | Provider | Native store |
|---|---|---|
GeoDirectory listing (gd_place, custom GD CPTs) |
mam_gd_reviews_provider (in mam-geodirectory) |
wp_geodir_post_review + GD rating categories |
| WooCommerce product | mam_wc_reviews_provider (in mam-woocommerce) |
comment_type = 'review' + _wc_average_rating |
| Everything else | mam_reviews_default_provider (built in) |
WordPress comments + rating comment meta |
The plugin also supports multi-faceted reviews (a listing can be rated on several criteria — Cleanliness, Food Quality, … — not just one overall star) and a swipe-to-rate home-screen element for quick one-tap ratings.
Where it appears in the app
| Surface | Driver |
|---|---|
| Reviews summary header on a listing detail screen | reviews_header content section — see Reviews content sections |
| Reviews list on a listing detail screen | reviews content section |
| “Add a review” form on a listing detail screen | add_review content section |
| All Reviews browse screen (site-wide, geo-filterable) | the All Reviews content class |
| Swipe-to-rate home-screen element | see Swipe to rate |
The review/rating behavior (approval mode, star vs. numeric display, login requirement, photos) and the on-screen text (titles, success/pending messages) are configured on the standalone Reviews settings screen — see Configure the Reviews settings screen.
How a review submission flows
- The app posts a JSON review to mam-main’s AJAX dispatcher with subaction
mam_submit_review. mam_reviews_ajax_handlerowns the envelope: it authenticates the user, rate-limits (one submission per app install per post per day), decodes the per-criterionratingsmap (tolerating the legacy singlereview_starsfield), and finalizes any photo uploads.- It resolves the owning provider with
mam_reviews_provider_for( $post_id )and callssave_review(). The provider writes through the native path (wp_new_comment()plus the post-meta/request vars GeoDirectory or WooCommerce listen on) so native averages recalculate. - The handler fires
mam_reviews_review_submitted(and, forshop_orderposts,mam_reviews_add_vendor_review) so other plugins can react. - The response tells the app whether the review is
pending(so the app can show the right confirmed-vs-pending message) and returns refreshed phone data.
The same envelope-then-provider shape powers swipe-to-rate via the mam_swipe_listing subaction.
Setup paths
mam-mainis installed and the entitlement filtermam_plugin_entitlementreturns a non-blocked record for the slugmam-reviews-manager.- Activate the plugin. It self-registers the default WP-comments provider, the Reviews settings page, the AJAX handlers, the content sections, and the phone-data filter on
plugins_loaded. - (Optional) Activate
mam-geodirectoryand/ormam-woocommerceso their providers take over GD listings / Woo products. Each registers itself at priority 20 on themam_reviews_providersfilter — no configuration needed for the handoff. - Configure behavior and text on Mobile App Manager → Reviews.
The first time it runs after the upgrade, a one-time migration backfills app reviews that were previously orphaned as bare comments into the native rating stores, so historical app ratings start counting toward native averages.
Key concepts to know
- Provider model & native symmetry — the architecture that makes app and web ratings the same data. See How reviews are stored and read.
- Criteria — every provider returns at least one
overallcriterion; multi-criteria providers (GeoDirectory with the Review Rating Manager) add one per configured dynamic. - Rating display type — input is always a 1–5 selector; the
starsvsnumericsetting only changes whether the value renders as star glyphs or a number badge. - Approval mode — reviews are inserted as Approved or Pending per the Reviews settings; the submission response carries a
pendingflag so the app shows the matching message.
Related articles
- Configure the Reviews settings screen
- Reviews content sections
- Swipe to rate
- How reviews are stored and read (provider model)
- Hook:
mam_reviews_providers - Hook:
mam_reviews_review_submitted - Hook:
mam_reviews_swipe_submitted
Metadata
| Field | Value |
|---|---|
| Article type | Plugin Overview |
| Plugin slug | mam-reviews-manager |
| Applies to plugin version | 26.23.0+ |
| Category | Plugin Reference |
| Depends on | MAM Main |
| Works with | MAM GeoDirectory, MAM WooCommerce, GeoDirectory Review Rating Manager (multi-criteria), WooCommerce, MAM ABI Now |
| Hooks exposed | mam_reviews_providers, mam_reviews_review_submitted, mam_reviews_swipe_submitted, mam_reviews_add_vendor_review, mam_reviews_complete_message, plus the mam_content_section_* builders and the back-compat read filters |
| Last verified | 2026-06-04 |
