Integration with the WordPress module

If your website uses the Open Source CMS WordPress, we provide you with a plugin that will allow you tohave a strong integration without having to implement our API which will save you precious time. You will also benefit from the possibility of importing the event files directly into WordPress, which will also allowuse the search functions provided by the CMSandavoid reimplementing an importer from your programming database or to re-enter your event records.

Installation

You can install our plugin 1 directly from the WordPress plugin manager by searching for “Ticketack”; once installed, you still need to activate it from the plugin manager.

Then go to the permalinks management and simply click on “Save” to save the new permalinks provided by the plugin.

Updates

Before upgrading the plugin or theme, checkz that you have done well a backup of your installation complete of WordPress having read the changelog provided so that any regressionincompatible change or installation of features unintended be avoided.

Take particular note of beware of theme updates that can erase your layout customizations.

Configuration

The Ticketack plugin must be configured to communicate with your ticketing service.

To do this, go to the Settings > Ticketack (Tab API)from your WordPress administration space and fill in the following fields with the information provided by Net Oxygen:

  • URL of the engine
  • API Key

Activate payment methods

The Ticketack plugin offers two reservation modes in the settings -> ticketack -> checkout:

  1. Authorize reservations (reservation without online payment).
  2. Authorize purchases (purchase with online payment).

Creation of sample pages

In order to display the contents of the online shop directly on your WordPress site, it is necessary to create sample pages (from the basic functionality “Pages” of WordPress) that will collect a specific shortcode.

Depending on your use case, we invite you to create the following pages:

  • Program (use the shortcode [tkt_program][/tkt_program])
  • Shopping cart (use the shortcode [tkt_cart][/tkt_cart])
  • Subscription sales (use the shortcode [tkt_buy_pass][/tkt_buy_pass])
  • Sale of items (use the shortcode [tkt_shop][/tkt_shop])
  • Item purchase validation (use the shortcode [tkt_checkout][/tkt_checkout])
  • Thank-you page (use the shortcode [tkt_thank_you][/tkt_thank_you])
  • Login with an account and/or a ticket (use the shortcode [tkt_user_login][/tkt_user_login] and/or [tkt_ticket_connect][/tkt_ticket_connect])
  • View a ticket and its reservations (use the shortcode [tkt_ticket_view][/tkt_ticket_view])

Fill in the general pages

Once the sample pages are created, you can indicate them to the plugin from theSettings > Ticketack> Pages.

Import of events from Ticketack

In order to have content to display, you must first “Import from Ticketack” the Events:

 

Importing items from Ticketack

To have of articles to display in the sale of articles, you must first “Import from Ticketack” the Articles :

ACF fields for page builders (Divi, Elementor, Bricks…)

When Advanced Custom Fields is active, Ticketack registers local field groups on synced CPTs and fills / overwrites them on every import. Ticketack remains the source of truth — do not rely on lasting manual edits of these fields.

CPTs : tkt-event, tkt-article, tkt-person.

ACF group visibility. The “Ticketack Event”, “Ticketack Article” and “Ticketack Person” groups are registered in PHP (acf_add_local_field_group). They generally do not appear (or not as editable) under ACF → Field Groups — that is intentional. You see them on the CPT edit screen (tkt-event, etc.) and in Divi / Elementor via Dynamic Content → ACF. Do not recreate the same group manually in the ACF UI (duplicates / conflicts).

Label language. Admin labels follow the WordPress UI language (gettext / tkt_t), not a native ACF multilingual system. Values (title, description, free texts…) stay in the post language (WPML).

ACF free vs ACF Pro

  • ACF free covers most flat fields (text, URL, textarea, wysiwyg) — ideal with Divi / Elementor / Bricks Dynamic Content.
  • ACF Pro unlocks repeaters (image lists, trailers, structured cast, countries / audio / subtitles as rows) that are easier to loop in builders.

After enabling ACF, or after changing the image proxy (weserv) / images_dimensions (big_width / big_height), run an import again so URLs are recomputed and existing posts are backfilled.

When the image proxy is configured in the plugin, ACF image URLs go through tkt_img_proxy_url (“big” dimensions). Otherwise the raw URL is stored.

Internal ACF keys (field_tkt_…) are stable — do not rename them. Always use the field names below with get_field() or Dynamic Content.

Events — “Ticketack Event” (tkt-event)

Metadata

