PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 3.2.0
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v3.2.0
4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / EmbedPress / Plugins / Plugin.php
embedpress / EmbedPress / Plugins Last commit date
Plugin.php 4 years ago index.html 7 years ago
Plugin.php
168 lines
1 <?php
2
3 namespace EmbedPress\Plugins;
4
5 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
6
7 /**
8 * Entity that represents a model to EmbedPress plugins.
9 *
10 * @package EmbedPress
11 * @author EmbedPress <help@embedpress.com>
12 * @copyright Copyright (C) 2020 WPDeveloper. All rights reserved.
13 * @license GPLv3 or later
14 * @since 1.4.0
15 * @abstract
16 */
17 abstract class Plugin
18 {
19 const VERSION = '0.0.0';
20
21 /**
22 * Method that register all EmbedPress events.
23 *
24 * @since 1.4.0
25 * @static
26 *
27 * @return void
28 */
29 public static function registerEvents()
30 {
31 // do nothing
32 }
33
34 /**
35 * Method that checks if EmbedPress is active or not.
36 *
37 * @since 1.4.0
38 * @access protected
39 * @static
40 *
41 * @return boolean
42 */
43 protected static function isEmbedPressActive()
44 {
45 return is_plugin_active(EMBEDPRESS_PLG_NAME . '/' . EMBEDPRESS_PLG_NAME . '.php');
46 }
47
48 /**
49 * Retrieve an error message based on its code.
50 *
51 * @since 1.4.0
52 * @access protected
53 * @static
54 *
55 * @param string $err The error code.
56 *
57 * @return string
58 */
59 protected static function getErrorMessage($err = '')
60 {
61 if ($err === 'ERR_MISSING_DEPENDENCY') {
62 return __('Please, <strong>install</strong> and <strong>activate <a href="https://wordpress.org/plugins/' . EMBEDPRESS_PLG_NAME . '" target="_blank" rel="noopener noreferrer">' . EMBEDPRESS . '</a></strong> plugin in order to make <em>' . EMBEDPRESS . ' - ' . static::NAME . '</em> to work.');
63 }
64
65 return $err;
66 }
67
68 /**
69 * Callback triggered by WordPress' 'admin_init' default action.
70 *
71 * @since 1.4.0
72 * @static
73 *
74 * @return void
75 */
76 public static function onLoadAdminCallback()
77 {
78 $pluginSignature = EMBEDPRESS_PLG_NAME . '-' . static::SLUG . '/' . EMBEDPRESS_PLG_NAME . '-' . static::SLUG . '.php';
79 if (is_admin() && ! self::isEmbedPressActive() && is_plugin_active($pluginSignature)) {
80 deactivate_plugins($pluginSignature);
81 }
82 }
83
84 /**
85 * Callback triggered by WordPress' 'register_activation_hook' function.
86 * @return bool
87 *@since 1.4.0
88 * @static
89 */
90 public static function onActivationCallback()
91 {
92 return true;
93 }
94
95 /**
96 * Callback triggered by WordPress' 'register_deactivation_hook' function.
97 *
98 * @since 1.4.0
99 * @static
100 *
101 * @return void
102 */
103 public static function onDeactivationCallback()
104 {
105 delete_option(EMBEDPRESS_PLG_NAME . ':' . static::SLUG);
106 }
107
108
109 /**
110 * Retrieve user defined options.
111 *
112 * @since 1.4.0
113 * @static
114 *
115 * @return array
116 */
117 public static function getOptions()
118 {
119 $options = (array)get_option(EMBEDPRESS_PLG_NAME . ':' . static::SLUG);
120 if (empty($options) || (count($options) === 1 && empty($options[0]))) {
121 $options = [];
122 $schema = static::getOptionsSchema();
123 foreach ($schema as $fieldSlug => $field) {
124 $value = isset($field['default']) ? $field['default'] : "";
125
126 settype($value, isset($field['type']) && in_array(strtolower($field['type']),
127 ['bool', 'boolean', 'int', 'integer', 'float', 'string']) ? $field['type'] : 'string');
128
129 if ($fieldSlug === "license_key") {
130 $options['license'] = [
131 'key' => true,
132 'status' => "missing",
133 ];
134 } else {
135 $options[$fieldSlug] = $value;
136 }
137 }
138 }
139
140 $options['license'] = [
141 'key' => true,
142 'status' => "missing",
143 ];
144
145 return $options;
146 }
147
148 /**
149 * Handle links displayed below the plugin name in the WordPress Installed Plugins page.
150 *
151 * @since 1.4.0
152 * @static
153 *
154 * @return array
155 */
156 public static function handleActionLinks($links, $file)
157 {
158 $settingsLink = '<a href="' . admin_url('admin.php?page=' . EMBEDPRESS_PLG_NAME . '&page_type=' . static::SLUG) . '" aria-label="' . __('Open settings page',
159 'embedpress') . '">' . __('Settings', 'embedpress') . '</a>';
160
161 array_unshift($links, $settingsLink);
162 if ( !is_embedpress_pro_active() ) {
163 $links[] = '<a href="https://wpdeveloper.net/in/upgrade-embedpress" target="_blank" class="embedpress-go-pro-action" style="color: green">'.__('Go Pro', 'embedpress').'</a>';
164 }
165 return $links;
166 }
167 }
168