diff --git a/includes/classes/Feature.php b/includes/classes/Feature.php index 728e62ef89..f0ed0da834 100644 --- a/includes/classes/Feature.php +++ b/includes/classes/Feature.php @@ -52,6 +52,23 @@ abstract class Feature { */ public $requires_install_reindex; + /** + * The order in the features screen + * + * @var int + * @since 3.6.0 + */ + public $order; + + /** + * Set if a feature should be on the left or right side + * + * @var string + * @since 3.6.0 + */ + public $group_order; + + /** * Run on every page load for feature to set itself up * diff --git a/includes/partials/dashboard-page.php b/includes/partials/dashboard-page.php index c703b00c06..8f1f72b175 100644 --- a/includes/partials/dashboard-page.php +++ b/includes/partials/dashboard-page.php @@ -26,7 +26,22 @@

- registered_features; ?> + registered_features; + uasort( + $features, + function( $feature_a, $feature_b ) { + $order_feature_a = (int) $feature_a->order; + $order_feature_b = (int) $feature_b->order; + + if ( $order_feature_a === $order_feature_b ) { + return 0; + } + + return $order_feature_a < $order_feature_b ? -1 : 1; + } + ); + ?>
group_order || 'left' === $feature->group_order ) { + ${$feature->group_order} .= ob_get_clean(); } else { - $left .= ob_get_clean(); + if ( 0 === $i % 2 ) { + $right .= ob_get_clean(); + } else { + $left .= ob_get_clean(); + } } ?>