HEX
Server: nginx/1.18.0
System: Linux iZj6c1ieg2jrpk1z5tzi19Z 6.3.9-1.el7.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 21 22:18:40 EDT 2023 x86_64
User: www (1001)
PHP: 8.2.4
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.cytocare.cn/wp-content/plugins/friendly-captcha/public/widgets.php
<?php

function frcaptcha_enqueue_widget_scripts($forceMutationObserver = false)
{
    $plugin = FriendlyCaptcha_Plugin::$instance;

    if (!$plugin->is_configured()) {
        return;
    }

    if (FriendlyCaptcha_Plugin::$instance->get_enable_v2()) {
        frcaptcha_v2_enqueue_widget_scripts();
    } else {
        frcaptcha_v1_enqueue_widget_scripts();
    }

    frcaptcha_mutation_observer_scripts($plugin, $forceMutationObserver);
}

function frcaptcha_v1_enqueue_widget_scripts()
{
    $version = FriendlyCaptcha_Plugin::$friendly_challenge_version;

    /* Modern browsers will load this smaller bundle */
    wp_enqueue_script(
        'friendly-captcha-widget-module',
        plugin_dir_url(__FILE__) . 'vendor/v1/widget.module.min.js',
        array(),
        $version,
        true
    );

    /* Fallback for (very) old browsers */
    wp_enqueue_script(
        'friendly-captcha-widget-fallback',
        plugin_dir_url(__FILE__) . 'vendor/v1/widget.polyfilled.min.js',
        array(),
        $version,
        true
    );
}

function frcaptcha_v2_enqueue_widget_scripts()
{
    $version = FriendlyCaptcha_Plugin::$friendly_captcha_sdk_version;

    /* Modern browsers will load this smaller bundle */
    wp_enqueue_script(
        'friendly-captcha-widget-module',
        plugin_dir_url(__FILE__) . 'vendor/v2/site.min.js',
        array(),
        $version,
        true
    );

    /* Fallback for (very) old browsers */
    wp_enqueue_script(
        'friendly-captcha-widget-fallback',
        plugin_dir_url(__FILE__) . 'vendor/v2/site.compat.min.js',
        array(),
        $version,
        true
    );
}

function frcaptcha_mutation_observer_scripts($plugin, $forceMutationObserver)
{
    $version = FriendlyCaptcha_Plugin::$version;

    if ($forceMutationObserver || $plugin->get_enable_mutation_observer()) {
        wp_enqueue_script(
            'friendly-captcha-mutation-observer',
            plugin_dir_url(__FILE__) . 'mutation-observer.js',
            array(),
            $version,
            true
        );
    }
}

/**
 * Useful if for some reason wp_enqueue_script doesn't work (as seems to be the case with WPForms?!)
 */
function frcaptcha_echo_script_tags()
{
    $plugin = FriendlyCaptcha_Plugin::$instance;

    if (!$plugin->is_configured()) {
        return;
    }

    if ($plugin->get_enable_v2()) {
        return frcaptcha_v2_echo_script_tags();
    } else {
        return frcaptcha_v1_echo_script_tags();
    }
}

function frcaptcha_v1_echo_script_tags()
{
    $version = FriendlyCaptcha_Plugin::$friendly_challenge_version;

    echo '<script async defer type="module" src="' . plugin_dir_url(__FILE__) . 'vendor/v1/widget.module.min.js?ver=' . $version . '"></script>';
    echo '<script async defer nomodule src="' . plugin_dir_url(__FILE__) . 'vendor/v1/widget.polyfilled.min.js?ver=' . $version . '"></script>';
}


function frcaptcha_v2_echo_script_tags()
{
    $version = FriendlyCaptcha_Plugin::$friendly_captcha_sdk_version;

    echo '<script async defer type="module" src="' . plugin_dir_url(__FILE__) . 'vendor/v2/site.min.js?ver=' . $version . '"></script>';
    echo '<script async defer nomodule src="' . plugin_dir_url(__FILE__) . 'vendor/v2/site.compat.min.js?ver=' . $version . '"></script>';
}

