` inside the * SVGs avoids a second i18n surface, wording stays in the existing * description text. * * Sizing/color live ENTIRELY in admin-settings.css via the shared * `.acez-seo-help-illustration` class — no width/height/style attribute on * the itself (the M55 card-icon oversized-SVG bug is the reason). * * Disable switch: `add_filter( 'acez_seo_help_illustrations_enabled', '__return_false' )` * turns every illustration off (empty string) without touching any entry. */ final class HelpIllustrations { public static function get( string $key ): string { if ( ! (bool) apply_filters( 'acez_seo_help_illustrations_enabled', true ) ) { return ''; } return self::all()[ $key ] ?? ''; } /** * @return array */ private static function all(): array { return array( 'og_default_image' => self::priority_chain(), 'location_rules' => self::or_convergence(), ); } /** * OG image fallback order (M2): the post's own OG image, then the * featured image, then the per-type default. Three identical image * glyphs joined by arrows, at decreasing opacity — priority without * needing labels. */ private static function priority_chain(): string { $svg = ''; return $svg; } private static function image_glyph( int $x ): string { return sprintf( '' . '' . '' . '' . '', $x ); } private static function arrow( int $x1, int $x2 ): string { return sprintf( '' . '', $x1, $x2, $x2 + 7 ); } /** * Location rules (M4): checking ANY box, from either the "Page * templates" or "Conditions" group, is enough — everything selected * combines with OR, not AND (verified against the real save path, * `ContentTab::save()` merges both checkbox arrays into ONE rule group, * so the domain model's multi-group AND capability is never actually * exercised by the current admin UI). Several checkbox glyphs converging * into a single checkmark. */ private static function or_convergence(): string { $svg = ''; return $svg; } private static function checkbox_glyph( int $y ): string { return sprintf( '' . '' . '' . '', $y ); } }