cancel booking
loading... X Player Players Unit Units
loading...

All trainings suspended
at skills.lab

Due to the current restrictions set by the Federal Government, all trainings and camps at skills.lab are temporarily suspended. Therefore, we had to cancel all booked trainings. Please follow our social media channels and website for further information about when the trainings and camps will resume. In the meantime: Stay home and stay safe! Your skills.lab team

Free trial for teenagers

Three youth players in a parallel passing exercise during a free trial at skills.lab
In a 60-minute training session, teenagers from 12 to 15 years get to know the world’s leading high-tech training facility and learn all the essential skills.lab basics.
Your free trial
The training can be booked for all teenagers (12 to 15 years) who want to train at the skills.lab Arena for the first time.

Football meets game console

Physical activity meets digital challenge. We call it the skills.lab experience.

High scores wanted

Beat the high score in our interactive passing, shooting, and dribbling challenges.

One-hour training

Learn all the essential basics in a 60-minute training session.

Guidance & support

Our coaches guide you through the training and answer all questions first-hand.

Small-group training

Up to four teenagers can participate in each of our regular free trials.

Training balls

During the free trial, teenagers will train with standard size 5 balls.

Experience up close

Friends and family can watch the training directly from the stand.

Perfect football weather

The Arena is fully air-conditioned and provides the best training environment.

Your skills.lab coaches

All training sessions are hosted by our experienced skills.lab coaches. Our certified coaching staff works closely with the players to create a lively and engaging training.
Things to know
A training session at the skills.lab Arena is unique. Of course, this raises questions among players and parents. Here are some important answers to the most frequently asked questions.

Sports outfit

Bring some comfortable training clothes and a towel to your skills.lab training.

Footwear

Train at skills.lab with your regular football shoes, indoor shoes, or shoes for artificial turf.

Locker room

Feel free to use our on-site locker room with showers.

Refreshment

Our canteen provides refreshment during and after the training.
Whoops! There was an error.
Error
Call to undefined function wc_get_product() Error thrown with message "Call to undefined function wc_get_product()" Stacktrace: #9 Error in /var/www/content/themes/skillslab/includes/partials/cards/bulletpoints/trainingproduct.php:12 #8 include in /var/www/content/themes/skillslab/class/src/Tools/Helper.php:10 #7 Probots\Tools\Helper:includePartial in /var/www/content/themes/skillslab/class/functions/helpers.php:5 #6 loadPartial in /var/www/content/themes/skillslab/includes/layouts/card_booking.php:64 #5 include in /var/www/content/themes/skillslab/class/src/Modules/Builder.php:51 #4 Probots\Modules\Builder:getModuleHtml in /var/www/content/themes/skillslab/class/src/Modules/Builder.php:27 #3 Probots\Modules\Builder:build in /var/www/content/themes/skillslab/single-training.php:11 #2 include in /var/www/wp/wp-includes/template-loader.php:106 #1 require_once in /var/www/wp/wp-blog-header.php:19 #0 require in /var/www/index.php:17
Stack frames (10)
9
Error
/var/www/content/themes/skillslab/includes/partials/cards/bulletpoints/trainingproduct.php12
8
include
/var/www/content/themes/skillslab/class/src/Tools/Helper.php10
7
Probots\Tools\Helper includePartial
/var/www/content/themes/skillslab/class/functions/helpers.php5
6
loadPartial
/var/www/content/themes/skillslab/includes/layouts/card_booking.php64
5
include
/var/www/content/themes/skillslab/class/src/Modules/Builder.php51
4
Probots\Modules\Builder getModuleHtml
/var/www/content/themes/skillslab/class/src/Modules/Builder.php27
3
Probots\Modules\Builder build
/var/www/content/themes/skillslab/single-training.php11
2
include
/var/www/wp/wp-includes/template-loader.php106
1
require_once
/var/www/wp/wp-blog-header.php19
0
require
/var/www/index.php17
/var/www/content/themes/skillslab/includes/partials/cards/bulletpoints/trainingproduct.php
<?php
 
$product = $product ?? false;
if (!$product) {
    return;
}
 
if (!($product instanceof WC_Product_Simple)) {
    if ($product instanceof WP_Post) {
        $product = $product->ID;
    }
    $product = wc_get_product(intval($product));
}
if (!$product) {
    return;
}
 
