array( 'brizy_enabled', '1' ), 'Elementor' => array( '_elementor_edit_mode', 'builder' ), 'Beaver Builder' => array( '_fl_builder_enabled', '1' ), 'Bricks' => array( '_bricks_editor_mode', 'bricks' ), 'Thrive Architect' => array( 'tcb_editor_enabled', '1' ), ); private const DATA_FIELDS = array( 'Oxygen' => 'ct_builder_shortcodes', 'Breakdance' => '_breakdance_data', 'SiteOrigin Page Builder' => 'panels_data', 'Visual Composer' => 'vcv-pageContent', 'Themify Builder' => '_themify_builder_settings_json', 'Cornerstone' => '_cornerstone_data', 'Live Composer' => 'dslc_code', ); private const POST_OBJECTS = 'post'; public function name_of( int $post_id ): string|null { $name = apply_filters( 'link_checkup_page_builder', $this->known_builder_of( $post_id ), $post_id ); return is_string( $name ) && '' !== $name ? $name : null; } private function known_builder_of( int $post_id ): string|null { foreach ( self::SWITCHES as $name => list( $field, $switched_on ) ) { $stored = get_post_meta( $post_id, $field, true ); if ( $stored === $switched_on ) { return $name; } } foreach ( self::DATA_FIELDS as $name => $field ) { if ( metadata_exists( self::POST_OBJECTS, $post_id, $field ) ) { return $name; } } return null; } }