__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
/* global woocommerce_settings_params, wp */
( function ( $, params, wp ) {
	$( function () {
		// Sell Countries
		$( 'select#woocommerce_allowed_countries' )
			.on( 'change', function () {
				if ( 'specific' === $( this ).val() ) {
					$( this ).closest( 'tr' ).next( 'tr' ).hide();
					$( this ).closest( 'tr' ).next().next( 'tr' ).show();
				} else if ( 'all_except' === $( this ).val() ) {
					$( this ).closest( 'tr' ).next( 'tr' ).show();
					$( this ).closest( 'tr' ).next().next( 'tr' ).hide();
				} else {
					$( this ).closest( 'tr' ).next( 'tr' ).hide();
					$( this ).closest( 'tr' ).next().next( 'tr' ).hide();
				}
			} )
			.trigger( 'change' );

		// Ship Countries
		$( 'select#woocommerce_ship_to_countries' )
			.on( 'change', function () {
				if ( 'specific' === $( this ).val() ) {
					$( this ).closest( 'tr' ).next( 'tr' ).show();
				} else {
					$( this ).closest( 'tr' ).next( 'tr' ).hide();
				}
			} )
			.trigger( 'change' );

		// Stock management
		$( 'input#woocommerce_manage_stock' )
			.on( 'change', function () {
				if ( $( this ).is( ':checked' ) ) {
					$( this )
						.closest( 'tbody' )
						.find( '.manage_stock_field' )
						.closest( 'tr' )
						.show();
				} else {
					$( this )
						.closest( 'tbody' )
						.find( '.manage_stock_field' )
						.closest( 'tr' )
						.hide();
				}
			} )
			.trigger( 'change' );

		// Color picker
		$( '.colorpick' )
			.iris( {
				change: function ( event, ui ) {
					const $this = $( this );
					$this
						.parent()
						.find( '.colorpickpreview' )
						.css( { backgroundColor: ui.color.toString() } );
					setTimeout( function () {
						$this.trigger( 'change' );
					} );
				},
				hide: true,
				border: true,
			} )

			.on( 'click focus', function ( event ) {
				event.stopPropagation();
				$( '.iris-picker' ).hide();
				$( this ).closest( 'td' ).find( '.iris-picker' ).show();
				$( this ).data( 'originalValue', $( this ).val() );
			} )

			.on( 'change', function () {
				if ( $( this ).is( '.iris-error' ) ) {
					var original_value = $( this ).data( 'originalValue' );

					if (
						original_value.match(
							/^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
						)
					) {
						$( this )
							.val( $( this ).data( 'originalValue' ) )
							.trigger( 'change' );
					} else {
						$( this ).val( '' ).trigger( 'change' );
					}
				}
			} );

		$( '.iris-square-value' ).on( 'click', function ( event ) {
			event.preventDefault();
		} );

		$( '.colorpickpreview' ).on( 'click', function ( event ) {
			event.stopPropagation();
			$( this ).next( '.colorpick' ).click();
		} );

		$( 'body' ).on( 'click', function () {
			$( '.iris-picker' ).hide();
		} );

		// Edit prompt
		function editPrompt () {
			var changed = false;
			let $prevent_change_elements = $( '.wp-list-table .check-column, .wc-settings-prevent-change-event' );

			$( 'input, textarea, select, checkbox' ).on( 'change input', function (
				event
			) {
				// Prevent change event on specific elements, that don't change the form. E.g.:
				// - WP List Table checkboxes that only (un)select rows
				// - Changing email type in email preview
				if (
					$prevent_change_elements.length &&
					$prevent_change_elements.has( event.target ).length
				) {
					return;
				}

				if ( ! changed ) {
					window.onbeforeunload = function () {
						return params.i18n_nav_warning;
					};
					changed = true;
					$( '.woocommerce-save-button' ).removeAttr( 'disabled' );
				}
			} );

			$( '.iris-picker' ).on( 'click', function () {
				if ( ! changed ) {
					changed = true;
					$( '.woocommerce-save-button' ).removeAttr( 'disabled' );
				}
			} );

			$( '.submit :input, input#search-submit' ).on(
				'click',
				function () {
					window.onbeforeunload = '';
				}
			);
		}

		$( editPrompt );

		const nodeListContainsFormElements = ( nodes ) => {
			if ( ! nodes.length	) {
				return false;
			}
			return Array.from( nodes ).some( ( element ) => {
				return $( element ).find( 'input, textarea, select, checkbox' ).length;
			} );
		}

		const form = document.querySelector( '#mainform' );
		const observer = new MutationObserver( ( mutationsList ) => {
			for ( const mutation of mutationsList ) {
				if ( mutation.type === 'childList' ) {
					if ( nodeListContainsFormElements( mutation.addedNodes ) ) {
						editPrompt();
						$( '.woocommerce-save-button' ).removeAttr( 'disabled' );
					} else if ( nodeListContainsFormElements( mutation.removedNodes ) ) {
						$( '.woocommerce-save-button' ).removeAttr( 'disabled' );
					}
				}
			}
		} );

		observer.observe( form, { childList: true, subtree: true } );

		// Sorting
		$( 'table.wc_gateways tbody, table.wc_shipping tbody' ).sortable( {
			items: 'tr',
			cursor: 'move',
			axis: 'y',
			handle: 'td.sort',
			scrollSensitivity: 40,
			helper: function ( event, ui ) {
				ui.children().each( function () {
					$( this ).width( $( this ).width() );
				} );
				ui.css( 'left', '0' );
				return ui;
			},
			start: function ( event, ui ) {
				ui.item.css( 'background-color', '#f6f6f6' );
			},
			stop: function ( event, ui ) {
				ui.item.removeAttr( 'style' );
				ui.item.trigger( 'updateMoveButtons', { isInitialLoad: false } );
			},
		} );

		// Select all/none
		$( '.woocommerce' ).on( 'click', '.select_all', function () {
			$( this )
				.closest( 'td' )
				.find( 'select option' )
				.prop( 'selected', true );
			$( this ).closest( 'td' ).find( 'select' ).trigger( 'change' );
			return false;
		} );

		$( '.woocommerce' ).on( 'click', '.select_none', function () {
			$( this )
				.closest( 'td' )
				.find( 'select option' )
				.prop( 'selected', false );
			$( this ).closest( 'td' ).find( 'select' ).trigger( 'change' );
			return false;
		} );

		// Re-order buttons.
		$( '.wc-item-reorder-nav' )
			.find( '.wc-move-up, .wc-move-down' )
			.on( 'click', function () {
				var moveBtn = $( this ),
					$row = moveBtn.closest( 'tr' );

				moveBtn.trigger( 'focus' );

				var isMoveUp = moveBtn.is( '.wc-move-up' ),
					isMoveDown = moveBtn.is( '.wc-move-down' );

				if ( isMoveUp ) {
					var $previewRow = $row.prev( 'tr' );

					if ( $previewRow && $previewRow.length ) {
						$previewRow.before( $row );
						wp.a11y.speak( params.i18n_moved_up );
					}
				} else if ( isMoveDown ) {
					var $nextRow = $row.next( 'tr' );

					if ( $nextRow && $nextRow.length ) {
						$nextRow.after( $row );
						wp.a11y.speak( params.i18n_moved_down );
					}
				}

				moveBtn.trigger( 'focus' ); // Re-focus after the container was moved.
				moveBtn.closest( 'table' ).trigger( 'updateMoveButtons', { isInitialLoad: false } );
			} );

		$( '.wc-item-reorder-nav' )
			.closest( 'table' )
			.on( 'updateMoveButtons', function ( event, data ) {
				var table = $( this ),
					lastRow = $( this ).find( 'tbody tr:last' ),
					firstRow = $( this ).find( 'tbody tr:first' );

				table
					.find( '.wc-item-reorder-nav .wc-move-disabled' )
					.removeClass( 'wc-move-disabled' )
					.attr( { tabindex: '0', 'aria-hidden': 'false' } );
				firstRow
					.find( '.wc-item-reorder-nav .wc-move-up' )
					.addClass( 'wc-move-disabled' )
					.attr( { tabindex: '-1', 'aria-hidden': 'true' } );
				lastRow
					.find( '.wc-item-reorder-nav .wc-move-down' )
					.addClass( 'wc-move-disabled' )
					.attr( { tabindex: '-1', 'aria-hidden': 'true' } );
				if ( ! data.isInitialLoad ) {
					$( '.woocommerce-save-button' ).removeAttr( 'disabled' );
				}
			} );

		$( '.wc-item-reorder-nav' )
			.closest( 'table' )
			.trigger( 'updateMoveButtons', { isInitialLoad: true } );

		$( '.submit button' ).on( 'click', function () {
			if (
				$( 'select#woocommerce_allowed_countries' ).val() ===
					'specific' &&
				! $( '[name="woocommerce_specific_allowed_countries[]"]' ).val()
			) {
				if (
					window.confirm(
						woocommerce_settings_params.i18n_no_specific_countries_selected
					)
				) {
					return true;
				}
				return false;
			}
		} );

		$( '#settings-other-payment-methods' ).on( 'click', function ( e ) {
			if (
				typeof window.wcTracks.recordEvent === 'undefined' &&
				typeof window.wc.tracks.recordEvent === 'undefined'
			) {
				return;
			}

			var recordEvent =
				window.wc.tracks.recordEvent || window.wcTracks.recordEvent;

			var payment_methods = $.map(
				$(
					'td.wc_payment_gateways_wrapper tbody tr[data-gateway_id] '
				),
				function ( tr ) {
					return $( tr ).attr( 'data-gateway_id' );
				}
			);

			recordEvent( 'settings_payments_recommendations_other_options', {
				available_payment_methods: payment_methods,
			} );
		} );

		$( '.woocommerce-save-button.components-button' ).on( 'click', function ( e ) {
			if ( ! $( this ).attr( 'disabled' ) ) {
				$( this ).addClass( 'is-busy' );
			}
		} );

		/**
		 * Support conditionally displaying a settings field description when another element
		 * is set to a specific value.
		 *
		 * This logic is subject to change, and is not intended for use by other plugins.
		 * Note that we can't avoid jQuery here, because of our current dependence on Select2
		 * for various controls.
		 */
		document.querySelectorAll( 'body.woocommerce_page_wc-settings #mainform .conditional.description' ).forEach( description => {
			const $underObservation = $( description.dataset.dependsOn );
			const showIfEquals      = description.dataset.showIfEquals;

			if ( undefined === showIfEquals || $underObservation.length === 0 ) {
				return;
			}

			/**
			 * Set visibility of the description element according to whether its value
			 * matches that of showIfEquals.
			 */
			const changeAgent = () => {
				description.style.visibility = $underObservation.val() === showIfEquals ? 'visible' : 'hidden';
			};

			// Monitor future changes, and take action based on the current state.
			$underObservation.on( 'change', changeAgent );
			changeAgent();
		} );

		// Ensures the active tab is visible and centered on small screens if it's out of view in a scrollable tab list.
		function settings_scroll_to_active_tab() {
			const body = document.body;
			if (
				! body.classList.contains('mobile') ||
				! body.classList.contains('woocommerce_page_wc-settings')
			) {
				return;
			}
			// Select the currently active tab
			const activeTab = document.querySelector( '.nav-tab-active' );

			// Exit if there's no active tab or screen is wider than 500px (desktop)
			if ( ! activeTab || window.innerWidth >= 500 ) {
				return;
			}

			// Get the parent element, assumed to be the scrollable container
			const parent = activeTab.parentElement;

			// Exit if no parent or if scrolling isn't needed (content fits)
			if ( ! parent || parent.scrollWidth <= parent.clientWidth ) {
				return;
			}

			// Get the position of the active tab relative to its parent
			const tabLeft = activeTab.offsetLeft;
			const tabRight = tabLeft + activeTab.offsetWidth;
			const scrollLeft = parent.scrollLeft;
			const visibleLeft = scrollLeft;
			const visibleRight = scrollLeft + parent.clientWidth;
			const isOutOfView = tabLeft < visibleLeft || tabRight > visibleRight;

			// If it’s out of view, scroll the parent so the tab is centered
			if ( isOutOfView ) {
				const offset = tabLeft - parent.clientWidth / 2 + activeTab.offsetWidth / 2;
					parent.scrollTo( {
					left: offset,
					behavior: 'auto' // Instant scroll (no animation)
				} );
			}
		}

		// Some legacy setting pages have tables that span beyond the set width of its parents
		// causing layout issues.
		// Fixe the width of the nav tab wrapper to match the window width on mobile.
		function settings_fix_nav_width() {
			const body = document.body;
			if (
				! body.classList.contains('mobile') ||
				! body.classList.contains('woocommerce_page_wc-settings')
			) {
				return;
			}
			const navWrapper = document.getElementsByClassName('nav-tab-wrapper');
			if ( ! navWrapper.length ) {
				return;
			}

			const navWrapperWidth = navWrapper[0].offsetWidth;
			if ( navWrapperWidth !== window.innerWidth) {
				navWrapper[0].style.width = window.innerWidth + 'px';
			}
		}

		settings_scroll_to_active_tab();
		settings_fix_nav_width();

	} );
} )( jQuery, woocommerce_settings_params, wp );

