The Two Minute Setup Guide

Since I started the wp-SwimTeam WordPress plugin four years ago, a complete “how-to” guide has been on my list yet it always seems to fall below the cut line due to new features that our team needs or that I want to add.  Anything our team needs is always at the top of my list!  I have set up a Wiki but have yet to sit down and add content to it.  Until I do, here is a two minute overview of what you need to do in order to  use the wp-SwimTeam plugin.

  1. Download and install phpHtmlLib.  The wp-SwimTeam plugin requires this plugin so this is where you start.  Once downloaded and activated you won’t see anything new in your WordPress installation but this plugin provides the infrastructure wp-SwimTeam uses for forms and displaying much of its information.
  2. Download and install wp-SwimTeam.  Make sure phpHtmlLib is activated prior to activating wp-SwimTeam or you will get an error and wp-SwimTeam will not activate.
  3. Set up wp-SwimTeam:  There are a series of taps on the SwimTeam->Options menu.  Move through them from left to right using information relevant to your swim team.
  4. Once all of your options are configured, switch to the Swim Team Management menu.
    • Set up your Age Groups.
    • Set up your Swim Season.  Make sure you activate once it is set up.  To activate it, use the “Update” action.
    • Set up the Swim Clubs you will compete against.
    • Set up Event Groups and Events.
    • Set up the Swim Meets on your schedule.
    • Add or Import events for each swim meet.
    • Set up some sample jobs if you plan to use the Volunteer module.
    • Allocate jobs to the Season or Swim Meet as appropriate.
  5. Open up User registration.
  6. Open up Swimmer registration or register swimmers yourself.

These are the basic steps that will need to completed in one form or fashion in order to make the plugin usable.  Many of them can be incomplete (e.g. you don’t need all of your swim meets entered) to determine if wp-SwimTeam will meet the needs of your team.

Play with the Reports, Job Sign Up process, and the Opt-In/Opt-Out (aka Register/Scratch) process to get an idea of how the system works.  Export your roster to Excel or SDIF to get an idea of what data you have available to you.

Post questions and I’ll do my best to answer them!

