Table of Contents

What can you do with your Event Ticket with Ticket Scanner for WooCommerce plugin?

Need help selling your tickets on WooCommerce? Don’t worry; we got you! You can now sell your event tickets with our WooCommerce Plugin. Once the plugin has been integrated, the tickets can be sold immediately without any further catch. Additionally, it comes with a Ticket Scanner, using which you can scan the tickets and redeem them directly at the entrance or whenever you like!

The plugin has two components: the Event Ticket and a Ticket Scanner. The Event Ticket assists you in selling tickets for your event. This is where you assign a product ticket list and fill in the relevant information regarding your tickets, which is all you need to get started. The Ticket Scanner, on the other hand, allows you to redeem the tickets. You can use the Ticket Scanner with your smartphone and desktop or PC.

To assist you further, you can find explanatory videos on our YouTube Channel, Vollstart – Serial Code Validator WordPress Plugin. You can also reach out to us on our support email if there are further queries.

Quick start

Here’s what you need to know to get started with our WooCommerce Plugin: Event Ticket with Ticket Scanner, and you will be selling and validating tickets efficiently in no time!

Adding the Plugin to WordPress

Before anything else, you need to add the plugin to your WordPress. Once it is added, it will automatically be integrated into your WooCommerce features.

Log in to your WordPress account as an Administrator.

  • Then, go to Plugins, and click on Add New.
  • Search for Event Tickets with Ticket Scanner and install it.
  • After installing it, click on Activate, which will allow you to use its features immediately.

Install the premium plugin:

  • Download the plugin after your purchase
  • Upload the ZIP file within your WordPress using the plugin area
  • Activate it
  • Enter the serial within the options area of the plugin to activate it

Note: You need the basic plugin to use the premium plugin. Both have to be installed and active.

Use Cases for a quick start

Event Organizer

Club owners (spa, fitness, etc), theme parks, zoo and others

Adding Tickets to Your Product List

Once the plugin is installed and activated, go to Products. Here, you can add, edit, and delete your products (which will be sold as tickets). If you want to add a new product, go to Products, then Add New. Or edit the existing ones. You can view the product in All Products.

Choose the product you want to sell as a ticket. Scroll down to find the tab Event tickets and code, where you can edit how your ticket numbers are presented to the customers.

Before anything else, you need to check the ‘Is a Ticket Sales’ option for the product you are selling to be a ticket. Other details you can edit include the start date, end date, start time, and end time of the event. Remember that these details will be visible on the ticket. If you want other details to be visible only on the ticket, add them here. In addition, if you want to select or deselect what is shown on the ticket, that can be done in the plugin Options. Below are the options that you can use.

Assigning the Ticket List to the Product

The list is where the generated ticket numbers are stored. A list is automatically generated with the plugin installation. Remember that you need to assign a list to each ticket.

Setting a Format for Your Ticket

If there is a format that you want to apply to your ticket, you can do that by selecting the Use format settings. To make the plugin more adaptable to your liking, you can even set a global format in the plugin Options.

Adding Ticket Description

If you want to add a description for your event, you can do that under Product Description. It allows you to add media as well.

Viewing the Ticket Lists

In the Event Tickets tab, you can view all your tickets. You can view ticket information like Customer Name, Order ID, whether the ticket has been redeemed, and the ticket status. The status shows if the ticket has been used yet or not.

How Can Your Customers View/Download Their Tickets

After the initial steps are done and your product is activated as a ticked, you can start selling immediately. Once a customer buys your ticket, an email with a link to view the ticket bought is sent to the customer’s email. Here, your customers can also download the ticked PDF. Later, the ticket can be redeemed by scanning the detail page or using the ticket PDF.

Validating the Tickets at the Event Entrance

Validating the tickets is made highly convenient with the Ticket Scanner. You only need to scan the QR code on the customer’s ticket, which will redirect you to a page showing ticket details. It will allow you to validate the ticket and see if it is valid.

Sell tickets for a service like a Spa, Club or similar

It is not only possible to sell event tickets, but also to sell tickets with a specific lifetime or an amount of usage.

You Can Avail the Premium Version for More Control & Security

You can access the premium features once you have activated them in Options. The premium features add advanced functionalities to the plugin, making ticket selling a more engaging experience.

Activating the Premium Features

