'review', 'schema' => 'shield-check', 'sidebar_boxes' => 'sidebar', 'author_health' => 'users', 'elementor' => 'boxes', ); /** * Filters the grouping of modules on the Features screen. * * Each group is an array of 'label', 'desc' and 'slugs'. Any module returned by * trustbio_feature_modules that is not claimed by a group is appended to a * final "Add-on Modules" group automatically. * * @since 1.0.0 * @param array $groups Feature groups. */ $tbf_groups = (array) apply_filters( 'trustbio_feature_groups', array( array( 'label' => __( 'Core Modules', 'trustbio' ), 'desc' => __( 'The foundational features every TrustBio site should have.', 'trustbio' ), 'slugs' => array( 'schema', 'review_bars' ), ), ) ); // Append any module a group did not claim, so add-on modules always show up. $tbf_claimed = array(); foreach ( $tbf_groups as $tbf_group ) { $tbf_claimed = array_merge( $tbf_claimed, (array) $tbf_group['slugs'] ); } $tbf_unclaimed = array_diff( array_keys( $feature_info ), $tbf_claimed ); if ( ! empty( $tbf_unclaimed ) ) { $tbf_groups[] = array( 'label' => __( 'Add-on Modules', 'trustbio' ), 'desc' => __( 'Modules provided by TrustBio Pro.', 'trustbio' ), 'slugs' => array_values( $tbf_unclaimed ), ); } /* * What the add-on would add, for a site that does not have it. * * These are NOT modules and they are deliberately not rendered as ones. They * carry no toggle, no checkbox and no disabled control of any kind: each card * is a link to the "TrustBio Pro" screen, which is itself a description of a * separate plugin. Guideline 5 of the plugin directory says a hosted plugin * "may not contain functionality that is restricted or locked, only to be * made available by payment or upgrade", and a greyed-out switch beside a * padlock is the pattern it names: it says the feature is here and you may * not use it. A card that says the feature is in another plugin, and links to * the page describing that plugin, says something different, and true. * * The copy is short on purpose. The full free-versus-Pro comparison lives on * the upgrade screen, and repeating it here would turn a settings page into a * second sales page. * * None of this renders once Pro is licensed: its real modules arrive through * trustbio_feature_modules and appear above in Add-on Modules with working * switches, so there is nothing left to describe. */ $tbf_pro_cards = array(); if ( ! trustbio_is_pro() ) { $tbf_pro_cards = array( array( 'icon' => 'sidebar', 'name' => __( 'Sidebar Author Boxes', 'trustbio' ), 'desc' => __( 'Five sidebar layouts, a widget and the [trustbio_sidebar] shortcode.', 'trustbio' ), ), array( 'icon' => 'shield-check', 'name' => __( 'NPI Registry Verification', 'trustbio' ), 'desc' => __( 'Checks a credential against the US provider registry instead of taking a typed URL on trust.', 'trustbio' ), ), array( 'icon' => 'document', 'name' => __( 'Credential Audit', 'trustbio' ), 'desc' => __( 'A dated, exportable record of every credential on the site and its status that day.', 'trustbio' ), ), array( 'icon' => 'shield-check', 'name' => __( 'Credential Change Log', 'trustbio' ), 'desc' => __( 'Every change recorded with the old value, the new value and who made it.', 'trustbio' ), ), array( 'icon' => 'email', 'name' => __( 'Credential Expiry Reminders', 'trustbio' ), 'desc' => __( 'Email before a credential lapses, so it is renewed rather than quietly hidden.', 'trustbio' ), ), array( 'icon' => 'review', 'name' => __( 'Reviewer Workflow', 'trustbio' ), 'desc' => __( 'Ask a named reviewer to check a post by a date, chase it, and record the result.', 'trustbio' ), ), array( 'icon' => 'review', 'name' => __( 'Content Review Scheduler', 'trustbio' ), 'desc' => __( 'Every published post ranked by how overdue its expert review is.', 'trustbio' ), ), array( 'icon' => 'users', 'name' => __( 'Front-end Profile Editing', 'trustbio' ), 'desc' => __( 'Authors update their own profile from the front end, into a review queue.', 'trustbio' ), ), array( 'icon' => 'shield-check', 'name' => __( 'Medical Schema', 'trustbio' ), 'desc' => __( 'Adds MedicalWebPage, Physician and related types for YMYL pages.', 'trustbio' ), ), array( 'icon' => 'fields', 'name' => __( 'ORCID Publications', 'trustbio' ), 'desc' => __( 'Pulls an author’s publication list from the ORCID iD already on their profile.', 'trustbio' ), ), array( 'icon' => 'document', 'name' => __( 'Disclosure Blocks', 'trustbio' ), 'desc' => __( 'Reusable funding, conflict-of-interest and medical disclaimer statements.', 'trustbio' ), ), array( 'icon' => 'users', 'name' => __( 'Team Directory', 'trustbio' ), 'desc' => __( 'An “our team” page built from the profiles you already keep.', 'trustbio' ), ), array( 'icon' => 'fields', 'name' => __( 'Author Importers', 'trustbio' ), 'desc' => __( 'Import from Co-Authors Plus, PublishPress Authors, Molongui or a CSV.', 'trustbio' ), ), ); } $tbf_pro_url = admin_url( 'admin.php?page=trustbio-upgrade' ); ?>