Home School Classes
Home School Classes
Climbing | Fitness | Community
Just
$29.99Then $24.99 per week
Unlimited Home School classes per term
Includes, your coach, entry, shoe & chalk hire
Great physical, mental, & social confidence booster!
Join Us
.video-wrapper {
position: relative;
width: 100%;
margin: 0 auto; /* Center the wrapper horizontally */
}
.video-wrapper::before {
content: “”;
display: block;
padding-bottom: 177.78%; /* 9:16 aspect ratio for portrait video */
}
.video-wrapper video {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: zoom;
object-position: top;
}
/* New button styles */
.button-container {
display: flex;
flex-direction: column;
gap: 20px;
}
.b-content{
background-color: #fff000;
color: black !important;
border: none;
font-size: 18px;
border-radius: 0px 0px 25px 25px;
text-align: center;
transition: background-color 0.3s, color 0.3s;
}
.b-content:hover {
background-color: #181818;
color: #fff000 !important;
}
.custom-button {
padding: 15px 30px;
font-size: 18px;
text-decoration: none;
display: inline-block;
cursor: pointer;
transition: all 0.3s ease;
}
.primary-button {
background-color: #fff000;
color: black;
border: 2px solid #fff000;
}
.primary-button:hover {
background-color: #181818;
color: white;
border-color: #181818;
}
.secondary-button {
background-color: transparent;
color: #181818;
border: 2px solid #181818;
}
.secondary-button:hover {
background-color: #181818;
color: white;
}
.rounded-button {
border-radius: 5px;
}
.specific-container {
position: relative;
top: 80px;
margin-left: 100px;
margin-right: 100px;
}
Join Us
.video-wrapper {
position: relative;
width: 100%;
height: calc(100vh – 60px); /* Adjust the height to leave space for the text */
overflow: hidden;
}
.video-wrapper video {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
object-fit: cover;
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}
.text-wrapper {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 20px 5px; /* Update the padding to only have top and bottom values */
text-align: left;
color: #fff;
z-index: 1;
}
.text-wrapper h2 {
margin: 0;
}
.text-wrapper h4 {
margin: 0;
color: #fff000;
}
Home School Classes
Climbing | Fitness | Community
#visual {
width: 100%;
height: auto;
position:absolute;
left:0;
bottom:0;
transform: translatey(20%);
}
Why ?
Sign up now and give your child the opportunity to grow, learn, and socialize in Home School classes!
Join Us
Discover the joy and benefits of our Home School classes, designed to fit seamlessly into your child’s weekly routine. Our consistent schedule not only facilitates commitment and progress for your child but also offers a much-needed energy boost.
With personalized coaching in smaller classes, each child receives the attention needed to enhance their climbing skills. Beyond the physical, we aim to foster concentration, problem-solving abilities, and self-confidence, equipping your child with invaluable life skills for a balanced and thriving future.
Join us for an experience that’s more than just climbing—it’s a step towards holistic development.
Subscribe for Classes
Our Home School Classes are currently open for expressions of interest. Please use the “Register Interest” form below, and we will provide you with more details on classes and pricing as soon as they are finalized.
Please note, enrolment is on a first come, first served basis, so registering your interest early is the best way to secure a spot for your child.
Just
$29.99Then $24.99 per week
Unlimited Home School classes per term
Includes, your coach, entry, shoe & chalk hire
Great physical, mental, & social confidence booster!
Join
Join Us
Schedule
Fun & Social Climbing
Max Class Size: 10
Engage in playful climbing games that promote problem-solving and dynamic movement. Enjoy the camaraderie as you socialize with fellow climbers.
Wall Walkers Bouldering resets weekly every Tuesday morning meaning No Class on this day.
Technique Tuning
Max Class Size: 10
Sharpen your climbing skills with a focus on footwork, hand placement, and efficient movement on the wall.
Strength Training
Max Class Size: 10
Power up with climbing-specific exercises like 4x4s, pull-ups, pushups, and various hangs, all aimed at building muscle endurance and strength.
Cardio & Endurance
Max Class Size: 10
Push your limits with cardio-intensive activities and endurance exercises, including max hangs and wall traversing, to improve your staying power.
Not quite ready to sign up?
Simply
Pay per Class$18.00 per class
Ultimate flexibility, valid for 1 year from purchase
Includes, your coach, entry, shoe & chalk hire
Great physical, mental, & social confidence booster!
One by One
Purchase
No, I would like to JOIN
#subscription-modal-container {
font-family: “Century Gothic”, Arial, sans-serif;
color: #fff;
}
#subscription-modal-container .modal {
display: none;
position: fixed;
z-index: 9999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.4);
}
#subscription-modal-container .modal-content {
background: #181818;
margin: 15% auto;
padding: 50px;
border: none;
width: 80%;
max-width: 500px;
border-radius: 10px;
box-shadow: 0 15px 25px rgba(0, 0, 0, 0.6);
}
#subscription-modal-container .close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
#subscription-modal-container .close:hover,
#subscription-modal-container .close:focus {
color: #fff000;
text-decoration: none;
}
#subscription-modal-container h1,
#subscription-modal-container h3 {
color: #fff000;
text-align: center;
font-family: “Arial Black”, sans-serif;
font-size: 2em;
margin-bottom: 30px;
}
#subscription-modal-container form {
display: flex;
flex-direction: column;
}
#subscription-modal-container .user-box {
position: relative;
margin-bottom: 30px;
}
#subscription-modal-container .user-box input {
width: 100%;
padding: 10px 0;
font-size: 16px;
color: #fff;
border: none;
border-bottom: 1px solid #fff;
outline: none;
background: transparent;
font-family: “Century Gothic”, sans-serif;
}
#subscription-modal-container .user-box label {
position: absolute;
top: 0;
left: 0;
padding: 10px 0;
font-size: 16px;
color: #fff;
pointer-events: none;
transition: 0.5s;
}
#subscription-modal-container .user-box input:focus ~ label,
#subscription-modal-container .user-box input:valid ~ label {
top: -20px;
left: 0;
color: #fff000;
font-size: 12px;
}
#subscription-modal-container button {
position: relative;
display: inline-block;
padding: 10px 20px;
color: #fff000;
font-size: 16px;
text-decoration: none;
text-transform: uppercase;
overflow: hidden;
transition: 0.5s;
margin-top: 40px;
letter-spacing: 4px;
border: none;
background: transparent;
cursor: pointer;
}
#subscription-modal-container button:hover {
background: #fff000;
color: #000;
border-radius: 5px;
box-shadow: 0 0 5px #fff000, 0 0 25px #fff000, 0 0 50px #fff000,
0 0 100px #fff000;
}
#subscription-modal-container #termsContent {
background: #181818;
margin: 5% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #fff;
}
#subscription-modal-container #termsText {
color: #fff;
}
#subscription-modal-container #termsContent h3,
#subscription-modal-container #termsContent h4 {
color: #fff000;
}
#subscription-modal-container #termsContent ul {
padding-left: 20px;
color: #fff;
}
#subscription-modal-container #termsContent li {
margin-bottom: 10px;
}
#subscription-modal-container #agreeCheckbox {
margin-right: 10px;
}
#subscription-modal-container label[for=”agreeCheckbox”] {
color: #fff;
}
#subscription-modal-container #planTypeDisplay {
color: #fff000;
font-size: 1.2em;
margin-bottom: 20px;
text-align: center;
}
Terms and Conditions
I agree to the terms and conditions
Continue to Form
×
Parent’s First Name
Parent’s Last Name
Parent’s Phone Number
Child’s Name
Child’s Age
Number of Passes
Purchase Subscription
(function() {
const container = document.getElementById(“subscription-modal-container”);
const termsModal = container.querySelector(“#termsModal”);
const purchaseModal = container.querySelector(“#purchaseModal”);
const span = container.querySelector(“.close”);
const form = container.querySelector(“#purchaseForm”);
const passesInput = container.querySelector(“#passesInput”);
const agreeCheckbox = container.querySelector(“#agreeCheckbox”);
const continueToFormBtn = container.querySelector(“#continueToForm”);
const planTypeDisplay = container.querySelector(“#planTypeDisplay”);
let currentPlanType = “”;
window.openSubscriptionModal = function(planType) {
currentPlanType = planType;
console.log(“Opening modal for plan:”, currentPlanType);
showTermsAndConditions();
}
function showTermsAndConditions() {
const termsText = container.querySelector(“#termsText”);
if (currentPlanType === “The Ascent Plan”) {
termsText.innerHTML = `
Terms and Conditions for The Ascent Plan
Payment Frequency is Weekly
Your membership is open ended and will continue until you cancel it
One-month’s notice is required for canceling a membership
Wall Walkers Bouldering reserves the right to update or change the Privacy Policy or Terms and Conditions without notice
Wall Walkers Bouldering may terminate memberships at their discretion
Classes may be cancelled if too few attendees are booked, so help us spread the word 🙂
Membership Benefits
Unlimited access to our Home School Classes
Weekly wall resets for new challenges
Experienced and passionate coach
All gear included in class price
Online booking system
Great community of climbers and staff
Fully air-conditioned gym
Free WiFi
`;
} else if (currentPlanType === “One by One Plan”) {
termsText.innerHTML = `
Terms and Conditions for One by One Plan
Payment Frequency is fixed for the One by One Plan
Passes purchased under this plan are valid for 6 months from the date of purchase
Wall Walkers Bouldering reserves the right to update or change the Privacy Policy or Terms and Conditions without notice
Wall Walkers Bouldering may terminate or revoke passes at their discretion
Passes can be used on any person listed in your portal, they may not be transferred to another User account or given away
Passes purchased at $18 are for use on children only for Adult pricing see the front desk to pay on entry
Classes may be cancelled if too few attendees are booked, so help us spread the word 🙂
Pass Benefits
Access to our Home School Classes (booking required)
Weekly wall resets for new challenges
Experienced and passionate coach
All gear included in class price
Online booking system
Great community of climbers and staff
Fully air-conditioned gym
Free WiFi
`;
}
termsModal.style.display = “block”;
}
continueToFormBtn.addEventListener(“click”, () => {
if (!agreeCheckbox.checked) {
alert(“Please agree to the terms and conditions”);
return;
}
termsModal.style.display = “none”;
planTypeDisplay.textContent = `Selected Plan: ${currentPlanType}`;
if (currentPlanType === “One by One Plan”) {
passesInput.style.display = “block”;
} else {
passesInput.style.display = “none”;
}
purchaseModal.style.display = “block”;
});
span.onclick = function() {
purchaseModal.style.display = “none”;
};
window.onclick = function(event) {
if (event.target == purchaseModal) {
purchaseModal.style.display = “none”;
}
if (event.target == termsModal) {
termsModal.style.display = “none”;
}
};
form.addEventListener(“submit”, async (e) => {
e.preventDefault();
console.log(“Form submitted. Current plan type:”, currentPlanType);
const parentFirstName = container.querySelector(“#parentFirstName”).value;
const parentLastName = container.querySelector(“#parentLastName”).value;
const parentPhone = container.querySelector(“#parentPhone”).value;
const email = container.querySelector(“#email”).value;
const childName = container.querySelector(“#childName”).value;
const childAge = container.querySelector(“#childAge”).value;
const numberOfPasses = container.querySelector(“#numberOfPasses”).value;
let endpoint;
let requestBody;
if (currentPlanType === “The Ascent Plan”) {
endpoint = “https://dokku.wallwalkersbouldering.com/stripeControls/purchase/TheAscentPlan”;
//endpoint = “http://localhost:3000/stripeControls/purchase/TheAscentPlan”;
requestBody = {
parentFirstName,
parentLastName,
parentPhone,
email,
planType: currentPlanType,
childName,
childAge,
fromPortal: false,
termsAndConditions: true,
status: “pending”,
};
} else if (currentPlanType === “One by One Plan”) {
endpoint = “https://dokku.wallwalkersbouldering.com/stripeControls/purchase/OnebyOnePasses”;
//endpoint = “http://localhost:3000/stripeControls/purchase/OnebyOnePasses”;
requestBody = {
parentFirstName,
parentLastName,
parentPhone,
email,
childName,
childAge,
numberOfPasses: parseInt(numberOfPasses),
fromPortal: false,
termsAndConditions: true,
};
} else {
console.error(“Invalid plan type:”, currentPlanType);
alert(“Invalid plan type”);
return;
}
try {
console.log(“Sending request to:”, endpoint);
console.log(“Request body:”, requestBody);
const response = await fetch(endpoint, {
method: “POST”,
headers: {
“Content-Type”: “application/json”,
“x-app-identifier”: “WallWalkersBouldering_MonkeyMagic”,
},
body: JSON.stringify(requestBody),
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(errorData.error || “Purchase request failed”);
}
const data = await response.json();
window.location.href = data.checkoutUrl;
} catch (error) {
console.error(“Error:”, error);
alert(error.message || “Failed to create checkout session. Please try again.”);
}
});
})();
body {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.login-box {
width: 100%;
padding: 50px;
background: #181818;
box-sizing: border-box;
box-shadow: 0 15px 25px rgba(0, 0, 0, .6);
border-radius: 10px;
}
.login-box h2 {
margin: 0 0 30px;
padding: 0;
color: #fff000 !important;
text-align: center;
font-family: Arial Black;
font-size: 2em;
}
.login-box h3 {
font-size: 18px;
color: white !important;
font-weight: bold;
font-family: Arial Black, Gadget, sans-serif;
margin: 0px;
padding: 0px;
margin-top: 10px;
padding-top: 10px;
}
@media (max-width: 767px) {
.login-box h2 {
margin: 0 0 30px;
padding: 0;
color: #fff000 !important;
text-align: center;
font-family: Arial Black;
font-size: 1em;
}
}
.login-box .user-box {
position: relative;
}
.login-box .user-box input,
.login-box .user-box textarea {
width: 100%;
padding: 10px 0;
font-size: 16px;
color: #fff;
margin-bottom: 30px;
border: none;
border-bottom: 1px solid #fff;
outline: none;
background: transparent;
font-family: ‘Century Gothic’;
}
.login-box .user-box label {
position: absolute;
top: 0;
left: 0;
padding: 10px 0;
font-size: 16px;
color: #fff;
pointer-events: none;
transition: .5s;
font-family: ‘Century Gothic’;
}
.TandC label {
color: #fff !important;
font-family: ‘Century Gothic’;
}
.makeLink {
color: #fff000 !important;
text-decoration: underline;
font-family: ‘Century Gothic’;
}
.makeLink:hover {
color: white !important;
text-decoration: none;
font-family: ‘Century Gothic’;
}
.login-box .user-box input:focus~label,
.login-box .user-box input:valid~label {
top: -20px;
left: 0;
color: #fff000;
font-size: 12px;
}
.login-box .user-box textarea:focus~label,
.login-box .user-box textarea:valid~label {
top: -20px;
left: 0;
color: #fff000;
font-size: 12px;
}
.login-box form input[type=submit] {
position: relative;
display: inline-block;
padding: 10px 20px;
color: white;
background-color: black;
font-size: 16px;
text-decoration: none;
text-transform: uppercase;
overflow: hidden;
transition: .5s;
margin-top: 40px;
letter-spacing: 4px
}
.login-box input[type=submit]:hover {
background: #fff000;
color: black;
border-radius: 5px;
box-shadow: 0 0 5px #fff000,
0 0 25px #fff000,
0 0 50px #fff000,
0 0 100px #fff000;
}
.login-box input[type=checkbox] {
width: 25px;
height: 25px;
vertical-align: middle;
position: relative;
}
.form-inline {
display: flex;
align-items: center;
width: 100%;
}
.form-inline label {
margin: 5px 10px 5px 0;
}
/* .form-inline input {
vertical-align: middle;
margin: 5px 10px 5px 0;
padding: 10px;
background-color: #fff;
border: 1px solid #ddd;
} */
::-webkit-calendar-picker-indicator {
filter: invert(1);
}
.container {
padding: 20px 100px 20px 100px;
text-align: left;
display: none;
}
.container p {
color: white;
font-size: 14px;
margin-bottom: 20px;
font-family: Century Gothic;
margin: 0px;
padding: 0px;
}
.container li {
color: white;
font-size: 14px;
margin-bottom: 20px;
font-family: Century Gothic;
margin: 0px;
padding: 0px;
}
.ReturnText {
color: #fff000;
font-size: 14px;
margin-bottom: 20px;
font-family: Century Gothic;
margin: 0px;
padding: 0px;
}
#toggleButton {
display: flex;
position: fixed;
align-items: center;
justify-content: center;
top: 0;
left: 0;
}
.ring {
position: relative;
top: 100%;
left: 0%;
/* transform: translate(-50%, -50%); */
width: 50px;
height: 50px;
background: transparent;
border: 3px solid #3c3c3c;
border-radius: 50%;
text-align: center;
line-height: 150px;
font-family: sans-serif;
font-size: 20px;
color: #fff000;
letter-spacing: 4px;
text-transform: uppercase;
text-shadow: 0 0 10px #fff000;
box-shadow: 0 0 20px rgba(0, 0, 0, .5);
display: none;
}
.ring:before {
content: ”;
position: absolute;
top: -3px;
left: -3px;
width: 100%;
height: 100%;
border: 3px solid transparent;
border-top: 3px solid #fff000;
border-right: 3px solid #fff000;
border-radius: 50%;
animation: animateC 2s linear infinite;
}
.circleContainer {
display: none;
position: absolute;
top: calc(50% – 2px);
left: 50%;
width: 50%;
height: 4px;
background: transparent;
transform-origin: left;
animation: animate 2s linear infinite;
}
.circleContainer:before {
content: ”;
position: absolute;
width: 16px;
height: 16px;
border-radius: 50%;
background: #fff000;
top: -6px;
right: -8px;
box-shadow: 0 0 20px #fff000;
}
.drop {
cursor: pointer;
}
@keyframes animateC {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes animate {
0% {
transform: rotate(45deg);
}
100% {
transform: rotate(405deg);
}
}
Register Your Interest
Parent Name
Child Name
Child Age
Mobile Number
Class Type:
Captcha Question: What is 4 plus 4?
By checking this box you agree to the below terms and conditions
Introduction:
These Terms and Conditions (the “Agreement”) govern the terms by which
you may participate in Wall Walkers Bouldering class Programs. The Programs offered by Wall Walkers
Bouldering are outlined on the specific class information pages (listed below) and in this
agreement.
Register:
To register for a Class Program, you must complete the registration process by providing Wall
Walkers Bouldering with current, complete, and accurate information as
prompted by the applicable registration form. You acknowledge that if any information provided by
you is untrue, inaccurate, not current, or incomplete, we may be unable to contact You
and/or your child, and we reserve the right to terminate your position in the Class Program queue.
Enrollment:
To participate in a Program, Wall Walkers Bouldering will confirm your details via email and provide
you with the relevant class details including start date, end date, and payment link.
Communication:
By submitting this form, you agree to receive communications from Wall Walkers Bouldering, including
via e-mail, text message, calls, and push notifications. You agree that texts, calls, or prerecorded
messages may be generated by automatic telephone dialing systems.
Communications from Wall Walkers Bouldering, its affiliated companies, and/or agents, may include
but are not limited to: operational communications concerning your class or Program, updates
concerning new and existing features on the Wall Walkers Bouldering website, and news concerning
Wall Walkers Bouldering and industry developments.
Termination:
Should your child act unreasonably during a class on multiple occasions, Wall Walkers Bouldering
reserves the right to terminate your child’s remaining classes without a refund.
Home School Classes:
Home School Classes are specifically designed to accommodate the needs of home-educated children,
focusing on their physical development and social interaction through climbing. These classes are
scheduled during typical school hours to facilitate accessibility for home school students.
Home School Classes are run on a subscription basis, each subscription has different pros and
cons. Be sure to understand your subscription clearly.
Shoe and chalk hire are included in the price.
Memberships can be frozen for 1 week without charge; subsequent weeks will be charged at $5 per
week.
No discounts or refunds for missed classes due to freezing a membership.
1 Free pass card will be issued on the first visit; a $20 fee applies for replacement if lost or
stolen.
Comp Squad memberships are non-transferable.
All prices include 10% GST.
Surcharges may apply as stated; no additional fees or charges.
Kids must be at least 7 years old to participate in Home School Classes.
If Wall Walkers Bouldering cancels a class, a make-up class will be scheduled on a different
day.
Wall Walkers Bouldering reserves the right to refuse membership renewal if your child does not
regularly participate in classes.
There are no refunds for missed classes or competition entries.
By submitting the information in this form, you acknowledge that you have read,
understand, and agree to be bound by the terms and conditions of this Agreement and that we may
contact you from time to time with class updates and offers.
function ShowHide() {
var x = document.getElementById(“container”);
console.log(x);
if (x.style.display === “none” || x.style.display === “”) {
x.style.display = “block”;
} else {
x.style.display = “none”;
}
}
//https://stackoverflow.com/questions/374644/how-do-i-capture-response-of-form-submit
document.forms[‘sendForm’].addEventListener(‘submit’, (event) => {
event.preventDefault();
// TODO do something here to show user that form is being submitted
var submitButton = document.getElementById(“submit”);
var loadingMainCircle = document.getElementById(“loading”);
var loadingSmallCircle = document.getElementById(“loadingCircle”);
// console.log(loadingSmallCircle);
submitButton.style.display = “none”;
loadingMainCircle.style.display = “block”;
loadingSmallCircle.style.display = “block”;
fetch(event.target.action, {
method: ‘POST’,
headers: {
“Content-Type”: “application/x-www-form-urlencoded”, // Necessary for URL-encoded forms
“x-app-identifier”: “WallWalkersBouldering_MonkeyMagic”, // Custom header for trusted requests
},
body: new URLSearchParams(new FormData(event.target)) // event.target is the form
})
.then((response) => {
if (!response.ok) {
throw new Error(‘Network response was not ok: ‘ + response.statusText);
}
return response.json(); // This parses the JSON body and returns another promise
})
.then((body) => {
console.log(“Body: “, body.responseMessage);
// TODO handle body
if (body.responseCode == 201) { //Success
changeText(body.responseMessage);
}
else { //Other things
changeText(“Submitted Unsuccessfully: ” + body.responseMessage);
}
submitButton.style.display = “block”;
loadingMainCircle.style.display = “none”;
loadingSmallCircle.style.display = “none”;
})
.catch((error) => { //Error
console.error(‘There was a problem with the fetch operation: ‘, error);
changeText(“There was a problem submitting your form. Please try again later.”);
submitButton.style.display = “block”;
loadingMainCircle.style.display = “none”;
loadingSmallCircle.style.display = “none”;
});
});
var timeout;
function changeText(message) {
var elem = document.getElementById(“Submitted”);
var date = new Date();
var hours = date.getHours();
var minutes = (date.getMinutes() < 15 ? '0' : '') + date.getMinutes();
elem.innerHTML = message;
clearTimeout(timeout);
timeout = setTimeout(function () {
elem.innerHTML = "";
}, 10000);
}