HEX
Server: Apache
System: Linux efa57bbe-abb1-400d-2985-3b056fbc2701.secureserver.net 6.1.147-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 24 12:33:32 EDT 2025 x86_64
User: root (0)
PHP: 8.0.30.4
Disabled: NONE
Upload Files
File: //var/www/wp-content/mu-plugins/vendor/godaddy/mwc-core/src/Features/Onboarding/Onboarding.php
<?php

namespace GoDaddy\WordPress\MWC\Core\Features\Onboarding;

use Exception;
use GoDaddy\WordPress\MWC\Common\Components\Contracts\ComponentContract;
use GoDaddy\WordPress\MWC\Common\Components\Traits\HasComponentsTrait;
use GoDaddy\WordPress\MWC\Common\Features\AbstractFeature;
use GoDaddy\WordPress\MWC\Core\Features\Onboarding\API\API;
use GoDaddy\WordPress\MWC\Core\Features\Onboarding\WooCommerce\Overrides\Onboarding as WooCommerceOnboarding;
use GoDaddy\WordPress\MWC\Core\Features\Onboarding\WooCommerce\Overrides\Wizard;
use GoDaddy\WordPress\MWC\Core\Features\Onboarding\WordPress\Overrides as WordPressOverrides;

class Onboarding extends AbstractFeature
{
    use HasComponentsTrait;

    /** @var class-string<ComponentContract>[] alphabetically ordered list of components to load */
    protected $componentClasses = [
        API::class,
        Wizard::class,
        WooCommerceOnboarding::class,
        WordPressOverrides::class,
    ];

    /**
     * Gets the feature name, matching the key used in configuration.
     *
     * @return string
     */
    public static function getName() : string
    {
        return 'onboarding';
    }

    /**
     * Initializes the feature.
     *
     * @throws Exception
     */
    public function load()
    {
        $this->loadComponents();
    }

    /**
     * {@inheritDoc}
     */
    public static function shouldLoad() : bool
    {
        return static::userHasRequiredCapabilities() && static::shouldLoadFeature();
    }

    /**
     * Determines if the current user the necessary capabilities.
     *
     * @return bool
     */
    protected static function userHasRequiredCapabilities() : bool
    {
        return function_exists('current_user_can') &&
            current_user_can('manage_woocommerce') &&
            current_user_can('install_plugins') &&
            current_user_can('activate_plugins');
    }
}