plugin for WordPress

This is the documentation of the BetPress plugin. Couldn't start more boring!

Just to say we tried to cover all of the plugin's features buuut...

... feel free to contact us if we miss something :)


Note that this documentation was written to cover the features of the full version.

If you use the Lite version there are features here that you can not access.

Quick introduction

BetPress adds a "game" to your website where your users can place betting slips and compete against each others. The plugin follows this workflow: 

  1. You (the admin of the game) adds bettings
  2. Your users (the users of the game) are placing bets (they are not forced thought)
  3. You mark which bettings are winning
  4. The system checks all users' slips and calculate their points


Terms and phrases

There are some specific for this plugin phrases that you should know:

In this documentation you can find "the system", "the software" or something similar, all such words and phrases refers to "the BetPress plugin".


Main features

  • Semi-automated: you don't need to manually insert bettings.
  • Monetized*: you can sell points via PayPal
  • Customizable: over 15 settings about the game, over 25 color settings, 5 shortcodes, 2 widgets.
  • Three odd types supported: decimal (Europe), fractional (UK) and moneyline (USA)
  • Translation ready
  • WPML compatible
  • Responsive
  • Supported


*The software gives you the opportunity to sell points via PayPal but it's up to you to use this feature or not. In some countries selling virtual points which are used for bettings may be illegal so we highly recommend consulting with a lawyer. We, the software developers, are NOT responsible for any actions took by the people who use the software.


About BetPress

The main idea of the plugin is to add a fun game to your website where users compete against each other guessing the outcome of different events. It simulates the very basic functionality of a bookmaker's website (like bwin, bet365, betfair etc) where bets are not made with real money but a virtual points.

To make a bet, you have to create a slip having at least one bet option in it. The possible winnings of a slip are calculated by multiplying the odds of every bet option in it by the stake the user made.


How slips are handled

Every slip has one of the following statuses:

The "unsubmitted" slip is what is shown in the BetPress Slip widget and there can be only one "unsubmitted" slip. If a user exits your website his slip will still be saved so he can submit it the next time he log in. Non-registered users can't have slips, they will get message to log in or register if they try to add betting option to their slip.

When a user submit his "unsubmitted" slip, that slip change its status to "awaiting" which means it waits for its bet options' results.

If all its bet options are winning, then the slip will change its status to "winning".

If one of its bet options is canceled, then the slip will change its status to "canceled".

If there is at least one losing bet option and there are no canceled bet options, the slip is changing its status to "losing".

"Timed out" status is like the "canceled" status but has a specific purpose. When you open a new leaderboard, the system checks all slips and after the check all slips with status "awaiting" are changed to "timed out". This is to prevent the users from winning points from slips which were submitted during the previous leaderboard.

Note: a user can't edit or delete submitted slip even if all its bet options are still with status "awaiting".

Note: a user can't have two awaiting slips containing the exact same bet options.


Bet options' statuses

Bet options have the same statuses except for both "unsubmitted" and "timed out". It's kinda obvious and hard for explaining what every status means so we will skip this.

The default status is "awaiting" and you have to change it to "winning", "losing" or "canceled". We recommend to check all awaiting slips when you change some bet option's status from "awaiting" to something else.

If you've changed a bet option's status to wrong one and you checked the awaiting slips, it's a must to check all slips (via Admin Dashboard -> BetPress -> Manual actions tab) right after you changed back the status to the correct one. Why should you do this? Let's say I have awaiting slip containing only one bet option (or many bet options that are winning and that last one with status awaiting). Now if you change the status of that option to winning and update all the slips, my slip is ending up "winning" and my points are increased by the amount of that slip's possible winnings. And that's something you don't want to happen if that bet option status is actually losing and you updated it by mistake to winning. So now you can update its status to "losing" and update the awaiting slips but this will change nothing because my slip is already marked "winning". But if you check all slips (via Admin Dashboard -> BetPress -> Manual actions tab) then my slip will also be checked and its status is going to change to "losing" and my points will be reduced.

Plugin requirements:

BetPress may not work if you made changes in core WordPress database table designs or if you use another database (fe MariaDB).



