PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 4.9.2
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v4.9.2
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 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 1 week 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 1 year ago
api.php
51 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 public $customer_only = false;
14
15 abstract public function config();
16
17 public function __construct() {
18 $this->config();
19 $this->init();
20 }
21
22
23 public function init() {
24 add_action('rest_api_init', function() {
25 register_rest_route(untrailingslashit(\ShopEngine::SHOPENGINE_PREFIX.'/v1/' . $this->prefix), '/(?P<action>\w+)/' . ltrim($this->param, '/'), array(
26 'methods' => \WP_REST_Server::ALLMETHODS,
27 'callback' => [$this, 'action'],
28 'permission_callback' => function() {
29 if($this->only_admin) {
30 return current_user_can('edit_others_posts');
31 }
32 if($this->customer_only) {
33 return is_user_logged_in();
34 }
35 return true;
36 },
37 ));
38 });
39 }
40
41
42 public function action($request) {
43 $this->request = $request;
44 $action_class = strtolower($this->request->get_method()) . '_' . sanitize_key($this->request['action']);
45
46 if(method_exists($this, $action_class)) {
47 return $this->{$action_class}();
48 }
49 }
50
51 }