HEX
Server: Apache
System: Linux vmi2886312 6.8.0-86-generic #87-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 18:03:36 UTC 2025 x86_64
User: www (1000)
PHP: 8.3.27
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/dr-lil.com/wp-content/plugins/fluentform/app/Modules/Registerer/MigrationNotice.php
<?php

namespace FluentForm\App\Modules\Registerer;

use FluentForm\App\Models\Form;
use FluentForm\App\Http\Controllers\AdminNoticeController;
use FluentForm\App\Helpers\Helper;

class MigrationNotice
{
    public static function register()
    {
        if (static::shouldRegister()) {
            add_action('fluentform/global_menu', [static::class, 'show'], 99);
        }
    }

    protected static function shouldRegister()
    {
        // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Checking admin page parameter
        if (isset($_GET['page']) && sanitize_text_field(wp_unslash($_GET['page'])) === 'fluent_forms_transfer') {
            return false;
        }

        if (Helper::isFluentAdminPage() && !wp_doing_ajax()) {
            return static::hasActiveCompatiblePlugins();
        }
        
        return false;
    }

    public static function show()
    {
        $notice = new AdminNoticeController();
        $msg = static::getMessage();
        $notice->addNotice($msg);
        $notice->showNotice();
    }

    private static function hasActiveCompatiblePlugins()
    {
        $activePlugins = static::getActiveCompatiblePlugins();
        return !empty($activePlugins);
    }

    private static function getActiveCompatiblePlugins()
    {
        $supportedPlugins = [
            'wpforms/wpforms.php' => 'WPForms',
            'wpforms-lite/wpforms.php' => 'WPForms',
            'contact-form-7/wp-contact-form-7.php' => 'Contact Form 7',
            'ninja-forms/ninja-forms.php' => 'Ninja Forms',
            'gravityforms/gravityforms.php' => 'Gravity Forms',
            'caldera-forms/caldera-core.php' => 'Caldera Forms'
        ];

        $activePlugins = [];
        foreach ($supportedPlugins as $plugin => $name) {
            if (is_plugin_active($plugin)) {
                $activePlugins[] = $name;
            }
        }

        return $activePlugins;
    }

    private static function getMessage()
    {
        $activePlugins = static::getActiveCompatiblePlugins();
        $pluginNames = implode(', ', $activePlugins);
        
        $message = sprintf(
            'We noticed you have <strong>%s</strong> installed. You can easily migrate your existing forms to <strong>Fluent Forms</strong> with just a few clicks.',
            $pluginNames ?: 'compatible plugins'
        );

        return [
            'name'    => 'migration_notice', //ff_notice_migration_notice
            'title'   => '',
            'message' => $message,
            'links' => [
                [
                    'href'     => admin_url('admin.php?page=fluent_forms_transfer#migrator'),
                    'btn_text' => 'Migrate Now',
                    'btn_atts' => 'class="mr-1 el-button--success el-button--mini"',
                ],
                [
                    'href'     => admin_url('admin.php?page=fluent_forms'),
                    'btn_text' => 'Maybe Later',
                    'btn_atts' => 'class="mr-1 el-button--info el-button--soft el-button--mini ff_nag_cross" data-notice_type="temp" data-notice_name="migration_notice"',
                ],
                [
                    'href'     => admin_url('admin.php?page=fluent_forms'),
                    'btn_text' => 'Don\'t show again',
                    'btn_atts' => 'class="text-button el-button--mini ff_nag_cross" data-notice_type="permanent" data-notice_name="migration_notice"',
                ],
            ],
        ];
    }
}