Add players to a tournament in bulk via email.

Version 3.18 Released

Tournamatch version 3.18 is now available.


  • New admin bulk registration
  • New leave ladder option for users
  • Edit profile password fields
  • FontAwesome upgraded to 5
  • Numerous bug fixes

New Admin Bulk Registration

You may now populate tournaments in bulk from a list of email addresses using the new admin bulk registration feature. This is a tremendously helpful feature for admins running fully-managed events. We should have a comprehensive guide for setting up this type of solution in the days to come.

New Leave Ladder Option for Users

When enabled, users may now leave a ladder. A user would previously have to request an admin to remove them from a ladder. Keep in mind that this will erase any ladder standings data associated with this user. Allowing users to leave may result in standings reset abuse; however, we added this feature anyways at the request of many customers. The option is disabled by default.

Edit Profile Password Fields

Users now never need to touch the WordPress user dashboard. One of the best parts about WordPress is how easy it is to completely transform the appearance of a website using templates. Unfortunately, templates don’t typically touch the WordPress Dashboard section. Before version 3.18, a user would previously have to leave the “styled” website and visit the user dashboard to reset his or her password. This is no longer necessary because edit profile screen now also includes the edit password field.

FontAwesome Upgraded to 5

Front end screens now use FontAwesome 5. FontAwesome 5 supports thousands more icons than version 4, including countless brand icons. This change should be mostly transparent to your community. The biggest immediate advantage is that site admins now have more branded icons for custom player profile icons.

Bug Fixes

A big part of this release was focused on bug fixing. Tournamatch should work as expected – better than it ever has! Please open a support ticket or shoot us an email if you ever run into any issues.

How to Filter Email Messages

Tournamatch sends out dozens of email notifications for activities and events. Competitors receive an email notification when a match report needs to be confirmed, when a tournament starts, for team membership requests, and many more. In some cases, you may wish to limit the emails sent to users. This article demonstrates a short snippet of code to filter out email messages sent by Tournamatch.

Depending on your use case for Tournamatch, you may wish to prevent certain emails from hitting a users inbox. For example, suppose you want to run everything manually or you don’t want users to attempt to confirm matches. Or maybe you want to send out a different tournament announcement email when your event starts. By applying a filter to the hook trn_core_email_message, you may remove any message from the list of messages supported. Here’s a sample snippet below using the Code Snippets plugin we reviewed in our How to Extend a Plugin in WordPress with a Filter Hook blog:

Filter email messages to users.
Filter email messages to users.

Once this code is saved and activated, email messages for ‘tournament_started’ and ‘tournament_match_set’ will no longer go out to competitors. Check out our email messages filter documentation for a complete list of all email messages currently supported. Using this feature requires at least version 3.17 of Tournamatch.

Version 3.17 Released

Tournamatch version 3.17 is now available.


  • Clone ladder and tournament events
  • Host Tournamatch as a child page
  • Full Admin i18n
  • New options and filters

Clone Ladder and Tournament Events

Creators of multi-region events rejoice! You can clone an existing ladder or tournament which will create a new event with an edited titled and the exact same settings as the event cloned. The icon to accomplish this is located in the all ladder/all tournament screen.

Clone ladder or tournament link.

Clone ladder or tournament link.

Host Tournamatch as a Child page

Hosting Tournamatch in a child directory (child page) is now possible and works as expected. There is no additional setting to use this feature. Tournamatch now correctly determines the correct URL path and behaves as expected. Hooray for ‘just works’!

Full Admin i18n

The administrative section in Tournamatch is now fully internationalization (i18n) compatible. An updated .pot file has also been included for your localization (l10n) pleasure.

New Options and Filters

There is a new option to disable the extra double elimination match for tournaments in version 3.17. When the winner of the winner’s side faces off against the top seeded player from the loser’s bracket, a win for the first seed ends the tournament. If the first seed loses, then an extra match is necessary to determine the winner because this is that competitors first loss. This new option will disable that match for those that wish to do so.

In addition, you may also now filter the email messages Tournamatch sends to users and admins. A complete list of messages may be found here and steps to add a filter are here.

Player Profile Social Icons

In the version 3.16 update, we introduced the ability to filter social icons in player profiles. Social icons are the linkable icons that appear in the screenshot below:

