RTEO Connect

Opis

RTEO Connect links your WordPress site to your RTEO workspace. It pulls live, never-stale schema.org Course structured data from RTEO and injects it server-side into your course page , and it provides the [rteo_connect embed=table object=…] shortcode to drop the live course instance table (dates, locations, prices, availability, enrol buttons) anywhere on your site.

For sites connected to RTEO, the plugin also exposes your course structure to your authenticated RTEO workspace: the fields on your course pages (including Advanced Custom Fields) and the taxonomies attached to your courses (learning categories, course types, funding options, delivery modes and the like). This lets RTEO read your course content, fields and taxonomies and, with your approval in RTEO, update them. All content operations are driven from your own RTEO workspace; the plugin never authors or stores content in WordPress on its own.

Embed a course page’s live instance table by pasting the shortcode from your RTEO course page editor, e.g. [rteo_connect embed=table object=sch_xxxxx]. Optional attributes: display (tabs|combined), rows (3|6|10|all), sort (date|spots|cost|location), dir (asc|desc), theme (auto|light|dark). The table renders in an isolated Shadow DOM in your site’s brand colours and stays in sync with your live schedule.

The Course JSON-LD is injected server-side (in wp_head), not via client-side JavaScript, so search engines and AI consumers index it reliably. The plugin transient-caches the fetched JSON-LD so it adds no per-render network cost, and it fetches from RTEO’s public, anonymous schema endpoint, storing no secrets.

External services

This plugin relies on the RTEO application — a third-party SaaS platform operated by RTEO — to generate and serve the schema.org Course structured data and the live course instance table for your courses. The plugin only reads and renders content that RTEO produces; it never authors or stores content in WordPress.

The plugin connects to the live RTEO service at https://app.rteo.com.au. Which environment a site talks to is decided by RTEO’s domain registry: the plugin asks https://app.rteo.com.au/api/connect/environment (sending only the site’s own domain name) which environment the domain is registered for, and on an unregistered domain it stays inactive and makes no further requests.

