HEX
Server: Apache
System: Linux srv-plesk28.ps.kz 5.14.0-284.18.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 29 17:06:27 EDT 2023 x86_64
User: greencl1 (10085)
PHP: 8.1.33
Disabled: apache_setenv,dl,eval,exec,openlog,passthru,pcntl_exec,pcntl_fork,popen,posix_getpwuid,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,socket_create,socket_create_listen,socket_create_pair,syslog,system,socket_listen,stream_socket_server
Upload Files
File: /var/www/vhosts/greenclinic.kz/newsite/wp-content/plugins/wp-multilang/uninstall.php
<?php
/**
 * WP Multilang Uninstall
 *
 * Uninstalling  WP Multilang deletes translations and options.
 *
 * @author   Valentyn Riaboshtan
 * @category    Core
 * @package     WPM/Uninstaller
 */

if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
	exit;
}

global $wpdb;

require_once __DIR__ . '/wp-multilang.php';

if ( get_option( 'wpm_uninstall_translations', 'no' ) === 'yes' ) {

	// Roles + caps.
	WPM\Includes\WPM_Install::remove_roles();
	$config           = wpm_get_config();
	$default_language = wpm_get_default_language();

	$post_types = get_post_types( '', 'names' );

	foreach ( $post_types as $post_type ) {

		$post_config = wpm_get_post_config( $post_type );

		if ( is_null( $post_config ) ) {
			continue;
		}

		$fields  = wpm_filter_post_config_fields( array_keys( $post_config ) );
		$results = $wpdb->get_results( $wpdb->prepare( "SELECT ID, " . implode( ', ', $fields ) . " FROM {$wpdb->posts} WHERE post_type = '%s';", esc_sql( $post_type ) ) );

		foreach ( $results as $result ) {

			$args       = array();
			$new_result = wpm_translate_object( $result, $default_language );

			foreach ( get_object_vars( $new_result ) as $key => $content ) {
				if ( 'ID' == $key ) {
					continue;
				}

				$args[ $key ] = $content;
			}

			$wpdb->update( $wpdb->posts, $args, array( 'ID' => $result->ID ) );
		}
	}

	$taxonomies = get_taxonomies();

	foreach ( $taxonomies as $taxonomy ) {

		if ( is_null( wpm_get_taxonomy_config( $taxonomy ) ) ) {
			continue;
		}

		$results = $wpdb->get_results( $wpdb->prepare( "SELECT t.term_id, `name`, description FROM {$wpdb->terms} t LEFT JOIN {$wpdb->term_taxonomy} tt ON t.term_id = tt.term_id WHERE tt.taxonomy = '%s';", esc_sql( $taxonomy ) ) );

		foreach ( $results as $result ) {

			$result      = wpm_translate_object( $result, $default_language );
			$description = $result->description;
			$name        = $result->name;

			$wpdb->update( $wpdb->term_taxonomy, compact( 'description' ), array( 'term_id' => $result->term_id ) );
			$wpdb->update( $wpdb->terms, compact( 'name' ), array( 'term_id' => $result->term_id ) );
		}
	}

	$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%';" );
	$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_site_transient_%';" );

	foreach ( $config as $key => $item_config ) {

		switch ( $key ) {

			case 'post_fields':
				$wpdb->delete( $wpdb->postmeta, array( 'meta_key' => '_languages' ) );

				$results = $wpdb->get_results( "SELECT meta_id, meta_value FROM {$wpdb->postmeta} WHERE meta_value LIKE '%![:__!]%' ESCAPE '!' OR meta_value LIKE '%{:__}%' OR meta_value LIKE '%<!--:__-->%';" );
				foreach ( $results as $result ) {
					$meta_value = $result->meta_value;

					if ( is_serialized_string( $meta_value ) ) {
						$meta_value = serialize( wpm_translate_value( unserialize( $meta_value ), $default_language ) );
					}

					if ( isJSON( $meta_value ) ) {
						$meta_value = wp_json_encode( wpm_translate_value( json_decode( $meta_value, true ), $default_language ) );
					}

					if ( wpm_is_ml_string( $meta_value ) ) {
						$meta_value = wpm_translate_string( $meta_value, $default_language );
					}

					$wpdb->update( $wpdb->postmeta, compact( 'meta_value' ), array( 'meta_id' => $result->meta_id ) );
				}

				break;

			case 'term_fields':
				$wpdb->delete( $wpdb->termmeta, array( 'meta_key' => '_languages' ) );

				$results = $wpdb->get_results( "SELECT meta_id, meta_value FROM {$wpdb->termmeta} WHERE meta_value LIKE '%![:__!]%' ESCAPE '!' OR meta_value LIKE '%{:__}%' OR meta_value LIKE '%<!--:__-->%';" );

				foreach ( $results as $result ) {
					$meta_value = $result->meta_value;

					if ( is_serialized_string( $meta_value ) ) {
						$meta_value = serialize( wpm_translate_value( unserialize( $meta_value ), $default_language ) );
					}

					if ( isJSON( $meta_value ) ) {
						$meta_value = wp_json_encode( wpm_translate_value( json_decode( $meta_value, true ), $default_language ) );
					}

					if ( wpm_is_ml_string( $meta_value ) ) {
						$meta_value = wpm_translate_string( $meta_value, $default_language );
					}

					$wpdb->update( $wpdb->termmeta, compact( 'meta_value' ), array( 'meta_id' => $result->meta_id ) );
				}

				break;

			case 'comment_fields':
				$wpdb->delete( $wpdb->commentmeta, array( 'meta_key' => '_languages' ) );

				$results = $wpdb->get_results( "SELECT meta_id, meta_value FROM {$wpdb->commentmeta} WHERE meta_value LIKE '%s' OR meta_value LIKE '%![:__!]%' ESCAPE '!' OR meta_value LIKE '%{:__}%' OR meta_value LIKE '%<!--:__-->%';" );

				foreach ( $results as $result ) {
					$meta_value = $result->meta_value;

					if ( is_serialized_string( $meta_value ) ) {
						$meta_value = serialize( wpm_translate_value( unserialize( $meta_value ), $default_language ) );
					}

					if ( isJSON( $meta_value ) ) {
						$meta_value = wp_json_encode( wpm_translate_value( json_decode( $meta_value, true ), $default_language ) );
					}

					if ( wpm_is_ml_string( $meta_value ) ) {
						$meta_value = wpm_translate_string( $meta_value, $default_language );
					}

					$wpdb->update( $wpdb->commentmeta, compact( 'meta_value' ), array( 'meta_id' => $result->meta_id ) );
				}

				break;

			case 'user_fields':

				$results = $wpdb->get_results( "SELECT umeta_id, meta_value FROM {$wpdb->usermeta} WHERE meta_value LIKE '%![:__!]%' ESCAPE '!' OR meta_value LIKE '%{:__}%' OR meta_value LIKE '%<!--:__-->%';" );

				foreach ( $results as $result ) {
					$meta_value = $result->meta_value;

					if ( is_serialized_string( $meta_value ) ) {
						$meta_value = serialize( wpm_translate_value( unserialize( $meta_value ), $default_language ) );
					}

					if ( isJSON( $meta_value ) ) {
						$meta_value = wp_json_encode( wpm_translate_value( json_decode( $meta_value, true ), $default_language ) );
					}

					if ( wpm_is_ml_string( $meta_value ) ) {
						$meta_value = wpm_translate_string( $meta_value, $default_language );
					}

					$wpdb->update( $wpdb->usermeta, compact( 'meta_value' ), array( 'umeta_id' => $result->umeta_id ) );
				}

				break;

			case 'options':

				$results = $wpdb->get_results( "SELECT option_id, option_value FROM {$wpdb->options} WHERE option_value LIKE '%![:__!]%' ESCAPE '!' OR option_value LIKE '%{:__}%' OR option_value LIKE '%<!--:__-->%';" );

				foreach ( $results as $result ) {
					$option_value = $result->option_value;

					if ( is_serialized_string( $option_value ) ) {
						$option_value = serialize( wpm_translate_value( unserialize( $option_value ), $default_language ) );
					}

					if ( isJSON( $option_value ) ) {
						$option_value = wp_json_encode( wpm_translate_value( json_decode( $option_value, true ), $default_language ) );
					}

					if ( wpm_is_ml_string( $option_value ) ) {
						$option_value = wpm_translate_string( $option_value, $default_language );
					}

					$wpdb->update( $wpdb->options, compact( 'option_value' ), array( 'option_id' => $result->option_id ) );
				}

				break;

			case 'site_options':

				$results = $wpdb->get_results( "SELECT meta_id, meta_value FROM {$wpdb->sitemeta} WHERE meta_value LIKE '%![:__!]%' ESCAPE '!' OR meta_value LIKE '%{:__}%' OR meta_value LIKE '%<!--:__-->%';" );

				foreach ( $results as $result ) {
					$meta_value = $result->meta_value;

					if ( is_serialized_string( $meta_value ) ) {
						$meta_value = serialize( wpm_translate_value( unserialize( $meta_value ), $default_language ) );
					}

					if ( isJSON( $meta_value ) ) {
						$meta_value = wp_json_encode( wpm_translate_value( json_decode( $meta_value, true ), $default_language ) );
					}

					if ( wpm_is_ml_string( $meta_value ) ) {
						$meta_value = wpm_translate_string( $meta_value, $default_language );
					}

					$wpdb->update( $wpdb->sitemeta, compact( 'meta_value' ), array( 'meta_id' => $result->meta_id ) );
				}

				break;
		} // End switch().
	} // End foreach().

	// Clear any cached data that has been removed
	wp_cache_flush();
} // End if().

$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'wpm_%';" );