PluginProbe
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets / 4.7.3
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets v4.7.3
4.9.5 4.9.4 4.9.3 4.9.2 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 All 85 releases
shopengine / trunk / base / api.php

api.php in ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets 4.7.3, at trunk/base/api.php

47 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 }