What data is sent, and when:

  1. Schema fetch (server-side, on page render). When a page has an RTEO schema token configured, the plugin makes a server-to-server request to the RTEO schema endpoint (https://app.rteo.com.au/api/schema/) to fetch that page’s Course JSON-LD. The only data sent is the page’s opaque schema token (e.g. sch_xxxx) — no personal data, post content, or site credentials. Responses are cached locally so the request is not repeated on every render.

  2. Embed widget (in the visitor’s browser, only when used). When you add the [rteo_connect embed=table] shortcode to a page, the visitor’s browser loads the RTEO embed widget script from https://app.rteo.com.au/dist/rteo-instances.js, which then requests the public, anonymous instance-table data for the page’s token from https://app.rteo.com.au/api/embed/page/. As with any externally hosted script, the visitor’s browser contacts app.rteo.com.au (sending its IP address and standard request headers) when the table is displayed.

This service is provided by RTEO. Its terms and privacy policy:

  • Terms & Conditions: https://rteo.com.au/terms-conditions
  • Privacy Policy: https://rteo.com.au/privacy-policy

Instalacija

  1. Install and activate the plugin (via the WordPress plugin directory, or upload the ZIP via Plugins Add New Upload).
  2. RTEO registers your domain and sets your page token automatically when you install via RTEO. To configure manually, set the page’s rteo_schema_token meta (or the rteo_default_schema_token option) to the token shown in your RTEO course page editor.

ČPP

Does this send any personal data to RTEO?

No personal data. To fetch a page’s public Course schema the plugin sends only that page’s opaque schema token to RTEO’s endpoint. When you use the embed shortcode, visitors’ browsers load the table widget from RTEO. See the “External services” section above for the full disclosure.

Where do I get my page token?

Your RTEO course page editor shows the opaque schema token for each course page. RTEO sets it for you automatically on a remote install; for a manual install, copy it into the page’s rteo_schema_token meta or the site-wide rteo_default_schema_token option.

Recenzije

Nema recenzija za ovaj dodatak.

Suradnici i Programeri

“RTEO Connect” je softver otvorenog koda. Sljedeće osobe su doprinijele ovom dodatku.

Suradnici

Prevedite “RTEO Connect” na svoj jezik.

Zainteresirani ste za razvoj?

Pregledajte kôd, pogledajte SVN spremišteili se pretplatite na dnevnik razvoja od RSS.

Dnevnik promjena

0.7.13

  • New: blog-meta route. RTEO reads the site’s assignable authors and existing
    blog categories/tags through the connector, so host firewalls that block
    core endpoints (like the /users anti-enumeration rule) never break
    publishing setup.

0.7.12

  • The plugin’s environment is now decided by the domain the site runs on,
    looked up against RTEO’s registry. A registered client domain is fixed to
    production, a registered staging-clone domain is fixed to staging, and an
    unregistered domain makes the plugin inert (no requests, nothing served)
    with a clear admin notice. The wp-config RTEO_ENDPOINT_BASE override from
    0.7.0 is removed – registration in RTEO is the only mechanism.
  • New “RTEO Connect” admin page: which environment the site resolved to and
    why, the endpoint in use, pages carrying live schema, last schema fetch,
    and a “Check again” button.

0.7.11

  • New: blog design-kit stylesheet delivery. RTEO can push your workspace’s
    blog design-kit CSS (base components + your exclusive components, in your
    brand colours) to the site. The plugin stores it as a static file in
    uploads/rteo-connect/ and loads it site-wide, so styled blog posts keep
    rendering correctly even if the RTEO connection is later removed. Updating
    the styling is a push from RTEO – no plugin update needed.

0.7.0

  • The plugin now connects to the production RTEO service (app.rteo.com.au) by
    default. A staging clone of a site can opt out with one line in wp-config.php:
    define(‘RTEO_ENDPOINT_BASE’, ‘https://staging.rteo.com.au/api/schema’).
    Sites already connected keep their stored endpoint and are unaffected.
  • Batch-write accepts a taxonomy:<slug> target, so RTEO can assign a post’s
    taxonomy terms (categories, course types, funding options) during a push
    instead of leaving them for a human. Terms are REPLACED with the supplied set,
    captured in the before-image, and restored atomically on revert.
  • Batch-write accepts core:post_content and core:post_title, so RTEO can
    rewrite the WordPress editor body and the title — not just ACF sidecar fields.
    This is what lets a Blog post (whose content lives in the editor) be pushed.
  • Repeater, group and flexible-content fields can be written: a structured value
    now passes through to ACF intact instead of being flattened to strings.
  • core:post_author reassigns a post’s author by user ID (validated against a
    real user, so a post is never orphaned).
  • taxonomy:<slug> works for CORE taxonomies too — taxonomy:category and
    taxonomy:post_tag need no special casing.
  • New media:field_* target for image, gallery and file fields. The value is an
    existing attachment ID or an https URL, which is sideloaded into this site’s
    media library. A revert restores the field’s previous attachment but does not
    delete the uploaded file, since other posts may reference it.

0.6.1

  • batch-write accepts array values for checkbox/multi-select gate fields: an acf:field_* write whose value is an array is sanitized element-wise and stored as an array (ACF checkbox semantics), the byte-identity compare is array-aware (order-preserving), and before-images/compensating restores round-trip arrays intact. Powers RTEO’s conditional-gate companion writes on checkbox-controlled modules.

0.6.0

  • New POST /wp-json/rteo/v1/batch-write route: applies N field writes (acf:field_*, yoast:title/metadesc, core:post_excerpt, relationship:field_*) atomically with server-side before-images and both-or-neither compensating rollback on any failed or mismatched write. Powers RTEO’s multi-field content push in one transaction.
  • relationship:field_* write kind: set/replace a course’s ACF relationship field to an app-supplied ID list (link-only — never creates or modifies the related post).
  • field-manifest additively emits each relationship/post_object field’s target post_type and each field’s ACF conditional_logic rule groups (so the RTEO app knows which controlling field gates a module).
  • create-and-link-faq publish: accepts category_new_name / tag_new_name to create an operator-approved new category/tag term (wp_insert_term); the unresolved-category guard is preserved when neither an id nor an approved new name is supplied.

0.5.4

  • create-and-link-faq: when the FAQ CPT has no ACF answer field, the answer is written to post_content as a paragraph block (rteocm convention).

0.5.3

  • create-and-link-faq: per-site tag taxonomy (tag_taxonomy param). The publish phase now accepts an optional tag_taxonomy so FAQ post types that register their own tag taxonomy (e.g. rteocm_faq_tag) tag the course into the right taxonomy; absent it defaults to the WordPress core post_tag (backward compatible). An explicitly supplied but unregistered taxonomy returns rteo_taxonomy_not_found rather than mis-tagging.

0.5.2

  • FAQ route fixes: acf-prefix strip on draft writes, post:title in field-values.

0.5.1

  • Version bump to supersede pre-release 0.5.0 dev builds installed manually on early sites (identical routes to 0.5.0). Ensures wp.org auto-update delivers the push routes everywhere.
    This plugin is in public beta (0.x). 1.0.0 will mark the first stable release.

0.5.0

  • Added RTEO control-plane content routes (admin-authenticated): GET /wp-json/rteo/v1/field-manifest (enumerate a post type’s ACF field definitions), GET /wp-json/rteo/v1/field-values (read raw unformatted ACF values + Yoast title/metadesc), GET /wp-json/rteo/v1/taxonomy-terms (enumerate a taxonomy’s live terms), POST /wp-json/rteo/v1/write-field (write a single ACF field by key or a Yoast slot), and POST /wp-json/rteo/v1/create-and-link-faq (draft/publish/delete FAQ posts and link them to a course relationship field). These power RTEO’s gated content push. Read-only for reads; writes are admin-only and never touch credential-looking meta.

0.4.1

  • Marked tested up to WordPress 7.0. Added listing icon and banner assets. No functional changes.

0.4.0

  • Public beta. The embed shortcode is [rteo_connect embed=table object=…] (the tag matches the plugin name).
  • The embed widget is now loaded via wp_enqueue_script() and mounts into a placeholder element, instead of an inline script tag.
  • Hardened the JSON-LD output escaping; updated the Plugin URI and documented the external services this plugin uses.

0.3.0

  • RTEO control-plane integration routes (admin-authenticated): POST /wp-json/rteo/v1/page-token wires a course page’s schema token onto the matching post, and GET /wp-json/rteo/v1/instance-tables lets RTEO discover per-location/domain instance-table tabs from your page content.

0.2.0

  • New [rteo_connect embed=table object=…] shortcode — embed the live course instance table (Shadow-DOM, brand-themed) anywhere on your site, with optional display / rows / sort / dir / theme attributes.

0.1.0

  • Initial: server-side Course JSON-LD injection + [rteo_content] seam.