@@ -329,10 +329,8 @@ public function single_install_switcher( $theme ) {
329329 echo '<option> ' . esc_attr ( $ branch ) . '</option> ' ;
330330 }
331331 }
332- if ( ! empty ( $ theme ->rollback ) ) {
333- $ rollback = array_keys ( $ theme ->rollback );
334- usort ( $ rollback , 'version_compare ' );
335- krsort ( $ rollback );
332+ if ( ! empty ( $ theme ->tags ) ) {
333+ uksort ( $ theme ->tags , fn ( $ a , $ b ) => version_compare ( ltrim ( $ b , 'v ' ), trim ( $ a , 'v ' ) ) );
336334
337335 /**
338336 * Filter to return the number of tagged releases (rollbacks) in branch switching.
@@ -342,16 +340,16 @@ public function single_install_switcher( $theme ) {
342340 */
343341 $ num_rollbacks = absint ( apply_filters ( 'gu_number_rollbacks ' , 0 ) );
344342
345- // Still only return last tag if using release assets.
346- $ rollback = 0 === $ num_rollbacks || $ theme -> release_asset
347- ? array_slice ( $ rollback , 0 , 1 )
348- : array_splice ( $ rollback , 0 , $ num_rollbacks, true );
343+ $ tag_keys = array_keys ( $ theme -> tags );
344+ $ rollback = 0 === $ num_rollbacks
345+ ? array_slice ( $ tag_keys , 0 , 1 )
346+ : array_splice ( $ tag_keys , 0 , $ num_rollbacks );
349347
350348 foreach ( $ rollback as $ tag ) {
351349 echo '<option> ' . esc_attr ( $ tag ) . '</option> ' ;
352350 }
353351 }
354- if ( empty ( $ theme ->rollback ) ) {
352+ if ( empty ( $ theme ->tags ) ) {
355353 echo '<option> ' . esc_html__ ( 'No previous tags to rollback to. ' , 'git-updater ' ) . '</option></select></label> ' ;
356354 }
357355 ?>
@@ -373,7 +371,7 @@ public function single_install_switcher( $theme ) {
373371 * @return void
374372 */
375373 public function make_branch_switch_row ( $ data , $ config ) {
376- $ rollback = empty ( $ config [ $ data ['slug ' ] ]->rollback ) ? [] : $ config [ $ data ['slug ' ] ]->rollback ;
374+ $ rollback = empty ( $ config [ $ data ['slug ' ] ]->tags ) ? [] : $ config [ $ data ['slug ' ] ]->tags ;
377375
378376 // Make the branch switch row visually appear as if it is contained with the plugin/theme's row.
379377 // We have to use JS for this because of the way:
@@ -441,9 +439,7 @@ public function make_branch_switch_row( $data, $config ) {
441439 }
442440
443441 if ( ! empty ( $ rollback ) ) {
444- $ rollback = array_keys ( $ rollback );
445- usort ( $ rollback , 'version_compare ' );
446- krsort ( $ rollback );
442+ uksort ( $ rollback , fn ( $ a , $ b ) => version_compare ( trim ( $ b , 'v ' ), trim ( $ a , 'v ' ) ) );
447443
448444 /**
449445 * Filter to return the number of tagged releases (rollbacks) in branch switching.
@@ -453,10 +449,10 @@ public function make_branch_switch_row( $data, $config ) {
453449 */
454450 $ num_rollbacks = absint ( apply_filters ( 'gu_number_rollbacks ' , 0 ) );
455451
456- // Still only return last tag if using release assets.
457- $ rollback = 0 === $ num_rollbacks || $ data [ ' release_asset ' ]
458- ? array_slice ( $ rollback , 0 , 1 )
459- : array_splice ( $ rollback , 0 , $ num_rollbacks, true );
452+ $ rollback_keys = array_keys ( $ rollback );
453+ $ rollback = 0 === $ num_rollbacks
454+ ? array_slice ( $ rollback_keys , 0 , 1 )
455+ : array_splice ( $ rollback_keys , 0 , $ num_rollbacks );
460456
461457 if ( $ data ['release_asset ' ] ) {
462458 /**
0 commit comments