ActiKidz Local Activities

Description

Help families browse course facts on your community or parenting website.
Availability varies by city, source permission and selected dates. Check coverage before connecting:
https://actikidz.com/integrations/wordpress/coverage

  • Free connection to the ActiKidz course service; no ActiKidz account required.
  • Gutenberg block (wide and full width, theme colors, spacing, typography and compact style), Elementor widget, and [actikidz_activities config=”your-configuration”] shortcode.
  • Separate city, date, age, category, count, language and layout configurations; up to ten cities per configuration. Regional areas use a separate selection when supported by the service.
  • English, Simplified Chinese, Traditional Chinese and French. Choose a fixed module language or follow the current page language. Existing saved languages stay fixed after upgrading.
  • Compact filter controls keep courses visible first. Open the filter panel, choose days, categories and age, then apply them together. Cancel leaves the existing results unchanged. Weekdays / Weekend shortcuts use the same behavior as the ActiKidz website.
  • New configurations default to Directory mode, which provides course pages when the service supports pagination. Configurations upgraded from 0.1.0 retain a Summary view so existing article layouts do not unexpectedly expand; change Browsing mode explicitly to use Directory. Summary mode offers a same-site “Browse all courses” link independently of the optional brand credit. Class and session pagination remain separate from course pages.
  • Course and class links lead to the provider’s official registration page; courses offered on ActiKidz link to their ActiKidz course details. Where only a course-level provider link is available, visitors are asked to choose the class on that website. Links can be disabled per configuration.
  • Source-name links are on by default and can be disabled separately. Optional ActiKidz brand credit is off by default.
  • Plain text facts: no provider images or full promotional descriptions. Unknown price, age or availability is labelled rather than invented.
  • Default loading retrieves course fragments from your own site after the page loads. The page shell contains no course facts for a full-page cache to retain. A same-site browsing link works without JavaScript.
  • Local scripts and styles only: no ActiKidz visitor tracking scripts, cookies, images, fonts or iframes. Visitors’ browsers request course data from your WordPress site; WordPress contacts ActiKidz.
  • Source check times are separate from local cache retrieval. Course facts have a hard expiry; a successful cache refresh does not mean the original provider was checked again.
  • Saved configuration names retain aliases when renamed, so existing shortcodes continue to resolve. Duplicate and export settings without exporting connection credentials.
  • Connection diagnostics appear in settings and Site Health. Visitors receive a retry or browsing route instead of technical credentials or server errors.
  • Single-site WordPress only; Multisite is not supported.

Do not infer that a city is covered from the plugin being installed.

External service

ActiKidz is required for course data. Activation makes no external request.
The site administrator must explicitly connect under Settings > ActiKidz Activities. Administrator-initiated coverage and city searches may contact the public service before connection; these actions do not register an installation.
After connection, WordPress sends the self-declared site origin, generated installation credentials and configured course filters to https://actikidz.com.
Requests are made by your WordPress server, not the visitor’s browser. Visitor filter choices (days, categories, age range) are sent as part of the course query, cached per module (at most 64 combinations), and new uncached filter searches are limited to 30 per minute for the whole site.
The plugin does not forward visitor IP addresses, user agents, cookies or email addresses.

Course title links (on by default) lead to the provider’s official registration page; courses offered on ActiKidz link to ActiKidz and may carry signed source attribution.
Source-name links (on by default) lead to the provider’s website. Either can be turned off for each configuration.
Courses from sources that publish under an open-data licence show that licence’s attribution statement and a link to the licence. This is a licence requirement and cannot be turned off.
Visitors choose analytics consent on ActiKidz; a link click is not proof of course enrollment.
Optional brand credit can remain off regardless of the course-link setting.

Terms: https://actikidz.com/terms-of-service
Privacy: https://actikidz.com/privacy-policy

Updating

Until the plugin has a verified WordPress.org listing, updates use a fixed-version ZIP from the introduction page; automatic directory updates are not promised.
Back up the site and export each configuration before updating. Use Plugins > Add New > Upload Plugin and choose to replace the installed version. Do not delete the existing plugin first, because uninstall removes settings.
Check existing pages, saved filters and language settings after updating. Purge old page/CDN caches, especially when upgrading from 0.1.0.
The settings export contains configuration data, not credentials; it is a maintenance record, not a supported cross-site import package.