Steam icon available after snippet.

By default, Tournamatch supports Facebook, Homepage, Twitch, Twitter, and YouTube. These social icon fields appear as configurable options to your users when he or she edits their player profile:

You may modify the social icons available to your users by adding extending Tournamatch with custom code which filters the default list. Filtering this list is easy, and you should read how to extend a plugin in WordPress if you have never done so before.

A social icon in Tournamatch requires three fields: display_name, icon, and input_type. The display_name is the pretty name displayed to the user when editing his or her profile, the icon field is the name of the FontAwesome icon which will be displayed linkable in the public profile, and the input_type is text. You can look up any applicable social media icon on this page under the brand section.

In the screenshot below, the sample code adds the social media icons Instagram and Steam to the default list. Pay special attention to the function array_merge. Using this adds your icons to the list of defaults already given.

Custom Player Profile Social Icons Code

Add a filter for ‘trn_player_social_icon_fields’ to modify the social icons displayed to the user.

How to Extend a Plugin in WordPress with a Filter Hook

Extending a plugin in WordPress may seem foreign if you have never done so; however, it is actually a simple task for most filter hooks. What is a filter hook? A filter hook is just the technical way of saying, “Here is some content we will display to the user or save to the database.” The most important thing to consider when writing your own filter hook is where you add this code. If you add this code in the wrong place, an update to WordPress or the plugin you are extending may overwrite your edit. You should strive to keep your website as up-to-date as possible, and having an update overwrite your changes generally discourages updates. Three safe ways to extend a plugin in WordPress with a filter hook include using another plugin such as Code Snippets, by creating a custom plugin, or by creating a child theme. I recommend going the first route which is detailed below.

Using a Filter Hook Plugin

The easiest way to extend a plugin is by using another plugin such as Code Snippets. This is the easiest method because it doesn’t require you to modify any code on the back end, use file transfer, or code editors. Code Snippets provides a simple GUI interface in your WordPress admin for managing action hooks, filter hooks, and custom shortcodes.

Using the player social icons filter we introduced in the Version 3.16 update as an example, here is how you would add a Steam icon to the existing set using Code Snippets:

1. Download and activate Code Snippets.
2. Paste the code into the box as pictured in the screenshot below.
3. Click save.

How to Extend a Plugin with Code Snippets

How to Extend a Plugin with Code Snippets

With this complete, players will now also see a steam icon in their player profile and a future WordPress or Tournamatch update shouldn’t affect your change.

Steam icon available after snippet.

Steam icon available after snippet.

Version 3.16 Released

Tournamatch version 3.16 is now available.


  • Custom player profile social icon fields.
  • Custom player profile text fields.
  • Online Statistics Widget
  • More Asynchronous behavior
  • Match table CSS

Custom Player and Player Social icon fields

What a long overdue but excited to finally have feature. In 3.16, it’s now possible to extend the available player profile fields your users may input for both the social icons and the text-displayed items. You can do this by hooking into two new WordPress filters. Using these two new filters allows you to make these customizations *without* losing your changes on subsequent updates. The plan is to expand upon this filter in the future with additional functionality, but the basics for simple text or social icons is set and shouldn’t change. We updated our documentation
to demonstrate how to extend both filters, so check it out.

Online Statistics Widget

New Online Statistics Widget

New Online Statistics Widget

A new widget which displays online user and visitor activity is now available. This neat little widget displays data about recently registered users, guest and registered user visitor information, and which users are currently online.

More Asynchronous Behavior

We continued our initiative to rewrite as many pages as possible to behave asynchronously. In this update, player profile, team profile, and competitor check were all updated. The end goal here is to reduce the amount of front end code and front end logic (outside of JavaScript) which will make it easier to template everything.

Match table CSS

Player and team profile match history now also includes table row CSS for wins and losses you may style. Using WordPress -> Customize Appearance -> Additional CSS, you can color the rows to indicate win, losses, and draws.

Use CSS to color wins, losses, or ties on player and team profile pages.

Use CSS to color wins, losses, or ties on player and team profile pages.

How to install Tournamatch via WordPress

