WordPress & PHP sessions

It is relatively simple. I’ve giving you a few steps.

User visits your site and hit ‘Add to basket’ on an event. You need to send this data to server (as you wanted to store in php session). you can submit a form (for simplicity) either in synchronously or asynchronously (ajax). You need to submit a form to your URL where it stores (temporary/permanent) the order info to your system. For example, your ‘addtobasket.php’ handles the orders. so the form may be like:

<form action="/addtobasket.php" method="post">
<input type="hidden" name="event_id" value="101" />
<input type="submit" name="Add to Basket" />
</form>

the addtobasket.php now stores the order in the session using the following code:

<?php
session_start();
$_SESSION['event_orders'][] = $_POST['event_id'];
?>

after storing the data in session, you should redirect user where you want (probably where he/she was). in the checkout page (for example checkout.php) you can get all the events id that was ordered (added to basket).

<?php
session_start();
foreach($_SESSION['event_orders'] AS $event_id){
echo 'Your ordered event ID is: ' .$event_id;
}

In the 4th line, you will get event ID. now you can fetch the event details from your storage and show event information and do the rest of the steps.

however, the above codes are the bare minimum codes. in your implementation, you will need lots of other codes including data sanitization.

The following link is quite old but surely can give you some idea:
http://v3.thewatchmakerproject.com/journal/276/

More about php session:
http://au.php.net/manual/en/session.examples.basic.php
http://www.phpriot.com/articles/intro-php-sessions

you can also store order info on the client side (cookie, html5 session storage) until user decides to checkout. during checkout you can send the data to server and store them.