# payplug/3.0.0/src/Service/Upgrade.php

PayPlug for WooCommerce (Official), version 3.0.0. 54 lines.

- Page: https://pluginprobe.com/plugins/payplug/3.0.0/code/src/Service/Upgrade.php
- Raw: https://pluginprobe.com/plugins/payplug/3.0.0/raw/src/Service/Upgrade.php
- Modified: 2026-08-04T08:59:44+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/payplug/3.0.0/code/src/Service/Upgrade.php#L10-L20`.

```php
<?php

namespace Payplug\PayplugWoocommerce\Service;

use Payplug\PayplugWoocommerce\Traits\GatewayGetter;
use Payplug\PayplugWoocommerce\Traits\ServiceGetter;

class Upgrade
{
    use ServiceGetter;
    use GatewayGetter;

    public function run_upgrade(): void
    {
        // Check if new options need to be setted
        $configuration = $this->get_service('configuration');

        if (empty($configuration->get_option('email'))) {
            return;
        }

        $version = $configuration->get_option('version');

        if (!empty($version) && version_compare($version, PAYPLUG_MAX_VERSION_FOR_UPGRADE, '>=')) {
            return;
        }

        $options = $configuration->validate_configuration();

        if (empty($options)) {
            return;
        }

        // set the current version
        $options['version'] = PAYPLUG_GATEWAY_VERSION;

        // replace current option by new one
        $configuration->clean_option();
        $configuration->update_options($options);

        // then refresh the permissions
        $account_gateway = $this->get_gateway('account');

        // then get permissions
        $formated_account_permissions = $account_gateway->get_permissions();

        // and update options
        $configuration->update_options($formated_account_permissions['global']);
        $configuration->update_payment_permissions($formated_account_permissions['payment_methods']);

        return;
    }
}

```
