get_list(); $widgets_active = \ElementsKit_Lite\Config\Widget_List::instance()->get_list( 'active' ); $widgets_categorized = array(); foreach ( $widgets_all as $key => $row ) { $widgets_categorized[ ( $row['widget-category'] ?? 'general' ) ][ $key ] = $row; } // Reorder categories start $widget_order = [ 'general', 'advanced', 'creative', 'special-features', 'woocommerce', 'header-footer', 'marketing', 'post', 'form', 'social-media-feeds', 'review-testimonials', 'meeting', ]; $reordered_widgets = []; // Step 1: Reorder according to $widget_order foreach ($widget_order as $category_key) { if (isset($widgets_categorized[$category_key])) { $reordered_widgets[$category_key] = $widgets_categorized[$category_key]; } } $remaining = array_diff_key($widgets_categorized, $reordered_widgets); $widgets_categorized = $reordered_widgets + $remaining; // Reorder categories end // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Checking current page type. The page only can access admin. So nonce verification is not required. $widget_css_class = isset( $_GET['ekit-onboard-steps'] ) && $_GET['ekit-onboard-steps'] == 'loaded' ? 'ekit-admin-widgets-container' : 'ekit-admin-widget-list'; ?>
$widgets ) : ?>

$widget_config ) : ?>
> utils->input( array( 'type' => 'switch', 'name' => 'widget_list[]', 'label' => esc_html( $widget_config['title'] ), 'value' => $widget, 'attr' => ( $widget_config['package'] != 'pro-disabled' ? array() : array( 'disabled' => 'disabled' ) ), 'class' => 'ekit-content-type-' . esc_attr( $widget_config['package'] ), 'options' => array( 'checked' => ( isset( $widgets_active[ $widget ] ) ? true : false ), ), ) ); ?>