function updateRegistration($conn, $transaction_results) { $gamertag = trim($_SESSION['portal_form']['gamertag']); $melee_singles = is_null($_SESSION['portal_form']['melee_singles']) ? 0 : 1; $melee_doubles = is_null($_SESSION['portal_form']['melee_doubles']) ? 0 : 1; $melee_teammate = trim($_SESSION['portal_form']['melee_teammate'] ?: ''); $pm_singles = is_null($_SESSION['portal_form']['pm_singles']) ? 0 : 1; $pm_doubles = is_null($_SESSION['portal_form']['pm_doubles']) ? 0 : 1; $pm_teammate = trim($_SESSION['portal_form']['pm_teammate'] ?: ''); $smash4_singles = is_null($_SESSION['portal_form']['smash4_singles']) ? 0 : 1; $arcade = $_SESSION['auth']['arcade'] == 1 || $_SESSION['new_arcade'] == 1 ? 1 : 0; $credits = $_SESSION['new_credits']; $transactionID = $transaction_results['PAYMENTINFO_0_TRANSACTIONID']; $amtPaid = $transaction_results['PAYMENTINFO_0_AMT']; if (is_null($transaction_results)) { $query = "UPDATE registration r\n LEFT JOIN teams t ON t.account_id = r.id\n SET r.tag=?, r.melee_singles=?, r.melee_doubles=?, t.melee_partner=?, r.pm_singles=?, r.pm_doubles=?, t.pm_partner=?, r.smash4_singles=?, r.arcade=?, r.credits=r.credits+?\n WHERE r.id=?"; $stmt = $conn->prepare($query); $stmt->bind_param("siisiisiiii", $gamertag, $melee_singles, $melee_doubles, $melee_teammate, $pm_singles, $pm_doubles, $pm_teammate, $smash4_singles, $arcade, $credits, $_SESSION['auth']['id']); } else { $query = "UPDATE registration r\n LEFT JOIN teams t ON t.account_id = r.id\n SET r.tag=?, r.melee_singles=?, r.melee_doubles=?, t.melee_partner=?, r.pm_singles=?, r.pm_doubles=?, t.pm_partner=?, r.smash4_singles=?, r.arcade=?, r.credits=r.credits+?, r.paypal_transaction_id=r.paypal_transaction_id + ',' + ?, r.amount_paid=r.amount_paid+?\n WHERE r.id=?"; $stmt = $conn->prepare($query); $stmt->bind_param("siisiisiiisdi", $gamertag, $melee_singles, $melee_doubles, $melee_teammate, $pm_singles, $pm_doubles, $pm_teammate, $smash4_singles, $arcade, $credits, $transactionID, $amtPaid, $_SESSION['auth']['id']); } if ($stmt->execute()) { /* UPDATE SUCCESS, re-populate user session and send e-mails to all affected doubles partners */ repopulateSession($conn); $email = $_SESSION['auth']['email']; $old_pm_teammate = $_SESSION['auth']['pm_partner']; $old_melee_teammate = $_SESSION['auth']['melee_partner']; // PROJECT M if ($pm_doubles == 1) { if ($_SESSION['auth']['pm_doubles'] == 1 && $pm_teammate != $old_pm_teammate) { // Send e-mail to old partner saying the teammate has left $message = []; $message[] = "Hey smasher,"; $message[] = "We're just letting you know that {$gamertag} has unregistered you as their Project M Doubles partner."; $message[] = "You can update your registration information, including doubles partners, by visiting the Player Portal."; $message[] = "Click <a href='http://www.smashsummit.ca/?portal'>here</a> to go there now!"; sendEmail($message, "{$gamertag} no longer wants to team!", $old_pm_teammate); // Send e-mail to new partner $status = checkPartnerStatus($conn, $email, $pm_teammate, "pm_doubles")[0]; sendTeamStatusEmail($email, $gamertag, $pm_teammate, $status['tag'], "Project: M Doubles", $status['status']); } else { if ($_SESSION['auth']['pm_doubles'] == 0) { // Send e-mail to new partner $status = checkPartnerStatus($conn, $email, $pm_teammate, "pm_doubles")[0]; sendTeamStatusEmail($email, $gamertag, $pm_teammate, $status['tag'], "Project: M Doubles", $status['status']); } } } else { if ($pm_doubles == 0 && $_SESSION['auth']['pm_doubles'] == 1) { // Send e-mail to old partner saying the teammate has unregistered from doubles $message = []; $message[] = "Hey smasher,"; $message[] = "We're just letting you know that {$gamertag} is no longer playing in Project M Doubles."; $message[] = "You can update your registration information, including doubles partners, by visiting the Player Portal."; $message[] = "Click <a href='http://www.smashsummit.ca/?portal'>here</a> to go there now!"; sendEmail($message, "{$gamertag} is no longer playing in doubles!", $old_pm_teammate); } } // MELEE if ($melee_doubles == 1) { if ($_SESSION['auth']['melee_doubles'] == 1 && $melee_teammate != $old_melee_teammate) { // Send e-mail to old partner saying the teammate has left $message = []; $message[] = "Hey smasher,"; $message[] = "We're just letting you know that {$gamertag} has unregistered you as their Melee Doubles partner."; $message[] = "You can update your registration information, including doubles partners, by visiting the Player Portal."; $message[] = "Click <a href='http://www.smashsummit.ca/?portal'>here</a> to go there now!"; sendEmail($message, "{$gamertag} no longer wants to team!", $old_melee_teammate); // Send e-mail to new partner $status = checkPartnerStatus($conn, $email, $melee_teammate, "melee_doubles")[0]; sendTeamStatusEmail($email, $gamertag, $melee_teammate, $status['tag'], "Melee Doubles", $status['status']); } else { if ($_SESSION['auth']['melee_doubles'] == 0) { // Send e-mail to new partner $status = checkPartnerStatus($conn, $email, $melee_teammate, "melee_doubles")[0]; sendTeamStatusEmail($email, $gamertag, $melee_teammate, $status['tag'], "Melee Doubles", $status['status']); } } } else { if ($melee_doubles == 0 && $_SESSION['auth']['melee_doubles'] == 1) { // Send e-mail to old partner saying the teammate has unregistered from doubles $message = []; $message[] = "Hey smasher,"; $message[] = "We're just letting you know that {$gamertag} is no longer playing in Melee Doubles."; $message[] = "You can update your registration information, including doubles partners, by visiting the Player Portal."; $message[] = "Click <a href='http://www.smashsummit.ca/?portal'>here</a> to go there now!"; sendEmail($message, "{$gamertag} is no longer playing in doubles!", $old_melee_teammate); } } // After update is complete, send user back to portal header('Location: /?portal'); } else { // TODO: registration error page if (is_null(transaction_results)) { echo "Oops. Something went wrong. Please contact support@smashsummit.ca and we'll get it sorted out."; } else { echo "Oops. Something went wrong. Please contact support@smashsummit.ca with your paypal transaction ID and we'll get it sorted out."; } // TODO: more detailed error email $message = $stmt->error; $message .= "\r\n"; if (!is_null($transaction_results)) { $message .= print_r($transaction_results, true); } $message .= "\r\n"; $message .= print_r($_SESSION, true); sendErrorEmail($message); } $stmt->close(); $conn->close(); }
if ($stmt->execute()) { /* REGISTRATION SUCCESS */ $regid = $conn->insert_id; // Insert teams information $query = "INSERT INTO teams (account_id, pm_partner, melee_partner) VALUES (?,?,?)"; $stmt = $conn->prepare($query); $stmt->bind_param("iss", $regid, $pm_teammate, $melee_teammate); $stmt->execute(); // Send emails to registered teammates if ($pm_doubles == 1) { $status = checkPartnerStatus($conn, $email, $pm_teammate, "pm_doubles")[0]; sendTeamStatusEmail($email, $gamertag, $pm_teammate, $status['tag'], "Project: M Doubles", $status['status']); } if ($melee_doubles == 1) { $status = checkPartnerStatus($conn, $email, $melee_teammate, "melee_doubles")[0]; sendTeamStatusEmail($email, $gamertag, $melee_teammate, $status['tag'], "Melee Doubles", $status['status']); } // TODO: move this to email class // Send confirmation email $brackets = $melee_singles + $melee_doubles + $pm_singles + $pm_doubles + $smash4_singles; $message = array(); $message[] = "Hey {$first_name},"; $line = "Congrats! You successfully registered for "; if ($brackets > 0) { $line .= "the following brackets:\n <ul>"; if ($melee_singles == 1) { $line .= "<li>Melee Singles</li>"; } if ($melee_doubles == 1) { $line .= "<li>Melee Doubles</li>"; }