Skip to content
Snippets Groups Projects
wpct-http-bridge.php 2.44 KiB
Newer Older
Dani Quilez's avatar
Dani Quilez committed
<?php
Dani Quilez's avatar
Dani Quilez committed
/**
Lucas García's avatar
Lucas García committed
 * Plugin Name:     Wpct Http Bridge
 * Plugin URI:      https://git.coopdevs.org/codeccoop/wp/wpct-http-bridge
 * Description:     Connect WP with backends over HTTP requests
Lucas García's avatar
Lucas García committed
 * Author:          Codec
 * Author URI:      https://www.codeccoop.org
Lucas García's avatar
Lucas García committed
 * Text Domain:     wpct-http
Dani Quilez's avatar
Dani Quilez committed
 * Domain Path:     /languages
Lucas García's avatar
Lucas García committed
 * Version:         3.0.1
Dani Quilez's avatar
Dani Quilez committed
 *
Lucas García's avatar
Lucas García committed
 * @package         Wpct_Http
Dani Quilez's avatar
Dani Quilez committed
 */
Lucas García's avatar
Lucas García committed
namespace WPCT_HTTP;

Lucas García's avatar
Lucas García committed
use WPCT_ABSTRACT\Plugin;

Lucas García's avatar
Lucas García committed
if (!defined('ABSPATH')) {
    exit;
}

Lucas García's avatar
Lucas García committed
if (!class_exists('\WPCT_HTTP\Wpct_Http_Bridge')) :
    if (!defined('WPCT_HTTP_AUTH_SECRET')) {
        define('WPCT_HTTP_AUTH_SECRET', getenv('WPCT_HTTP_AUTH_SECRET') ? getenv('WPCT_HTTP_AUTH_SECRET') : '123456789');
    }
    require_once 'abstracts/class-singleton.php';
    require_once 'abstracts/class-plugin.php';
    require_once 'abstracts/class-menu.php';
    require_once 'abstracts/class-settings.php';
    require_once 'includes/class-menu.php';
    require_once 'includes/class-settings.php';
    require_once 'includes/class-http-client.php';
    require_once 'includes/class-http-backend.php';
Lucas García's avatar
Lucas García committed
    require_once 'includes/class-jwt.php';
    require_once 'includes/class-rest-controller.php';
Lucas García's avatar
Lucas García committed
    class Wpct_Http_Bridge extends Plugin
Lucas García's avatar
Lucas García committed
    {
        public static $name = 'Wpct Http Bridge';
        public static $textdomain = 'wpct-http-bridge';

        protected static $menu_class = '\WPCT_HTTP\Menu';

        public function __construct()
        {
            parent::__construct();

            add_filter('plugin_action_links', function ($links, $file) {
                if ($file !== plugin_basename(__FILE__)) {
                    return $links;
                }

                $url = admin_url('options-general.php?page=wpct-http-bridge');
                $label = __('Settings');
                $link = "<a href='{$url}'>{$label}</a>";
                array_unshift($links, $link);
                return $links;
            }, 5, 2);

            new REST_Controller();
        public static function activate()
        {
Lucas García's avatar
Lucas García committed
        }
        public static function deactivate()
        {
        public function init()
        {
        }
    register_deactivation_hook(__FILE__, function () {
        Wpct_Http_Bridge::deactivate();
    });

    register_activation_hook(__FILE__, function () {
        Wpct_Http_Bridge::activate();
    });
    add_action('plugins_loaded', function () {
        $plugin = Wpct_Http_Bridge::get_instance();
    }, 10);
endif;