One of the easiest ways to install Tournamatch is to use the WordPress dashboard. Using this feature requires that file uploads are enabled on your web host and also that the plugin you want to upload is less than the file upload limit. Tournamatch is only about 1.5 mb and the default for most hosts is 2 mb; so, you should be able to install Tournamatch from the dashboard. After downloading the plugin and logging in to your admin, follow the steps below to install:

Navigate to plugins and click Add New.

Click the Add New button to install a new plugin.

Click the Add New button to install a new plugin.

Click Upload Plugin.

Click the upload plugin button to install a new plugin.

Click the upload plugin button to install a new plugin.

Click Choose File to select the file you downloaded, and then click Install Now.

Browse for to select the file and then click Install Now.

Browse for to select the file and then click Install Now.

Once uploaded, you still need to activate the plugin. Navigate to the list of plugins, find Tournamatch in the list, and click the Activate link.
Click activate in the WordPress plugins section.


Ladder Rung-Up Ranking

Tournamatch comes with three different algorithms for ranking competitors on a ladder. The points and ELO ranking are common and straight-forward to understand. The third algorithm is proprietary to Tournamatch and offers you a unique ranking method. It’s also quite easy to understand. Unlike Points and ELO, a competitor is never penalized for losing a match. At the end of a match, if the winner is ranked lower than the loser, the winner will move up closer in ranking to the person that lost. Checkout these examples below:

No change in ranking

Player2 defeated Player7. The winner of the match is ranked higher than the loser, so logically we expected this outcome. No positions change as a result of this match.

Winner moves up

Player8 defeated Player3. The winner of the match is ranked lower than the loser, so this competitor moves up.

The exact number of positions the winner moves up is dependent on the difference between the two rankings, rounded down. So in our second example above, the winner moved up to spot 5 ((3 + 8) / 2 = 5.5, so 5).

The reason we don’t penalize the winner by dropping him in ranking is because we want to encourage play. One of the biggest challenges to hosting your own league is activity. If you get traction and a lot of matches, the last thing you want is for ranked competitors to sit idle to maintain their position (main issue with ELO rating). The only way a competitor can lose his position is by inactivity – somebody else in an unrelated match will leapfrog him.

Similar to ELO, this method has the advantage that the bigger the challenge (competing against a higher player), the bigger the jump up.The main disadvantage to this method is dodging matches. The best solution to dodging matches is to enable blind challenges. Competitors won’t get to see who they play until a challenge is accepted.

How to Update Tournamatch

In this post, I’ll walk you through the process of updating Tournamatch to use the latest version. This assumes that you already have Tournamatch installed. If not, you should first head over to our how to install Tournamatch guide and come back when we have an update available (we push 1 – 2 of those per month).

For those already enjoying the benefits of running your own eSports league, follow along below and I’ll guide you through the epic quest titled “Updating a WordPress plugin”:

  1. Navigate to your Admin Dashboard and click Updates.

    Navigate to the Dashboard -> Update link in the WordPress Admin.

    Navigate to the Dashboard -> Update link in the WordPress Admin.

  2. Scroll down to the plugin section and click the “Update Now” button within the Tournamatch section.

    Click the Update Now link within the Tournamatch section.

    Click the Update Now link within the Tournamatch section.

You’re done. Seriously. If you don’t see the Tournamatch section and an option to upgrade, you’re either running the latest version already or you haven’t yet installed the best WordPress plugin for hosting ladders and tournaments.

Ladder Standings Widget

Today, we’re going to talk about widgets. What is a widget? A widget is additional content or feature-specific code you can add to your sidebar. If you don’t know how to install a widget, you can learn more here.

Tournamatch ships with a Ladder Top X widget which allows you to display the top X number of competitors (players or teams) competing in a given ladder. It accepts two parameters. The first parameter is the number id of the ladder to display. The second parameter is the number of competitors to display. In the screenshot below, we’ve configured our widget to display the top 3 players for the ladder “” which has an id 1.

How to configure leader board widget.

How to configure leader board widget.

And here is what that looks like on the main page:

Ladder Top 5 Widget

Ladder Top 5 Widget displayed on the homepage.

To get the id of a ladder, simply visit the ladder standings page and look for the id in the URL address bar.

You can also use a widget more than once configuring it differently each time. For example, we’ve set up two instances of the Ladder Top X widget and we’re displaying the top 5 in one ladder and the top 6 in another:

Using multiple widgets.

Using multiple widgets.