Name Type Meaning
tkt_event_id text Ticketack id
tkt_event_title text Title in the WordPress / WPML post language
tkt_event_title_original text Original title
tkt_event_description wysiwyg Localised description
tkt_event_type text Type (e.g. movie, music_group, exhibition, drama, service)
tkt_event_sections text Sections (joined labels)
tkt_event_version text Unique screening versions (joined)
tkt_event_genre text Genre
tkt_event_duration text Duration
tkt_event_year text Year
tkt_event_countries text Countries (localised, comma-separated)
tkt_event_original_languages text Original languages
tkt_event_audio text Audio languages
tkt_event_subtitles text Subtitles
tkt_event_l_min_age text Legal min age
tkt_event_s_min_age text Suggested min age
tkt_event_a_min_age text Accompanied min age
tkt_event_free_text_1tkt_event_free_text_6 wysiwyg Free texts 1–6 (localised)

Countries / audio / subtitles

Two levels:

  • Always (ACF free) — joined text fields: tkt_event_countries, tkt_event_audio, tkt_event_subtitles (plus tkt_event_original_languages as joined text).
  • With ACF Pro — repeaters, one row = one label: tkt_event_countries_list, tkt_event_audio_list, tkt_event_subtitles_list (subfield tkt_event_*_row_label).

Prefer joined text for a simple Divi display; use the Pro lists when you need to loop (pills, flags, etc.).

Cast

Name Type Meaning
tkt_event_directors text Names filtered on director-like activities
tkt_event_cast text Other people (non-directors)
tkt_event_people textarea Full list: one “Activity Name” line per person
tkt_event_people_list repeater (Pro) Subfields tkt_event_people_row_activity, tkt_event_people_row_name

Media — ACF Free

Ticketack image roles :

  • poster — poster art
  • banner — banner
  • still — still / frame
Name Type Meaning
tkt_event_first_poster_url / _credits / _focal url / text / text Poster
tkt_event_first_banner_url / _credits / _focal url / text / text Banner
tkt_event_first_still_url / _credits / _focal url / text / text Still
tkt_event_poster_url url BC alias = tkt_event_first_poster_url
tkt_event_trailer_url url First trailer

Focal point

*_focal fields hold a CSS object-position value, e.g. 50% 25%.

object-fit: cover;
object-position: /* value from tkt_event_first_poster_focal, e.g. 50% 25% */;

In Divi Dynamic Content : Image module → dynamic URL → ACF tkt_event_first_poster_url.

Media — JSON fallback (ACF Free)

Name Type Meaning
tkt_event_posters_json textarea JSON [{ role, url, credits, focal, lang }, …] (URLs already proxied when configured)
tkt_event_trailers_json textarea JSON [{ url, lang, image }, …]

For advanced integrators / custom PHP — not ideal for pure Divi Dynamic Content.

Repeaters — ACF Pro

Name Type Meaning
tkt_event_posters repeater Subfields tkt_event_poster_row_role, _url, _credits, _focal, _lang
tkt_event_trailers repeater Subfields tkt_event_trailer_row_url, _lang, _image
tkt_event_people_list repeater Subfields tkt_event_people_row_activity, tkt_event_people_row_name
tkt_event_countries_list repeater One row = one country; subfield tkt_event_countries_row_label
tkt_event_audio_list repeater One row = one audio language; subfield tkt_event_audio_row_label
tkt_event_subtitles_list repeater One row = one subtitle; subfield tkt_event_subtitles_row_label

Prefer ACF Pro whenever you need to loop over several items in a builder.

Screenings

Name Type Meaning
tkt_event_screenings_summary textarea Import-time text snapshot: one line date | place | version (version when present)

Useful to archive a page without live ticketing. Imports usually load only the future (or the configured edition) — a re-import may replace this summary.

Divi / PHP examples

$poster = get_field('tkt_event_first_poster_url', get_the_ID());
$focal  = get_field('tkt_event_first_poster_focal', get_the_ID());
$directors = get_field('tkt_event_directors', get_the_ID());
  1. Single tkt-event template in Divi Theme Builder.
  2. Image module → dynamic content → ACF Fieldtkt_event_first_banner_url or tkt_event_first_poster_url.
  3. Text module → ACF Field → tkt_event_directors or tkt_event_description.

Articles (tkt-article) and people (tkt-person)

  • Article : tkt_article_id, tkt_article_short_description, tkt_article_category, tkt_article_stock_type, tkt_article_poster_url, tkt_article_variants_summary.
  • Person : tkt_person_internal_id, tkt_person_country, tkt_person_profession, tkt_person_company, tkt_person_tags, tkt_person_photo_url.

WordPress import hooks

Always available, with or without ACF. Order per post : save post → metas → ACF sync (if active) → ticketack_*_imported. End of batch (including empty runs) : *_import_completed.