You can activate the premium features in Options. For activation, you need to enter your premium serial number, obtained after you purchase the plugin’s premium version.

If you are unaware of the serial number, despite having purchased the premium version, feel free to contact us at, and we’ll be happy to assist!

Explore the Plugin’s Key Functionalities

Our event Tickets with Ticket Scanner plugin allows you to add new functionalities and features to your WooCommerce platform. As a result, you can sell tickets for all kinds of events, while validating and scanning the tickets is made ever so easy with the Ticket Scanner. The significant functionalities listed below assist in making the plugin more personalized to your needs and make selling tickets a job more engaging and fun!

To make your experience more convenient, the features have brief descriptions throughout. They will help you understand the „why“ behind the functionalities.

Display Options

The display options allow you to modify some of the presentations. It includes changing the date format from the default (i.e., y/m/d). You can change the format to whatever you prefer. Similar is the case with the time format. The default is h:i:s, where h is the number of hours, i is the number of minutes, and s is the number of seconds.

More options include displaying a new column within the admin area to show the Redeem Ticket Information for all tickets. Please note that this feature might slow down the overall speed.


You can control and manage access to the admin area. In Options, you can activate or deactivate under Access.

If selected, access to the admin area is limited to the Administrators and other roles that you may allow. You can choose the roles allowed from the list.

Ticket Scanner

Important: Some installations do not allow a direct access to the plugin folder. In this case please create a page and add the shortcode for the ticket scanner.

Shortcode for the ticket scanner in case you do not want to use the default ticket scanner page: [­sasoEventTicketsValidator_ticket_scanner]

The Ticket Scanner is one of the significant components of our plugin. It makes scanning and validating the tickets hassle-free for its users. In addition to scanning and validating the tickets, you can manage crucial aspects like who can access the Ticket Scanner and under what conditions the ticket can be redeemed. Here’s everything you can control regarding the Ticket Scanner in the Options tab:

  1. Roles allowed accessing the Ticket Scanner (Editor, Author, Contributor, etc.). Note that changing the role will not impact the access for the Administrator.
  2. Allow only users logged in as Administrators to scan the ticket. This is especially useful when you want to eliminate any risk of non-Administrators using the Ticket Scanner.
  3. Allow only to redeem tickets that are paid. When enabled, this will prohibit tickets that are canceled or have a payment pending from being scanned.
  4. Count each ticket as a Confirmed Status Check and increase the counter. Note that the count increases only if the ticket scanned is valid.
  5. Display confirmed status checks on the Ticket Scanner view. When a ticket is scanned, this feature (when enabled) will display the confirmation check with the ticket redeemed.
  6. Do not allow tickets to be redeemed before starting date. This helps ensure that all tickets are redeemed only on the starting date and while the event is happening.
  7. Set the number of hours before the event when the ticket can be redeemed. The number of hours set is subtracted from the event’s start time, which is set prior. Note that it can be only used if the option „wcTicketDontAllowRedeemTicketBeforeStart“ is active.

WooCommerce Ticket Sale

Selling tickets requires assigning a ticket list to a product. This allows a ticket number to be generated. You can also use an existing ticket from the list. This information is essential to the customer’s purchase information and is printed for the customers to view.

Go to the Options tab to enable or disable the following functionalities.

  1. Compatibility mode for ticket URL.
  2. Hide the redeem button on the ticket for the customer.
  3. Text that is added before the ticket code on the PDF invoice, order table, and order details.
  4. Hide the PDF download button on the ticket details page.
  5. Hide the PDF download button on the purchase order email.
  6. Text that is added as the PDF Ticket Download Label.

Ticket PDF Settings

The ticket PDF generated and used has many elements like font size etc. You can modify that in the Options tab under Ticket PDF Settings. You can also choose to hide/display.

  1. Product Variant Name
  2. Short Description of the Product
  3. Customer Note of the Order
  4. Customer Name and Address
  5. Payment Method
  6. Purchased Items
  7. Quantity of the Purchased Items
  8. Ticket List Name
  9. Ticket List Description
  10. Text added to the PDF if ‚Display the quantity of the purchased tickets‘ is enabled.
  11. Number of Tickets Redeemed on the Ticket Scanner
  12. Your WordPress Name
  13. Your WordPress URL
  14. Logo for the Ticket PDF
  15. The Banner for the Ticket PDF
  16. The Background Image for the Ticket PDF