There is nothing specific for BetPress when you are installing it. You have two ways of doing it:

Don't forget to activate it.



To update to a newer version you have to follow three simple steps. But before that, backup your files and database! Why? Because if something goes wrong, you can place them back by the time we are solving the problem.



To upgrade from BetPress Lite to the full version you should do the same as "Updating". See the paragraph above.



In the 'lang' folder there are BetPress.po and files. Open the BetPress.po with your favourite editor (Poedit is recommended), translate to your language and save the file with the name BetPress-xx_XX where xx is the abbreviation of the language (fe BetPress-fr_FR if you are translating to French). Your editor will create .po and .mo files and you only have to place these to in the lang folder.

Setting up the plugin:

    1. Download, install and activate the BetPress plugin
    2. (Optional) Go to BetPress -> BetPress and take a look at all the settings under the "Game settings", "General settings" and "Colors" tabs. And of course feel free to change them according to your needs.
    3. Go to Appearance -> Widgets and drag the BetPress Slip widget to a widget area that is visible on your pages
    4. Go to BetPress -> Leaderboards and open a new leaderboard. Or you may just rename the auto-generated leaderboard if you haven't change the "Starting points" setting.

If you are going to sell points, you have to setup the PayPal settings:

    1. Log in into your PayPal account and upgrade it to Business if it is not already.
    2. Go to Profile -> Profile and settings -> My selling tools
    3. Find Website preferences (probably the 5th row top to bottom) and click Update
    4. Make sure Auto Return is On, Return URL is where you want your users to go after they make the payment and Payment Data Transfer is also On
    5. Copy the Identity Token, click Save and go to your Admin dashboard -> BetPress
    6. Paste into PayPal token field
    7. Make sure the PayPal mail is your actual PayPal mail because by default it is your admin mail.
    8. On Return URL enter the URL of the page where you use the shortcode [betpress_buy_points]
    9. In most cases you will enter the same URL for Return URL if cancelled
    10. Click Save Changes button and that's it :)

Workflow overview:

    1. Go to BetPress -> Bettings and you will see the plugin has already auto-inserted some up-to-date data for you. Click "Manage event" on an event of your choice.
    2. Now you see the bet events for that event. Click "activate" on a bet event of your choice. This will show* the bet event on the front-end meaning your users will now see it and they can place bets for that bet event.
    3. After the bet event is actually played and you know the outcome, click "Modify bet options" and edit the bet options changing their status**. You will notice that when you change the status, the system auto check the "Update the awaiting slips?" checkbox and this is how you tell the system to calculate your users' points.
    4. That's it - these are the three steps you have to repeat for every bet event you want to support :)

* If you activated the bet event but it doesn't show on your Bettings page please check the Starts date of the event. If it's in the past just edit the bet event changing the Starts date. Also keep in mind that the "Close bets earlier" setting under the "Game settings" tab has an effect of the Starts date.

** If "Only one winning bet option per category?" setting under the "General settings" tab is checked (as it is by default) you can change the status only to the winning bet options and the system will auto-change the others bet options statuses to "losing".

Questions you may asked yourself:

How do I add other bettings?
You can manually add other bettings or you can go to BetPress -> Auto insert data and select the bettings you want to auto-add.

So after the bet event is played, I have to manually go inside all the events and see which bet events are played one by one?
No! There is a widget placed in the Admin Dashboard page called BetPress and it contains shortcuts to the started bet events.

How do I understand the outcome of the bet events?
It's all on you! Use your favourite sports news website or any other 3rd party source you can trust.

When the plugin is activated you can see the BetPress menu appear in the Admin Dashboard. It has several subpages.


BetPress page

This is where all the settings are stored under different tabs. All the settings that can confuse you in any way are hinted so you should have no problems understanding them.

The plugin use cookie to remember the last tab you clicked so when you go back to this page you will see the latest tab you used.


Bettings page

This is where Sports, Events, Bet events, Categories and Bet options are stored separated in three pages: one for sports and events, one for bet events, and the last one is for bet options and categories. All these pages uses the same action buttons and you can find the "Legend" at the bottom of the page.