// $bookingUrl = \Probots\Tools\Helper::getBookingLinkByProduct($product);
 
$factsValue = explode("\r\n", get_post_meta($product->get_id(), 'skl_product_facts', true));
$facts = array_map(
    function ($f) {
        return ['text' => $f];
    },
    $factsValue ?: []
);
 
$cardData = [
  'selectors' => false,
  'period' => false,
  'tag' => __t('card.training.perUnit'),
  'price' => $product->get_price(),
  'bullets' => $facts,
  'cta_text' => __t('card.bookNow'),
  'cta_url' => '#',
  'product_id' => $product->get_id(),
  'classes' => ['js-bookingcta']
];
?>
<div class="">
Arguments
  1. "Call to undefined function wc_get_product()"
    
/var/www/content/themes/skillslab/class/src/Tools/Helper.php
<?php
namespace Probots\Tools;
 
class Helper
{
    public static function includePartial($file, $data = [])
    {
        extract($data);
        include sprintf(
      '%s/includes/partials/%s.php',
      get_template_directory(),
      $file
    );
    }
 
    public static function loadPartial($file, $data = [])
    {
        ob_start();
        extract($data);
        include sprintf(
      '%s/includes/partials/%s.php',
      get_template_directory(),
      $file
    );
        return ob_get_clean();
    }
 
    public static function includeBlock($file, $data = [])
    {
        extract($data);
        include sprintf(
      '%s/includes/blocks/%s.php',
      get_template_directory(),
      $file
    );
    }
 