You can upload the logo, banner, and background images under the guidelines in the Options tab adjacent to each feature.

Attach the Ticket PDF to the Purchase Email (Premium Feature)

If you have a premium version of the plugin, you can use this feature to generate a PDF emailed to your customer for each ticket. For example, if three tickets are bought, then three tickets are attached to the purchase email.

Note that the PDFs are only attached if your customer has bought under 21 tickets. This is to prevent the timeout from hindering the purchase email from being generated, as the email gets too big for the mailbox to handle.

Choose when the PDF is attached to the order email (Premium Feature)

You can even choose the type of email that should contain the ticket PDF. For example, if the Invoice to customer emails is selected, the ticket PDF will only be attached to the Invoice to customer emails.

Customize the labels (Premium Feature)

You can customize the labels printed on the tickets for specific details such as Location for event location and payment details. To edit these, go to the Options tab and change the labels according to your liking under Ticket Translations.

For example, to display text for the maximum times a ticket has been redeemed on the Ticket PDF, you can enter „You have used this ticket {REDEEMED_AMOUNT} of {MAX_REDEEM_AMOUNT},“ where {REDEEMED_AMOUNT} and {MAX_REDEEM_AMOUNT} are used to display the numbers.

Order Ticket Detail View

You can add a button to the order email that will open the order ticket detail view. This view contains all QR codes and simple ticket information. The view allows a quick scan of all tickets. The focus is on the QR codes.

With this view you can scan and redeem faster. Your customer clicks on the ticket entry and the QR code is displayed.

Adding a Redirect Page

This is useful if you want to enable self-validation for the tickets by the customers. You can redirect them to another page, a form, or a document to implement this. For this to be implemented successfully, the feature ‚Do not show the redeem button on the ticket for the client‚ under Ticket PDF Settings has to be disabled.

Go to the Options tab and then Ticket Redirect. You can enter the URL in the space provided, and after the customer redeems a ticket, they will be automatically redirected to the URL entered. You can use the tags, including

  • {USERID}: Will be replaced with the User ID if the user is logged in or empty
  • {CODE}: Will be replaced with the ticket number (without the delimiters)
  • {CODEDISPLAY}: Will be replaced with the ticket number (WITH the delimiters)
  • {IP}: The IP address of the user
  • {LIST}: Name of the list if assigned
  • {LIST_DESC}: Description of the assigned list

Also, the tags listed under the Replacement tags can be utilized.

Customize the Event Flyer to your Preferences

The Event Flyer is an integral part of the event. While acknowledging this, we allow the users to download a PDF flyer of their respective events from the Product Detail View. The QR code on the flyer contains the URL to the Ticket Details Page.

Moreover, in the Options tab, under the Event Flyer, you can control the information displayed on the Flyer. You can hide/unhide

  • Your WordPress Name
  • Your WordPress
  • Description
  • Your WordPress URL
  • Your Ticket Price

In addition to this, you can choose the images for the logo, banner, and background of the Event Flyer. The product description can also contain Unicode or HTML.

You can download a event or party flyer within the product detail area. You can also add a banner, log and a background image to the PDF.  The QR code contains the URL to the detail page of the product. The product description an contain unicode and HTML. You can hide the price if needed.

Scanning the Event Ticket

The built-in ticket scanner allows you to scan the QR code of the ticket. Once it is scanned, it will load the ticket information. You can redeem the ticket with the button at the bottom.

The Event Ticket

The plugin allows you to customize the Event Ticket by adding logo, banner, and background images. You can also edit other details like descriptions, which contain Unicode and HTML. The QR code represents the ticket number scanned at the entrance for validation.

Change Your Logo, Banner, and Background for the Ticket PDF

The global settings allow you to set up a logo, banner, and background image for all your ticket PDFs.

By availing of the premium version, you can overwrite this on the ticket list level and the product level. The ticket list overwrites the global settings, whereas the product level overwrites the ticket list and global settings.

Ticket Badge

You can design and download your ticket badge for each ticket. This allows you to hand out your customer a badge with their name at the entrance. The editor gives you the maximum freedom to decide what to display on the badge. The badge will be rendered into a PDF. You can download the Ticket Badge within the ticket detail area in the admin.

For the editor you can use values of the options, ticket, ticket meta data, order and the product. Add the tags in braces and they will be replaced during the rendering. The full list of possible tags are listed within the options area.

