XylotrechusZ
( function() {
const buttons = document.querySelectorAll( '.frm-connect-square-with-oauth' );
buttons.forEach( function( button ) {
button.addEventListener( 'click', function( e ) {
e.preventDefault();
const mode = button.dataset.mode;
if ( 'test' === mode ) {
frmDom.modal.maybeCreateModal(
'frm_square_test_setup_modal',
{
title: 'Setting up Square for Test payments',
content: getSquareTestSetupModalContent()
}
);
return;
}
const formData = new FormData();
formData.append( 'mode', mode );
frmDom.ajax.doJsonPost( 'square_oauth', formData ).then(
function( response ) {
if ( 'undefined' !== typeof response.redirect_url ) {
window.location = response.redirect_url;
}
}
);
} );
} );
document.addEventListener(
'click',
function( event ) {
if ( ! event.target.id.startsWith( 'frm_disconnect_square_' ) ) {
return;
}
event.preventDefault();
const formData = new FormData();
formData.append( 'testMode', 'test' === event.target.id.replace( 'frm_disconnect_square_', '' ) ? 1 : 0 );
frmDom.ajax.doJsonPost( 'square_disconnect', formData ).then(
function( response ) {
if ( 'undefined' !== typeof response.success && response.success ) {
window.location.reload();
}
}
);
}
);
function getSquareTestSetupModalContent() {
const signUpUrl = 'https://app.squareup.com/signup/';
const confirmationTrigger = frmDom.a({ id: 'frm_confirm_square_test_modal', text: 'here', target: '_blank' });
confirmationTrigger.addEventListener( 'click', function( e ) {
e.preventDefault();
const modal = document.getElementById( 'frm_square_test_setup_modal' );
const formData = new FormData();
formData.append( 'mode', 'test' );
frmDom.ajax.doJsonPost( 'square_oauth', formData ).then(
function( response ) {
if ( 'undefined' !== typeof response.redirect_url ) {
window.location = response.redirect_url;
jQuery( modal ).dialog( 'close' );
}
}
);
} );
const content = frmDom.div(
{
children: [
frmDom.tag( 'div', { className: 'frm_note_style', text: 'Important! If you skip these initial steps, you will get stuck on a white screen.' } ),
frmDom.tag( 'ol',
{ children: [
frmDom.span( { children: [ 'Click ', frmDom.a({ href: signUpUrl, text: 'here' }), ' to create a Square account if you do not already have one.' ] } ),
frmDom.span( { children: [ 'Click ', frmDom.a({ href: 'https://developer.squareup.com/console/en/sandbox-test-accounts', text: 'here', target: '_blank' }), ' and create a Square sandbox test account.' ] } ),
'Click "Square Dashboard" for the new sandbox test account. Leave the tab open and return to this page.',
frmDom.span( { children: [ 'Click ', confirmationTrigger, '. You will be taken to Square to allow the required permissions for handling payments.' ] } ),
].map(
function( item ) {
if ( 'string' === typeof item ) {
return frmDom.tag( 'li', item );
}
return frmDom.tag( 'li', { child: item } );
}
) }
)
]
}
);
content.style.padding = '0 var(--gap-md) var(--gap-md) var(--gap-md)';
return content;
}
}() );