    public static function getAssetUrl($name = '')
    {
        return sprintf('%s/assets/%s', get_template_directory_uri(), $name);
/var/www/content/themes/skillslab/class/functions/helpers.php
<?php
if (!function_exists('loadPartial')) {
    function loadPartial($name, $data = [])
    {
        \Probots\Tools\Helper::includePartial($name, $data);
    }
}
 
if (!function_exists('assetUrl')) {
    function assetUrl($name)
    {
        return \Probots\Tools\Helper::getAssetUrl($name);
    }
}
 
 
if (!function_exists('loadSvg')) {
    function loadSvg($name)
    {
        include(get_template_directory() . '/assets/' . $name . '.svg');
    }
}
 
if (!function_exists('loadLaser')) {
    function loadLaser($name)
    {
        include(get_template_directory() . '/assets/' . $name . '.svg');
        include(get_template_directory() . '/assets/' . $name . '.svg');
        include(get_template_directory() . '/assets/' . $name . '.svg');
        include(get_template_directory() . '/assets/' . $name . '.svg');
    }
}
 
// if (!function_exists('clearPhoneNumber')) {
//     function clearPhoneNumber($number)
//     {
//         $plus = preg_match('/^(\+)/', $number)?"+":"";
//         $number = preg_replace('/[^0-9|\+]/', '', $number);
//         $number = preg_replace('/(\+)([0-9]{2})(0)/', '${2}', $number);
//         $number = preg_replace('/\|/', '', $number);
Arguments
  1. "cards/bulletpoints/trainingproduct"
    
  2. array:1 [
      "product" => WP_Post {#2130}
    ]
    
/var/www/content/themes/skillslab/includes/layouts/card_booking.php
                            <div class="block__text ft--copy-small">
                                <?= $block['text'] ?>
                            </div>
                        </div>
                    <?php endforeach; ?>
 
                </div>
            </div>
            <div class="o-grid__col u-6/[email protected]">
                <div class="card__holder">
                    <div class="laser-element top">
                        <?php loadLaser('svg/hexagon'); ?>
                    </div>
                    <div class="laser-element right">
                        <?php loadLaser('svg/t4_tor'); ?>
                    </div>
                    <div class="card__holder__inner">
                        <?php if ($product) {
    loadPartial('cards/bulletpoints/trainingproduct', [
                                'product' => $product
                            ]);
} ?>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
 
Arguments
  1. "cards/bulletpoints/trainingproduct"
    
  2. array:1 [
      "product" => WP_Post {#2130}
    ]
    
/var/www/content/themes/skillslab/class/src/Modules/Builder.php
            print $content;
 
 
 
            wp_reset_postdata();
        }
    }
 
    private function getModuleHtml($layout, $variables)
    {
        $fileName = sprintf('%s.php', $layout);
        $filePath = sprintf('%s/%s/%s', get_template_directory(), $this->layoutDir, $fileName);
 
        if (!file_exists($filePath)) {
            print 'MODULE LAYOUT NOT FOUND IN: ' . $filePath;
            return;
        }
        extract($variables);
 
        include($filePath);
    }
 
    private function getDebugHtml($layout, $variables)
    {
        if (!isset($_GET['debug-modules'])) {
            return;
        }
        printf("<div>");
        print '<pre>';
        print_r($variables);
        print '</pre>';
        printf("</div>");
    }
 
    private function getModules()
    {
        return \get_field($this->acfModulesFieldKey) ?: [];
    }
 
    private function getLayoutName($module)
Arguments
  1. "/var/www/content/themes/skillslab/includes/layouts/card_booking.php"
    
/var/www/content/themes/skillslab/class/src/Modules/Builder.php
    private $moduleClassName = 'module';
    private $layoutDir = './';
 
    public function build()
    {
        $modules = $this->getModules();
 
        foreach ($modules as $mKey => $module) {
            $layout = $this->getLayoutName($module);
            $variables = $module;
            unset($variables[$this->acfLayoutFieldKey]);
            $variables['layout'] = $layout;
 
            $baseClassName = $this->moduleClassName;
            $layoutClassName = $baseClassName . "--" . $layout;
 
            ob_start();
            printf("<div id=\"layout-%d\" class=\"%s %s\">\n", $mKey, $baseClassName, $layoutClassName);
            $this->getDebugHtml($layout, $variables);
            $this->getModuleHtml($layout, $variables);
 
            print("</div>\n");
            $content = ob_get_clean();
 
            print $content;
 
 
 
            wp_reset_postdata();
        }
    }
 
    private function getModuleHtml($layout, $variables)
    {
        $fileName = sprintf('%s.php', $layout);
        $filePath = sprintf('%s/%s/%s', get_template_directory(), $this->layoutDir, $fileName);
 
        if (!file_exists($filePath)) {
            print 'MODULE LAYOUT NOT FOUND IN: ' . $filePath;
            return;
Arguments
  1. "card_booking"
    
  2. array:4 [
      "headline" => "Book your free trial"
      "blocks" => array:4 [
        0 => array:3 [
          "icon" => "stop-watch"
          "headline" => "One hour of football"
          "text" => "Get to know skills.lab in a free 60-minute training session."
        ]
        1 => array:3 [
          "icon" => "target"
          "headline" => "Engaging training"
          "text" => "Learn all the skills.lab basics."
        ]
        2 => array:3 [
          "icon" => "whistle"
          "headline" => "Professional coaching"
          "text" => "Certified coaches and small-group training."
        ]
        3 => array:3 [
          "icon" => "star"
          "headline" => "skills.lab experience"
          "text" => "Football meets the digital experience of your game console."
        ]
      ]
      "product" => WP_Post {#2130}
      "layout" => "card_booking"
    ]
    
/var/www/content/themes/skillslab/single-training.php
<?php
get_header();
?>
    <?php
    $Modules = new \Probots\Modules\Builder;
    $Modules
        ->setModulesFieldKey('modules')
        ->setLayoutFieldKey('acf_fc_layout')
        ->setModuleClassName('layout')
        ->setLayoutSubDirectory('includes/layouts');
    $Modules->build();
    ?>
<?php
get_footer();
 
/var/www/wp/wp-includes/template-loader.php
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
Arguments
  1. "/var/www/content/themes/skillslab/single-training.php"
    
/var/www/wp/wp-blog-header.php
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
Arguments
  1. "/var/www/wp/wp-includes/template-loader.php"
    
/var/www/index.php
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);
 
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
Arguments
  1. "/var/www/wp/wp-blog-header.php"
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE
"Apache/2.4.38 (Debian)"
REQUEST_URI
"/en/trainings/free-trial-youth/"
REDIRECT_STATUS
"200"
HTTP_HOST
"skills-lab.com"
HTTP_CONNECTION
"close"
HTTP_X_REAL_IP
"162.158.89.97"
HTTP_X_FORWARDED_FOR
"3.235.227.117, 162.158.89.97"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_X_FORWARDED_SSL
"on"
HTTP_X_FORWARDED_PORT
"443"
HTTP_ACCEPT_ENCODING
"gzip"
HTTP_CF_IPCOUNTRY
"US"
HTTP_CF_RAY
"676bb7c3ffb45b53-FRA"
HTTP_CF_VISITOR
"{\"scheme\":\"https\"}"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_IF_MODIFIED_SINCE
"Fri, 16 Apr 2021 11:05:28 GMT"
HTTP_CF_CONNECTING_IP
"3.235.227.117"
HTTP_CDN_LOOP
"cloudflare"
PATH
"/var/www/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SERVER_SIGNATURE
""
SERVER_NAME
"skills-lab.com"
SERVER_ADDR
"172.18.0.6"
SERVER_PORT
"80"
REMOTE_ADDR
"172.18.0.3"
DOCUMENT_ROOT
"/var/www/"
REQUEST_SCHEME
"http"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/var/www/"
SERVER_ADMIN
"[email protected]"
SCRIPT_FILENAME
"/var/www/index.php"
REMOTE_PORT
"34202"
REDIRECT_URL
"/en/trainings/free-trial-youth/"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1627618023.126
REQUEST_TIME
1627618023
argv
[]
argc
0
HTTPS
"on"
Key Value
DB_PASSWORD
"nCPDTNFvdFzjitYyqboger6c"
SMTP_AUTH
"true"
HOSTNAME
"636329b459b3"
PHP_VERSION
"7.4.3"
APACHE_CONFDIR
"/etc/apache2"
PHP_MD5
""
LETSENCRYPT_HOST
"skills-lab.com,www.skills-lab.com"
PHP_INI_DIR
"/usr/local/etc/php"
GPG_KEYS
"42670A7FE4D0441C8E4632349E4FDC074A4EF02D 5A52880781F755608BF815FC910DEB46F53EA312"
TAGMANAGER
"GTM-PTKGWJR"
WP_TABLE_PREFIX
"wp_"
PHP_LDFLAGS
"-Wl,-O1 -Wl,--hash-style=both -pie"
PWD
"/var/www/content/themes/skillslab/class"
SMTP_FROM_EMAIL
"[email protected]"
APACHE_DOCUMENT_ROOT
"/var/www/"
DB_PORT
"3306"
DB_USER
"dbUser"
APACHE_LOG_DIR
"/var/log/apache2"
LANG
"C"
SMTP_PASS
"01d0965beb739826029b3e24322c2a43-9c988ee3-7ffd6c4c"
PHP_SHA256
"cf1f856d877c268124ded1ede40c9fb6142b125fdaafdc54f855120b8bc6982a"
WP_THEME_NAME
"skillslab"
SMTP_PORT
"587"
APACHE_PID_FILE
"/var/run/apache2/apache2.pid"
PHPIZE_DEPS
"autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c"
VIRTUAL_HOST
"skills-lab.com,www.skills-lab.com"
DB_HOST
"db"
PHP_URL
"https://www.php.net/get/php-7.4.3.tar.xz/from/this/mirror"
APACHE_RUN_GROUP
"www-data"
ENVIRONMENT
"production"
SSL
"false"
SMTP_SECURE
"tls"
APACHE_LOCK_DIR
"/var/lock/apache2"
PHP_EXTRA_CONFIGURE_ARGS
"--with-apxs2 --disable-cgi"
SHLVL
"1"
PHP_CFLAGS
"-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
GOOGLE_MAPS
"null"
LIVE_RELOAD
"false"
SMTP_FROM_NAME
"skills.lab"
DB_NAME
"wordpress"
SMTP_USER
"[email protected]"
APACHE_RUN_DIR
"/var/run/apache2"
APACHE_ENVVARS
"/etc/apache2/envvars"
APACHE_RUN_USER
"www-data"
WP_MEDIA_URL
"https://skills-lab.com/media"
PATH
"/var/www/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
BUGHERD
"null"
FAILTOBAN
"false"
PHP_EXTRA_BUILD_DEPS
"apache2-dev"
SMTP_HOST
"smtp.eu.mailgun.org"
DEBUG
"false"
PHP_ASC_URL
"https://www.php.net/get/php-7.4.3.tar.xz.asc/from/this/mirror"
PHP_CPPFLAGS
"-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
OLDPWD
"/var/www/config"
0. Whoops\Handler\PrettyPageHandler