Ticket Badge Options

Using the Calendar Feature (the ICS File)

Calendar features are particularly beneficial when events are involved. Everyone finds it convenient to reserve a slot on their calendars hassle-free. With this thought, we have created a feature allowing your customers to access the ICS Calendar file containing the event information (like date). This will enable your customers to add your event to their calendars directly from the email. An ICS calendar file can be attached to the purchase email sent to the customers once they buy your ticket. You can also download the ICS file directly from within the Product Detail View from the WooCommerce backend.

You can also modify the label on the ICS file download button and choose to hide/unhide the button itself. Other features like hiding/unhiding the event date on the purchase order email and product detail page are also available.

In the Products tab, you can add a start and end date to your ticket information. You can change the settings in the Product Detail View. This makes ticket selling more customized and personalized.

The date can also be displayed on the purchase email and Product Detail Page. Note that if you leave out the end date for the event in the Product Detail View, the event will be added as a day entry to the customer’s calendar.

Displaying Ticket Information on User Profile

If you want the registered/bought ticket numbers to be displayed on the user’s profile, you can make it happen by going to the Options tab and then the User profile.

Limiting Access to Only Logged-In Users

The logged in user only section in the Options tab can be sued if you want to limit the personnel validating ticket to only those logged in to WordPress.

You can also enter a customized message for it. Moreover, you can also limit the viewing of ticket numbers to only logged-in users. This can be done under the Display ticket number to your logged-in user in the Options tab. To offer your logged in user a list of their ticket numbers use the shortcode: [­sasoEventTicketsValidator_code]

Validating the Tickets

Validating the tickets is a crucial part of the event. The Ticket Scanner with our plugin makes it extremely easy to do the job quickly. However, if you want the customers to validate their tickets using a validation form, that is equally as easy to implement with our plugin.

In the Options tab, under Validation Form and Validation Messages, you can turn the validation form into a more personalized version for the customers to have a more engaging and guided experience.

Styling Options for the Validation Form

You can modify the styling aspects of the validation form like labels, background color, and text color under Validator Form for ticket number check in the Options tab. If you have a good grasp of CSS, you can add the settings to the form to improve the presentation.

The user will have to add a shortcode to validate the codes. The form consists of an input field and a button. You can customize them according to your liking.

Ticket and Code Validation Messages

These features regarding the Validation Messages in the Options tab allow you to enter messages of choice that are displayed when particular events occur. These include ticket confirmed, ticket inactive, and ticket expired events that are supposed to generate a message for the user to comprehend. You can enter your messages displayed to the user when these events occur.

Additional Validation Message


The URLs can be called using two methods, which include

  • Redirects
  • Webhooks

Redirecting Users to URLs using the Ticket Scanner

You can implement redirecting in two ways.

1. Ticket Redirection

If you want your customers to be redirected to a particular page or URL when they redeem a ticket, this feature is for you! To enable this, you must activate redirecting the user after redeeming the ticket feature under Ticket Redirect in the Options tab.

