File "shortcode-checkout.js"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/swedbank-pay-checkout/assets/js/shortcode-checkout.js
File size: 36.47 KB
MIME-type: text/plain
Charset: utf-8
/* global wc_checkout_params */
/* global WC_Shortcode_Checkout */
jQuery( function( $ ) {
'use strict';
/**
* Object to handle Swedbank Pay checkout payment forms.
*/
window.wc_sb_shortcode_checkout = {
customer_identified: null,
customer_reference: null,
billing_address: null,
shipping_address: null,
js_url: null,
payment_url: WC_Shortcode_Checkout.payment_url,
paymentMenu: null,
is_payment_menu_loaded: false,
xhr: false,
updateTimer: null,
/**
* Initialize e handlers and UI state.
*/
init: function( form ) {
console.log( 'init' );
var self = this;
if ( ! this.isTermsAndConditionsEnabled() ) {
setInterval( function () {
$( '#place_order' ).prop( 'disabled', true );
}, 1000 );
}
// Init Checkin
if ( this.isCheckinEnabled() ) {
this.loadCheckIn();
// Hide Place Order
if ( this.isCheckinRequired() ) {
this.hidePlaceOrder();
}
$( document.body ).on( 'click', '#change-address-info', function ( event ) {
event.preventDefault();
// Show Address Fields
self.showAddressFields();
} );
this.hideAddressFields();
}
this.form = form;
$( this.form )
// We need to bind directly to the click (and not checkout_place_order_payex_checkout) to avoid popup blockers
// especially on mobile devices (like on Chrome for iOS) from blocking payex_checkout(payment_id, {}, 'open'); from opening a tab
.on( 'click', '#place_order', {'obj': self}, this.onSubmit )
// WooCommerce lets us return a false on checkout_place_order_{gateway} to keep the form from submitting
.on( 'submit checkout_place_order_payex_checkout' );
//$( document.body ).on( 'checkout_error', this.resetCheckout );
//$( document.body ).on( 'blur', this.onUpdatedCheckout );
//$( document.body ).on( 'updated_shipping_method', this.onUpdatedShippingMethod );
$( document.body ).on(
'updated_checkout',
null,
{'obj': self},
this.onInitOrUpdateCheckout
);
this.checkPaymentUrl( function ( loaded ) {
if ( ! loaded ) {
// Initialize Instant Checkout
//self.initInstantCheckout();
}
} );
},
/**
* Check if the Checkin is active
* @return {boolean}
*/
isCheckinEnabled() {
return 'yes' === WC_Shortcode_Checkout.checkin_enabled;
},
/**
* Check if the Checkin is required
* @return {boolean}
*/
isCheckinRequired() {
return this.isCheckinEnabled() && 'yes' === WC_Shortcode_Checkout.checkin_required;
},
/**
* Check if customer was identified
* @return {boolean}
*/
isCustomerIdentified() {
return this.customer_identified === true;
},
/**
* Check if the redirect method is active
* @return {boolean}
*/
isRedirectMethodEnabled() {
return 'redirect' === WC_Shortcode_Checkout.redirect_method;
},
/**
* Check if terms and conditions are enabled
* @returns {boolean}
*/
isTermsAndConditionsEnabled() {
return WC_Shortcode_Checkout.tos_enabled
},
/**
* Load CheckIn
* @returns {*}
*/
loadCheckIn: function() {
var self = this;
// Get `view-consumer-identification`
return $.ajax( {
type: 'POST',
url: WC_Shortcode_Checkout.ajax_url,
data: {
action: 'swedbank_pay_checkin',
nonce: WC_Shortcode_Checkout.nonce,
},
dataType: 'json'
} ).done( function ( data ) {
if ( ! data.success ) {
self.logError( 'sb-checkin-loader', data );
alert( data.details );
return;
}
// Destroy
if ( window.hasOwnProperty( 'payex' ) && window.payex.hasOwnProperty( 'hostedView' ) ) {
//if ( typeof window.payex.hostedView.consumer !== 'undefined' ) {
//window.payex.hostedView.consumer().close();
//}
}
// Destroy JS
//$( "script[src*='px.consumer.client']" ).remove();
//$( '#swedbank-pay-checkin iframe' ).remove();
wc_sb_common.loadJs( data.data, function () {
self.initCheckIn();
} );
} );
},
/**
* Initialize CheckIn
*/
initCheckIn: function() {
if ( typeof payex === 'undefined') {
return;
}
var self = this;
wc_sb_common.waitForLoading('payex.hostedView.consumer', function ( err ) {
if ( err ) {
console.warn( err );
return;
}
// Init PayEx hostedView
window.payex.hostedView.consumer( {
container: 'swedbank-pay-checkin',
culture: WC_Shortcode_Checkout.culture,
style: WC_Shortcode_Checkout.checkInStyle ? JSON.parse( WC_Shortcode_Checkout.checkInStyle ) : null,
onConsumerIdentified: function( data ) {
console.log( 'hostedView: onConsumerIdentified' );
self.onConsumerIdentified( data );
},
onNewConsumer: function( data ) {
console.log( 'hostedView: onNewConsumer' );
self.onConsumerIdentified( data );
},
onConsumerRemoved: function( data ) {
console.log( 'hostedView: onConsumerRemoved' );
console.log ( data );
},
onBillingDetailsAvailable: function( data ) {
self.onAddressDetailsAvailable( 'billing', data );
},
onShippingDetailsAvailable: function( data ) {
self.onAddressDetailsAvailable( 'shipping', data );
},
onError: function ( data ) {
self.logError( 'sb-checkin', data );
alert( data.details );
}
} ).open();
});
},
/**
* On Consumer Identified
* @param data
*/
onConsumerIdentified: function ( data ) {
console.log( 'onConsumerIdentified', data );
var self = this;
async.parallel(
{
save_customer_ref: function( callback2 ) {
self.saveCustomerRef( data, function ( err, response ) {
if ( err ) {
alert( err );
}
callback2( null, response );
} );
},
init_checkout: function( callback2 ) {
// Tick "terms and conditions" if exists
let terms = $( '#terms' );
if ( terms.length > 0 && ! terms.prop( 'checked' ) ) {
terms.prop( 'checked', true )
}
self.showPlaceOrder();
// Set customer is identified
self.customer_identified = true;
// Add the reference to the checkout form
self.form.find( '.swedbank_pay_customer_reference' ).remove();
self.form.append( "<input type='hidden' class='swedbank_pay_customer_reference' name='swedbank_pay_customer_reference' value='" + data.consumerProfileRef + "'/>" );
callback2( null, [] );
},
},
function( err, results ) {
console.log( 'onConsumerIdentified: loaded', results );
// Set customer is identified
self.customer_identified = true;
// Save customer reference
self.customer_reference = data.consumerProfileRef;
}
);
},
/**
* Save Customer Reference.
*
* @param data
* @param callback
*/
saveCustomerRef: function ( data, callback ) {
$.ajax( {
type: 'POST',
url: WC_Shortcode_Checkout.ajax_url,
data: {
action: 'swedbank_pay_checkout_customer_profile',
nonce: WC_Shortcode_Checkout.nonce,
consumerProfileRef: data.consumerProfileRef
},
dataType: 'json'
} ).always( function ( response ) {
//
} ).done( function ( response) {
if ( ! response.success ) {
callback( response.data.message, response );
} else {
callback( null, response );
}
} );
},
/**
* Fetch address.
*
* @param type
* @param url
* @param callback
* @returns {JQueryPromise<any>}
*/
fetchAddress: function ( type, url, callback ) {
return $.ajax( {
type: 'POST',
url: WC_Shortcode_Checkout.ajax_url,
data: {
action: 'swedbank_pay_checkout_get_address',
nonce: WC_Shortcode_Checkout.nonce,
type: type,
url: url
},
dataType: 'json'
} ).always( function () {
//
} ).done( function ( response ) {
console.log( response );
if ( ! response.success ) {
callback( response.data.message )
return;
}
// Fill the address
let data = response.data;
$.each( data, function ( key, value ) {
[ type ].forEach( function ( section ) {
let el = $( 'input[name="' + section + '_' + key + '"]' );
if ( el.length === 0 ) {
return;
}
el.prop('readonly', false);
el.closest( '.form-row' ).removeClass( 'swedbank-pay-locked' );
el.val( value ).change();
if ( key === 'country' || key === 'state' ) {
let el1 = $( '#' + section + '_' + key );
if ( typeof window.Select2 !== 'undefined' ) {
el1.select2( 'val', value );
} else if ( typeof $.fn.chosen !== 'undefined' ) {
// Chosen
el1.val( value ).trigger( 'chosen:updated' );
//el1.chosen().change();
} else {
el1.change();
}
}
} );
} );
callback( null, data );
});
},
/**
* On Address Details Available
* @param type billing or shipping
* @param data
* @returns {*}
*/
onAddressDetailsAvailable: function( type, data ) {
console.log( 'onAddressDetailsAvailable', type, data );
var self = this;
self.fetchAddress( type, data.url, function ( err ) {
if ( err ) {
self.onError( err );
return;
}
self[ type + '_address' ] = data;
// Show button witch allows to edit the address
$('#swedbank-pay-checkin-edit').show();
// Update checkout to have shipping methods
self.enqueueCheckoutUpdate();
} );
},
/**
* Hide Address Fields on the checkout
*/
hideAddressFields: function () {
$( '#address-fields' ).hide();
},
/**
* Show Address Fields on the checkout
*/
showAddressFields: function () {
$( '#address-fields' ).show();
},
/**
* Initialize Instant Checkout
*/
initInstantCheckout: function () {
console.log( 'Initialization of Shortcode Checkout...' );
},
/**
* Initialize Checkout
* @param reference
*/
initCheckout: function( reference ) {
console.log( 'initCheckout' );
// Add customer reference if exists
if ( reference ) {
this.form.find( '.swedbank_pay_customer_reference' ).remove();
this.form.append( "<input type='hidden' class='swedbank_pay_customer_reference' name='swedbank_pay_customer_reference' value='" + reference + "'/>" );
}
var self = this;
self.block();
this.loadCheckout( function ( err ) {
self.unblock();
if ( err ) {
self.submit_error( '<div class="woocommerce-error">' + err + '</div>' );
}
} );
},
isPaymentMethodChosen: function() {
//return $( '[name="payment_method"]' ).is( ':checked' );
return true;
},
onSubmit: function ( event ) {
if ( typeof event !== 'undefined' ) {
event.preventDefault();
}
var self = event.data.obj;
self.loadCheckout( function ( err ) {
if ( err ) {
self.submit_error( '<div class="woocommerce-error">' + err + '</div>' );
}
} );
},
onUpdatedCheckout: function( event ) {
console.log( 'onUpdatedCheckout' );
var self = event.data.obj;
if ( self.form.is( '.processing' ) ) {
return false;
}
if ( ! wc_sb_common.validateForm() ) {
console.log( 'onUpdatedCheckout: Validation is failed' );
return false;
}
$( '.woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message' ).remove();
self.updateOrder( function () {
console.log( 'Order has been updated' );
} );
},
onUpdatedShippingMethod: function ( event ) {
console.log( 'onUpdatedShippingMethod' );
var self = event.data.obj;
if ( self.form.is( '.processing' ) ) {
return false;
}
self.updateOrder( function () {
console.log( 'Order has been updated' );
} );
},
/**
* Load Checkout.
*
* @param callback
*/
loadCheckout: function( callback ) {
console.log('loadCheckout');
var self = this;
let terms = $( '#terms' );
// Validate "terms and conditions" if exists
if ( terms.length > 0 && ! terms.prop( 'checked' ) ) {
callback( WC_Shortcode_Checkout.terms_error );
return;
}
// Verify the checkin
if ( self.isCheckinEnabled() ) {
if ( self.isCheckinRequired() && ! self.isCustomerIdentified() ) {
callback( WC_Shortcode_Checkout.needs_checkin );
return;
}
}
// Validate the checkout form
if ( ! wc_sb_common.validateForm() ) {
console.log( 'The checkout form validation is failed.' );
//callback( WC_Shortcode_Checkout.checkin_error );
callback( null );
return;
}
if ( ! self.isPaymentMethodChosen() ) {
console.log( 'payex_checkout must be chosen.' );
callback( 'Please select payment method.' );
return;
}
$( '.woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message' ).remove();
self.form.addClass( 'processing' );
self.block();
if ( self.xhr ) {
self.xhr.abort();
}
// Place WooCommerce Order
self.xhr = self.placeOrder()
.always( function ( response ) {
self.form.removeClass( 'processing' );
self.unblock();
} )
.fail( function( jqXHR, textStatus ) {
callback( textStatus );
} )
.done( function ( response) {
console.log( response );
// Reload page
if ( response.hasOwnProperty('reload') && true === response.reload ) {
window.location.reload();
return;
}
// Trigger update in case we need a fresh nonce
if ( true === response.result.refresh ) {
$( document.body ).trigger( 'update_checkout' );
callback( null, response );
return;
}
if ( response.result !== 'success' ) {
callback( response.messages );
return;
}
if ( self.isRedirectMethodEnabled() ) {
// Redirect to the payment gateway page
console.log( 'Redirecting to ' + response['redirect_url'] );
window.location.href = response['redirect_url'];
callback( null, response );
} else {
// Load SwedBank Pay Checkout frame
self.js_url = response['js_url'];
self.initPaymentJS( self.js_url, function () {
// Hide "Place order"
self.hidePlaceOrder();
callback( null, response );
} );
}
} );
return false;
},
resetCheckout: function() {
//
},
/**
* Initiate Payment Javascript
* @param url
* @param callback
*/
initPaymentJS: function ( url, callback ) {
var self = this;
if ( typeof callback === 'undefined' ) {
callback = function () {};
}
// Destroy
if ( window.hasOwnProperty( 'payex' ) && window.payex.hasOwnProperty( 'hostedView' ) ) {
if ( typeof window.payex.hostedView.paymentMenu !== 'undefined' ) {
window.payex.hostedView.paymentMenu().close();
}
$( '#payment-swedbank-pay-checkout iframe' ).remove();
//delete window.payex.hostedView;
}
// Destroy JS
$( "script[src*='px.paymentmenu.client']" ).remove();
// Load JS
wc_sb_common.loadJs( url, function () {
$( '#payment-swedbank-pay-checkout iframe' ).remove();
// Load SwedBank Pay Checkout frame
// Initiate the payment menu in "Instant Checkout"
$( '#payment' ).hide();
self.initPaymentMenu( 'payment-swedbank-pay-checkout', function () {
callback();
} );
} );
},
/**
* Initiate Payment Menu.
* Payment Javascript must be loaded.
*
* @param id
* @param callback
*/
initPaymentMenu: function ( id, callback ) {
console.log( 'initPaymentMenu' );
var self = this;
if ( typeof callback === 'undefined' ) {
callback = function () {};
}
$( '#' + id ).block({
message: null,
overlayCSS: {
background: '#fff',
opacity: 0.6
}
});
// Load SwedBank Pay Checkout frame
this.paymentMenu = window.payex.hostedView.paymentMenu( {
container: id,
culture: WC_Shortcode_Checkout.culture,
style: WC_Shortcode_Checkout.paymentMenuStyle ? JSON.parse( WC_Shortcode_Checkout.paymentMenuStyle ) : null,
onApplicationConfigured: function( data ) {
// Prevent multiple callback running using is_payment_menu_loaded
if ( ! self.is_payment_menu_loaded ) {
console.log( 'onApplicationConfigured', data );
$( '#' + id ).unblock();
callback( null );
}
self.is_payment_menu_loaded = true;
},
onPaymentMenuInstrumentSelected: function ( data ) {
console.log( 'onPaymentMenuInstrumentSelected', data );
//$( document.body ).trigger( 'sb_payment_menu_instrument_selected', [ data.name, data.instrument] );
self.onPaymentMenuInstrumentSelected( data.name, data.instrument );
},
onPaymentCreated: function () {
console.log( 'onPaymentCreated' );
},
onPaymentCompleted: function ( data ) {
console.log( 'onPaymentCompleted', data );
window.location.href = data.redirectUrl;
},
onPaymentCanceled: function ( data ) {
console.log( 'onPaymentCanceled', data );
self.logError( 'payment-menu-cancel', data );
},
onPaymentFailed: function ( data ) {
console.log( 'onPaymentFailed', data );
self.logError( 'payment-menu-failed', data );
//self.location.href = data.redirectUrl;
},
onPaymentToS: function ( data) {
console.log( 'onPaymentToS', data );
window.open( data.openUrl, '_blank' );
},
onExternalRedirect: function ( data ) {
console.log( 'onExternalRedirect', data );
window.location.href = data.redirectUrl;
},
onError: function ( data ) {
self.logError( 'payment-menu-error', data );
callback( data );
}
} );
this.paymentMenu.open();
},
/**
* Refresh
*/
refreshPaymentMenu: function() {
console.log( 'refreshPaymentMenu' );
if ( typeof this.paymentMenu !== 'undefined' && this.paymentMenu ) {
if ( this.paymentMenu.hasOwnProperty( 'refresh' ) && typeof this.paymentMenu.refresh === 'function' ) {
this.paymentMenu.refresh();
} else {
console.warn( 'refreshPaymentMenu: paymentMenu doesn\'t support refresh' );
}
}
},
/**
* Place Order
* @return {JQueryPromise<any>}
*/
placeOrder: function () {
console.log( 'placeOrder' );
var self = this;
let fields = $('.woocommerce-checkout').serialize();
return $.ajax( {
type: 'POST',
url: WC_Shortcode_Checkout.ajax_url,
data: {
action: 'sbp_submit_order',
nonce: WC_Shortcode_Checkout.nonce,
data: fields
},
dataType: 'json'
} ).done( function ( response ) {
// Reload page
if ( response.hasOwnProperty('reload') && true === response.reload ) {
window.location.reload();
return;
}
if ( response.hasOwnProperty('result') && response.result === 'failure' ) {
self.logError( 'sb-place-order', response );
self.onError( response.messages );
}
} );
},
/**
* On Init Or Update Checkout.
*
* @param event
* @returns {boolean}
*/
onInitOrUpdateCheckout: function ( event ) {
console.log( 'onInitOrUpdateCheckout' );
var self = this;
if ( typeof event !== 'undefined' ) {
self = event.data.obj;
}
if ( ! wc_sb_common.validateForm() ) {
console.log( 'onInitOrUpdateCheckout: Validation is failed' );
return false;
}
if ( typeof self.paymentMenu !== 'undefined' && self.paymentMenu ) {
self.updateOrder( function () {
console.log( 'Order has been updated' );
} );
} else {
// Init Checkout
if ( self.isCheckinRequired() && ! self.customer_reference ) {
console.log( 'Checkin is required.' );
} else {
self.initCheckout( self.customer_reference );
}
}
},
/**
* Update Order
* @param callback
* @return {JQueryPromise<any>}
*/
updateOrder: function ( callback ) {
console.log( 'updateOrder' );
var self = this;
let fields = $('.woocommerce-checkout').serialize();
self.form.addClass( 'processing' );
self.block();
if ( self.xhr ) {
self.xhr.abort();
}
self.xhr = $.ajax( {
type: 'POST',
url: WC_Shortcode_Checkout.ajax_url,
data: {
action: 'sbp_update_order',
nonce: WC_Shortcode_Checkout.nonce,
data: fields
},
dataType: 'json'
} )
.always( function ( response ) {
self.form.removeClass( 'processing' );
self.unblock();
} )
.fail( function( jqXHR, textStatus ) {
console.log( 'updateOrder error:' + textStatus );
callback( textStatus );
} )
.done( function ( response) {
console.log( response );
callback( null, response );
// Update is successful
if ( response.hasOwnProperty('result') && response.result === 'success' ) {
// Refresh Payment Menu
self.refreshPaymentMenu();
return;
}
// Errors
if ( response.hasOwnProperty('result') && response.result === 'failure' ) {
if ( response.messages === '' ) {
console.warn( 'Error message is empty.' );
return;
}
// SwedBank Payment returns error that Order update is not available
if ( response.messages.indexOf( 'Order update is not available.' ) > -1 ) {
alert( 'Order update is not available.' );
return;
}
}
// Reload page
if ( response.hasOwnProperty('reload') && true === response.reload ) {
window.location.reload();
return;
}
// Trigger update in case we need a fresh nonce
if ( response.hasOwnProperty( 'result' ) && true === response.result.refresh ) {
$( document.body ).trigger( 'update_checkout' );
}
} );
return self.xhr;
},
/**
* Enqueue Checkout Update.
*/
enqueueCheckoutUpdate: function () {
var self = this;
if ( self.updateTimer ) {
window.clearTimeout( self.updateTimer );
}
self.updateTimer = setTimeout( function () {
console.log( 'Update checkout...' );
$( document.body ).trigger( 'update_checkout' );
}, 1000 );
},
/**
* On Payment Menu Instrument Selected
* @param name
* @param instrument
*/
onPaymentMenuInstrumentSelected: function ( name, instrument ) {
var self = this;
// Apply/remove additional fees
async.parallel(
{
invoice_fee: function( callback2 ) {
// Apply or Remove invoice fee
if ( 'no' === WC_Shortcode_Checkout.invoice_fee_enabled ) {
callback2( null, false );
return;
}
self.block();
var xhr;
if ( instrument === 'Invoice' ) {
xhr = sb_invoice_fee.apply_fee( false );
} else {
xhr = sb_invoice_fee.remove_fee( false );
}
xhr.done( function () {
callback2( null, true );
} );
},
carpay_discount: function( callback2 ) {
// Apply or Remove CarPay discount
if ( 'no' === WC_Shortcode_Checkout.carpay_enabled ) {
callback2( null, false );
return;
}
self.block();
var xhr;
if ( name === 'CarPay' ) {
// Apply discount
xhr = sb_carpay.apply_discount( false );
} else {
// Remove discount
xhr = sb_carpay.remove_discount( false );
}
xhr.done( function () {
callback2( null, true );
} );
},
additional: function( callback2 ) {
callback2( null, true );
return;
$.ajax( {
type: 'POST',
url: WC_Shortcode_Checkout.ajax_url,
data: {
action: 'sbp_recalculate',
nonce: WC_Shortcode_Checkout.nonce,
},
dataType: 'json'
} ).done( function ( response ) {
callback2( null, true );
});
}
},
function( err, results ) {
if ( results.invoice_fee || results.carpay_discount ) {
// Update checkout
//$( document.body ).trigger( 'update_checkout' );
//$( document.body ).trigger( 'update' );
//self.enqueueCheckoutUpdate();
self.updateOrder( function () {
console.log( 'Order has been updated' );
self.unblock();
} );
}
}
);
},
onError: function ( data ) {
console.log( 'onError', data );
this.submit_error( '<div class="woocommerce-error">' + data + '</div>' );
},
submit_error: function( error_message ) {
$( '.woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message' ).remove();
this.form.prepend( '<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">' + error_message + '</div>' );
this.form.removeClass( 'processing' ).unblock();
this.form.find( '.input-text, select, input:checkbox' ).trigger( 'validate' ).blur();
this.scroll_to_notices();
$( document.body ).trigger( 'checkout_error' );
},
scroll_to_notices: function() {
let scrollElement = $( '.woocommerce-NoticeGroup-updateOrderReview, .woocommerce-NoticeGroup-checkout' );
if ( ! scrollElement.length ) {
scrollElement = $( '.form.checkout' );
}
$.scroll_to_notices( scrollElement );
},
/**
* Log Error
* @param id
* @param data
* @returns {*}
*/
logError: function ( id, data ) {
console.warn( data );
return $.ajax( {
type: 'POST',
url: WC_Shortcode_Checkout.ajax_url,
data: {
action: 'swedbank_pay_checkout_log_error',
nonce: WC_Shortcode_Checkout.nonce,
id: id,
data: JSON.stringify( data )
},
dataType: 'json'
} );
},
/**
* Check the payment url.
*
* @param callback
*/
checkPaymentUrl: function ( callback ) {
if ( !! ( new URLSearchParams( document.location.search ) ).get( 'payment_url' ) && this.payment_url ) {
// Lock the checkout
$( '.woocommerce-checkout' ).block( {
message: null,
overlayCSS: {
background: '#fff',
opacity: 0.6
}
} );
// Init Payment JS
this.initPaymentJS( this.payment_url, function () {
console.log( 'Payment url has been loaded.' );
callback( true );
} );
} else {
callback( false );
}
},
/**
* Block the checkout form
*/
block: function() {
var self = this;
if ( self.form ) {
let form_data = self.form.data();
if ( 1 !== form_data['blockUI.isBlocked'] ) {
self.form.block({
message: null,
overlayCSS: {
background: '#fff',
opacity: 0.6
}
});
}
}
},
/**
* Unblock the checkout form
*/
unblock: function() {
if ( this.form ) {
this.form.unblock();
}
},
/**
* Hide "Place order" button.
*/
hidePlaceOrder: function () {
$('#place_order').hide();
$('.place-order').hide();
// Tick "terms and conditions" if exists
let terms = $( '#terms' );
if ( terms.length > 0 && ! terms.prop( 'checked' ) ) {
terms.prop( 'checked', true )
}
},
/**
* Show "Place order" button.
*/
showPlaceOrder: function () {
$('#place_order').show();
$('.place-order').show();
}
};
$(document).ready( function () {
wc_sb_shortcode_checkout.init( $( "form.checkout, form#order_review, form#add_payment_method" ) );
} );
});