DOCUMENTATION

Documentation for the way you actually build.

Start with installation and FileMaker connection setup, then move through shortcodes, parameters, scripts, containers, helpers, troubleshooting, and hosted WP-CLI operations.

FileMaker Functions

cwpSendToFM($data, $layout, $field, $script = null, $fm_opts = [])

Send any array/object as JSON to FileMaker, with optional script trigger. Designed for event-driven data dumps (e.g., after checkout, form submission, etc.).

  • Purpose:

    • Quickly send data to FileMaker as a JSON string in a specified field
    • Optionally trigger a FileMaker script after record creation
    • Keeps integration simple and safe (not for arbitrary FM actions)
  • Parameters:

    • $data (array|object): Data to send (will be JSON-encoded)
    • $layout (string): FileMaker layout to use
    • $field (string): FileMaker field to store JSON
    • $script (string|null): Optional FileMaker script to run
    • $fm_opts (array): Optional override for FM connection constants (host, db, user, pass)
  • Returns:

    • Array with keys: success (bool), message (string), response (FM API response or script result)
  • Example:

    $result = cwpSendToFM($checkout_data, 'Web_Orders', 'json_field', 'AfterOrderScript');
    if (!$result['success']) {
        fmcwpShowResponse($result, 'FileMaker Error');
    }

handle_filemaker_download()

Purpose:

  • Fetch and stream an allowlisted FileMaker file through an authenticated AJAX request.

Handlers:

  • Registered actions: fm_download for logged-in and logged-out requests. Both require the configured CWP integration token.

Usage:

  • Copy the generated token from CWP Snippets → Integration Security.
  • Call via admin-ajax.php with action, url, and optional filename parameters, plus the token in an Authorization: Bearer or X-CWP-Token header.
  • Example direct link (browser):
    https://example.com/wp-admin/admin-ajax.php?action=fm_download&url=https%3A%2F%2Ffm-server.example%2Ffile.pdf&filename=file.pdf&token=YOUR_CWP_TOKEN

The query-string token is provided for browser-link compatibility, but headers are preferred because URLs may be stored in browser, proxy, and server logs.

Server-side example (PHP):

$download_url = add_query_arg([
    'action'   => 'fm_download',
    'url'      => $fileUrl,
    'filename' => $fileName,
], admin_url('admin-ajax.php'));
$response = wp_remote_get($download_url, [
    'headers' => ['Authorization' => 'Bearer ' . cwp_get_integration_token()],
]);
// handle $response as usual (wp_remote_retrieve_body, etc.)

Behavior and validation:

  • Requires a valid CWP integration token and an HTTPS url parameter.
  • Public destinations use WordPress's SSRF-safe URL validation and safe redirect handling. Private/internal FileMaker hosts are denied by default.
  • To permit a private FileMaker host, add its exact hostname or IP address under Integration Security → Private download hosts. Explicit private hosts cannot redirect the request to another destination.
  • TLS certificate verification is always enabled. The default maximum response size is 25 MB; customize it with cwp_snippets_download_max_bytes up to the hard 100 MB ceiling.
  • On success returns the file contents streamed to the client with Content-Disposition: attachment; filename="<filename>".
  • On failure the handler calls wp_die() with an error message (appropriate for AJAX downloads).

Security notes:

  • Keep the integration token out of plugin source and snippets. Prefer request headers whenever the client supports them.
  • Add only trusted, exact hosts to the Private download hosts setting.
  • CWP_SNIPPETS_API_TOKEN and CWP_SNIPPETS_DOWNLOAD_HOSTS constants remain available as advanced overrides for managed deployments.
  • File names are sanitized before being included in response headers.

Example cURL (server-to-server) to download via the AJAX handler:

curl --request GET \
  --header "Authorization: Bearer YOUR_CWP_TOKEN" \
  "https://example.com/wp-admin/admin-ajax.php?action=fm_download&url=https%3A%2F%2Ffm-server.example%2Ffile.pdf&filename=file.pdf" \
  -o file.pdf

Notes:

  • This helper is intended as a convenience for remote FileMaker-hosted files. If you require complex authentication to access the FileMaker file, handle auth inside handle_filemaker_download() or use a server-side proxy with credentials stored securely (not in client-facing code).
PROVIDED BY RGC DATA

Free tools, backed by real integration experience.

CWP Snippets, restCWP, and ODataCWP are provided free by RGC Data to help developers build better FileMaker-connected websites.

They are shaped by the same practical experience we bring to custom FileMaker, WordPress, PHP, Data API, and OData projects.

FILEMAKER • WORDPRESS • PHP • APIs
NEED A CUSTOM SOLUTION?

Bring us your integration project.

Whether you need a complete FileMaker-to-web application or help with one difficult part, RGC Data can help you plan, build, troubleshoot, and deploy it.

Architecture, custom development, API integration, security, deployment, and ongoing support—all shaped around your solution.

Tell us what you are building and where you would like help.