ddons|null $addons_obj WPForms addons handler, or null if unavailable. * * @return array Data consumable by the education JS, or empty array when the item has no addon slug. */ private function prepare_addon_item_data( array $item, $addons_obj ): array { $addon_slug = $item['addon_slug'] ?? ''; if ( $addon_slug === '' ) { return []; } $addon = $addons_obj ? $addons_obj->get_addon( $addon_slug ) : []; $status = $addon['status'] ?? 'missing'; return [ 'slug' => $addon_slug, 'name' => $this->get_addon_item_name( $item ), 'icon' => $item['icon'] ?? '', 'demo_url' => PreviewDropdownEducationItems::get_demo_url( $item ), 'install_url' => $addon['url'] ?? '', 'path' => $addon['path'] ?? '', 'section' => $item['section'] ?? '', 'status' => $status, 'is_active' => $status === 'active', 'is_installed' => in_array( $status, [ 'active', 'installed' ], true ), ]; } /** * Resolve the user-facing name for an addon education item. * * Falls back to the regular label when a modal-specific