![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets.corals.io/wp-content/plugins/give/src/DonorDashboards/Tabs/Contracts/ |
<?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()); } }