Blocks

This plugin provides 1 block.

  • ActiKidz Local Activities Show upcoming children's activities from your city, with dates, venues and prices.

Installation

  1. Check the coverage page for your city. A searchable city is not a promise of currently usable courses.
  2. Back up your website. Download the verified, fixed-version ZIP when it becomes available at https://actikidz.com/integrations/wordpress. A candidate test ZIP is not a public release.
  3. Use Plugins > Add New > Upload Plugin, select the ZIP, install and activate. WordPress 6.5+, PHP 8.1+ and a single-site installation are required.
  4. Open Settings > ActiKidz Activities, review the external-service disclosure and explicitly connect. Activation alone makes no external request.
  5. Select your cities, date range and display options. Save and preview the configuration. The default course loading mode is “After page load (recommended)”.
  6. Add the ActiKidz Local Activities block or Elementor widget and select the configuration, or copy its generated shortcode into a draft page.
  7. Check the draft on desktop and mobile. Try filters, course pages and the correct class registration link before publishing. Clear any older full-page caches after upgrading from a version that embedded course facts directly.

Optional shortcode display overrides:
[actikidz_activities config=”your-configuration” limit=”12″ layout=”list” heading_level=”2″ style=”compact”]

For two independent placements using the same configuration, give each a different stable instance name:
[actikidz_activities config=”your-configuration” instance=”main-list”]
[actikidz_activities config=”your-configuration” instance=”sidebar-list”]

Instance names accept letters, digits, underscores and hyphens, up to 64 characters. Keep a placement’s name stable so shared filtered addresses continue to address that placement. Repeated shortcodes without distinct instances share their filter state. Gutenberg blocks and Elementor widgets manage their placement identity.

FAQ

Is every Canadian city covered?

No. Use the coverage checker to see actual embeddable courses and request missing cities. The service can be temporarily unavailable independently of city coverage.

Does the plugin send visitor analytics?

No. Course facts are retrieved server-side. Optional course links can attribute visits after a visitor has explicitly consented on ActiKidz.

Why are some course facts missing?

Unknown price, age or availability stays unknown. The plugin never promises live seats or successful registration.

How do visitors browse without JavaScript?

The module’s “Browse all courses on this site” link opens a complete page on your WordPress site. Its filters use normal GET forms and course navigation uses links. This browsing route is marked noindex and sends no-cache headers; it is not an external iframe.
The dynamic page shell itself does not contain a hidden copy of the course list. If JavaScript is blocked, use the browsing link.

How do page caches and CDNs affect the plugin?

The recommended loading mode keeps course facts out of the main page HTML. Exclude the plugin’s REST results route and URLs containing akla_view from full-page caching, and verify that your proxy respects no-cache responses.
An advanced “With page HTML” mode is available only for pages that you exclude from page caching. A fixed one-hour page-cache TTL is not sufficient: a course can reach its hard expiry sooner.
Purge previously cached pages after upgrading, disconnecting or changing loading modes. The plugin cannot erase HTML stored by an unrelated cache or guarantee every CDN configuration.

How fresh is the display?

Plugin snapshots become due for refresh after at most 15 minutes; actual refresh is triggered by use or scheduled tasks. During a temporary service failure, a usable snapshot can remain available for at most one hour from retrieval and never beyond its hard expiry. Expired facts are removed rather than kept as a successful result.
The source check time describes provider evidence, not when WordPress downloaded it. Partial or older evidence is labelled; seats, schedules and registration must still be confirmed with the provider.
403/410 and credential failures clear plugin caches. These controls cannot revoke a previously viewed screenshot or HTML saved outside the plugin.

What if WP-Cron is disabled or the first view is slow?

Saving a configuration schedules preparation. Under Help and connection settings > Maintenance and usage, use “Prepare courses now” to prepare the saved configuration without waiting for WP-Cron. It requires the service’s preparation capability and does not count as a real visitor visit.
Preparation is an optimisation, not a guarantee that every language, placement and filter combination is already cached. Check the resulting page in an anonymous browser. Default dynamic loading lets the rest of your page display while courses load.

