@@ -286,40 +286,33 @@ function log_version_switch_attempt( string $target_version, $result, string $de
286286 * @return array Result array with success status and message
287287 */
288288function handle_version_switch ( string $ target_version ): array {
289- // Check user capabilities
289+
290290 if ( ! current_user_can ( 'update_plugins ' ) ) {
291291 return create_error_response ( __ ( 'You do not have permission to update plugins. ' , 'code-snippets ' ) );
292292 }
293293
294- // Validate target version
295294 $ available_versions = get_available_versions ();
296295 $ validation = validate_target_version ( $ target_version , $ available_versions );
297296
298297 if ( ! $ validation ['success ' ] ) {
299298 return create_error_response ( $ validation ['message ' ] );
300299 }
301300
302- // Check if already on target version
303301 if ( get_current_version () === $ target_version ) {
304302 return create_error_response ( __ ( 'Already on the specified version. ' , 'code-snippets ' ) );
305303 }
306304
307- // Set switch in progress
308305 set_transient ( PROGRESS_KEY , $ target_version , PROGRESS_TIMEOUT );
309306
310- // Perform the version installation
311307 $ install_result = perform_version_install ( $ validation ['download_url ' ] );
312308
313- // Clear progress transient
314309 delete_transient ( PROGRESS_KEY );
315310
316- // Handle the result
317311 if ( is_wp_error ( $ install_result ) ) {
318312 return create_error_response ( $ install_result ->get_error_message () );
319313 }
320314
321315 if ( $ install_result ) {
322- // Clear version cache on success
323316 delete_transient ( VERSION_CACHE_KEY );
324317
325318 return [
@@ -331,7 +324,6 @@ function handle_version_switch( string $target_version ): array {
331324 ];
332325 }
333326
334- // If we get here, the installation failed but didn't return a WP_Error
335327 return handle_installation_failure ( $ target_version , $ validation ['download_url ' ], $ install_result );
336328}
337329
@@ -384,76 +376,7 @@ function render_version_switch_field( array $args ): void {
384376
385377 <div id="version-switch-result" class="notice" style="display: none;"></div>
386378 <?php endif ; ?>
387- </div>
388-
389- <script type="text/javascript">
390- jQuery(document).ready(function($) {
391- var currentVersion = '<?php echo esc_js ( $ current_version ); ?> ';
392- var $button = $('#switch-version-btn');
393- var $dropdown = $('#target_version');
394- var $result = $('#version-switch-result');
395-
396- // Handle dropdown changes - enable/disable button and show/hide warning
397- $dropdown.on('change', function() {
398- var selectedVersion = $(this).val();
399-
400- if (!selectedVersion || selectedVersion === currentVersion) {
401- // Current version or no selection - disable button and hide warning
402- $button.prop('disabled', true);
403- $('#version-switch-warning').hide();
404- } else {
405- // Different version selected - enable button and show warning
406- $button.prop('disabled', false);
407- $('#version-switch-warning').show();
408- }
409- });
410-
411- $button.on('click', function() {
412- var targetVersion = $dropdown.val();
413-
414- if (!targetVersion || targetVersion === currentVersion) {
415- $result.removeClass('notice-success notice-error').addClass('notice-warning')
416- .html('<p><?php esc_html_e ( 'Please select a different version to switch to. ' , 'code-snippets ' ); ?> </p>')
417- .show();
418- return;
419- }
420-
421- // Disable button and show loading
422- $button.prop('disabled', true).text('<?php esc_html_e ( 'Switching... ' , 'code-snippets ' ); ?> ');
423- $result.removeClass('notice-success notice-error notice-warning').addClass('notice-info')
424- .html('<p><?php esc_html_e ( 'Processing version switch. Please wait... ' , 'code-snippets ' ); ?> </p>')
425- .show();
426-
427- // Make AJAX request
428- $.post(ajaxurl, {
429- action: 'code_snippets_switch_version',
430- target_version: targetVersion,
431- nonce: '<?php echo esc_js ( wp_create_nonce ( 'code_snippets_version_switch ' ) ); ?> '
432- })
433- .done(function(response) {
434- if (response.success) {
435- $result.removeClass('notice-info notice-error').addClass('notice-success')
436- .html('<p>' + response.data.message + '</p>');
437-
438- // Refresh page after 3 seconds
439- setTimeout(function() {
440- window.location.reload();
441- }, 3000);
442- } else {
443- $result.removeClass('notice-info notice-success').addClass('notice-error')
444- .html('<p>' + response.data.message + '</p>');
445- $button.prop('disabled', false).text('<?php esc_html_e ( 'Switch Version ' , 'code-snippets ' ); ?> ');
446- }
447- })
448- .fail(function() {
449- $result.removeClass('notice-info notice-success').addClass('notice-error')
450- .html('<p><?php esc_html_e ( 'An error occurred while switching versions. Please try again. ' , 'code-snippets ' ); ?> </p>');
451- $button.prop('disabled', false).text('<?php esc_html_e ( 'Switch Version ' , 'code-snippets ' ); ?> ');
452- });
453- });
454- });
455- </script>
456- <?php
379+ </div><?php
457380}
458381
459382/**
@@ -504,33 +427,7 @@ function render_refresh_versions_field( array $args ): void {
504427 </button>
505428 <p class="description">
506429 <?php esc_html_e ( 'Check for the latest available plugin versions from WordPress.org. ' , 'code-snippets ' ); ?>
507- </p>
508-
509- <script type="text/javascript">
510- jQuery(document).ready(function($) {
511- $('#refresh-versions-btn').on('click', function() {
512- var $button = $(this);
513- $button.prop('disabled', true).text('<?php esc_html_e ( 'Refreshing... ' , 'code-snippets ' ); ?> ');
514-
515- $.post(ajaxurl, {
516- action: 'code_snippets_refresh_versions',
517- nonce: '<?php echo esc_js ( wp_create_nonce ( 'code_snippets_refresh_versions ' ) ); ?> '
518- })
519- .done(function(response) {
520- $button.text('<?php esc_html_e ( 'Refreshed! ' , 'code-snippets ' ); ?> ');
521- setTimeout(function() {
522- $button.prop('disabled', false).text('<?php esc_html_e ( 'Refresh Available Versions ' , 'code-snippets ' ); ?> ');
523- // Reload page to show updated versions
524- window.location.reload();
525- }, 1000);
526- })
527- .fail(function() {
528- $button.prop('disabled', false).text('<?php esc_html_e ( 'Refresh Available Versions ' , 'code-snippets ' ); ?> ');
529- });
530- });
531- });
532- </script>
533- <?php
430+ </p><?php
534431}
535432
536433/**
0 commit comments