PluginProbe
WPGet API – Connect to any external REST API / 2.2.7
WPGet API – Connect to any external REST API v2.2.7
1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.3 2.1.4 2.1.5 2.2.0 2.2.1 2.2.10 2.2.2 2.2.3 All 97 releases
wpgetapi / wpgetapi.php

wpgetapi.php in WPGet API – Connect to any external REST API 2.2.7, at wpgetapi.php

193 lines 4.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: WPGetAPI
4 * Plugin URI: https://wordpress.org/plugins/wpgetapi/
5 * Description: Connect to external API's and display the API data.
6 * Author: WPGetAPI
7 * Author URI: https://wpgetapi.com/
8 * Version: 2.2.7
9 * Text Domain: wpgetapi
10 * License: GPL2 or later
11 *
12 */
13
14 // Exit if accessed directly.
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit;
17 }
18
19 /**
20 * Main Class.
21 *
22 * @since 1.0.0
23 */
24 final class WP_Get_API {
25
26 /**
27 * @var The one true instance
28 * @since 1.0.0
29 */
30 protected static $_instance = null;
31
32 public $version = '2.2.4';
33
34 /**
35 * Main Instance.
36 */
37 public static function instance() {
38 if ( is_null( self::$_instance ) ) {
39 self::$_instance = new self();
40 }
41 return self::$_instance;
42 }
43
44 /**
45 * Throw error on object clone.
46 *
47 * @since 1.0.0
48 * @access protected
49 * @return void
50 */
51 public function __clone() {
52 _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'wpgetapi' ), '1.0.0' );
53 }
54
55 /**
56 * Disable unserializing of the class.
57 * @since 1.0.0
58 */
59 public function __wakeup() {
60 _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'wpgetapi' ), '1.0.0' );
61 }
62
63 /**
64 *
65 * @since 1.0.0
66 */
67 public function __construct() {
68 $this->define_constants();
69 $this->hooks();
70 $this->includes();
71
72 do_action( 'wpgetapi_loaded' );
73 }
74
75 /**
76 * Define Constants.
77 * @since 1.0.0
78 */
79 private function define_constants() {
80 $this->define( 'WPGETAPIDIR', plugin_dir_path( __FILE__ ) );
81 $this->define( 'WPGETAPIURL', plugin_dir_url( __FILE__ ) );
82 $this->define( 'WPGETAPIBASENAME', plugin_basename( __FILE__ ) );
83 $this->define( 'WPGETAPIVERSION', $this->version );
84 $this->define( 'WPGETAPILICENSEPAGE', 'wpgetapi_plugin_licenses' );
85 $this->define( 'WPGETAPISTOREURL', 'https://wpgetapi.com' );
86 }
87
88 /**
89 * Define hooks.
90 * @since 1.4.2
91 */
92 private function hooks() {
93 $plugin_file = WPGETAPIBASENAME;
94 add_filter( "plugin_action_links_{$plugin_file}", array( $this, 'plugin_action_links' ), 10, 4 );
95 add_filter( 'plugin_row_meta', array( $this, 'filter_plugin_row_meta' ), 10, 4 );
96 }
97
98 /**
99 * Define constant if not already set.
100 * @since 1.0.0
101 */
102 private function define( $name, $value ) {
103 if ( ! defined( $name ) ) {
104 define( $name, $value );
105 }
106 }
107
108
109 /**
110 * Include required files.
111 * @since 1.0.0
112 */
113 public function includes() {
114
115 if ( isset( $_GET['page'] ) && strpos( $_GET['page'], 'wpgetapi_' ) !== false ) {
116 require_once WPGETAPIDIR . '/lib/cmb2/init.php';
117 }
118
119 require_once WPGETAPIDIR . '/includes/block-editor/block-editor.php';
120
121 include_once WPGETAPIDIR . 'includes/class-wpgetapi-encryption.php';
122 include_once WPGETAPIDIR . 'includes/class-wpgetapi-admin-options.php';
123
124 include_once WPGETAPIDIR . 'includes/functions.php';
125 include_once WPGETAPIDIR . 'includes/class-wpgetapi-api-enqueues.php';
126 include_once WPGETAPIDIR . 'includes/class-wpgetapi-api.php';
127
128 include_once WPGETAPIDIR . 'frontend/functions.php';
129 include_once WPGETAPIDIR . 'includes/class-wpgetapi-license-handler.php';
130 }
131
132 /**
133 * Filters the array of row meta for each plugin in the Plugins list table.
134 *
135 * @param array<int,string> $plugin_meta An array of the plugin row's meta data.
136 * @param string $plugin_file Path to the plugin file relative to the plugins directory.
137 * @return array<int,string> An array of the plugin row's meta data.
138 */
139 public function filter_plugin_row_meta( array $plugin_meta, $plugin_file ) {
140 if ( 'wpgetapi/wpgetapi.php' !== $plugin_file ) {
141 return $plugin_meta;
142 }
143
144 $plugin_meta[] = sprintf(
145 '<a href="%1$s">%2$s</a>',
146 'https://wpgetapi.com/docs/?utm_campaign=Docs&utm_medium=plugin&utm_source=external',
147 esc_html( 'Docs', 'wpgetapi' )
148 );
149
150 return $plugin_meta;
151 }
152
153
154 /**
155 * Adds items to the plugin's action links on the Plugins listing screen.
156 *
157 * @param array<string,string> $actions Array of action links.
158 * @param string $plugin_file Path to the plugin file relative to the plugins directory.
159 * @param mixed[] $plugin_data An array of plugin data.
160 * @param string $context The plugin context.
161 * @return array<string,string> Array of action links.
162 */
163 public function plugin_action_links( $actions, $plugin_file, $plugin_data, $context ) {
164 $new = array(
165 'setup' => sprintf(
166 '<a href="%s">%s</a>',
167 esc_url( admin_url( 'admin.php?page=wpgetapi_setup' ) ),
168 esc_html__( 'API Setup', 'wpgetapi' )
169 ),
170 );
171
172 return array_merge( $new, $actions );
173 }
174
175 /**
176 * Whether the current user can manage the WPGetAPI plugin admin
177 *
178 * @return Boolean True if the current user can manage the WPGetAPI plugin admin otheriwise false
179 */
180 public function current_user_can_manage() {
181 return current_user_can( 'manage_options' );
182 }
183 }
184
185
186 /**
187 * Run the plugin.
188 */
189 function wp_get_api() {
190 return WP_Get_API::instance();
191 }
192 wp_get_api();
193