The URL can be entered as an absolute URL (e.g., or a relative URL (e.g.,/page/). This URL is executed on the front end. The user is redirected after they have entered a valid code. The manner of redirect depends on whether you have added a button label.

Note that the features listed under the Ticket Redirect section are associated with the Ticket Redeem option on the ticket detail page (or the product detail page).

2. Ticket Redirection

User Redirection is quite similar to ticket redirection, except in this case, the user is redirected from the ticket validation form. The Ticket Redeem option on the validation form takes the user when selected, to the URL you enter.

You can add the redirect URL and a button label. Like ticket redirection, the URL can be entered as an absolute URL (e.g., or a relative URL (e.g.,/page/). This URL is executed on the front end. The user is redirected after they have entered a valid code. The manner of redirect depends on whether you have added a button label.


With webhooks, you can alter how your server responds using custom callbacks. Our plugin allows you to enter URLs for each step (or call) carried out by the server during validation. In essence, WordPress calls the URLs you have entered when calls are made. This feature can inform other servers when the validation process is triggered.

Constructing the Right URL for the Webhook Call

You can make use of 6 placeholders to construct the call, including

  1. {USERID}
  2. {CODE}
  4. {IP}
  5. {LIST}
  6. {LIST_DESC}

Note that the placeholders are case-sensitive. It is recommended that you copy and paste the placeholders (along with the brackets) into your URL.

In addition, you can use the following replacement tags in your text messages and URLs for the meta code values.

  • {USER_VALUE}: Value given by the user during the code registration.
  • {USER_REG_IP}: IP address of the user, register to a code.
  • {USER_REG_USERID}: User id of the registered user to a code. The default will be 0.
  • {USED_REG_IP}: IP address of the user that used the code.
  • {CONFIRMEDCOUNT}: Amount of how many times the code was validated successfully.
  • {WOOCOMMERCE_ORDER_ID}: WooCommerce order id assigned to the code.
  • {WOOCOMMERCE_PRODUCT_ID}: WooCommerce product id assigned to the code.
  • {WOOCOMMERCE_CREATION_DATE}: Creation date of the WooCommerce sales date.
  • {WC_RP_ORDER_ID}: WooCommerce order id purchased using this serial code as an allowance to purchase a restricted product.
  • {WC_RP_PRODUCT_ID}: WooCommerce product id that was restricted with this serial.
  • {WC_RP_CREATION_DATE}: Creation date of the WooCommerce purchase using the allowance code.


Here is an example for your understanding.

Consider the details below.

User ID (empty if the user is not logged in): User ID

Display-Code: NYA-ZER-TER


Name of the list the code is assigned to myList

IP of the user:

  1. For the details mentioned above, the webhook URL will be:
  3. The plugin then translates this webhook call and becomes
  4. Your WordPress Server then calls this URL.

If redirected, the browser will go to

If the webhook URL is called, your server will call the URL in the background.

Tracking User IP (Premium Feature)

This premium feature gives you more control over how your tickets are used. You can track the IP address, time, and code against each ticket.

IP Log History

This feature allows you to track the usage when activated. You can view the IP address, the used code, and the code status (which shows you the return value of the validation check).

The log history can be deleted up to the desired date to free up space from your database.

Product Code Assignment

Want to profit from our plugin? Here is what you can do.

Whenever you assign a code list to a product, a new code is generated with the purchase and is assigned to the order. Reusing the existing unassigned codes available in the code list is also possible with this feature. Consider this: when a ticket is cancelled or refunded, the ticket information is deleted but the ticket itself is kept. Therefore, the next time you assign a ticket, the system searches for an unused ticket and will assign one if found. Otherwise, it generates a new one.

This allows you to reuse codes (that are unused) for your refunded orders again. The serial code will then be added to the product purchase email in the product table. The default format for the code that is generated is 20 letters long, divided into 4 parts with a delimiter(-). For example, abcde-abcde-abcde-abcde.

Note that this feature is optional.

Displaying Tickets to the User

Using the shortcode [­sasoEventTicketsValidator_code] you can display the tickets to the user. In the Options tab under Display ticket number to your logged-in user, you can edit details like the prefix text and separators to be used if the user has one or more tickets.

Generating QR Codes

Using this, you can generate QR codes that can be used for your ticket numbers. You can assign the QR a URL in the Options tab under QR Code. You can also use placeholders like

  • {CODE}: Will be replaced with the number (without the delimiters)
  • {CODEDISPLAY}: Will be replaced with the number (WITH the delimiters)
  • {LIST}: Name of the list if assigned
  • {LIST_DESC}: Description of the assigned list
    It is recommended to limit the use of placeholders to the ones mentioned above, as the QR code is generated within the administrator area.

Using Replacement Tags

The Replacement tags help you obtain meta ticket values for the text messages and URLs associated with the ticket purchase and redeem it. They include:

  • {USER_VALUE}: Value given by the user during the code registration.
  • {USER_REG_IP}: IP address of the user, register to a code.
  • {USER_REG_USERID}: User id of the registered user to a code. The default will be 0.
  • {USED_REG_IP}: IP address of the user that used the code.
  • {CONFIRMEDCOUNT}: How many times was the code validated successfully?
  • {WOOCOMMERCE_ORDER_ID}: WooCommerce order id assigned to the code.
  • {WOOCOMMERCE_PRODUCT_ID}: WooCommerce product id assigned to the code.
  • {WOOCOMMERCE_CREATION_DATE}: Creation date of the WooCommerce sales date.
  • {WOOCOMMERCE_USER_ID}: User id of the WooCommerce sales.
  • {WC_RP_ORDER_ID}: WooCommerce order id that was purchased using this code as an allowance to purchase a restricted product.
  • {WC_RP_PRODUCT_ID}: WooCommerce product id that was restricted with this code.
  • {WC_RP_CREATION_DATE}: Creation date of the WooCommerce purchase using the allowance code.

Get Protection against Brute Force Attacks with the IP Blocker (Premium Feature)

You can activate the IP blocker to protect your server from brute-force attacks. The blocker works by disabling and trying out serial codes until the right one is found.

You can customize the blocking process by specifying details like the number of IP requests allowed, activating a time delay for code validation requests, and displaying a personalized message when the block is activated.

Control the Expiration and Validity of the Tickets (Premium Version)

This premium feature allows you to control the validity of your tickets by applying an expiration restriction. Once an expiration check is made, a message indicating the ticket’s expiration is sent to the users.

The expiration counter is triggered after the first successful validation check is made. You can also enable a global expiration date, which applies to all tickets, allowing you to track the old tickets. Consequently, this will impact all validation checks in the future until disabled.

You can enter the days until the ticket expires and also choose to set it for old tickets that exist in your database. Once the ticket is successfully validated, the date will be used to evaluate whether the ticket has expired or not.

Moreover, you can edit the expiration directly on the ticket, via code list, and on the WooCommerce product.

For WooCommerce sales-generated tickets, you can activate the expiration date calculation right from the purchase date. This way your customer will not have to validate them in order to start the expiration countdown.

This feature can also be used for other purposes. For example, you are validating the VIP customers at the entrance of your exclusive VIP lounge. You can control and manage the validity and expiration of the tickets and make the job easier and hassle-free for your employees and yourself.

Product variants

Product variants have various benefits, especially for selling different time slots or categories. Understanding the importance of product variants, the plugin supports and allows users to utilize them. As a result, the ticket details and PDF comprises details from the main product and product variant.

The event time can also be printed on the variant product. This is most suitable for tickets having the same time. You can activate the Date is for all variants checkbox to have the time of the event printed on each product variant.

Note that the short description is only used for non-variant products. With variant products, the description varies. The description of that specific variant is displayed.

Moreover, you can control if the variant type name should be displayed on the PDF ticket in the Options tab.

In addition, you can opt out of product variants, in which case the product will not be a ticket. This could be helpful for different event categories where not all product variants require a digital ticket.

  1. Choose Variable Product from the drop-down list.
  2. Select Variations.
  3. Check the box next to This variation is NOT a ticket product.

Redeem Logs (Premium Feature)

Redeemed logs are there to help you examine the statistics of the redeemed tickets. You can also download these statistics. You can find the Ticket Redeemed Logs in the Event Tickets box on the product page. You can view the logs or download a CSV file.

Even if you reuse the product or the product is not assigned a venue, you can use the date in the redeemed logs to determine the redeemed tickets. The logs serve as a way to browse through the redeemed tickets and help in unusual scenarios.

Ticket Sale WooCommerce

You can sell now Tickets with WooCommerce using the Serial Code to generate Ticket numbers. You have also a Ticket Scanner, that allows you to redeem the tickets on the entrance. Fast and secure.

Quick Overview of the Basic Plugin Functionalities

The global settings allow you to set up a logo, banner and background image for your PDF ticket.

With the premium version you can overwrite this on the ticket list level and on the product level. The ticket list level overwrites the global settings, the product level overwrites the ticket list and global settings.

Shortcode to display users assigned tickets and codes

You can display the assigned (to a user registered) serial codes within a page. Use the following shortcode for this. [­sasoEventTicketsValidator_code]

Shortcode validator optional parameters

Use your own form

You can use your own HTML input, output and trigger component for the check.

If you add the parameters (all 3 mandatory to use this feature), then the default input area will not be rendered.

					[ sasoEventTicketsValidator inputid="" triggerid="" outputid="" ]


The component with the set HTML-ID will be used as the input element. It need to be an HTML input element.

We will access the value-parameter of it.

					[ sasoEventTicketsValidator


The onclick event of the component with this HTML-ID will be replaced by our function in order to call the server validation for the code.

					[ sasoEventTicketsValidator


The component with the provided HTML-ID on this parameter will be used for the server answer – the output.

It cannot be empty. If you want to hide the output, hide it using css style commands.

The content of this component will be replaced by the server result after the check . We will use the innerHTML property of it, so use a DIV, SPAN, TD or similar for best results.

If you need to control the form depending on the result of the serial code check, then please consider using one or both of the additional optional parameter for your own JavaScript callback functions.

					[ sasoEventTicketsValidator

Use your own JavaScript callbacks and gain more control

You can add JavaScript function names, that are called before and after the check.

Both parameters are optional and not required.

					[ sasoEventTicketsValidator jspre="" jsafter="" ]

These parameters can be combined with the input and output parameters.


If you want to control or manipulate the input before it is sent to the server, then use this parameter.

The function will be called. The input parameter for the function will be the code.

If your function returns a value, than this returned value will be used. If nothing is returned or an empty string, then the entered code of the user will be used.

					[ sasoEventTicketsValidator 

Example function

Add your JavaScript code to your page, so that it can be called from the serial code plugin. Make sure the function name your are using for the jspre-call is matching, the jspre attribute value. The input parameter is a string with the user entered code.

					function myCodePre(myCode) {
    // console.log(myCode);
    return myCode;


The function will be called. The input parameter will be the result JSON object from the server.

The content differs (depending on the activated options) and can be extended in the future. Please inspect the result first, before relying on the available property.

If you want to use the result as a form controlling mechanism check for the returned property: data.valid

The data.valid === 1 is true, if the serial code was valid and unsed.

					[ sasoEventTicketsValidator 

Example function

Add your JavaScript code to your page, so that it can be called from the serial code plugin. Make sure the function name your are using for the jsafter-call is matching, the jsafter attribute value. The input parameter is a JSON object returned from the server after the serial code was evaluated.

					function myCodeAfter(data) {
    // console.log(data);
    if (data.valid === 1) {
        // do your thing

Worpress filters for the pre and after check option

You can use the „add_filter“ function to register your PHP functions. They will be called and expected a specific return value. With this option you can extend the serial code validation check by yourself.

Before the code check pre

This filter will be called right after the parameter check. You can change the $data[‚code‘] before it is used to perform the internal pre checks.

					add_filter('saso_eventtickets_beforeCheckCodePre', 'myfunc', 20, 1);

* param $data assoc array contains the code from the validator form $data['code'];
function myfunc($data) {
    $code = $data['code'];
    return $data;

Before the code check

This filter will be called after some initial checks are passed. After this the code will be evaluated.

					add_filter('saso_eventtickets_beforeCheckCode', 'myfunc', 20, 1);

* param $data assoc array contains the code pre analyzed code $data['code']
function myfunc($data) {
    $code = $data['code'];
    return $data;

After the check pre

The check is performed and the serial code is evaluated. The code object is available, but only filled if the serial was found. The status can be checked. This filter is called before the additional after operations are executed, like IP block, status messages and more.

					add_filter('saso_eventtickets_afterCheckCodePre', 'myfunc', 20, 1);

* param $codeObj contains the serial if found
function myfunc($codeObj) {
    // print_r($codeObj);
    // echo $codeObj['status'];
    // echo $codeObj['_valid'];
    // echo $codeObj['aktiv'];
    return $codeObj;

After the check

This filter will be called after all the additional operations are done. The webhook trigger is send.

The returned values to the validator form will be $codeObj[‚_valid‘] and $codeObj[‚_retObject‘].

					add_filter('saso_eventtickets_afterCheckCode', 'myfunc', 20, 1);

* param $codeObj assoc array
function myfunc($codeObj) {
    // echo $codeObj['_valid'];
    // var_dump($codeObj['_retObject']);
    return $codeObj;

HTML styling and CSS

The frontend will be rendered by the Javascript file. The elements will have css classes, that you could override.

The actual used CSS file can be view here: Open the CSS file

					<div id="sasoEventtickets">
   <div class="sngmbh_container">
      <div class="sngmbh_container">
         <div class="sngmbh_input-group sngmbh_mb-3">
            <input required="" type="text" class="sngmbh_form-control sngmbh_mb-2" data-input="sasoEventticketscode" placeholder="XXYYYZZ">
            <div class="sngmbh_input-group-append">
               <button type="submit" data-btn="sasoEventticketsbtn" class="sngmbh_btn sngmbh_btn-primary sngmbh_mb-2">Check</button>

Form validation look and feel is controled by 2 css classes:

					.sngmbh_is-invalid, .was-validated .sngmbh_form-control:invalid {
    border-color: #dc3545;
    padding-right: calc(1.5em + .75rem);
    background-image: url(data:image/svg+xml,%3csvg xmlns='' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e);
    background-repeat: no-repeat;
    background-position: right calc(.375em + .1875rem) center;
    background-size: calc(.75em + .375rem) calc(.75em + .375rem);
.sngmbh_is-valid, .was-validated .sngmbh_form-control:valid {
    border-color: #28a745;
    padding-right: calc(1.5em + .75rem);
    background-image: url(data:image/svg+xml,%3csvg xmlns='' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e);
    background-repeat: no-repeat;
    background-position: right calc(.375em + .1875rem) center;
    background-size: calc(.75em + .375rem) calc(.75em + .375rem);

The ajax call progress is rendered dynamically with the CSS rule: „lds-dual-ring„. It will be injected if it is not defined. To overrule this look and feel, just create the CSS rule with your values.

The progress wheel (spinner) is rendered by: 

					<div id="sasoEventticketsspinner">
    <span class="lds-dual-ring"></span>

Here is the default CSS rule of the progress wheel:

					.lds-dual-ring {
.lds-dual-ring:after {
    content:" ";
    border:5px solid #fff;
    border-color:#2e74b5 transparent #2e74b5 transparent;
    animation:lds-dual-ring 0.6s linear infinite;
@keyframes lds-dual-ring {
    0% {
        transform: rotate(0deg);
    100% {
        transform: rotate(360deg);

Display registered information to a code

You can ask the user to register to a code after a successfull restriction code validation check.

You can also display this information to the next user who checks this code. 

This allows you basically to a database, where users can check a restriction code. Maybe printed on a certification or personal ID.

WooCommerce restrict product sale without serial code

Optional. If you use WooCommerce, you can profit from our plugin too.

You can restrict the sale of products to be allowed only if your customer enters a valid and unused serial code. You can assign the serial code list for the restriction, within the product details.

Your customer can receive from you a serial code out of the code list that is assigned to your WooCommerce product. They can use the code to buy as many as products as protected with this code. Or you allow only a „one time use“. If you activate the „one time use“ option, then you can reuse  a code used on refunded orders. Please activate for this the „Clear the code if the order was deleted or a refund triggered“ option.

IP block against brute force attacks (premium only)

You can activate the IP blocker to protect your server from bruteforce checks. That way they cannot try out serial codes untill they found a correct one.

IP log history

You can activate the IP log history and track the usage. You will see the IP address and the used code for the check. The code status shows you the return value of the validation check.

You can delete the history also untill a date to clean up your database and free some space.


No. The plugin is only for one domain.

Up to 3 Sub-Domains are fine, as long as they are used for testing reasons.

Your serial will be checked against the domain and how many different sub-domains are calling the update. 

Yes. You can copy and paste your codes within the „adding codes“ area. No direct file import possible.

You have the option to ask the user to enter a value once the code was successfully checked. Activate this option within the option area.
Please note, that you can ask for one value. It will be stored to the code. You can define the labels for this in the option area.
We offer also JS hooks, so that you can add your own JS code to be executed before and after the serial code check.

Yes, but only with the premium plugin.

The premium plugin offers: „Save IP address of user using the code validation check on your page“
The data is stored into your database.

Yes, the confirmed checks are displayed on the code details and is labeled „Confirmed count:“

Yes. Unlimited tickets numbers. Your server is the limit.

If you plan to have a lot of tickets, then we recommend to choose a longer ticket number within the options, to make sure you are not running out of possible numbers.


The ticket scanner is making ajax calls to your wordpress installation to update the database and check if the ticket is still valid.

It could have been redeemed already on another entrance.

This is not supported yet.

But we kept the words on the ticket to a minimum. And most of the action (buttons, links) and title lables can be changed by you within the plugin option area.

The plugin is not coming with its own payment methods. Selling the ticket is a responsibility of WooCommerce and so you can use all the available payment methods for it.

If you want to redeem a ticket and receive this message, then the ticket order is not yet set to „complete“.

To prevent ticket to be redeemed even if they are not paid yet (like for check or bank transer), checks the system the order status.

By default only „completed“ orders are accepted.