SILENT KILLERPanel

Current Path: > home > codekrsu > > cuddlebuds.lk > wp-admin > includes


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: /home/codekrsu//cuddlebuds.lk/wp-admin/includes

NameTypeSizeLast ModifiedActions
admin-filters.php File 8034 bytes January 27 2025 19:41:22.
admin.php File 3628 bytes July 11 2023 09:03:24.
ajax-actions.php File 151629 bytes October 26 2024 00:26:20.
bookmark.php File 11725 bytes March 04 2025 10:55:24.
class-automatic-upgrader-skin.php File 3663 bytes June 22 2023 18:36:26.
class-bulk-plugin-upgrader-skin.php File 2590 bytes May 02 2024 21:20:10.
class-bulk-theme-upgrader-skin.php File 2660 bytes May 02 2024 21:20:10.
class-bulk-upgrader-skin.php File 6753 bytes July 29 2025 12:40:58.
class-core-upgrader.php File 15191 bytes October 06 2024 03:25:12.
class-custom-background.php File 21650 bytes February 12 2025 02:06:26.
class-custom-image-header.php File 49296 bytes February 08 2025 20:53:18.
class-file-upload-upgrader.php File 4163 bytes March 07 2024 10:58:16.
class-ftp-pure.php File 5426 bytes November 01 2019 18:57:02.
class-ftp-sockets.php File 8479 bytes March 22 2022 20:25:04.
class-ftp.php File 27370 bytes February 20 2025 13:42:28.
class-language-pack-upgrader-skin.php File 2870 bytes May 02 2024 21:20:10.
class-language-pack-upgrader.php File 15561 bytes April 30 2024 12:39:08.
class-pclzip.php File 196695 bytes December 13 2024 03:23:16.
class-plugin-installer-skin.php File 12053 bytes October 03 2024 04:25:16.
class-plugin-upgrader-skin.php File 3278 bytes June 14 2023 10:34:28.
class-plugin-upgrader.php File 23243 bytes October 03 2024 04:25:16.
class-theme-installer-skin.php File 12743 bytes December 14 2024 04:53:18.
class-theme-upgrader-skin.php File 4176 bytes February 27 2024 01:35:08.
class-theme-upgrader.php File 26702 bytes October 03 2024 04:25:16.
class-walker-category-checklist.php File 5091 bytes August 14 2024 03:37:16.
class-walker-nav-menu-checklist.php File 5628 bytes September 08 2023 13:32:24.
class-walker-nav-menu-edit.php File 14180 bytes October 21 2024 23:55:16.
class-wp-ajax-upgrader-skin.php File 4193 bytes June 22 2023 18:36:26.
class-wp-application-passwords-list-table.php File 6949 bytes February 17 2024 02:47:12.
class-wp-automatic-updater.php File 61902 bytes November 26 2024 15:03:18.
class-wp-comments-list-table.php File 33056 bytes February 27 2025 04:50:24.
class-wp-community-events.php File 18769 bytes September 12 2023 19:23:18.
class-wp-debug-data.php File 66619 bytes March 01 2025 05:29:24.
class-wp-filesystem-base.php File 24410 bytes February 17 2024 02:47:12.
class-wp-filesystem-direct.php File 18143 bytes February 17 2024 02:47:12.
class-wp-filesystem-ftpext.php File 23101 bytes February 17 2024 02:47:12.
class-wp-filesystem-ftpsockets.php File 18479 bytes February 17 2024 02:47:12.
class-wp-filesystem-ssh2.php File 23310 bytes February 17 2024 02:47:12.
class-wp-importer.php File 7499 bytes February 04 2025 00:52:24.
class-wp-internal-pointers.php File 4577 bytes June 14 2023 16:57:20.
class-wp-links-list-table.php File 9241 bytes July 17 2024 19:43:16.
class-wp-list-table-compat.php File 1497 bytes November 14 2020 21:54:08.
class-wp-list-table.php File 52906 bytes February 06 2025 17:24:24.
class-wp-media-list-table.php File 25899 bytes March 17 2025 22:54:28.
class-wp-ms-sites-list-table.php File 22019 bytes March 23 2025 18:48:32.
class-wp-ms-themes-list-table.php File 28438 bytes March 10 2025 22:16:28.
class-wp-ms-users-list-table.php File 15719 bytes February 27 2025 05:09:24.
class-wp-plugin-install-list-table.php File 24786 bytes July 17 2024 19:43:16.
class-wp-plugins-list-table.php File 57786 bytes September 03 2024 22:19:14.
class-wp-post-comments-list-table.php File 1453 bytes October 04 2022 07:47:16.
class-wp-posts-list-table.php File 64216 bytes March 17 2025 22:54:28.
class-wp-privacy-data-export-requests-list-table.php File 5563 bytes March 11 2022 00:22:02.
class-wp-privacy-data-removal-requests-list-table.php File 5715 bytes September 08 2023 13:32:24.
class-wp-privacy-policy-content.php File 32626 bytes January 30 2025 02:54:24.
class-wp-privacy-requests-table.php File 14395 bytes March 24 2025 23:59:34.
class-wp-screen.php File 37327 bytes March 06 2025 04:12:28.
class-wp-site-health-auto-updates.php File 14337 bytes November 04 2024 20:25:18.
class-wp-site-health.php File 122362 bytes March 18 2025 02:40:26.
class-wp-site-icon.php File 6414 bytes March 03 2024 01:15:14.
class-wp-terms-list-table.php File 21182 bytes June 15 2024 16:34:14.
class-wp-theme-install-list-table.php File 15599 bytes January 22 2025 02:49:22.
class-wp-themes-list-table.php File 10349 bytes January 22 2025 02:49:22.
class-wp-upgrader-skin.php File 7110 bytes May 02 2024 21:20:10.
class-wp-upgrader-skins.php File 1477 bytes October 08 2019 21:19:04.
class-wp-upgrader.php File 48009 bytes April 25 2025 03:18:32.
class-wp-users-list-table.php File 19058 bytes January 10 2024 16:57:16.
comment.php File 6121 bytes July 21 2022 02:15:10.
continents-cities.php File 20540 bytes September 20 2022 03:24:12.
credits.php File 5870 bytes December 19 2024 08:44:24.
dashboard.php File 69710 bytes October 03 2024 04:25:16.
deprecated.php File 41776 bytes January 10 2024 16:57:16.
edit-tag-messages.php File 1478 bytes December 07 2021 17:20:02.
file.php File 98169 bytes March 03 2025 05:19:24.
image-edit.php File 43883 bytes March 17 2025 00:47:30.
image.php File 42664 bytes March 02 2025 23:55:24.
import.php File 6617 bytes July 27 2024 04:27:16.
list-table.php File 3802 bytes October 04 2022 07:47:16.
media.php File 119109 bytes March 25 2025 18:07:54.
menu.php File 9618 bytes November 06 2023 14:27:24.
meta-boxes.php File 66076 bytes February 08 2025 16:44:24.
misc.php File 45783 bytes March 02 2025 05:43:24.
ms-admin-filters.php File 1296 bytes September 20 2022 06:51:10.
ms-deprecated.php File 3770 bytes September 20 2022 06:51:10.
ms.php File 34318 bytes March 03 2025 04:35:24.
nav-menu.php File 49041 bytes March 07 2025 04:48:24.
network.php File 26996 bytes March 10 2025 22:16:28.
noop.php File 1148 bytes September 21 2023 05:27:26.
options.php File 4251 bytes February 27 2024 01:18:10.
plugin-install.php File 39474 bytes August 09 2024 04:18:16.
plugin.php File 92925 bytes December 05 2024 17:13:18.
post.php File 82203 bytes March 11 2025 00:03:26.
privacy-tools.php File 33462 bytes June 22 2023 18:36:26.
revision.php File 16567 bytes July 05 2025 10:22:38.
schema.php File 42867 bytes July 08 2025 00:34:32.
screen.php File 6378 bytes June 15 2024 16:34:14.
taxonomy.php File 8424 bytes March 10 2023 12:04:20.
template.php File 98529 bytes February 08 2025 16:44:24.
theme-install.php File 6990 bytes February 27 2024 01:35:08.
theme.php File 47742 bytes July 27 2024 04:27:16.
translation-install.php File 11075 bytes September 11 2024 16:08:20.
update-core.php File 70146 bytes April 14 2025 19:29:22.
upgrade.php File 114781 bytes July 08 2025 00:34:32.
user.php File 23532 bytes March 02 2025 05:43:24.
widgets.php File 10912 bytes September 09 2023 13:28:26.