Why does pagination or preparation appear unavailable?

The plugin checks which capabilities the connected service supports. When a newer backend capability has not been deployed, installing the new ZIP alone does not enable it. Existing course previews remain subject to the service’s coverage and freshness rules; the plugin does not invent extra results.

Can I rename or copy a configuration?

Renaming retains the old shortcode name as an alias of the same saved configuration. The advanced shortcode using its stable configuration ID also remains valid. Deleted configuration names are not silently reassigned to another configuration.
“Duplicate configuration” creates an independent configuration. “Export settings” downloads configuration values without installation credentials. Review the listed pages before deleting; dynamic templates may not appear in the usage scan.

How does the module choose its language?

“Fixed language” uses the selected module language even on multilingual pages. “Follow page language” uses the current WordPress page language and available WPML or Polylang language context. It does not require either multilingual plugin, translate your site’s articles or change the language of other modules.
Existing configurations remain fixed during upgrade. Set each configuration’s mode explicitly, and check both language versions of the published page. A browser request for the module retains the language of the page that created it.

What happens when the website is cloned?

A changed site origin blocks display until you explicitly connect the new site as a separate installation.

Does it work on Multisite?

No. This release supports single-site WordPress only. Activation on a Multisite network, including network activation, is refused.

Where can I get help?

Email support@actikidz.com. Include the plugin, WordPress and PHP versions, the affected page URL and steps to reproduce; never send credentials or visitor data. A WordPress.org support forum is available only after the directory listing exists.
Report security issues to support@actikidz.com; see https://actikidz.com/security

What happens on deactivation or uninstall?

Deactivation clears plugin caches and keeps connection/settings for reactivation.
Disconnect in settings before uninstalling to revoke the remote installation.
Before uninstalling, export settings and review the pages listed under Maintenance and usage. The usage scan is bounded and cannot identify every dynamic template.
Uninstall removes local settings, scheduled tasks and plugin-owned database transients without making an external request. Your articles are kept: manually remove their blocks or shortcodes, then purge page caches. Uninstall does not revoke the remote connection by itself.
If disconnection cannot reach the service, local display stays disabled and the settings page offers retry.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“ActiKidz Local Activities” adalah perisian sumber terbuka. Orang-orang berikut telah menyumbang kepada pemalam ini.

Penyumbang

Changelog

0.2.4

  • Report the remaining server backoff to the browser, including increasing waits after consecutive failures. Automatic retries no longer spend their limited attempts before the server permits another request.

0.2.3

  • Recover automatically from temporary course-fragment refresh failures, with at most three retries and respect for the service’s retry delay. Expired facts remain hidden until a fresh response arrives; permission and revoked-connection errors are not retried automatically.

0.2.2

  • Show the open-data licence attribution for courses whose source publishes under an open licence: the prescribed statement verbatim and the licence name linked to its terms. It is shown whether or not course links are enabled.
  • Show the next session time for courses whose source does not share a per-session list, instead of “Time not listed”.

0.2.1

  • Support up to ten cities, with regional areas kept separate from city selections.
  • Retry city identity upgrades safely after service failures, preserve configuration identity, and avoid migration requests while disconnected.
  • Preserve regional selections in credential-free exports and remove city migration backups on uninstall.
  • Synchronize city selection limits in all bundled translations.

0.2.0

  • Compact filters with apply/cancel, course-level navigation and class-specific registration actions.
  • Dynamic course loading by default, same-site no-JavaScript browsing and clearer freshness/retry states.
  • Stable configuration aliases, independent shortcode instances, fixed/page language modes and credential-free maintenance exports.
  • Publication remains subject to final-package acceptance and service deployment; this changelog is not an acceptance result or directory approval.

0.1.0

  • Initial release: server-rendered block and shortcode with explicit connection, multiple saved configurations and bounded caching.
  • Classes are grouped by their real schedule, with every session in the selected window, its date, weekday, start and end time and time zone.
  • Each class shows its own price and billing unit; free, unknown and price ranges are labelled separately.
  • Long course lists show 3 classes and 6 sessions per page using a bundled local script; all facts stay readable without JavaScript.