By default you start in Sports & Events page where its obvious what you control.

To go "inside" specific event click the "Manage event" button. Now you are in the Bet events page. What you may already noticed as difference are "Active?" and "Featured?" columns. Your users will see only activated bet events, and if they are in the "Featured" page they will see only bet events that are both activated and featured.

To go "inside" specific bet event click the "Modify bet options" button. Now you are in the Bet options page. What's most important here is the "status" column. When you change the status of a bet option, it's highly recommended to tick the "Update awaiting slips?" checkbox. This will tell the system to check all users' awaiting slips. If you forgot to do this or you are not quite sure if you did, you can go to BetPress -> Manual actions -> click the "Check" button. If you changed to wrong status and forced the system to calculate the awaiting slips, then you can change again the status to the right one and go to BetPress -> Manual actions -> click the "Check all" button. Please make sure you use these two ONLY in the above explained specific cases. If you are doing everything right, you should never use the Manual actions. Another thing worth mentioning is that there are no problems if you decide to change the odd of bet option: all users who already used that option in a slip they've submitted will keep their odd and all the users who are going to submit a slip after your changes are going to use the new odd.

Note: When a bet option's status is changed to winning and the setting "Only one winning bet option per category?" is ticked, all other category's bet options are auto changed to losing.

Note: When a bet option's status is changed to canceled, all other bet event's bet options are auto changed to canceled.

Note: You can't add a bet event with past date but if you really have a good reason to do this, you can bypass the system by adding the bet event with some date in the future and then edit the bet event date. The system doesn't check for date in the past on purpose when you edit bet event.


Leaderboards page

This is where you control the leaderboards. When the plugin was activated a leaderboard was opened so you can just rename it or you can open a new one once you are done setting up the game.

Note: You can have ONLY ONE active leaderboard at a time. Opening new leaderboard will recalculate all slips, cause reset in all user's points and close the current active leaderboard.


PayPal log page

This is where you see a log of all your users attempts to buy points. You may want to take a look on it from time to time for suspicious actions.

Note: To implement the PayPal payments we used PDT which sends the data to you only once (when the user finished with his payment or canceled it). If by some reason your site is down at that exact same time, or the user connection went down exactly after he paid on PayPal, or another similar extraordinary event occurs, it is possible that you received the funds but the user did not receive the points. In case a user complains about situation like this, check your PayPal account because the log won't show anything.


Points log page

This is where you see a log of all your users points changes caused by actions different from playing slips.

Currently there are three ways a user's points can change (beside the standard way of justs playing slips): manually changed by admin, changed by buying points or changed by awarding for approved comment.


Auto insert data page

This is where you can add up-to-date bettings.

Note: The plugin currently gets the data from Betclic API but is developed in a way where the third party provider can be changed anytime and that won't force you to do anything, not even update of the plugin. In other words BetPress won't get broken if Betclic decide to restrict the access to their API.


Import/Export page

This is where you can import data from CSV files. The point of this feature is to save you the time you lose going across all the Bettings pages adding new sports, events, bet events, categories and bet options. Instead of that, you can just create a CSV file and import it. There is a sample file here you can see online and even download it. You import that file as "New data" and once the games are played, you just edit the file changing the last column to the right status and import the same file again as "Updating data". That's all!

Screen showing how to download the google spreadsheet example as CSV so you can directly import it: How to download as CSV

In the next version there will be an export feature which will generate CSV file with all the current data you have in your database.



This will display all your active bettings which deadline is not passed. The deadline is what you've selected for Starts date of the event minus the seconds you typed in the "Close bets earlier" option from Admin dashboard -> Bettings -> Game settings.


This shortcode accepts two arguments:

- sport - shows the bettings only for that specific sport. Fe [betpress_bettings sport="martial arts"]. The default value of this attribute is "all".

- toggle - that's the number of minimum required children to have a parent in order to adds the option to toggle the children. Fe [betpress_bettings toggle=3] will add the toggle (hide and show) option for all sports that has at least 3 events. The default value of this attribute is 1.



