bind_anti_eav_hooks(); } /** Adapter slug (matches wp.org plugin slug). */ public function plugin_slug(): string { return 'hivepress-memberships'; } /** Class probed for addon presence. */ public function detection_class(): string { return 'HivePress\\Memberships\\Plugin'; } /** Version constant probed for addon presence. */ public function detection_const(): string { return 'HIVEPRESS_MEMBERSHIPS_VERSION'; } /** Minimum addon version supported. */ public function minimum_addon_version(): string { return '2.0.0'; } /** * 8-D self-score. * * D1: 1.0 — adapter never calls *_meta() * D2: 1.0 — uses wpdb prefix * D3: 1.0 — both models have hot tables * D4: 1.0 — every field has explicit data_type + indexed flag * D5: 1.0 — single-adapter scope * D6: 1.0 — zero options/transients * D7: 1.0 — only registers fields, no cross-table queries * D8: 1.0 — hot column on hp_expired_time = indexed range scan */ public function suitability_score(): array { return $this->compose_score( array() ); } } } // end if ( ! class_exists )