Developers English WordPress Plugin

Listings Manager for Listeo: Developer Guide

Technical guide for safe customizations around listing meta, AJAX endpoints, shortcodes, AI workflows, image workflows, and rate-limited integrations.

Listings Manager for Listeo Version 1.0 17 min read Updated Jun 30, 2026
Developer scope. This guide is for safe customization around Listings Manager for Listeo. It covers data structures, shortcodes, AJAX workflows, integrations, and override boundaries. It does not document license bypasses, update bypasses, entitlement spoofing, or any nulled-plugin behavior.

Architecture overview

The plugin extends WordPress Admin and Listeo listing workflows. It provides admin screens for listing operations, settings, support, updates, API usage, ScraperAPI, ExtractPics, and license status. It also exposes frontend management shortcodes for controlled listing management screens.

Main namespace styleProcedural bootstrap plus classes prefixed with LLM_.
Primary post typeListeo listings stored as WordPress posts with Listeo post meta.
Admin pagesListings, settings, updates, support, API usage, ScraperAPI, and ExtractPics screens.
Frontend shortcodes[llm_listings_manager] and [listeo_listings_manager].

Do not override licensing

Custom work must not modify, replace, intercept, or fake the plugin license, update, entitlement, or remote validation logic. Do not hook into license AJAX actions, REST license routes, update checks, or stored license options to make an inactive license appear active. Keep client customizations limited to presentation, workflow, filters, permission policy, and data handling.

Important listing meta

The manager reads and writes common Listeo fields. If your customization also writes these fields, coordinate save order and sanitization to avoid overwriting operator edits.

Meta keyPurpose
_phone, _email, _websiteContact fields used in the manager, AI context, and image workflows.
_place_id, _address, _friendly_addressGoogle/Listeo location identity and display address data.
_geolocation_lat, _geolocation_longCoordinates used for location-aware workflows.
_listing_logo, _featured_image, _galleryLogo, featured image, and gallery data.
_verifiedListing verification flag.
_ai_instructionsCustom instruction context used by AI generation features.
_{day}_opening_hour, _{day}_closing_hourListeo opening-hour arrays or values for each day.

AJAX endpoints

The plugin uses authenticated WordPress AJAX actions for edits and integrations. Do not call them from public unauthenticated code. When extending workflows, preserve nonce checks, capability checks, sanitization, and response shapes expected by the existing JavaScript.

AreaActions
Post fieldsllm_update_title, llm_update_slug, llm_update_categories, llm_update_description, llm_update_excerpt, llm_update_meta
Hoursllm_save_opening_hours
Imagesllm_set_images, llm_update_logo, llm_fetch_logo, llm_scrape_images, llm_set_featured_image, llm_add_to_gallery, llm_refresh_gallery
External servicesllm_scraperapi_fetch_logo, llm_scraperapi_scrape_images, llm_scraperapi_test_connection, llm_extractpics_test_connection
Usagellm_usage_track, llm_usage_query, llm_usage_summary, llm_usage_export

REST route

The plugin registers a license update route under llm/v1/license-update. This route belongs to ListingPilot license infrastructure and should not be used as a customization point. For custom integrations, create your own namespace instead of extending or shadowing license routes.

Shortcode customization

The frontend manager can be rendered through [llm_listings_manager] or [listeo_listings_manager]. If you need custom page layout, wrap the shortcode in a theme template or builder section and apply CSS scoped to that page. Avoid editing plugin PHP templates directly unless you maintain a documented deployment patch.

Admin capability

Keep the manager restricted to trusted users. If you reduce capabilities, audit every field that becomes editable. The screen can update contact details, publication data, images, social links, address details, and schedule data, so it should not be exposed to untrusted roles without additional review.

AI and external service integrations

AI, ScraperAPI, ExtractPics, and Google-related workflows are operational integrations, not theme templates. When extending them, keep provider credentials server-side, never expose API keys in frontend JavaScript, and preserve rate-limit behavior. The plugin includes Google API blocking and limit hooks such as llm_google_api_blocked and llm_google_api_limit_reached for monitoring.

Safe customization examples

  • Add CSS to align the frontend shortcode with your child theme.
  • Add admin-only helper text around the shortcode page.
  • Create a separate reporting page that reads listing meta without modifying plugin internals.
  • Listen to rate-limit actions for logging or alerting.
  • Use WordPress roles and capabilities to control which operators access the manager.

Regression test checklist

  • Inline title, slug, category, description, and excerpt edits still save.
  • Contact meta and social meta save with sanitization.
  • Logo, gallery, and featured image flows work after cache/minification.
  • Opening hours render correctly on public listing pages.
  • AI and external API failures show clear errors and do not corrupt listing data.
  • License and update screens remain untouched and functional.