HEX
Server: LiteSpeed
System: Linux venus 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
User: axxoncom (1007)
PHP: 8.3.19
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/axxoncom/domains/gizmonova.com/private_html/wp-content/plugins/metform/base/api.php
<?php

namespace MetForm\Base;

defined('ABSPATH') || exit;

abstract class Api
{

    public $prefix = '';
    public $param = '';
    public $request = null;

    public function __construct()
    {
        $this->config();
        $this->init();
    }

    public abstract function config();

    public function init()
    {
        add_action('rest_api_init', function () {
            register_rest_route(untrailingslashit('metform/v1/' . $this->prefix), '/(?P<action>\w+)/' . ltrim($this->param, '/'), array(
                'methods' => \WP_REST_Server::ALLMETHODS,
                'callback' => [$this, 'action'],
                'permission_callback' => '__return_true',
            ));
        });
    }

    public function action($request)
    {
        $this->request = $request;
        $action_class = strtolower($this->request->get_method()) . '_' . $this->request['action'];

        if (method_exists($this, $action_class)) {

            return $this->{$action_class}();
            
        }
    }
}