# cartflows/1.1.12/admin/assets/js/setup-wizard.js

CartFlows – Funnel Builder &amp; Checkout Plugin for WooCommerce, version 1.1.12. 141 lines.

- Page: https://pluginprobe.com/plugins/cartflows/1.1.12/code/admin/assets/js/setup-wizard.js
- Raw: https://pluginprobe.com/plugins/cartflows/1.1.12/raw/admin/assets/js/setup-wizard.js
- Modified: 2019-03-22T10:14:30+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/cartflows/1.1.12/code/admin/assets/js/setup-wizard.js#L10-L20`.

```javascript
( function( $ ) {

	CartFlowsWizard = {

		init: function() {
			this._bind();
		},

		/**
		 * Bind
		 */
		_bind: function() {
			$( document ).on('click', '.wcf-install-plugins', 	CartFlowsWizard._installNow);
			$( document ).on('wp-plugin-installing'      , 		CartFlowsWizard._pluginInstalling);
			$( document ).on('wp-plugin-install-error'   , 		CartFlowsWizard._installError);
			$( document ).on('wp-plugin-install-success' , 		CartFlowsWizard._installSuccess);
		},

		/**
		 * Installing Plugin
		 */
		_pluginInstalling: function(event, args) {
			event.preventDefault();
			console.log( 'Installing..' );
		},

		/**
		 * Install Error
		 */
		_installError: function(event, args) {
			event.preventDefault();
			console.log( 'Install Error!' );

			var redirect_link = $( '.page-builder-list' ).data('redirect-link') || '';
			console.log( redirect_link );
			if( '' !== redirect_link ) {
				window.location = redirect_link;
				console.log( 'redirecting..' );
			}
		},

		/**
		 * Install Success
		 */
		_installSuccess: function(event, args) {
			event.preventDefault();

			CartFlowsWizard._activatePlugin();
		},

		_activatePlugin: function() {
			var plugin_slug 	= $( '.page-builder-list option:selected' ).data( 'slug' ) || '',
				plugin_init     = $( '.page-builder-list option:selected' ).data( 'init' ) || '',
				redirect_link   = $( '.page-builder-list' ).data('redirect-link') || '';
			
			console.log( plugin_slug );
			console.log( plugin_init );
			console.log( redirect_link );

			$.ajax({
				url    : ajaxurl,
				method : 'POST',
				data   : {
					action       : 'page_builder_step_save',
					page_builder : plugin_slug,
					plugin_init  : plugin_init,
					security     : cartflows_admin.wcf_page_builder_step_save_nonce
				},
			})
			.done(function( data ) {
				console.log( data );
				console.log( redirect_link );
				if( data.success ) {
					if( '' !== redirect_link ) {
						window.location = redirect_link;
					}
				}
			})
			.fail(function() {
				console.log("error");
			})
			.always(function() {
				console.log("complete");
			});
		},

		/**
		 * Install Now
		 */
		_installNow: function(event)
		{
			event.preventDefault();

			var $button 	= $( this ),
				$document   = $(document),
				plugin_slug = $( '.page-builder-list option:selected' ).data( 'slug' ) || '',
				install     = $( '.page-builder-list option:selected' ).data( 'install' ) || 'no',
				plugin_init = $( '.page-builder-list option:selected' ).data( 'init' ) || '';

			if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) {
				return;
			}

			$button.addClass( 'updating-message' );

			if( 'yes' === install ) {
				CartFlowsWizard._activatePlugin();
			} else {

				console.log( 'plugin_slug' );


				if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) {
					wp.updates.requestFilesystemCredentials( event );

					$document.on( 'credential-modal-cancel', function() {
						var $message = $( '.install-now.updating-message' );

						$message
							.removeClass( 'updating-message' )
							.text( wp.updates.l10n.installNow );

						wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' );
					} );
				}

				wp.updates.installPlugin( {
					slug: plugin_slug
				} );
			}

			
		},
	}

	$( document ).ready(function() {
		CartFlowsWizard.init();
	});
	

} )( jQuery ); 
```