This will display all your active and featured bettings which deadline is not passed but in simpler way: only the name of the bet event is displayed alongside with the bet options of the very first category.

Note: this is designed to be used for 1, Draw, 2 or 1, 2 bet options. Long texts or lots of bet options may not look good here.

This shortcode accepts four arguments:

- heading - set to "yes" and you will have heading row above all the featured options. Fe [betpress_featured heading=yes]. The default value of this attribute is "no".

- border - set to "no" to disable the borders between bet options. Fe [betpress_featured border=no]. The default value of this attribute is "yes".

- sort_col - this is the criteria to sort the bettings and it accept three possible values: deadline, name and event. Fe [betpress_featured sort_col=name]. The default value of this attribute is "deadline".

- sort_met - this is the direction of sorting and it accept two possible values: asc and desc (from ascending and descending). Fe [betpress_featured sort_col=name sort_met=desc]. The default value of this attribute is "asc".


This will display every user his own slips.

This shortcode accepts four arguments: - awaiting - - winning - - losing - - canceled - - timed_out

All the arguments' default value is "yes". Fe if you want to show only the awaiting slips you can use [betpress_slips winning=no losing=no canceled=no timed_out=no]



This will display a leaderboard of your choice.

This shortcode accepts three arguments:

- leaderboard - set to the name of a specific leaderboard. The default value of this attribute is "active".

- rows - set to the number of results you want to show per page. The default value of this attribute is 10.

- top - set to the number of first X positions you want to show only. Fe to show only Top 15 players of the current active leaderboard you can use [betpress_leaderboards top=15]. This attribute will overwrite the attribute 'rows' but these two attributes are not developed to be used together so avoid doing this.

Note: The leaderboard shows only the users that had at least one submitted betting slip.



This will give to your users the opportunity to buy points via PayPal. The user has one hour to make the payment after he has been redirected to the PayPal website. If he paid after that one hour, then the system won't recognize his payment and you will have to check your PayPal account.

This shortcode accepts seven arguments:

- default_quantity - set to the number of points the user sees when he visit the page. The default value of this attribute is "10".

- ratio - set to a number you will multiple by the price to get the points amount. The default value of this attribute is "10".

- min_points - set to the minimum number of points that can be bought. The default value of this attribute is "1".

- max_points - set to the maximum number of points that can be bought. The default value of this attribute is "50".

- currency - set the currency (make sure PayPal support that currency). The default value of this attribute is "USD".

- points_name - this is what the user will see in PayPal right after the amount of points. The default value of this attribute is "points".

- code - this is what the user will see in PayPal as "Item number". The default value of this attribute is "P01".

BetPress Slip

This widget shows the user his "unsubmitted" slip. This is also the place where you can show the user his current points.

A bet option is added to the slip by simply clicking on it. Of course you need the [betpress_bettings] or [betpress_featured] to display the bettings first. The user has the option to delete a bet option before he submit his slip. If there are some errors (fe a user tries to add the same bet option twice) an error message will be displayed above all the bet options in the slip. In case more than one error occurs then all of them will be displayed at once.

Note: Non-registered users will see the widget but will get error to log in or register when they try to add a bet option to the slip.


BetPress Odd Type Switcher

This widget gives your users the opportunity to see the bet odds in their preferred odd type. Currently three odd types are supported:

How the system understand each user preferred type:

  1. By default the system shows what you've selected in Admin Dashboard -> BetPress -> General.
  2. If it's non-registered user the system remembers user's choice using cookie. If no cookie is found, the system shows what you've selected for default.
  3. If it's registered user the system remembers user's choice using the database. If no records are found, the system will try to find a cookie before showing what you've selected for default.



For the Lite version support is provided in the official WordPress forums. For the full version contact us via mail: office at web-able dot com

If you are contacting us via mail, it can be not only for problems but also for questions, feedback, comments or just for fun :)

Customization is not included in the support. We no longer provide free help for small issues that are not included in the support.

We are currently available for more complicated paid customization but we can change our availability status anytime.


Thank you

Thank you for using our software, thank you for the effort and time you put reading this documentation, it was hard time writing it thought (phew)

See you and love you, peace! :)