Files
2026-04-28 15:13:50 +02:00

69 lines
1.6 KiB
PHP

<?php
namespace AIOSEO\Plugin\Pro\Api;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use AIOSEO\Plugin\Common\Api as CommonApi;
use AIOSEO\Plugin\Common\Models;
/**
* Route class for the API.
*
* @since 4.0.0
*/
class Sitemaps extends CommonApi\Sitemaps {
/**
* Delete all static sitemap files.
*
* @since 4.0.0
*
* @return \WP_REST_Response The response.
*/
public static function deleteStaticFiles() {
$response = parent::deleteStaticFiles();
$files = list_files( get_home_path(), 1 );
if ( ! count( $files ) ) {
return;
}
$isVideoSitemapStatic = aioseo()->pro && aioseo()->options->sitemap->video->advancedSettings->enable &&
in_array( 'staticVideoSitemap', aioseo()->internalOptions->internal->deprecatedOptions, true ) &&
! aioseo()->options->deprecated->sitemap->video->advancedSettings->dynamic;
$detectedFiles = [];
if ( ! $isVideoSitemapStatic ) {
foreach ( $files as $filename ) {
if ( preg_match( '#.*sitemap.*#', (string) $filename ) ) {
$isVideoSitemap = preg_match( '#.*video.*#', (string) $filename ) ? true : false;
if ( $isVideoSitemap ) {
$detectedFiles[] = $filename;
}
}
}
}
if ( ! count( $detectedFiles ) ) {
return $response;
}
$fs = aioseo()->core->fs;
if ( ! $fs->isWpfsValid() ) {
return $response;
}
foreach ( $detectedFiles as $file ) {
$fs->fs->delete( $file, false, 'f' );
}
Models\Notification::deleteNotificationByName( 'sitemap-static-files' );
return new \WP_REST_Response( [
'success' => true,
'notifications' => Models\Notification::getNotifications()
], 200 );
}
}