276 lines
6.7 KiB
PHP
276 lines
6.7 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* WPSEO plugin file.
|
||
|
*
|
||
|
* @package WPSEO\Admin\Tracking
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Collects anonymized settings data.
|
||
|
*/
|
||
|
class WPSEO_Tracking_Settings_Data implements WPSEO_Collection {
|
||
|
|
||
|
/**
|
||
|
* The options that need to be anonymized before they can be sent elsewhere.
|
||
|
*
|
||
|
* @var array All of the option_names which need to be
|
||
|
* anonymized before they can be sent elsewhere.
|
||
|
*/
|
||
|
private $anonymous_settings = [
|
||
|
'baiduverify',
|
||
|
'googleverify',
|
||
|
'msverify',
|
||
|
'yandexverify',
|
||
|
'myyoast-oauth',
|
||
|
'website_name',
|
||
|
'alternate_website_name',
|
||
|
'company_logo',
|
||
|
'company_name',
|
||
|
'company_alternate_name',
|
||
|
'person_name',
|
||
|
'person_logo',
|
||
|
'person_logo_id',
|
||
|
'company_logo_id',
|
||
|
'facebook_site',
|
||
|
'instagram_url',
|
||
|
'linkedin_url',
|
||
|
'myspace_url',
|
||
|
'og_default_image',
|
||
|
'og_default_image_id',
|
||
|
'og_frontpage_title',
|
||
|
'og_frontpage_desc',
|
||
|
'og_frontpage_image',
|
||
|
'og_frontpage_image_id',
|
||
|
'open_graph_frontpage_title',
|
||
|
'open_graph_frontpage_desc',
|
||
|
'open_graph_frontpage_image',
|
||
|
'open_graph_frontpage_image_id',
|
||
|
'other_social_urls',
|
||
|
'mastodon_url',
|
||
|
'pinterest_url',
|
||
|
'pinterestverify',
|
||
|
'twitter_site',
|
||
|
'youtube_url',
|
||
|
'wikipedia_url',
|
||
|
'semrush_tokens',
|
||
|
'zapier_api_key',
|
||
|
'wincher_tokens',
|
||
|
'wincher_website_id',
|
||
|
'least_readability_ignore_list',
|
||
|
'least_seo_score_ignore_list',
|
||
|
'most_linked_ignore_list',
|
||
|
'least_linked_ignore_list',
|
||
|
'indexables_page_reading_list',
|
||
|
'publishing_principles_id',
|
||
|
'ownership_funding_info_id',
|
||
|
'actionable_feedback_policy_id',
|
||
|
'corrections_policy_id',
|
||
|
'ethics_policy_id',
|
||
|
'diversity_policy_id',
|
||
|
'diversity_staffing_report_id',
|
||
|
];
|
||
|
|
||
|
/**
|
||
|
* The options we want to track.
|
||
|
*
|
||
|
* @var array The option_names for the options we want to track.
|
||
|
*/
|
||
|
private $include_list = [
|
||
|
'ms_defaults_set',
|
||
|
'version',
|
||
|
'disableadvanced_meta',
|
||
|
'ryte_indexability',
|
||
|
'baiduverify',
|
||
|
'googleverify',
|
||
|
'msverify',
|
||
|
'yandexverify',
|
||
|
'site_type',
|
||
|
'has_multiple_authors',
|
||
|
'environment_type',
|
||
|
'content_analysis_active',
|
||
|
'keyword_analysis_active',
|
||
|
'inclusive_language_analysis_active',
|
||
|
'enable_admin_bar_menu',
|
||
|
'enable_cornerstone_content',
|
||
|
'enable_xml_sitemap',
|
||
|
'enable_text_link_counter',
|
||
|
'show_onboarding_notice',
|
||
|
'first_activated_on',
|
||
|
'myyoast-oauth',
|
||
|
'dynamic_permalinks',
|
||
|
'website_name',
|
||
|
'alternate_website_name',
|
||
|
'company_logo',
|
||
|
'company_name',
|
||
|
'company_or_person',
|
||
|
'person_name',
|
||
|
'forcerewritetitle',
|
||
|
'separator',
|
||
|
'title-home-wpseo',
|
||
|
'title-author-wpseo',
|
||
|
'title-archive-wpseo',
|
||
|
'title-search-wpseo',
|
||
|
'title-404-wpseo',
|
||
|
'metadesc-home-wpseo',
|
||
|
'metadesc-author-wpseo',
|
||
|
'metadesc-archive-wpseo',
|
||
|
'rssbefore',
|
||
|
'rssafter',
|
||
|
'noindex-author-wpseo',
|
||
|
'noindex-author-noposts-wpseo',
|
||
|
'noindex-archive-wpseo',
|
||
|
'disable-author',
|
||
|
'disable-date',
|
||
|
'disable-post_format',
|
||
|
'disable-attachment',
|
||
|
'breadcrumbs-404crumb',
|
||
|
'breadcrumbs-display-blog-page',
|
||
|
'breadcrumbs-boldlast',
|
||
|
'breadcrumbs-archiveprefix',
|
||
|
'breadcrumbs-enable',
|
||
|
'breadcrumbs-home',
|
||
|
'breadcrumbs-prefix',
|
||
|
'breadcrumbs-searchprefix',
|
||
|
'breadcrumbs-sep',
|
||
|
'person_logo',
|
||
|
'person_logo_id',
|
||
|
'company_logo_id',
|
||
|
'company_or_person_user_id',
|
||
|
'stripcategorybase',
|
||
|
'noindex-post',
|
||
|
'display-metabox-pt-post',
|
||
|
'noindex-page',
|
||
|
'display-metabox-pt-page',
|
||
|
'noindex-attachment',
|
||
|
'display-metabox-pt-attachment',
|
||
|
'display-metabox-tax-category',
|
||
|
'noindex-tax-category',
|
||
|
'display-metabox-tax-post_tag',
|
||
|
'noindex-tax-post_tag',
|
||
|
'display-metabox-tax-post_format',
|
||
|
'noindex-tax-post_format',
|
||
|
'taxonomy-category-ptparent',
|
||
|
'taxonomy-post_tag-ptparent',
|
||
|
'taxonomy-post_format-ptparent',
|
||
|
'breadcrumbs-blog-remove',
|
||
|
'hideeditbox-post',
|
||
|
'hideeditbox-page',
|
||
|
'hideeditbox-attachment',
|
||
|
'hideeditbox-tax-category',
|
||
|
'hideeditbox-tax-post_tag',
|
||
|
'hideeditbox-tax-post_format',
|
||
|
'facebook_site',
|
||
|
'instagram_url',
|
||
|
'linkedin_url',
|
||
|
'myspace_url',
|
||
|
'og_default_image',
|
||
|
'og_default_image_id',
|
||
|
'og_frontpage_title',
|
||
|
'og_frontpage_desc',
|
||
|
'og_frontpage_image',
|
||
|
'og_frontpage_image_id',
|
||
|
'open_graph_frontpage_title',
|
||
|
'open_graph_frontpage_desc',
|
||
|
'open_graph_frontpage_image',
|
||
|
'open_graph_frontpage_image_id',
|
||
|
'opengraph',
|
||
|
'pinterest_url',
|
||
|
'pinterestverify',
|
||
|
'twitter',
|
||
|
'twitter_site',
|
||
|
'twitter_card_type',
|
||
|
'youtube_url',
|
||
|
'wikipedia_url',
|
||
|
'mastodon_url',
|
||
|
'indexables_indexing_completed',
|
||
|
'semrush_integration_active',
|
||
|
'semrush_tokens',
|
||
|
'semrush_country_code',
|
||
|
'enable_enhanced_slack_sharing',
|
||
|
'zapier_integration_active',
|
||
|
'zapier_api_key',
|
||
|
'enable_metabox_insights',
|
||
|
'enable_link_suggestions',
|
||
|
'enable_index_now',
|
||
|
'enable_ai_generator',
|
||
|
'workouts',
|
||
|
'wincher_integration_active',
|
||
|
'wincher_tokens',
|
||
|
'wincher_website_id',
|
||
|
'wincher_automatically_add_keyphrases',
|
||
|
'first_time_install',
|
||
|
'other_social_urls',
|
||
|
'remove_feed_global',
|
||
|
'remove_feed_global_comments',
|
||
|
'remove_feed_post_comments',
|
||
|
'remove_feed_authors',
|
||
|
'remove_feed_categories',
|
||
|
'remove_feed_tags',
|
||
|
'remove_feed_custom_taxonomies',
|
||
|
'remove_feed_post_types',
|
||
|
'remove_feed_search',
|
||
|
'remove_atom_rdf_feeds',
|
||
|
'remove_shortlinks',
|
||
|
'remove_rest_api_links',
|
||
|
'remove_rsd_wlw_links',
|
||
|
'remove_oembed_links',
|
||
|
'remove_generator',
|
||
|
'remove_emoji_scripts',
|
||
|
'remove_powered_by_header',
|
||
|
'remove_pingback_header',
|
||
|
'clean_campaign_tracking_urls',
|
||
|
'clean_permalinks',
|
||
|
'clean_permalinks_extra_variables',
|
||
|
'search_cleanup',
|
||
|
'search_cleanup_emoji',
|
||
|
'search_cleanup_patterns',
|
||
|
'search_character_limit',
|
||
|
'redirect_search_pretty_urls',
|
||
|
'wordproof_integration_active',
|
||
|
'indexables_overview_state',
|
||
|
'deny_search_crawling',
|
||
|
'deny_wp_json_crawling',
|
||
|
'deny_adsbot_crawling',
|
||
|
'last_known_no_unindexed',
|
||
|
];
|
||
|
|
||
|
/**
|
||
|
* Returns the collection data.
|
||
|
*
|
||
|
* @return array The collection data.
|
||
|
*/
|
||
|
public function get() {
|
||
|
/**
|
||
|
* Filter: 'wpseo_tracking_settings_include_list' - Allow filtering the settings included in tracking.
|
||
|
*
|
||
|
* @api string $include_list the list with included setting names.
|
||
|
*/
|
||
|
$this->include_list = apply_filters( 'wpseo_tracking_settings_include_list', $this->include_list );
|
||
|
|
||
|
$options = WPSEO_Options::get_all();
|
||
|
// Returns the settings of which the keys intersect with the values of the include list.
|
||
|
$options = array_intersect_key( $options, array_flip( $this->include_list ) );
|
||
|
|
||
|
return [
|
||
|
'settings' => $this->anonymize_settings( $options ),
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Anonimizes the WPSEO_Options array by replacing all $anonymous_settings values to 'used'.
|
||
|
*
|
||
|
* @param array $settings The settings.
|
||
|
*
|
||
|
* @return array The anonymized settings.
|
||
|
*/
|
||
|
private function anonymize_settings( $settings ) {
|
||
|
foreach ( $this->anonymous_settings as $setting ) {
|
||
|
if ( ! empty( $settings[ $setting ] ) ) {
|
||
|
$settings[ $setting ] = 'used';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $settings;
|
||
|
}
|
||
|
}
|