Hook Arguments
ticketack_event_imported $post_id, Event model, $lang, $is_new
ticketack_article_imported $post_id, Article model, $lang, $is_new
ticketack_person_imported $post_id, person details, $lang, $is_new
ticketack_events_import_completed $stats (imported, failed, trashed_duplicates)
ticketack_articles_import_completed $stats (imported, failed)
ticketack_people_import_completed $stats (imported, failed) via WP-CLI
add_action('ticketack_event_imported', function ($post_id, $event, $lang, $is_new) {
    // …
}, 10, 4);

People : wp ticketack:people import or wp ticketack:people async_import.

Available shortcodes

The plugin allows you to use theshortcodes following in your pages:

Viewing the basket

[tkt_cart][/tkt_cart]

[tkt_cart hide_wallet="true"][/tkt_cart]

Attribute

Possible values

Default value

Description

theme

dark|light

light

Theme

hide_wallet

true|false

false

Hides e-wallet payment in the cart

Display of the basket icon

[tkt_cart_icon][/tkt_cart_icon]

Displaying an event

[tkt_event][/tkt_event]

Display of the VOD Pantaflix

[tkt_pantaflix_player id=”12345678-1234-1234-1234-123456789012″ pantaflix_id_prefix=”pantaflix_id_prod”]
Attributes :
id=’screening_id’
pantaflix_id_prefix=’pantaflix_id_prod’ (by default)

Display of the form for placing reservations in the basket

[tkt_booking_form layout=”form” theme=”dark” ids=”12345678-1234-1234-1234-123456789012″][/tkt_booking _ form]

Attributes :

Attributes

Possibles values

Value by default

Description

layout

form|screenings_list

form

Display mode

theme

dark|light

light

Theme

ids

ID_place1,…2,…3,…

List of session ids

Display of a part of the program

[tkt_program layout=”events” order=”chrono” xsection_ids=”18_noday”][/tkt_program]

Description of the attributs :

Attribute

Possible values

Default value

Description

layout

screenings | events

screenings

Offers the possibility to display sessions or movies2

template

list | grid | gallery

list

Defines the display type (see: choice of template)

item_width

12/nb_colonne_par_item

12

Defines the number of columns per item3

order

chrono / alpha

chrono if layout=screenings

alpha if layout=events

Defines the sorting by chronological or alphabetical order

section_ids

ID_section1,…2,…3,….

Useful if you want to select a particular section

xsection_ids

ID_section1,…2,…3,…

Useful if you want to exclude a particular section

day

2020-12-1

Defines the date of the events or screenings to be displayed

tags

Tag1,..2,..3

Filter events by tag

screening_section_ids

ID_sreenings1,..2,…3,…

Filter the section of sessions to be displayed

top_filter

Screenings | events

Set the filter between movies or session

places

ID_salle1,..2 ,..3,…

Displays the events according to the rooms

filter_fields

Label | value |…

Filter on events according to a filter table

Examples of templates :

list : display in a list with an image and a description following as below.

grid : display of the event or screening with an image and text below, the number of columns is defined by the item_width attribute described below.

– gallery : display only images.

9.8.6 Posting the next session

[tkt_next_screening output=”title” with_link=”1″ places=”12345678-1234-1234-1234-123456789012″][/tkt_next_screening]

Attributes :

Attributes

Possibles values

Value by default

Description

output

title|date|time|datetime|venue|poster|url

Display the selected field

with_link

0 | 1

1

Display with link

places

ID_place1,…2,…3,…

Display of sessions by room

9.8.7.Filters

Filter per day :

[tkt_days_filter][/tkt_days_filter]

This shortcode displays a filter bar by day and allows to filter the sessions by their date of
start.
Attribute description :

Attribute

Possible values

Default value

Description

min_start_at

aaaa-mm-jj

Today’s date

First day of the filter bar

max_start_at

aaaa-mm-jj

Today’s date

Last day of the filter bar

nb_days

Number_of_days

Number of days in the filter bar 4

Filter lines :

[tkt_filter_rows row-hall=”Salle 1|Salle 2|Salle 3″ row-next-days=”7″][/tkt_filter_rows]

Attribute Description:

Attribute

Possible values

Default value

Description

row-hall

Salle1 | Salle 2|

Salle 3| …

Allows you to create a filter line on the rooms

row-next-days

7

Allows you to create a filter line for the next X days

Purchase of subscriptions

[tkt_buy_pass][/tkt_buy_pass]

Attribute description :

Attribute

Possible values

Default value

Description

types

ID_type1,…2,…3,…

Choose the type(s) of subscription to display