Reading File: /home/codekrsu//cuddlebuds.lk/wp-admin/includes/class-language-pack-upgrader.php

<?php
/**
 * Upgrade API: Language_Pack_Upgrader class
 *
 * @package WordPress
 * @subpackage Upgrader
 * @since 4.6.0
 */

/**
 * Core class used for updating/installing language packs (translations)
 * for plugins, themes, and core.
 *
 * @since 3.7.0
 * @since 4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader.php.
 *
 * @see WP_Upgrader
 */
class Language_Pack_Upgrader extends WP_Upgrader {

	/**
	 * Result of the language pack upgrade.
	 *
	 * @since 3.7.0
	 * @var array|WP_Error $result
	 * @see WP_Upgrader::$result
	 */
	public $result;

	/**
	 * Whether a bulk upgrade/installation is being performed.
	 *
	 * @since 3.7.0
	 * @var bool $bulk
	 */
	public $bulk = true;

	/**
	 * Asynchronously upgrades language packs after other upgrades have been made.
	 *
	 * Hooked to the {@see 'upgrader_process_complete'} action by default.
	 *
	 * @since 3.7.0
	 *
	 * @param false|WP_Upgrader $upgrader Optional. WP_Upgrader instance or false. If `$upgrader` is
	 *                                    a Language_Pack_Upgrader instance, the method will bail to
	 *                                    avoid recursion. Otherwise unused. Default false.
	 */
	public static function async_upgrade( $upgrader = false ) {
		// Avoid recursion.
		if ( $upgrader && $upgrader instanceof Language_Pack_Upgrader ) {
			return;
		}

		// Nothing to do?
		$language_updates = wp_get_translation_updates();
		if ( ! $language_updates ) {
			return;
		}

		/*
		 * Avoid messing with VCS installations, at least for now.
		 * Noted: this is not the ideal way to accomplish this.
		 */
		$check_vcs = new WP_Automatic_Updater();
		if ( $check_vcs->is_vcs_checkout( WP_CONTENT_DIR ) ) {
			return;
		}

		foreach ( $language_updates as $key => $language_update ) {
			$update = ! empty( $language_update->autoupdate );

			/**
			 * Filters whether to asynchronously update translation for core, a plugin, or a theme.
			 *
			 * @since 4.0.0
			 *
			 * @param bool   $update          Whether to update.
			 * @param object $language_update The update offer.
			 */
			$update = apply_filters( 'async_update_translation', $update, $language_update );

			if ( ! $update ) {
				unset( $language_updates[ $key ] );
			}
		}

		if ( empty( $language_updates ) ) {
			return;
		}

		// Re-use the automatic upgrader skin if the parent upgrader is using it.
		if ( $upgrader && $upgrader->skin instanceof Automatic_Upgrader_Skin ) {
			$skin = $upgrader->skin;
		} else {
			$skin = new Language_Pack_Upgrader_Skin(
				array(
					'skip_header_footer' => true,
				)
			);
		}

		$lp_upgrader = new Language_Pack_Upgrader( $skin );
		$lp_upgrader->bulk_upgrade( $language_updates );
	}