Filemanager

Name Type Size Permission Actions
api-keys.js File 3.89 KB 0664
api-keys.min.js File 2.23 KB 0664
backbone-modal.js File 4.35 KB 0664
backbone-modal.min.js File 2.77 KB 0664
marketplace-suggestions.js File 16.84 KB 0664
marketplace-suggestions.min.js File 6.66 KB 0664
meta-boxes-coupon.js File 2.99 KB 0664
meta-boxes-coupon.min.js File 1.61 KB 0664
meta-boxes-order.js File 54.3 KB 0664
meta-boxes-order.min.js File 32.97 KB 0664
meta-boxes-product-variation.js File 42.26 KB 0664
meta-boxes-product-variation.min.js File 22.55 KB 0664
meta-boxes-product.js File 34.25 KB 0664
meta-boxes-product.min.js File 18.04 KB 0664
meta-boxes.js File 4.88 KB 0664
meta-boxes.min.js File 2.97 KB 0664
network-orders.js File 2.34 KB 0664
network-orders.min.js File 1.25 KB 0664
order-attribution-admin.js File 1.16 KB 0664
order-attribution-admin.min.js File 730 B 0664
product-editor.js File 696 B 0664
product-editor.min.js File 298 B 0664
product-ordering.js File 2.49 KB 0664
product-ordering.min.js File 1.61 KB 0664
quick-edit.js File 7.06 KB 0664
quick-edit.min.js File 4.58 KB 0664
reports.js File 5.39 KB 0664
reports.min.js File 2.7 KB 0664
settings-views-html-settings-tax.js File 12.04 KB 0664
settings-views-html-settings-tax.min.js File 6.08 KB 0664
settings.js File 11.95 KB 0664
settings.min.js File 6.25 KB 0664
system-status.js File 5.29 KB 0664
system-status.min.js File 3.06 KB 0664
term-ordering.js File 4.57 KB 0664
term-ordering.min.js File 2.47 KB 0664
users.js File 3.78 KB 0664
users.min.js File 1.87 KB 0664
wc-brands-enhanced-select.js File 4.06 KB 0664
wc-brands-enhanced-select.min.js File 1.59 KB 0664
wc-clipboard.js File 869 B 0664
wc-clipboard.min.js File 336 B 0664
wc-customer-stock-notifications.js File 1.61 KB 0664
wc-customer-stock-notifications.min.js File 1.13 KB 0664
wc-enhanced-select.js File 13.58 KB 0664
wc-enhanced-select.min.js File 7.71 KB 0664
wc-orders.js File 1.98 KB 0664
wc-orders.min.js File 1.17 KB 0664
wc-product-export.js File 3.79 KB 0664
wc-product-export.min.js File 2.09 KB 0664
wc-product-import.js File 2.92 KB 0664
wc-product-import.min.js File 1.7 KB 0664
wc-setup.js File 10.05 KB 0664
wc-setup.min.js File 6.35 KB 0664
wc-shipping-classes.js File 6.57 KB 0664
wc-shipping-classes.min.js File 3.57 KB 0664
wc-shipping-zone-methods.js File 35.06 KB 0664
wc-shipping-zone-methods.min.js File 17.07 KB 0664
wc-shipping-zones.js File 9.23 KB 0664
wc-shipping-zones.min.js File 4.85 KB 0664
wc-status-widget-async.js File 1.28 KB 0664
wc-status-widget-async.min.js File 519 B 0664
wc-status-widget.js File 1.78 KB 0664
wc-status-widget.min.js File 1.05 KB 0664
woocommerce_admin.js File 22.38 KB 0664
woocommerce_admin.min.js File 11.98 KB 0664
Filemanager