Login form with a TicketID

[tkt_ticket_connect][/tkt_ticket_connect]

This shortcode does not require any attribute

Authentication form with a user

[tkt_user_login][/tkt_user _ login]

This shortcode does not require any attribute

Validation of the order

[tkt_checkout][/tkt_checkout]
[tkt_checkout hide_wallet="true"][/tkt_checkout]

Attribute

Possible values

Default value

Description

Fields

Firstname, lastname,email,adress,…

Defines the fields to be filled in by the user when purchasing an item.

theme

dark|light

light

Theme

hide_wallet

true|false

false

Hides e-wallet payment in the cart

Thank-you page

After a successful order, the customer is redirected to the thank-you page configured under Settings > Ticketack > Pages > Thank-you page. Place the following shortcode on that page:

[tkt_thank_you][/tkt_thank_you]

The shortcode loads the finished cart (URL parameters cart_id and result are set automatically at the end of checkout) and shows the order summary with ticket download links.

Attribute

Possible values

Default value

Description

theme

dark|light

light

Theme

Store display

[tkt_shop][/tkt_shop]

Attribute Description:

Attributs

Possible values

Default value

Description

template

list | grid | gallery

list

Defines the display type (see: choice of template)

category_ids

ID_category1,…2,…3 ,…

Defines the category(ies) of items to be displayed

item_width

12/nb_colonnes

12

Set the display size of the items

hide_sorters

0 | 1

1

Displays the possible sorting

only_in_stock

0 | 1

1

Choose to display available or unavailable items

nb

nb_tot_article_affiché

-1 (displays all items)

Selects the total number of items to display

exclude

ID_article1,..2,..3,…

Exclude items based on their ID

spell

alpha | rev-alpha | incr_price | decr-price | random

Allows you to sort items

show

0 | 1

0

Create a pagination

tkt_page

numéro_de_page

1

Defines the page number to be displayed

nb_by_page

nb_article_par_page

9

Defines the number of items per page

Render and style customization

If the rendering (visual, information displayed, etc.) ofshortcodes provided does not suit you, you have the option to override them in your own theme.

Style sheet (style.css)

In order to modify the appearance of your site to your liking go to : appearance → Customization → CSS additional. Here you can write the style you want to modify in CSS format.

Shortcode rendering overhead

The original Ticketack plugin templates can be found inwp-content/plugins/ticketack/app/templates/. Each folder in this directory manages the display of a shortcode.

To overload the style of a part of your site generated byone of the shortcodes previously described, you need create a folder in the root of your theme ticketack as well as a templat e filewithin the latter.

You can then overlay the display with a shortcode by copying the corresponding folder from wp-content/plugins/ticketack/app/templates/ to wp-content/themes/[votre_theme]/ticketack/templates/ , and then modifying the template files ..

Here is an exhaustive list of files that you can overload :

  • article : Modifies the view of an article.
  • booking : Modifies the reservation view.
  • buy_article : Modifies the purchase view of an item.
  • buy_pass : Modifies the subscription purchase view.
  • cart : Modifies the basket view.
  • checkout : Modifies the order validation view
  • event : Changes the view of a movie.
  • filter : Modifies the filter view.
  • next_screenings : Changes the view of the next sessions.
  • people : Modifies the view
  • program : Modifies the view of the program
  • shop : Modifies the shop view.

Important : warning when updating your theme

It is strongly advised to work on a child theme in order not to lose your modifications style when updating the theme.

A child theme is a theme based on your parent theme. It takes over all its features without ever modifying it. This way you can make changes to your child theme and if you update the parent, you won’t lose them!

Any file placed in the child theme with the same name as in the parent theme will take over and overwrite the original file (exceptfunctions.php).

Use with a cache plugin

If you use a cache plugin such as Comet Cache and the image proxy function, the images from Ticketack are optimized for the browser and can be converted into WebP format, which is not supported by some browsers. It is therefore necessary to configure your cache plugin to generate a version of the pages for browsers that support this format and a version for those that do not.

Example configuration for Comet Cache Pro:

Create a Dynamic Version Salt For Comet Cache :

(strpos( $_SERVER[‘HTTP_ACCEPT’], ‘image/webp’ ) !== false ? ‘webp’ : ”)

2 The layout corresponds to the display of the program either by “events” or by “screenings” (events = films, screenings = sessions)

3 If the template is grid or gallery, then we specify the width of a column with item_width by dividing 12 by the number of columns we want.

4 If nb_days is provided and max_start_at is not provided, max_start_at will be calculated from min_start_at + nb_days.

Was this article helpful?

Related Articles

Go to Top