HEX
Server: Apache
System: Linux digivps 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC 2025 x86_64
User: root (0)
PHP: 8.3.15
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/biographybirthday.com/wp-content/plugins/webp-express/lib/migrate/migrate11.php
<?php

namespace WebPExpress;

use \WebPExpress\Config;
use \WebPExpress\Messenger;

function webpexpress_migrate11() {

    $config = Config::loadConfigAndFix(false);  // false, because we do not need to test if quality detection is working

    // There is a new option: "scope"
    // We want to set it to match current setup as closely as possible.

    $rootsWithRulesIn = HTAccess::getRootsWithWebPExpressRulesIn();

    if (in_array('index', $rootsWithRulesIn)) {
        $scope = ['index', 'plugins', 'themes', 'uploads', 'wp-content'];
    } elseif (in_array('wp-content', $rootsWithRulesIn)) {
        $scope = ['plugins', 'themes', 'uploads', 'wp-content'];
    } else {
        $scope = ['themes', 'uploads'];
    }

    // However, if some of the roots cannot be used, we remove these.

    $scope2 = [];
    foreach ($scope as $rootId) {
        if (Paths::canWriteHTAccessRulesInDir($rootId)) {
            $scope2[] = $rootId;
        }
    }
    if (count($scope2) == 0) {
        Messenger::addMessage(
            'warning',
            'WebP Express cannot update the .htaccess rules that it needs to. ' .
                'Please go to WebP Express settings and click "Save settings and force new .htaccess rules".'
        );
        $scope2 = ['themes', 'uploads'];
    }

    $config['scope'] = $scope2;

    if (in_array('index', $config['scope'])) {
        DismissableMessages::addDismissableMessage('0.15.0/new-scope-setting-index');
    } elseif (in_array('wp-content', $config['scope'])) {
        DismissableMessages::addDismissableMessage('0.15.0/new-scope-setting-content');
    } elseif (!in_array('uploads', $config['scope'])) {
        DismissableMessages::addDismissableMessage('0.15.0/new-scope-setting-no-uploads');
    }

/*
    error_log('roots with rules:' . implode(',', $rootsWithRulesIn));
    error_log('scope:' . implode(',', $config['scope']));
    error_log('scope2:' . implode(',', $scope2));*/


    $forceHtaccessRegeneration = true;
    $result = Config::saveConfigurationAndHTAccess($config, $forceHtaccessRegeneration);

    if ($result['saved-both-config']) {
        Messenger::addMessage(
            'info',
            'Successfully migrated <i>WebP Express</i> options for 0.15.0.'
        );
        Option::updateOption('webp-express-migration-version', '11');

    } else {
        Messenger::addMessage(
            'error',
            'Failed migrating webp express options to 0.15.0. Probably you need to grant write permissions in your wp-content folder.'
        );
    }

}

webpexpress_migrate11();