Skip to content

Announcement module overview

Announcement Bar vs. Announcement

Announcement bar in action The announcement bar is a prominent visual component of our platform, located below our main navigation and highlighted through the bright orange color. It is optionally dismissible and can be closed by a click on the X symbol

The announcement bar is used to either display promotional messages (marketing/sales related) or to communicate the site status (scheduled maintenance, server downtime, etc.) to our visitors and members. We refer to all of these messages as Announcements

NOTE

The Announcement module was previously called AnnouncementBar module. People and/or documentation may still refer to this module by its old name. If you find any occurrence of the AnnouncementBar module, please update and use its proper name.

Announcement

Is a conditional message, shown through the Announcement bar. Announcements can be created and managed through the Nova Panel. Please read How to activate Announcement Bar and How to set up a checkout countdown for more detailed instructions on their creation and management.

We can have any amount of active Announcements which may be shown to members or guests. If there are multiple, valid options, exactly one Announcement is picked at random.

Small Screen Text

Each Announcement has one dedicated small screen message text, only shown on mobile sizes with a limit of 22 characters.

In PHP:

php
/**
 * @property string $text_small
 */

Small screen Text

Medium+ Screen Text

Each Announcement has one dedicated medium screen text, only shown on medium or large screens with a limit of 46 characters.

In PHP:

php
/**
 * @property string $text_medium_up
 */

Medium screen Text

Countdown

We can include a dynamic countdown into an Announcement. To do so, we have to set a date for Countdown ends at. If the Countdown timezone is set, the members local timezone is ignored and the given unified timezone is used instead. This will avoid scheduling issues for Live-Events and similar.

In PHP:

php
/**
 * @property \Illuminate\Support\Carbon|null $countdown_ends_at
 * @property string|null $countdown_timezone
 */

NOTE

All non Masterclass announcements will have a countdown, but are used sparingly for campaigns

Medium+ Text and Countdown

Condition: Announcement Type

The AnnouncementType significantly influences how an Announcement is displayed on the platform. There are 3 available announcement types, and one must be selected when creating a new announcement on Nova:

  • Promotional
  • General
  • Site Status

In PHP:

php
/**
 * @property \App\Modules\Announcement\Enums\AnnouncementType $type
 */

Condition: Restrict by Country

We can show an Announcement only in selected countries.

If no country is selected, the Announcement is shown in all countries.

If a country is selected, the priority of the Announcement is elevated for members from this country.

In PHP:

php
/** 
 * @property \Illuminate\Support\Collection<int, \App\Modules\Geo\Models\Country> $countries 
 */

Condition: Restrict by Membership Plan

We can show an Announcement only to members with one of the selected MembershipPlans.

In PHP:

php
/**
 * @property \Illuminate\Support\Collection<int, \App\Modules\Membership\Models\MembershipPlan> $membershipPlans
 */

Condition: Visible for Guests

We can show an Announcement to non-members

In PHP:

php
/**
 * @property bool $is_visible_for_guests
 */

Condition: Visible for Members

We can show an Announcement to members.

In PHP:

php
/**
 * @property bool $is_visible_for_members
 */

Activation / Deactivation Dates

Visible after defines the date when a Announcement becomes visible to members. If not defined, visibility is immediate

Expires at defines the date when the announcement will disappear.

In PHP:

php
/**
 * @property \Illuminate\Support\Carbon|null $expires_at The timestamp when this announcement expires
 * @property \Illuminate\Support\Carbon|null $visible_after
 */

Relationships

In PHP:

php
Announcement::belongsToMany(Country::class);
Announcement::belongsToMany(MembershipPlan::class);

All Possible Announcements

TypeManaged on NovaDismissibleDescription
RenewalNoNoRemind individual members and team managers about an expired membership.
Missing Payment MethodNoNoRemind individual members on paid membership plans whose membership is not expired yet that it is is necessary to setup a payment method.
Site StatusYesYesSite Status announcements are meant only for site-critical messages as maintenance or legal notices. They can not contain links. Other conditions as membership plan or country restrictions can be applied and are respected, nevertheless usually we don't want to do this due to the general importance of these announcements.
ReferralNoYesReferral announcements are displayed to guests who are eligible for benefits, such as a free trial or free months. This includes benefits from the Refer a Friend program and from our Educational Partners.
PromotionalYesYesPromotional announcements can contain links to promotions, discounts available via a running campaign, etc.
GeneralYesYesGeneral announcements can be used to announce new course or Master Class launch, etc.

Note: On crucial pages that make use of minimal layout (such as payment or sign up forms) we only display Site Status announcements and skip the rest of the announcements.

Announcement Display Logic

At first, non-dismissible announcement is displayed:

  • Renewal announcement (for members on expired membership)
    • OR Missing Payment Method announcement (for members on a non-expired membership but with a missing payment method)

Followed by one of the announcements from the list, displayed one by one on subsequent page visits, until all of them are dismissed:

  • Site Status announcement (very rare)
  • Referral announcement for applicable users
    • OR Promotional announcement for applicable users
  • General announcement

This logic ensures we display 0-2 announcements at once.