140 lines
4.4 KiB
JavaScript
140 lines
4.4 KiB
JavaScript
/*global wc_setup_params */
|
|
jQuery( function( $ ) {
|
|
function blockWizardUI() {
|
|
$('.wc-setup-content').block({
|
|
message: null,
|
|
overlayCSS: {
|
|
background: '#fff',
|
|
opacity: 0.6
|
|
}
|
|
});
|
|
}
|
|
|
|
$( '.button-next' ).on( 'click', function() {
|
|
var form = $( this ).parents( 'form' ).get( 0 );
|
|
|
|
if ( ( 'function' !== typeof form.checkValidity ) || form.checkValidity() ) {
|
|
blockWizardUI();
|
|
}
|
|
|
|
return true;
|
|
} );
|
|
|
|
$( '.wc-wizard-services' ).on( 'change', '.wc-wizard-service-enable input', function() {
|
|
if ( $( this ).is( ':checked' ) ) {
|
|
$( this ).closest( '.wc-wizard-service-toggle' ).removeClass( 'disabled' );
|
|
$( this ).closest( '.wc-wizard-service-item' ).addClass( 'checked' );
|
|
$( this ).closest( '.wc-wizard-service-item' )
|
|
.find( '.wc-wizard-service-settings' ).removeClass( 'hide' );
|
|
} else {
|
|
$( this ).closest( '.wc-wizard-service-toggle' ).addClass( 'disabled' );
|
|
$( this ).closest( '.wc-wizard-service-item' ).removeClass( 'checked' );
|
|
$( this ).closest( '.wc-wizard-service-item' )
|
|
.find( '.wc-wizard-service-settings' ).addClass( 'hide' );
|
|
}
|
|
} );
|
|
|
|
$( '.wc-wizard-services' ).on( 'click', '.wc-wizard-service-enable', function( e ) {
|
|
e.stopPropagation();
|
|
|
|
var $checkbox = $( this ).find( '.wc-wizard-service-toggle input' );
|
|
$checkbox.prop( 'checked', ! $checkbox.prop( 'checked' ) ).change();
|
|
} );
|
|
|
|
$( '.wc-wizard-services-list-toggle' ).on( 'change', '.wc-wizard-service-enable input', function() {
|
|
$( this ).closest( '.wc-wizard-services-list-toggle' ).toggleClass( 'closed' );
|
|
$( this ).closest( '.wc-wizard-services' ).find( '.wc-wizard-service-item' )
|
|
.slideToggle()
|
|
.css( 'display', 'flex' );
|
|
} );
|
|
|
|
$( '.wc-wizard-services' ).on( 'change', '.wc-wizard-shipping-method-select .method', function( e ) {
|
|
var zone = $( this ).closest( '.wc-wizard-service-description' );
|
|
var selectedMethod = e.target.value;
|
|
|
|
var description = zone.find( '.shipping-method-descriptions' );
|
|
description.find( '.shipping-method-description' ).addClass( 'hide' );
|
|
description.find( '.' + selectedMethod ).removeClass( 'hide' );
|
|
|
|
var settings = zone.find( '.shipping-method-settings' );
|
|
settings
|
|
.find( '.shipping-method-setting' )
|
|
.addClass( 'hide' )
|
|
.find( '.shipping-method-required-field' )
|
|
.prop( 'required', false );
|
|
settings
|
|
.find( '.' + selectedMethod )
|
|
.removeClass( 'hide' )
|
|
.find( '.shipping-method-required-field' )
|
|
.prop( 'required', true );
|
|
} );
|
|
|
|
$( '.wc-wizard-services' ).on( 'change', '.wc-wizard-shipping-method-enable', function() {
|
|
var checked = $( this ).is( ':checked' );
|
|
|
|
$( this )
|
|
.closest( '.wc-wizard-service-item' )
|
|
.find( '.shipping-method-required-field' )
|
|
.prop( 'required', checked );
|
|
} );
|
|
|
|
function submitActivateForm() {
|
|
$( 'form.activate-jetpack' ).submit();
|
|
}
|
|
|
|
function waitForJetpackInstall() {
|
|
wp.ajax.post( 'setup_wizard_check_jetpack' )
|
|
.then( function( result ) {
|
|
// If we receive success, or an unexpected result
|
|
// let the form submit.
|
|
if (
|
|
! result ||
|
|
! result.is_active ||
|
|
'yes' === result.is_active
|
|
) {
|
|
return submitActivateForm();
|
|
}
|
|
|
|
// Wait until checking the status again
|
|
setTimeout( waitForJetpackInstall, 3000 );
|
|
} )
|
|
.fail( function() {
|
|
// Submit the form as normal if the request fails
|
|
submitActivateForm();
|
|
} );
|
|
}
|
|
|
|
// Wait for a pending Jetpack install to finish before triggering a "save"
|
|
// on the activate step, which launches the Jetpack connection flow.
|
|
$( '.activate-jetpack' ).on( 'click', '.button-primary', function( e ) {
|
|
blockWizardUI();
|
|
|
|
if ( 'no' === wc_setup_params.pending_jetpack_install ) {
|
|
return true;
|
|
}
|
|
|
|
e.preventDefault();
|
|
waitForJetpackInstall();
|
|
} );
|
|
|
|
$( '.wc-wizard-services' ).on( 'change', 'input#stripe_create_account', function() {
|
|
if ( $( this ).is( ':checked' ) ) {
|
|
$( this ).closest( '.wc-wizard-service-settings' )
|
|
.find( 'input.payment-email-input' )
|
|
.prop( 'required', true );
|
|
$( this ).closest( '.wc-wizard-service-settings' )
|
|
.find( '.wc-wizard-service-setting-stripe_email' )
|
|
.show();
|
|
} else {
|
|
$( this ).closest( '.wc-wizard-service-settings' )
|
|
.find( 'input.payment-email-input' )
|
|
.prop( 'required', false );
|
|
$( this ).closest( '.wc-wizard-service-settings' )
|
|
.find( '.wc-wizard-service-setting-stripe_email' )
|
|
.hide();
|
|
}
|
|
} );
|
|
|
|
$( '.wc-wizard-services input#stripe_create_account' ).change();
|
|
} );
|