HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpmuhibbah_err/wp-content/plugins/give/src/DonorDashboards/Tabs/Contracts/Tab.php
<?php

namespace Give\DonorDashboards\Tabs\Contracts;

use Give\DonorDashboards\Tabs\Contracts\Route as RouteAbstract;
use Give\Framework\Exceptions\Primitives\RuntimeException;

/**
 * Class Tab
 *
 * Extend this class when creating Donor Profile tabs.
 *
 * @since 2.10.0
 */
abstract class Tab
{
    /**
     * Return array of routes (must extend DonorDashboard Route class)
     *
     * @since 2.10.0
     * @return array
     */
    abstract public function routes();

    /**
     * Return a unique identifier for the tab
     *
     * @since 2.10.0
     * @return string
     */
    public static function id()
    {
        throw new RuntimeException('A unique ID must be provided for the tab');
    }

    /**
     * Enqueue assets required for frontend rendering of tab
     *
     * @since 2.10.0
     */
    public function enqueueAssets()
    {
        return null;
    }

    /**
     * Registers routes with WP REST api
     *
     * @since 2.10.0
     */
    public function registerRoutes()
    {
        $routeClasses = $this->routes();
        foreach ($routeClasses as $routeClass) {
            if ( ! is_subclass_of($routeClass, RouteAbstract::class)) {
                throw new \InvalidArgumentException(
                    $routeClass . ' must extend the ' . RouteAbstract::class . ' class'
                );
            }
            (new $routeClass)->registerRoute();
        }
    }

    public function registerTab()
    {
        give()->donorDashboardTabs->addTab(get_called_class());
    }
}