Menu

Get the free plugin

For developers

PHP functions, REST API, hooks, templates, and WP-CLI.

PHP

opendoor_get_resources( array(
    'category' => 'food',     // slugs, subcategories included
    'search'   => 'pantry',
    'open_now' => true,
    'features' => 'free,walk_in',
    'language' => 'spanish',
    'orderby'  => 'open',     // or 'name'
    'limit'    => 20,
) );
opendoor_get_resource( $post_id );
opendoor_is_open_now( $post_id );

Each resource is an array with name, description, categories, contact, address, lat and lng, hours, exceptions, features, languages, eligibility, what to bring, status, and more.

REST API

GET /wp-json/opendoor/v1/resources takes the same arguments as query parameters, for example ?category=food&open_now=1.

Abilities and MCP

On WordPress 6.9 and later, three read-only abilities are registered in the open-door-directory category: opendoor/search-resources, opendoor/get-resource, and opendoor/list-categories. They are marked public.

The same tools are served over MCP (Streamable HTTP) at POST /wp-json/opendoor/v1/mcp. It is stateless, needs no sign-in, and supports protocol versions 2025-03-26 through 2026-07-28. Filters:

  • opendoor_ai_enabled: turn the abilities and endpoint on or off in code.
  • opendoor_ai_tools: add or change tools. Keep them read-only.
  • opendoor_ai_resource: change the resource fields sent to assistants. Never add a confidential location’s address back.
  • opendoor_ai_reminders: the short reminders sent with every result.
  • opendoor_mcp_instructions: the guidance sent to assistants when they connect.
  • opendoor_mcp_rate_limit: requests per minute per visitor (default 60, 0 turns it off).
  • opendoor_mcp_client_ip: the IP used for the limit, for sites behind a proxy.
  • opendoor_mcp_allow_origin: block browser origins.

Templates

Copy card.php, popup.php, or single-details.php from the plugin’s templates folder to your-theme/open-door-directory/ to change the markup.

Hooks

  • Filters include opendoor_resource_fields, opendoor_query_args, opendoor_card_html, opendoor_directions_url, opendoor_max_resources, opendoor_settings_fields, opendoor_settings_tabs, opendoor_service_features, opendoor_schema_data, and opendoor_share_text.
  • Actions include opendoor_loaded, opendoor_meta_box_after, opendoor_settings_after, and opendoor_builder_after.
  • In the browser, each directory fires a opendoor:filter event when visitors change the filters.

WP-CLI

wp opendoor seed --count=20
wp opendoor reset

seed adds sample resources for testing; reset removes only those samples.

Still stuck? Email us