Assuming that if wp_sitemaps_enabled
has a filter and it has that because we wanted to set it to false, otherwise it defaults to true for public sites. So I would just use and check whether it is filtered or not:
add_filter( 'wp_sitemaps_enabled', '__return_false' );
if (has_filter( 'wp_sitemaps_enabled') === true) {
add_filter('option_home', 'any_callback_function');
} else {
// echo "the Sitemap is not filtered";
}
Other useful approach could be if you use the WP_Sitemaps object to check the status of sitemaps:
add_filter( 'wp_sitemaps_enabled', '__return_false' );
$thisSiteMap = new WP_Sitemaps();
$site_map_status = $thisSiteMap->sitemaps_enabled();
// var_dump($site_map_status); // just to check the value
if ($site_map_status === false) { // which means sitemaps are filtered/not available
echo "sitemaps are turned off";
add_filter('option_home', 'my_uri_function'); // any custom callback function
}
// example callback function
function my_uri_function() {
$myurl = get_site_url() . '/shop';
return $myurl;
}