C7DBT_Helpers::status_label( 'ok' ),
'warn' => C7DBT_Helpers::status_label( 'warn' ),
'error' => C7DBT_Helpers::status_label( 'error' ),
);
$slug = C7DBT_Helpers::collection_slug();
$preview = home_url( '/collection/' . $slug . '/' );
$just_fixed = isset( $_GET['c7dbt_fixed'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$brand_pkg = C7DBT_Helpers::package_by_id( 'native_storefront' );
$care_pkg = C7DBT_Helpers::package_by_id( 'monthly_care' );
$debug_pkg = C7DBT_Helpers::package_by_id( 'debug_fix' );
$guide_url = C7DBT_Helpers::guide_url();
$health_nudge = C7DBT_Helpers::dashboard_health_nudge( $health );
$links = array(
'shop' => 'c7dbt-routes',
'site' => 'c7dbt-menus',
'design' => 'c7dbt-design',
'launch' => 'c7dbt-prelaunch',
);
// Is the shop itself actually configured? The overall score can dip to "warn"
// from unrelated areas (Launch & QA, Security), so the hero copy should follow
// the Shop card specifically — not the overall score.
$shop_ok = isset( $health['cards']['shop']['status'] ) && 'ok' === $health['cards']['shop']['status'];
// Labels of the non-shop areas that still need a look (for accurate copy).
$open_areas = array();
foreach ( $health['cards'] as $card_key => $card_data ) {
if ( 'shop' === $card_key ) {
continue;
}
if ( isset( $card_data['status'] ) && 'ok' !== $card_data['status'] ) {
$open_areas[] = $card_data['label'];
}
}
?>