add_filter('script_loader_tag', 'frcaptcha_transform_friendly_captcha_script_tags', 10, 3);

function frcaptcha_transform_friendly_captcha_script_tags($tag, $handle, $src)
{
    if ('friendly-captcha-widget-module' == $handle) {
        return str_replace('<script', '<script async defer type="module"', $tag);
    }
    if ('friendly-captcha-widget-fallback' == $handle) {
        return str_replace('<script', '<script async defer nomodule', $tag);
    }
    if ('friendly-captcha-mutation-observer' == $handle) {
        return str_replace('<script', '<script async defer', $tag);
    }

    return $tag;
}

function frcaptcha_generate_widget_tag_from_plugin($plugin)
{
    if (!$plugin->is_configured()) {
        return "";
    }

    if ($plugin->get_enable_v2()) {
        return frcaptcha_v2_generate_widget_tag_from_plugin($plugin);
    } else {
        return frcaptcha_v1_generate_widget_tag_from_plugin($plugin);
    }
}

function frcaptcha_v1_generate_widget_tag_from_plugin($plugin)
{
    $sitekey = $plugin->get_sitekey();
    $lang = $plugin->get_widget_language();

    $extra_attributes = "";
    $global = $plugin->get_global_puzzle_endpoint_active();
    $eu = $plugin->get_eu_puzzle_endpoint_active();

    if ($global && $eu) {
        $extra_attributes = "data-puzzle-endpoint=\"https://eu-api.friendlycaptcha.eu/api/v1/puzzle,https://api.friendlycaptcha.com/api/v1/puzzle\"";
    } else if ($eu) {
        $extra_attributes = "data-puzzle-endpoint=\"https://eu-api.friendlycaptcha.eu/api/v1/puzzle\"";
    }

    $theme = $plugin->get_widget_dark_theme_active() ? "dark" : "";

    return sprintf(
        '%s%s',
        frcaptcha_generate_skip_style_injection_tag($plugin),
        frcaptcha_v1_generate_widget_tag($sitekey, $lang, $extra_attributes, $theme)
    );
}

function frcaptcha_v2_generate_widget_tag_from_plugin($plugin)
{
    $sitekey = $plugin->get_sitekey();

    $extra_attributes = "";
    $eu = $plugin->get_eu_puzzle_endpoint_active();

    if ($eu) {
        $extra_attributes = "data-api-endpoint=\"eu\"";
    }

    $theme = $plugin->get_widget_dark_theme_active() ? "dark" : "light";

    return sprintf(
        '%s%s',
        frcaptcha_generate_skip_style_injection_tag($plugin),
        frcaptcha_v2_generate_widget_tag($sitekey, $extra_attributes, $theme)
    );
}

function frcaptcha_v1_generate_widget_tag($sitekey, $language, $extra_attributes = "", $theme = "")
{
    return sprintf(
        '<div class="frc-captcha %s" data-sitekey="%s" data-lang="%s" %s></div>
		<noscript>You need to enable Javascript for the anti-spam check.</noscript>',
        esc_html($theme),
        esc_html($sitekey),
        esc_html($language),
        $extra_attributes
    );
}

function frcaptcha_v2_generate_widget_tag($sitekey, $extra_attributes = "", $theme = "light")
{
    return sprintf(
        '<div class="frc-captcha" data-sitekey="%s" data-theme="%s" %s></div>
		<noscript>You need to enable Javascript for the anti-spam check.</noscript>',
        esc_html($sitekey),
        esc_html($theme),
        $extra_attributes
    );
}

$frcaptcha_skip_style_injection_tag_injected = false;

function frcaptcha_generate_skip_style_injection_tag($plugin)
{
    global $frcaptcha_skip_style_injection_tag_injected;

    if (!$plugin->get_skip_style_injection()) {
        return '';
    }

    if ($frcaptcha_skip_style_injection_tag_injected) {
        // we only want to inject the element once
        return '';
    }

    $frcaptcha_skip_style_injection_tag_injected = true;
    return '<div id="frc-style"></div>';
}