HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/delta/wp-content/plugins/wpml-string-translation/classes/strings-scanning/UpdateStats.php
<?php

namespace WPML\ST\StringsScanning;

use WPML\Ajax\IHandler;
use WPML\Collect\Support\Collection;
use function WPML\Container\make;
use WPML\FP\Either;

class UpdateStats implements IHandler {

	public function run( Collection $data ) {
		$stats = $this->sanitizeStats( $data->get( 'stats', [] ) );
		$st    = apply_filters( 'wpml_get_setting', false, 'st' );

		foreach ( $stats as $name => $data ) {
			$count = $data['count'];
			$key   = $data['settingsKey'];
			$item  = $data['pluginOrThemeId'];

			$old_count = isset( $st[ $key ][ $item ][ $name ] ) ?
				$st[ $key ][ $item ][ $name ] :
				0;

			$st[ $key ][ $item ][ $name ] = $old_count + $count;
		}

		do_action( 'wpml_set_setting', 'st', $st, true );

		return Either::of( [] );
	}

	private function sanitizeStats( $origStats ) {
		$stats = [];

		foreach ( $origStats as $origKey => $data ) {
			$key = sanitize_text_field( $origKey );
			$data['count']           = (int) $data['count'];
			$data['pluginOrThemeId'] = sanitize_text_field( $data['pluginOrThemeId'] );
			$data['settingsKey']     = sanitize_text_field( $data['settingsKey'] );
			$stats[ $key ]           = $data;
		}

		return $stats;
	}
}