[ 'label' => __( 'WordPress Core', 'aicom' ), 'description' => __( 'Posts, pages, custom post types, taxonomies, meta, options.', 'aicom' ), 'required' => null, 'icon' => 'dashicons-wordpress' ], 'media' => [ 'label' => __( 'Media & Files', 'aicom' ), 'description' => __( 'WordPress media library, file upload/list/delete (with allowlist).', 'aicom' ), 'required' => null, 'icon' => 'dashicons-format-image' ], 'users' => [ 'label' => __( 'Users & Roles', 'aicom' ), 'description' => __( 'User management, role assignment, capabilities. Anti-lockout guards included.', 'aicom' ), 'required' => null, 'icon' => 'dashicons-admin-users' ], 'backup' => [ 'label' => __( 'Backup & Restore', 'aicom' ), 'description' => __( 'Post/term/Elementor backups stored in database. Per-request restore.', 'aicom' ), 'required' => null, 'icon' => 'dashicons-backup' ], 'woocommerce' => [ 'label' => __( 'WooCommerce', 'aicom' ), 'description' => __( 'Products, categories, attributes, stock, price, settings.', 'aicom' ), 'required' => __( 'WooCommerce plugin', 'aicom' ), 'icon' => 'dashicons-cart' ], 'elementor' => [ 'label' => __( 'Elementor', 'aicom' ), 'description' => __( 'Programmatic widget editing via _elementor_data. Batch text update, backup/restore.', 'aicom' ), 'required' => __( 'Elementor plugin', 'aicom' ), 'icon' => 'dashicons-layout' ], 'polylang' => [ 'label' => __( 'Polylang', 'aicom' ), 'description' => __( 'Language assignment, translation linking for posts and terms.', 'aicom' ), 'required' => __( 'Polylang plugin', 'aicom' ), 'icon' => 'dashicons-translation' ], 'ecs' => [ 'label' => __( 'ECS', 'aicom' ), 'description' => __( 'Ele Custom Skin — loop skins, color schemes, container layouts for Elementor.', 'aicom' ), 'required' => __( 'ECS plugin', 'aicom' ), 'icon' => 'dashicons-admin-customizer' ], 'yoast' => [ 'label' => __( 'Yoast SEO', 'aicom' ), 'description' => __( 'SEO meta, Open Graph, Twitter Card, sitemap, breadcrumbs per post and term.', 'aicom' ), 'required' => __( 'Yoast SEO plugin', 'aicom' ), 'icon' => 'dashicons-chart-bar' ], 'clautron' => [ 'label' => __( 'Clautron', 'aicom' ), 'description' => __( 'Blueprint and capability management — catalog, primitives, compile, smoke test.', 'aicom' ), 'required' => __( 'Clautron plugin', 'aicom' ), 'icon' => 'dashicons-superhero' ], ]; ?>

$info ) : $status = $module_status[ $slug ] ?? 'inactive'; $is_active = str_starts_with( $status, 'active' ); $card_class = $is_active ? 'aicom-module-card-active' : 'aicom-module-card-inactive'; $tool_count = $tools_per_module[ $slug ] ?? 0; $tier_label = match ( $status ) { 'active' => $info['required'] ?? null, 'active_free' => ( $info['required'] ?? null ) . ' ' . __( '(Free)', 'aicom' ), 'active_pro' => ( $info['required'] ?? null ) . ' ' . __( '(Pro)', 'aicom' ), 'active_premium' => ( $info['required'] ?? null ) . ' ' . __( '(Premium)', 'aicom' ), 'installed_no_languages' => __( 'Installed — no languages', 'aicom' ), default => $info['required'] ?? null, }; ?>

'' . esc_html( $f ) . '', $flags ) ), [ 'code' => [ 'style' => [] ] ] ); ?>