	/**
	 * Initializes the upgrade strings.
	 *
	 * @since 3.7.0
	 */
	public function upgrade_strings() {
		$this->strings['starting_upgrade'] = __( 'Some of your translations need updating. Sit tight for a few more seconds while they are updated as well.' );
		$this->strings['up_to_date']       = __( 'Your translations are all up to date.' );
		$this->strings['no_package']       = __( 'Update package not available.' );
		/* translators: %s: Package URL. */
		$this->strings['downloading_package'] = sprintf( __( 'Downloading translation from %s&#8230;' ), '<span class="code pre">%s</span>' );
		$this->strings['unpack_package']      = __( 'Unpacking the update&#8230;' );
		$this->strings['process_failed']      = __( 'Translation update failed.' );
		$this->strings['process_success']     = __( 'Translation updated successfully.' );
		$this->strings['remove_old']          = __( 'Removing the old version of the translation&#8230;' );
		$this->strings['remove_old_failed']   = __( 'Could not remove the old translation.' );
	}

	/**
	 * Upgrades a language pack.
	 *
	 * @since 3.7.0
	 *
	 * @param string|false $update Optional. Whether an update offer is available. Default false.
	 * @param array        $args   Optional. Other optional arguments, see
	 *                             Language_Pack_Upgrader::bulk_upgrade(). Default empty array.
	 * @return array|bool|WP_Error The result of the upgrade, or a WP_Error object instead.
	 */
	public function upgrade( $update = false, $args = array() ) {
		if ( $update ) {
			$update = array( $update );
		}

		$results = $this->bulk_upgrade( $update, $args );

		if ( ! is_array( $results ) ) {
			return $results;
		}

		return $results[0];
	}