50 thoughts on “The Two Minute Setup Guide

  1. Pingback: wp-SwimTeam » Two Minute Setup Guide

  2. I am the membership director for my swim & tennis club and am responsible for getting all of our members registered each spring for the upcoming summer season. Part of my responsibilities also include working with the swim/dive/tennis directors to get kids registered for said teams and our swim team is required by our league to use Hy-Tek program. Don’t even get me started on that bit of frustration…

    Right now, we are using a 3rd party (GroupNet Solutions, formerly YouthLeaguesUSA) to handle all of our club registration needs as well as team registration. However, because of Hy-Tek’s ridiculous proprietary limitations, we find it very difficult to manage the whole process. I am seriously interested in learning more about your wp-SwimTeam plugin for WP to see if it could be adapted for expanded use as described above.

    Incidentally, I am also responsible for creating and managing our website ( which I built using WP. So, obviously, I can hardly contain myself at the prospect of using your plugin instead of dealing with the 3rd party (time and expense) and being able to import/export with Hy-Tek. Would that indeed be possible with your plugin?

    Please contact me via email so that we may discuss the idea of you developing such a system for our needs.

    Thank you,
    Matt Moran

    • In a nutshell – yes, I am pretty sure it can solve your problem. I have just started adding Hy-tek support this season and can successfully import a roster into Team Manager. Now that I have a basic roster working, I am going to add more details (more records). After that I plan to enhance the Entries Export to generate a HY3 file in addition to the SDIF file it currently generates.

      If you’d like, I can set up an account on my demo site ( for you to play with. It will give you the general idea of how things work. I have sent you an e-mail as well for further discussion.

  3. I too am in the same predicament as Matt in Australia. I am very new to swimming as my daughter is a competitor, so am trying to understand the whole process. I work in IT and so am looking at improving the way the club operates and to help the registrar. We too have Meet Manager and Team Manager. Our club has no website as yet so this is probably a good time to look at functionality with the new website.

    • Let me know where you’re stuck and I’ll be happy to help you out. If you would like access to the Demo site to poke around, I’d be happy to set that up. It will give you a pretty good idea of how the system works without having to completely configure WordPress from the ground up.

  4. @Mike Walsh
    Yes could I have access to the demo site. This would allow me to see the features.

  5. Hi, could you also let me have a look around the demo site as I’ve been playing with our site with your plugin and I need to have more of an idea of how to do it correctly.

    Also since applying the updates, I now get the following message when in the swim team management

    Fatal error: func_get_args(): Can’t be used as a function parameter in /home/content/58/9721958/html/wp-content/plugins/phphtmllib/form/form_elements/ on line 71

  6. Its hostedon godady, but I’m not sure what php it is running, but I’ll have a look.

    Also is there any way of recording swimmers PB’s?

    • All of my sites except one are hosted on GoDaddy as well. It is a a PHP5.3.x vs PHP5.2.x issue, I just validated it on the Demo site. Doh! Sorry about that, I was pretty sure I had validated that syntax previously. Unfortunately it makes the solution to that problem a little more challenging to fix.

      Regarding Personal Bests, right now there isn’t any way to import results hence nothing for Personals Bests either. I have a prototype of some code I was working on about a year ago to handle results, you can see the basic workings of it at My plan was to roll this functionality into wp-SwimTeam but I just haven’t gotten to it yet.

  7. Yeah, this plugin fails like the rest that overpromise.
    All teams want is a calendar, a list of members, and accounting (pay online, view invoices, maybe donate. Paypal $hit.). That’s it.
    You demo looks like someone puked on my screen.
    KISS it.

    • Thanks for the feedback, I take it you don’t care for my plugin. That is fine, you are certainly entitled to your opinion, there is no need to use it if it isn’t a good fit for your team. There are very good plugins for many of the things you mentioned and there is zero reason to reinvent the wheel (e.g. our Swim Team uses Google Calendar so we use the Google Calendar Events plugin on our web site) for Calendar and Payment, and PayPal.

      Quite a few other teams disagree with you and are looking for swim team and swim meet logistics (registration, volunteers, meet management, etc.) and think the functionality provided for free by wp-SwimTeam is more than adequate for their needs. Solving the problem of getting information from a web based registration database into the various Swim Team and Meet Management tools (e.g. Hy-tek, WinSwim, and others) is the primary objective for wp-SwimTeam. Everything else that has been added over the years has come at the request of a real swim team (either the one my children swim for or from another team using wp-SwimTeam).

      Is it perfect? Nope. There are a million things I could and would do differently if I started it again. But this is a hobby project that I do in my spare time. It solves some swim team problems but not all of them. Some of the GUI is a little clunky and could be improved. But it works and saves us a ton of time so we’ll continue to use it.

  8. Hi Mike,

    which Paypal plug in does you teams website use as we would like to use paypal to collect membership and Gala fees?


    • Rob –

      I can’t really help you with this one because our team falls under a Country Club umbrella so the swim team doesn’t actually collect or manage any money. All of the billing and other financial stuff is handled through member accounts by the Club’s Accounting Department. Accounting has access to the swim team site and simply downloads the active roster and bills the families accordingly. The swim team has a budget and when we need to purchase something, the Club buys it and debits against the swim team budget.

      That said, I have been looking at eCommerce solutions for our Middle School Athletics Boosters Club and I am planning to use WooCommerce for the Spirit Wear we sell and it supports PayPal (and others). I am not sure if it would work your needs or not. Unfortunately there are a lot of PayPal plugins in the WordPress repository and it takes a while to go through them all.


  9. Hi Mike,

    I am having real trouble with the “manage events”:-

    I have created multiple event groups but when I try and add events in the event groups through manage events it brings up the first one i created rather than the one I am trying to add to.

    Also I can’t delete event groups as I receive the following error Fatal error: Call to undefined method SwimTeamEventGroup::loadEventGroupByEventGroupId() in /home/content/58/9721958/html/wp-content/plugins/wp-swimteam/class/events.class.php on line 970

    Any ideas?

    • I will have to look into it and get back to you.

    • I have replicated the problems you’re describing:

      1. When adding Events, the Event Group isn’t initialized correctly however you can select the proper event group from drop down list and the event(s) you create will end up the correct event group.
      2. This is a bug. I’ll have to dig into the code to see if I handle Delete correctly. Deleting an event group could adversely affect a swim meet that had used it although I am pretty sure that once a set of events is loaded into a swim meet, any connection back to the event group is discarded.

      I’ll see if I can get an update posted in the next day or so. I also noticed that some of the forms are pushed way to the right on the Dashboard, that is also a problem I need to look at.

    • I have fixed the problems you reported and have released v1.37. See details here.

  10. I am trying to setup the swim team plug-in on a multi-site installation.

    It installs correctly and I am able to complete several of the options page, but when I click on the SIDF Profile it gives me a blank page. Most of the Manage pages give me a blank as well.

    In one of your other posts you mention this might have to do with a PHP error. Do you have to assist me? I can send login creditials by email correspondence.

    Thank you,

    • The last time I ran into what you are describing it was indeed a PHP version issue. Do you know what version of PHP you are running? The solution was an update to the phpHtmlLib library plugin. Are you running the latest version of the phpHtmlLib plugin? I would be happy to look at your site if you’d like, you can send me a login using my username (mpwalsh8) at GMail dot com.

    • Looks like I missed this a month ago when you posted it, I apologize. I think I have found the solution in chasing down this problem for another user. It has to do with a difference in how PHP method_exists() function behaves between different versions of PHP. I have an updated version of the phpHtmlLib plugin available if you’d like to try it out and see if it fixes your problem.

  11. Hi Mike,
    I am experiencing the same issues as Ricki illustrated above. Certain tabs, for example ‘Manage -> Roster’, do not display any content. I attempted to look through the code to find out what was going on and a simple ‘var_dump’ of ‘AdminRosterTabContainer’ shows quite a bit of data. I even manually inserted a season into the db with no luck.
    Certain tabs, all from the Options except for ‘SDIF Profile’ render as expected.

    This is a multi-site install of wordpress, the latest version of WP running php version: 5.3.13.

    Would love to use the plugin if possible. Any thoughts, suggestions?

    thanks in advance.

    • Is the phpHtmlLib plugin up to date? The last time I chased this down it was due to how different versions of PHP handled constructors and the problem was acually in phpHtmlLib and not in wp-SwimTeam. From the Manage menu – do any of the pages render (e.g. Age Groups)? From prior digging into this, my expectation is that none of the pages which contain the List Widget I use to display data from the database would work.

  12. Yes phpHtmlLib is up to date, Version

    From Manage Menu only the ‘Overview’ tab renders content.

    From Options Menu all tabs except for ‘SDIF Profile’ render content.

    From ‘Swim Team’ Menu the following tabs do not render content: My Swimmers, Swim Meets, Jobs, Swim Clubs and Users

    thanks again.

    • First, I must apologize for the delayed response. I try to get back to people as quickly as I can when they report a problem. Unfortunately this is a really busy time of year for me at work so I have’t had much time to work on any of my WordPress projects.

      I had a chance to look into what you are seeing and I cannot replicate it. I too am running PHP 5.3.13 in my development area. Do you know if you are running on a Windows or Lunux server? My development aeaa is a Windows server but I do have a Linux virtuaal machine I can also try although it will need some updates before I can use it as I haven’t used it in a while.

      Here are a couple things to try:

      • Turn off all other plugins besides phpHtmlLlib and wp-SwumTeam and see if the behavior persists.
      • Leaving phpHtmlLib and wp-SwimTeam enabled, wwitch to one of the default WordPress themes (e.g. Twenty Ten) and see if the behavior persists.
    • Kevin – thanks for providing access to your test server. I was able to find the problem and fix it in phpHtmlLib. The problem is with PHP’s method_exists() function. Apparently it behaves differently with different versions of PHP and with your instance of PHP 5.3.13, method_exists() goes out in the weeds when passed a string instead of an object. The solution is fairly simple and I have implemented it on your test server for you to test with. I plan to release a new version of phpHtmlLib sometime this weekend.

  13. Thanks Mike for the reply back. I have actually disabled all other plugins and defaulted to TwentyTen, even before initially contacting you, with no luck.

    I also have another single-site instance running on the same server, different install of WP. I installed both phpHtmlLib & WP-Swimteam with the same issues as mentioned above, so it appears to have nothing to do with Single vs multi-site mode. I’m sure that you have probably already validated that but thought I would deduce as much as I could.

    The server is linux. I could even setup a new instance of WP on this server with just the basics if that would help. I will be more than happy to throw in some debug code wherever if you can point me in the right direction.
    thanks again.

    • If you have a test server that you can provide me access to (WordPress Admin would be ideal, FTP so I can upload some debug code would be even better), I would be happy to look at it. It is a tedious process to figure out which class has a constructor that different versions of PHP seem to have an issue with. I expect to have some time over the next 2-3 days when I could look at this.

  14. Hi Mike. Thanks, I will set up a new WP instance tomorrow. Can you send me an email directly so that I can share the login credentials with you.
    thanks again.

  15. Also having trouble understanding team code where 1st two characters must match LSC code. We are in Gulf and my team code is SWAT according to the LSC website, but the tool gives errors…

    • Let me know where you’re seeing errors (post a screen shot to if you can) and I’ll take a look at it. Unless I made a typo, which has happened before, the LSC codes are simply pulled from the USA Swimming SDIF specification.

  16. Is there a short code for presenting a register form for parents and their children?

    • No there is not. The parents needs to register as a WordPress user on the site and then once logged in, the Swim Team registration process is available via the Dashboard.

  17. Are you able to import users/rosters from a hy-tek export? Trying to think of the easiest way to get users into the system without having to key everything in. We also use Hy-Tek Business Manager in conjunction with Team Manager. I’m assuming the exports will work for it as well.


    • I don’t have a direct Hy-tek Roster import. Adding a CSV import has been on my list of features to add for a while but it has always fallen below the cut line.

      When I first put up the wp-SwimTeam demo site I needed swimmers and parents to make the site reasonable – I didn’t want to use real data from a swim team. I wrote a very simple WordPress plugin that generated random families and swimmers and registered them with the Demo database. The code for that plugin, while a bit dated, can be found here on SourceForge. If you have a bit of PHP coding skill, it wouldn’t be to difficult to code a simple WordPress plugin that added all of your swimmers to the database in a fashion similar to what I did for the demo site. The code I wrote couldn’t be used directly but it would give you an idea of what needed to be done.

      The problem with Import is data quality is unpredictable. Reading a Hy-tek file does provide some level of guarantee of data quality as opposed to a generic CSV file. Hy-tek produces numerous files, which one do you think would be best for import purposes? With all of the work I did on Hy-tek entries support last summer, I am not opposed to looking into it to see how much work it would be to add it to wp-SwimTeam.

  18. Hi

    Could you give me a admin login for the demo site (it says I need an invitation code). Your plugin looks great – I run the website for a Swimming Club in London, England, and we’re getting to grips with ways to handle Gala entries online.


    Tom Ruppel

  19. Hi –

    I’m very interested in using this plugin for our swim club, but I must have no clue what I’m doing, because I’m unable to get anything to work.

    How can you add this to an existing WordPress page? We have a page for the whole pool, not just the swim team. Thanks for any help you can give.

    K. Thomas

    • The plugin would work as part of your WordPress site. If you have swim team specific pages, you would add the appropriated short codes to the page or pages which fall under the swim team section of your web site. All of the content is entered via the Dashboard interface and your users (usually parents) will interact with the site to manage their swimmers, sign up for jobs, etc. via the Dashboard as well.

      If you poke around the Demo Site you will see the syntax for the various short codes as part of the content on the various posts and pages.

  20. How can I setup an age group for a mixed (coed) relay?

    • That is a good question – we don’t support mixed gender relays in our local swim league an no one has ever asked about it. Let me take a look. I think the basic hooks are there because as I recall off the top of my head, SDIF has some support for mixed gender events.

    • I just took a look at the SDIF specification and it supports mixed gender (co-ed) events. However, I don’t have anything currently set up to support co-ed events. I’ll need to make some changes. Because of how I define age groups, I need to decide whether co-ed is a new type of age group or if I should have a setting to enable co-ed events. I will need to poke through the code to see which is a better solution which I’ll try and do this weekend.

  21. A couple of things
    1) Any way to make the dashboard available in a page?
    2) Can you turn off certain things so they are not visible to the normal user, like team roster and profiles?
    3) Is it possible to not have all things required when updating profile or swimmer?

    We have some very private members and allowing others to view some of the content is not going to be acceptable.

    • Sorry for the delayed response, I’ve been away for a few days and am working backwards through my email (which is a mistake …)

      1. No. The Dashboard for wp-SwimTeam is part of the WordPress Dashboard and there is no way to separate it so it can be displayed on the front end of the web site. I supposed it would technically be possible but it would be a lot of work. It would be easier to “theme” your Dashboard to it more closely resembles your WordPress site. There are some plugins and themes that help with Dashboard themes.
      2. By default, and on purpose, the roster is visible to everyone who is part of the swim team. That is pretty standard protocol with just about any your sports team I’ve been involved with and with four kids, we’ve been involved in lots of them! Profiles however can be made private so the details for a person (e.g. their contact information – address, phone number, email address, etc.) are not generally visible. Only users with Admin or Editor permissions would be able to see their contact information.
      3. The fields that are noted as required are ones which I set up initially. Without this basic information I am not sure how you’d be able to contact a swimmers parent and/or guardian. The plugin does not currently support changing whether or not fields are required.

      If you have extremely sensitive members I would suggest doing one of the following:

      1. Register their swimmers as what I call “orphans” by registering them under the admin (or another user created for this purpose).
      2. Have the extremely sensitive member use a made up address and/or phone number. I have a lot of test information which uses the address of th Munster House (from the TV show – 1313 Mockingbird Lane) and old stand by phone number of NNN-555-1212 (where NNN is your area code) which is nothing more than the long form phone number for directory assistance.
      3. As for email – you need a real email address. If you have a Gmail account for your team, you can use the ability to append the address with a “+” and an identified (e.g. to use the same Gmail account for multiple WordPress user accounts. It is an elegant work-around for the need for WordPress account email addresses to be unique.

      Hope that helps!

  22. Can this be used to manage a track team?

    • There is a lot of terminology that is common between Track and Swimming (e.g. heats, events, etc.) so there is probably quite a bit which would map very easily. However, there are quite a few places where the terms “swim” and/or “swim team” are coded into the plugin. Same is true for “swimmers”. Is it possible to use it as is to manage a track team? Sure, although some users might find it confusing. Would it be possible to write a script that goes through the source code and changes all of the “swim” strings to “track” and all of the “swimmer” strings to “athlete”? Absolutely and I don’t think that would be too hard to do either.

      I know Hy-tek sells a version of their software for Track and Field although I have no idea how different it is from their swimming software. They might even use the same checksum algorithm!

  23. Hi Can I get an invite code please

    • Yes – sorry for the delay. My web site was having an email issue which was preventing WordPress from emailing user account information and also causing me not to see comment notifications. Finally sorted it out with my ISP. Is this something you’re still interested in looking at?

Leave a Reply