PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 4.0.1
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v4.0.1
4.9.1 4.9.0 2.0.0 2.1.0 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.3.0 4.3.1 4.4.0 4.5.0 4.5.1 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.6.8 4.6.9 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 trunk 0.1.2-beta 0.1.3-beta 0.1.4-beta 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.5.0 1.5.1 1.6.0 1.6.1 1.7.0 1.8.0 1.8.1 1.9.0
shopengine / base / api.php
shopengine / base Last commit date
api.php 3 years ago common.php 4 years ago cpt.php 4 years ago list-model.php 4 years ago widget-config.php 4 years ago widget.php 3 years ago
api.php
47 lines
1 <?php
2
3 namespace ShopEngine\Base;
4
5 defined('ABSPATH') || exit;
6
7 abstract class Api {
8
9 public $prefix = '';
10 public $param = '';
11 public $request = null;
12 public $only_admin = false;
13
14 abstract public function config();
15
16 public function __construct() {
17 $this->config();
18 $this->init();
19 }
20
21
22 public function init() {
23 add_action('rest_api_init', function() {
24 register_rest_route(untrailingslashit(\ShopEngine::SHOPENGINE_PREFIX.'/v1/' . $this->prefix), '/(?P<action>\w+)/' . ltrim($this->param, '/'), array(
25 'methods' => \WP_REST_Server::ALLMETHODS,
26 'callback' => [$this, 'action'],
27 'permission_callback' => function() {
28 if($this->only_admin) {
29 return current_user_can('edit_others_posts');
30 }
31 return true;
32 },
33 ));
34 });
35 }
36
37
38 public function action($request) {
39 $this->request = $request;
40 $action_class = strtolower($this->request->get_method()) . '_' . sanitize_key($this->request['action']);
41
42 if(method_exists($this, $action_class)) {
43 return $this->{$action_class}();
44 }
45 }
46
47 }