Events

Click here to edit your subtitle

Meeting ID if needed: 864 7769 1906
STEP 1A:
If you have a PayPal Account: Pay through register button
STEP 1B:
If no PayPal account, an invoice will be sent to your email after class - provide instructor with preferred email

Click 'link to live video' to join virtual zoom classes:


Instructor will be on 15 minutes prior to class for questions and comments, classes will start at designated time.
Participant Audio will be turned off during designated class time. Cameras are welcome to stay on or be off during class session - participant preference.


9

December

2024

Sun Salutations
($15)
Monday: 7:30p-8:35 MST

link to live video

11

December

2024

Yin Yoga
($15)
Wednesday: 7:30p-8:35p MST

link to live video

12

December

2024

Gentle Flow
($15)
Thursday: 7:30p-8:35p MST

link to live video

16

December

2024

Sun Salutations
($15)
Monday: 7:30p-8:35p MST

link to live video

18

December

2024

Yin Yoga
($15)
Wednesday: 7:30p-8:35p MST

link to live video

19

December

2024

Gentle Flow
($15)
Thursday: 7:30p-8:35p MST

link to live video

23

December

2024

Sun Salutations
($15)
Monday: 7:30p-8:35p MST

link to live video

26

December

2024

Gentle Flow
($15)
Thursday: 7:30p-8:35p MST

link to live video

30

December

2024

30

December

2024

Sun Salutations
($15)
Monday: 7:30p-8:35p MST

link to live video

1

January

2025

Yin Yoga
($15)
Wednesday: 7:30p-8:35p MST

link to live video

3

January

2025

window.paypal .Buttons({ style: { shape: "rect", layout: "vertical", }, async createOrder() { try { const response = await fetch("/api/orders", { method: "POST", headers: { "Content-Type": "application/json", }, // use the "body" param to optionally pass additional order information // like product ids and quantities body: JSON.stringify({ cart: [ { id: "YOUR_PRODUCT_ID", quantity: "YOUR_PRODUCT_QUANTITY", }, ], }), }); const orderData = await response.json(); if (orderData.id) { return orderData.id; } else { const errorDetail = orderData?.details?.[0]; const errorMessage = errorDetail ? `${errorDetail.issue} ${errorDetail.description} (${orderData.debug_id})` : JSON.stringify(orderData); throw new Error(errorMessage); } } catch (error) { console.error(error); resultMessage(`Could not initiate PayPal Checkout...

${error}`); } }, async onApprove(data, actions) { try { const response = await fetch(`/api/orders/${data.orderID}/capture`, { method: "POST", headers: { "Content-Type": "application/json", }, }); const orderData = await response.json(); // Three cases to handle: // (1) Recoverable INSTRUMENT_DECLINED -> call actions.restart() // (2) Other non-recoverable errors -> Show a failure message // (3) Successful transaction -> Show confirmation or thank you message const errorDetail = orderData?.details?.[0]; if (errorDetail?.issue === "INSTRUMENT_DECLINED") { // (1) Recoverable INSTRUMENT_DECLINED -> call actions.restart() // recoverable state, per https://developer.paypal.com/docs/checkout/standard/customize/handle-funding-failures/ return actions.restart(); } else if (errorDetail) { // (2) Other non-recoverable errors -> Show a failure message throw new Error(`${errorDetail.description} (${orderData.debug_id})`); } else if (!orderData.purchase_units) { throw new Error(JSON.stringify(orderData)); } else { // (3) Successful transaction -> Show confirmation or thank you message // Or go to another URL: actions.redirect('thank_you.html'); const transaction = orderData?.purchase_units?.[0]?.payments?.captures?.[0] || orderData?.purchase_units?.[0]?.payments?.authorizations?.[0]; resultMessage( `Transaction ${transaction.status}: ${transaction.id}

See console for all available details`, ); console.log( "Capture result", orderData, JSON.stringify(orderData, null, 2), ); } } catch (error) { console.error(error); resultMessage( `Sorry, your transaction could not be processed...

${error}`, ); } }, }) .render("#paypal-button-container"); // Example function to show a result to the user. Your site's UI library can be used instead. function resultMessage(message) { const container = document.querySelector("#result-message"); container.innerHTML = message; }