Display widgets for CiviCRM events: the next public event or a whole list. Embed widgets as shortcodes, too!
You can use the CiviEvent widget to add two types of widgets for upcoming public events from CiviCRM. There’s no limit to the number of widgets you can add of either type. You can include the widgets in the sidebar like normal, or you can include them via shortcodes in the body of your posts.
This widget is a basic, flexible listing of upcoming events that are marked as public. You have options to customize the appearance and number of events. There is the option to add the event’s city, state, and/or country to the listing if “Show location” is enabled on the event.
This widget displays a single public event from CiviCRM. By default, it will display the first event from the current day or the future, or you can set an offset to skip one or more and display the second or third upcoming event. You may display the location if “Show location” is enabled on the event.
Both widgets are available to be inserted into the body of a post using a shortcode. Use the [civievent_widget]
shortcode for the events listing and the [civievent_single_widget]
shortcode for the single next (or offset) event. The available parameters for the shortcodes are as follows:
title="Your Title"
The widget title (default: “Upcoming Events” for the list widget, or the event’s title for the single widget).summary=1
Display the event summary. Omit the parameter or set it to 0 to hide the summary. (List widget only.)limit=5
Display the specified number of events (default: 5). (List widget only.)alllink=1
Display “view all” with a link to the page with a full list of public events. Omit the parameter or set it to 0 to hide the link. (List widget only.)wtheme="mytheme"
The widget theme (a class added to the widget div). Set a new one and handle it in your theme’s CSS. (Default for list widget: “stripe”, with “divider” as an alternative. Default for single widget: “standard”.)divider=" | "
The location field delimiter (default: comma followed by a space).city=1
Display the event’s city. Omit the parameter or set it to 0 to hide the city.state="abbreviate"
Display the event’s state/province. Default is “none”, which will display nothing about the state or province. Display options are “abbreviate” for the state/province abbreviation or “full” for the full name.country=1
Display the event’s country. Omit the parameter or set it to 0 to hide the country.offset=2
Skip the given number of events before displaying the next one (default: 0). (Single widget only.)admin_type="simple"
Whether to use the “simple” (default) or “custom” display options (as appear in the widget settings). The custom_display
and custom_filter
parameters only function alongside admin_type="custom"
. The summary
, alllink
, divider
, city
, state
, and country
parameters only function when admin_type="simple"
(or reverting to the default). (List widget only.)custom_display='{"event_title_infolink":{"title":0,"prefix":null,"suffix":null,"wrapper":1},"description":{"title":1,"prefix":null,"suffix":null,"wrapper":1}}'
Custom options for displaying results when admin_type="custom"
. The value should be an object written in JSON. Each property name should be a field to display, and the property value should be an object with the following properties: title
(1 or 0: whether to display the field name), prefix
(null
or a string with markup to precede the field), suffix
(null
or a string with markup to follow the field), and wrapper
(1 or 0: whether to wrap the field with the default wrapper elements. You may configure a widget using the standard widget interface, click “Show JSON”, and copy the JSON into this parameter. If custom_display
is missing, the listing will revert to displaying in the “simple” mode despite the admin_type
value. (List widget only.)custom_filter='{"start_date": {">=": "2015-12-16"}, "is_public": 1, "options": {"sort": "start_date ASC"}}'
Custom options for filtering results when admin_type="custom"
. The value should be an object written in JSON. The object should be a valid set of parameters for the CiviCRM API. The default is to list all public events starting on today’s date or later, sorted by start date ascending. (List widget only.)event_type_id=3
Display Event with event type id 3 (default: show all event). (only work with admin_type=”simple”.)This plugin requires CiviCRM 4.3 or higher to function. It is only supported with CiviCRM 4.6 or higher.
Read more at https://aghstrategies.com/civievent-widget
civievent-widget
to the /wp-content/plugins/
directorycivievent-widget
to the /wp-content/plugins/
directoryCiviCRM is the leading open-source constituent relationship management (CRM) system for nonprofits. This plugin is not CiviCRM, but you can read all about and download CiviCRM at http://civicrm.org. Free to download, free to install and use, free to share, and free to modify, CiviCRM is a great solution for not-for-profit and charitable organizations looking to track donors, event participants, case clients, members, and more.
CiviCRM provides full pages of info on single events, plus a poorly-documented page listing all public upcoming events, but there’s no simple widget for listing the events in the WordPress sidebar or as a shortcode that doesn’t overwhelm your page content.
This plugin was developed by AGH Strategies, a CiviCRM consulting firm in Washington, DC. The plugin is driven by our clients’ needs, and others have commissioned features that are important for their organizations.
Read more about us at https://aghstrategies.com/
Go into CiviCRM and visit the Manage Events page in the Events menu. Check out the event links there–most likely they are identical to what the widget provides. If the widget’s links cause you trouble, you probably have fundamental problems with your CiviCRM installation: the widgets just use CiviCRM to provide links.
Like most successful open-source projects, this is a collaboration between a number of users’ needs. If you have an idea for a feature and would like to see it happen, please contact us at https://aghstrategies.com/contact. Even if your budget is small, we can often combine several use cases into a unified new feature, splitting the cost among several organizations.
You might want to have different CiviEvent widgets on your site look different. Setting the “theme” in the widget settings or the shortcode doesn’t pick a different site theme, but it adds a class to your widget. Using one of the built-in theme options will provide a straightforward display, or you can create your own: just type something new as the widget theme and then add CSS in your site’s theme to handle it. The plugin was built from the perspective that while the widget should look reasonable out-of-the-box, most sites who care strongly about the widget’s appearance will already be implementing a lot of custom CSS. There’s no need for the widget to come with a lot of heavy-handed theming.
You can write a bit of JSON to filter your results for the CiviEvent List Widget in Custom mode. This uses the syntax for the CiviCRM API. For example, to only include events with online registration enabled, enter {"is_online_registration": 1}
in the Custom API Filter field. By default, results have the event_start_date
greater than or equal to today and have is_public
equal to 1. You can override these.
You can also adjust the limit, sort, or offset by adding items under options
. For example, {"is_online_registration": 1, "options": {"sort": "title ASC", "limit": 3, "offset": 4}}
will display the fifth, sixth, and seventh events in order of title.
Note: CiviCRM’s API takes JSON arrays in some cases. A JSON array is denoted by square brackets. A shortcode is denoted by square brackets. If you use the custom_filter
shortcode parameter to set a custom API filter, you’ll have trouble if you use square brackets for arrays. As a workaround, write arrays as objects with sequentially numbered properties: {"0": "First Thing", "1": "Second Thing"}
instead of ["First Thing","Second Thing"]
.