shop.ginametcalf.com
Open in
urlscan Pro
107.23.163.128
Public Scan
URL:
https://shop.ginametcalf.com/
Submission: On June 17 via api from US — Scanned from DE
Submission: On June 17 via api from US — Scanned from DE
Form analysis
1 forms found in the DOMName: paymentForm —
<form id="paymentForm" name="paymentForm" class="ng-pristine ng-invalid ng-invalid-required ng-valid-email" novalidate="novalidate">
<h3 class="mb-24 text-uppercase">Contact Information</h3>
<div class="border-bottom mb-16">
<div class="row mx-n8">
<div class="col-sm-6 col-12 px-8">
<div class="form-group d-flex flex-column">
<input type="text" class="form-control order-2 ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required" autofill="" id="fname" name="fname" ng-model="order.customer.first_name" required="" spellcheck="false" value=""
autocomplete="given-name">
<label for="fname" class="order-1">First Name</label>
</div>
</div>
<div class="col-sm-6 col-12 px-8">
<div class="form-group d-flex flex-column">
<input type="text" class="form-control order-2 ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required" autofill="" id="lname" name="lname" ng-model="order.customer.last_name" required="" spellcheck="false" value=""
autocomplete="family-name">
<label for="lname" class="order-1">Last Name</label>
</div>
</div>
</div>
<div class="form-group d-flex flex-column">
<input type="email" class="form-control order-2 ng-pristine ng-untouched ng-empty ng-valid-email ng-invalid ng-invalid-required" autofill="" id="email" name="email" ng-model="order.customer.email" required="" spellcheck="false" value=""
autocomplete="email">
<label for="email" class="order-1">Email Address</label>
</div>
<!-- ngIf: checkoutState.product.properties.phone_number_field -->
</div>
<div class="border-bottom mb-16">
</div>
<div class="mb-16">
</div>
<h3 class="mt-32 text-uppercase">Payment Methods</h3>
<div id="payments" class="tpl-t1__payment mt-16 mb-24">
<div class="row">
<div class="col-12 mt-16 order-3 ml-20 pr-0">
<div class="custom-control custom-radio m-0">
<input type="radio" id="creditCardRadio" name="paymentMethods" data-toggle="collapse" data-target="#cards:not(.show)" class="custom-control-input" ng-click="setPaymentType('cc_processor')" aria-expanded="true" checked="">
<label class="custom-control-label d-flex align-items-center" for="creditCardRadio">
<div class="payment-method-label"><img class="sampay-icon" src="https://d2n844f18s487r.cloudfront.net/modules/frontend/img/payment/sampay-wallet.svg" alt="SamPay Wallet"><span>Card & More</span></div>
</label>
</div>
</div>
<div id="cards" class="col-12 collapse order-3 show " data-parent="#payments">
<div class="payment-element-container">
<div class="payment-form cc-processor-form sampay-processor-form" ng-show="processor_selection == 'cc_processor'">
<!-- ngIf: renderingPaymentElement -->
<!-- ngIf: !renderingPaymentElement -->
<div ng-if="!renderingPaymentElement" class="ng-scope">
<stripe-element id="payment-element" instance="paymentElement" class="stripe-payment-element ng-isolate-scope">
<div stripe-element-decorator="" class="StripeElement">
<div class="__PrivateStripeElement"
style="margin: -4px 0px !important; padding: 0px !important; border: none !important; display: block !important; background: transparent !important; position: relative !important; opacity: 1 !important; clear: both !important; transition: height 0.35s ease 0s !important;">
<iframe name="__privateStripeFrame0977" frameborder="0" allowtransparency="true" scrolling="no" role="presentation" allow="payment *; publickey-credentials-get *"
src="https://js.stripe.com/v3/elements-inner-payment-d9c8228e1ffd3894aeabbdc6277112e9.html#wait=true&rtl=false&publicOptions[paymentMethodOrder][0]=card&publicOptions[paymentMethodOrder][1]=affirm&publicOptions[paymentMethodOrder][2]=afterpay_clearpay&publicOptions[paymentMethodOrder][3]=klarna&publicOptions[terms][applePay]=never&publicOptions[terms][auBecsDebit]=never&publicOptions[terms][bancontact]=never&publicOptions[terms][card]=never&publicOptions[terms][cashapp]=never&publicOptions[terms][googlePay]=never&publicOptions[terms][ideal]=never&publicOptions[terms][paypal]=never&publicOptions[terms][sepaDebit]=never&publicOptions[terms][sofort]=never&publicOptions[terms][usBankAccount]=never&publicOptions[wallets][applePay]=never&publicOptions[wallets][googlePay]=never&publicOptions[layout][type]=accordion&publicOptions[layout][defaultCollapsed]=false&publicOptions[layout][radios]=false&publicOptions[layout][spacedAccordionItems]=true&stripeAccount=acct_1PK4yB2vdSTZxa0z&componentName=payment&keyMode=live&apiKey=pk_live_NNX27kZQDAPiNsF78lllGNd0&referrer=https%3A%2F%2Fshop.ginametcalf.com%2F&controllerId=__privateStripeController0971"
title="Secure payment input frame"
style="border: 0px !important; margin: -4px; padding: 0px !important; width: calc(100% + 8px); min-width: 100% !important; overflow: hidden !important; display: block !important; user-select: none !important; transform: translate(0px) !important; color-scheme: light only !important; height: 361.016px; opacity: 1; transition: height 0.35s ease 0s, opacity 0.4s ease 0.1s;"></iframe>
</div>
</div>
</stripe-element>
</div><!-- end ngIf: !renderingPaymentElement -->
</div>
</div>
</div>
</div>
</div>
<div id="order-summary-widget" box-loading="contextRefresh">
<div id="summary-totals" class="box">
<div class="invoice-item subtotal-row ng-hide" ng-show="checkoutContext.order.invoice.subtotal !== checkoutContext.order.invoice.total">
<div class="invoice-label-col">
<span class="invoice-item-label">Subtotal:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding">$30.00</span>
</div>
</div>
<div class="invoice-item tax-row ng-hide" ng-show="checkoutContext.order.invoice.tax !== 0">
<div class="invoice-label-col">
<span class="invoice-item-label">Tax:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding">$0.00</span>
</div>
</div>
<div class="invoice-item shipping-row ng-hide" ng-show="checkoutContext.order.invoice.shipping !== 0">
<div class="invoice-label-col">
<span class="invoice-item-label">Shipping:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding">$0.00</span>
</div>
</div>
<div class="invoice-item discount-row ng-hide" ng-show="checkoutContext.order.invoice.discount !== 0">
<div class="invoice-label-col">
<span class="invoice-item-label">Discounts:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding">-$0.00</span>
</div>
</div>
<div class="invoice-item total-row">
<div class="invoice-label-col">
<span class="invoice-item-label">Total:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding" id="total">$30.00 </span>
</div>
</div>
<!-- ngIf: subscriptionsByProductId[checkoutContext.order.invoice.items[0].product_id] -->
</div>
</div>
<!-- ngIf: processor_selection !== 'digital_wallet' --><button type="submit" class="btn btn-danger w-100 mb-16 main-cta ng-scope" id="placeOrder" name="placeOrder" ng-click="placeOrder('zZ9YxYs312y0FC5LXbAWFUoH')"
ng-disabled="shippingCountryIsRestricted || isProcessingOrder" ng-if="processor_selection !== 'digital_wallet'"> Place Order Now </button><!-- end ngIf: processor_selection !== 'digital_wallet' -->
<div id="payment-request-button" class="mb-16 ng-hide" ng-show="processor_selection === 'digital_wallet'"></div>
<div class="g-recaptcha-container">
<script type="text/javascript">
var recaptchaChallengeSeen = false;
var recaptchaCallback = function(response) {
window.recaptchaResponse = response;
};
var onloadCallback = function() {
window.recaptchaWidgetId = grecaptcha.render('submit', {
'sitekey': '6LfyULUmAAAAAJld89qgZEGDDIGnjfWqZGBkXh3t',
'callback': recaptchaCallback,
'size': 'invisible'
});
};
const domObserver = new MutationObserver(() => {
const iframe = document.querySelector("iframe[src^=\"https://www.google.com/recaptcha\"][src*=\"bframe\"]");
if (!iframe) {
return;
}
domObserver.disconnect();
const recaptchaContainerObserver = new MutationObserver(() => {
if (iframe.parentNode.parentNode.style.visibility !== "visible") {
return;
}
recaptchaContainerObserver.disconnect();
recaptchaChallengeSeen = true;
});
recaptchaContainerObserver.observe(iframe.parentNode.parentNode, {
attributes: true
});
});
domObserver.observe(document.documentElement || document.body, {
childList: true,
subtree: true
});
window.resetRecaptcha = function() {
window.recaptchaResponse = undefined;
grecaptcha.reset(window.recaptchaWidgetId);
recaptchaChallengeSeen = false;
domObserver.observe(document.documentElement || document.body, {
childList: true,
subtree: true
});
}
</script>
<input id="submit" type="hidden" value="Submit" style="">
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async="" defer=""></script>
<script>
const sleepUntil = async (f, timeoutMs) => {
return new Promise((resolve, reject) => {
const timeWas = new Date();
const wait = setInterval(function() {
if (f()) {
clearInterval(wait);
resolve();
} else if (new Date() - timeWas > timeoutMs) { // Timeout
clearInterval(wait);
reject();
}
}, 20);
});
}
function fetchToken() {
window.resetRecaptcha();
return new Promise(async function(resolve, reject) {
grecaptcha.reset();
grecaptcha.execute(window.recaptchaWidgetId);
var responseReceived = false;
try {
await sleepUntil(() => window.recaptchaResponse, 60000);
responseReceived = true;
resolve('');
} catch {
reject('reCAPTCHA timeout exceeded!');
}
snowplow('trackSelfDescribingEvent', {
event: {
schema: 'iglu:com.samcart/recaptcha_challenge_shown_event/jsonschema/1-0-0',
data: {
shown: recaptchaChallengeSeen,
}
}
});
snowplow('trackSelfDescribingEvent', {
event: {
schema: 'iglu:com.samcart/recaptcha_challenge_response_received_event/jsonschema/1-0-0',
data: {
response_received: responseReceived,
}
}
});
});
}
</script>
</div>
<div class="tpl-t1__terms mx-auto text-center">
<p>By placing an order you are stating that you agree to the <a target="_blank" rel="noopener nofollow noreferrer" href="https://www.ginametcalf.com/online-course-agreement-breakup-course">
Terms & Conditions
</a>
</p>
</div>
</form>
Text Content
BREAKUP TO BREAK FREE: 30 DAYS OF HEALING AFTER A BREAKUP Keep your ex away for $1 a day! 30 videos total all under 10 minutes in length, that give you clear step-by-step instructions on a task to complete each day. Videos and tasks are everything from short, simple, & fun to deep, informative, & reflective and are designed to promote processing, healing, accountability, and self-care during a breakup. Each day you'll be emailed when a new video is available for you. This course is for you if you're desiring to heal yourself, learn about yourself, and stay accountable to yourself. This course is a form of self-care! A course for anyone who initiated a breakup, was broken up with, or is on a break (the breakup can be recent or not). Designed to fit into your everyday life and schedule. The course format provides a structure that guides you completely, allowing you to focus on your process during a vulnerable time without having to think about what to do next. This course can be used to help end a toxic relationship cycle, process a breakup, or gain clarity during a break. Appropriate for any age, sex, gender, race, ethnicity, level of knowledge and ability (captions are included on videos!) You will gain lifetime access to this course and can use it as many times as necessary. *Please note: Due to the digital nature of this course, we do not offer refunds. CONTACT INFORMATION First Name Last Name Email Address PAYMENT METHODS Card & More Subtotal: $30.00 Tax: $0.00 Shipping: $0.00 Discounts: -$0.00 Total: $30.00 Place Order Now By placing an order you are stating that you agree to the Terms & Conditions © 2024 Gina Metcalf LLC. All Rights Reserved. Powered by SamCart PROCESSING