	/**
	 * Upgrades several language packs at once.
	 *
	 * @since 3.7.0
	 *
	 * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
	 *
	 * @param object[] $language_updates Optional. Array of language packs to update. See {@see wp_get_translation_updates()}.
	 *                                   Default empty array.
	 * @param array    $args {
	 *     Other arguments for upgrading multiple language packs. Default empty array.
	 *
	 *     @type bool $clear_update_cache Whether to clear the update cache when done.
	 *                                    Default true.
	 * }
	 * @return array|bool|WP_Error Will return an array of results, or true if there are no updates,
	 *                             false or WP_Error for initial errors.
	 */
	public function bulk_upgrade( $language_updates = array(), $args = array() ) {
		global $wp_filesystem;

		$defaults    = array(
			'clear_update_cache' => true,
		);
		$parsed_args = wp_parse_args( $args, $defaults );

		$this->init();
		$this->upgrade_strings();

		if ( ! $language_updates ) {
			$language_updates = wp_get_translation_updates();
		}

		if ( empty( $language_updates ) ) {
			$this->skin->header();
			$this->skin->set_result( true );
			$this->skin->feedback( 'up_to_date' );
			$this->skin->bulk_footer();
			$this->skin->footer();
			return true;
		}

		if ( 'upgrader_process_complete' === current_filter() ) {
			$this->skin->feedback( 'starting_upgrade' );
		}

		// Remove any existing upgrade filters from the plugin/theme upgraders #WP29425 & #WP29230.
		remove_all_filters( 'upgrader_pre_install' );
		remove_all_filters( 'upgrader_clear_destination' );
		remove_all_filters( 'upgrader_post_install' );
		remove_all_filters( 'upgrader_source_selection' );

		add_filter( 'upgrader_source_selection', array( $this, 'check_package' ), 10, 2 );

		$this->skin->header();

		// Connect to the filesystem first.
		$res = $this->fs_connect( array( WP_CONTENT_DIR, WP_LANG_DIR ) );
		if ( ! $res ) {
			$this->skin->footer();
			return false;
		}

		$results = array();

		$this->update_count   = count( $language_updates );
		$this->update_current = 0;

		/*
		 * The filesystem's mkdir() is not recursive. Make sure WP_LANG_DIR exists,
		 * as we then may need to create a /plugins or /themes directory inside of it.
		 */
		$remote_destination = $wp_filesystem->find_folder( WP_LANG_DIR );
		if ( ! $wp_filesystem->exists( $remote_destination ) ) {
			if ( ! $wp_filesystem->mkdir( $remote_destination, FS_CHMOD_DIR ) ) {
				return new WP_Error( 'mkdir_failed_lang_dir', $this->strings['mkdir_failed'], $remote_destination );
			}
		}

		$language_updates_results = array();

		foreach ( $language_updates as $language_update ) {

			$this->skin->language_update = $language_update;

			$destination = WP_LANG_DIR;
			if ( 'plugin' === $language_update->type ) {
				$destination .= '/plugins';
			} elseif ( 'theme' === $language_update->type ) {
				$destination .= '/themes';
			}

			++$this->update_current;

			$options = array(
				'package'                     => $language_update->package,
				'destination'                 => $destination,
				'clear_destination'           => true,
				'abort_if_destination_exists' => false, // We expect the destination to exist.
				'clear_working'               => true,
				'is_multi'                    => true,
				'hook_extra'                  => array(
					'language_update_type' => $language_update->type,
					'language_update'      => $language_update,
				),
			);

			$result = $this->run( $options );

			$results[] = $this->result;

			// Prevent credentials auth screen from displaying multiple times.
			if ( false === $result ) {
				break;
			}

			$language_updates_results[] = array(
				'language' => $language_update->language,
				'type'     => $language_update->type,
				'slug'     => isset( $language_update->slug ) ? $language_update->slug : 'default',
				'version'  => $language_update->version,
			);
		}

		// Remove upgrade hooks which are not required for translation updates.
		remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
		remove_action( 'upgrader_process_complete', 'wp_version_check' );
		remove_action( 'upgrader_process_complete', 'wp_update_plugins' );
		remove_action( 'upgrader_process_complete', 'wp_update_themes' );

		/** This action is documented in wp-admin/includes/class-wp-upgrader.php */
		do_action(
			'upgrader_process_complete',
			$this,
			array(
				'action'       => 'update',
				'type'         => 'translation',
				'bulk'         => true,
				'translations' => $language_updates_results,
			)
		);

		// Re-add upgrade hooks.
		add_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
		add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 );
		add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 );
		add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 );

		$this->skin->bulk_footer();

		$this->skin->footer();

		// Clean up our hooks, in case something else does an upgrade on this connection.
		remove_filter( 'upgrader_source_selection', array( $this, 'check_package' ) );

		if ( $parsed_args['clear_update_cache'] ) {
			wp_clean_update_cache();
		}

		return $results;
	}

	/**
	 * Checks that the package source contains .mo and .po files.
	 *
	 * Hooked to the {@see 'upgrader_source_selection'} filter by
	 * Language_Pack_Upgrader::bulk_upgrade().
	 *
	 * @since 3.7.0
	 *
	 * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
	 *
	 * @param string|WP_Error $source        The path to the downloaded package source.
	 * @param string          $remote_source Remote file source location.
	 * @return string|WP_Error The source as passed, or a WP_Error object on failure.
	 */
	public function check_package( $source, $remote_source ) {
		global $wp_filesystem;

		if ( is_wp_error( $source ) ) {
			return $source;
		}

		// Check that the folder contains a valid language.
		$files = $wp_filesystem->dirlist( $remote_source );

		// Check to see if the expected files exist in the folder.
		$po  = false;
		$mo  = false;
		$php = false;
		foreach ( (array) $files as $file => $filedata ) {
			if ( str_ends_with( $file, '.po' ) ) {
				$po = true;
			} elseif ( str_ends_with( $file, '.mo' ) ) {
				$mo = true;
			} elseif ( str_ends_with( $file, '.l10n.php' ) ) {
				$php = true;
			}
		}

		if ( $php ) {
			return $source;
		}

		if ( ! $mo || ! $po ) {
			return new WP_Error(
				'incompatible_archive_pomo',
				$this->strings['incompatible_archive'],
				sprintf(
					/* translators: 1: .po, 2: .mo, 3: .l10n.php */
					__( 'The language pack is missing either the %1$s, %2$s, or %3$s files.' ),
					'<code>.po</code>',
					'<code>.mo</code>',
					'<code>.l10n.php</code>'
				)
			);
		}

		return $source;
	}

	/**
	 * Gets the name of an item being updated.
	 *
	 * @since 3.7.0
	 *
	 * @param object $update The data for an update.
	 * @return string The name of the item being updated.
	 */
	public function get_name_for_update( $update ) {
		switch ( $update->type ) {
			case 'core':
				return 'WordPress'; // Not translated.

			case 'theme':
				$theme = wp_get_theme( $update->slug );
				if ( $theme->exists() ) {
					return $theme->Get( 'Name' );
				}
				break;
			case 'plugin':
				$plugin_data = get_plugins( '/' . $update->slug );
				$plugin_data = reset( $plugin_data );
				if ( $plugin_data ) {
					return $plugin_data['Name'];
				}
				break;
		}
		return '';
	}

	/**
	 * Clears existing translations where this item is going to be installed into.
	 *
	 * @since 5.1.0
	 *
	 * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
	 *
	 * @param string $remote_destination The location on the remote filesystem to be cleared.
	 * @return bool|WP_Error True upon success, WP_Error on failure.
	 */
	public function clear_destination( $remote_destination ) {
		global $wp_filesystem;

		$language_update    = $this->skin->language_update;
		$language_directory = WP_LANG_DIR . '/'; // Local path for use with glob().

		if ( 'core' === $language_update->type ) {
			$files = array(
				$remote_destination . $language_update->language . '.po',
				$remote_destination . $language_update->language . '.mo',
				$remote_destination . $language_update->language . '.l10n.php',
				$remote_destination . 'admin-' . $language_update->language . '.po',
				$remote_destination . 'admin-' . $language_update->language . '.mo',
				$remote_destination . 'admin-' . $language_update->language . '.l10n.php',
				$remote_destination . 'admin-network-' . $language_update->language . '.po',
				$remote_destination . 'admin-network-' . $language_update->language . '.mo',
				$remote_destination . 'admin-network-' . $language_update->language . '.l10n.php',
				$remote_destination . 'continents-cities-' . $language_update->language . '.po',
				$remote_destination . 'continents-cities-' . $language_update->language . '.mo',
				$remote_destination . 'continents-cities-' . $language_update->language . '.l10n.php',
			);

			$json_translation_files = glob( $language_directory . $language_update->language . '-*.json' );
			if ( $json_translation_files ) {
				foreach ( $json_translation_files as $json_translation_file ) {
					$files[] = str_replace( $language_directory, $remote_destination, $json_translation_file );
				}
			}
		} else {
			$files = array(
				$remote_destination . $language_update->slug . '-' . $language_update->language . '.po',
				$remote_destination . $language_update->slug . '-' . $language_update->language . '.mo',
				$remote_destination . $language_update->slug . '-' . $language_update->language . '.l10n.php',
			);

			$language_directory     = $language_directory . $language_update->type . 's/';
			$json_translation_files = glob( $language_directory . $language_update->slug . '-' . $language_update->language . '-*.json' );
			if ( $json_translation_files ) {
				foreach ( $json_translation_files as $json_translation_file ) {
					$files[] = str_replace( $language_directory, $remote_destination, $json_translation_file );
				}
			}
		}

		$files = array_filter( $files, array( $wp_filesystem, 'exists' ) );

		// No files to delete.
		if ( ! $files ) {
			return true;
		}

		// Check all files are writable before attempting to clear the destination.
		$unwritable_files = array();

		// Check writability.
		foreach ( $files as $file ) {
			if ( ! $wp_filesystem->is_writable( $file ) ) {
				// Attempt to alter permissions to allow writes and try again.
				$wp_filesystem->chmod( $file, FS_CHMOD_FILE );
				if ( ! $wp_filesystem->is_writable( $file ) ) {
					$unwritable_files[] = $file;
				}
			}
		}

		if ( ! empty( $unwritable_files ) ) {
			return new WP_Error( 'files_not_writable', $this->strings['files_not_writable'], implode( ', ', $unwritable_files ) );
		}

		foreach ( $files as $file ) {
			if ( ! $wp_filesystem->delete( $file ) ) {
				return new WP_Error( 'remove_old_failed', $this->strings['remove_old_failed'] );
			}
		}

		return true;
	}
}

SILENT KILLER Tool