PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 4.6.1
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v4.6.1
4.6.1 4.6.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.php
embedpress Last commit date
.claude 2 days ago Core 2 days ago EmbedPress 2 days ago assets 2 days ago languages 2 days ago vendor 3 months ago autoloader.php 10 months ago embedpress.php 2 days ago includes.php 2 days ago index.html 9 years ago providers.php 1 month ago readme.txt 2 days ago wpml-config.xml 4 years ago
embedpress.php
219 lines
1 <?php
2
3 /**
4 * Plugin Name: EmbedPress
5 * Plugin URI: https://embedpress.com/
6 * Description: EmbedPress lets you embed videos, images, posts, audio, maps and upload PDF, DOC, PPT & all other types of content into your WordPress site with one-click and showcase it beautifully for the visitors. 250+ sources supported.
7 * Author: WPDeveloper
8 * Author URI: https://wpdeveloper.com
9 * Version: 4.6.1
10 * Text Domain: embedpress
11 * Domain Path: /languages
12 *
13 * Copyright (c) 2023 WPDeveloper
14 *
15 * EmbedPress plugin bootstrap file.
16 *
17 * @package EmbedPress
18 * @author EmbedPress <help@embedpress.com>
19 * @copyright Copyright (C) 2023 WPDeveloper. All rights reserved.
20 * @license GPLv3 or later
21 * @since 1.0.0
22 */
23
24
25 use EmbedPress\Analytics\Analytics;
26 use EmbedPress\Compatibility;
27 use EmbedPress\Core;
28 use EmbedPress\CoreLegacy;
29 use EmbedPress\Elementor\Embedpress_Elementor_Integration;
30 use EmbedPress\Includes\Classes\Feature_Enhancer;
31 use EmbedPress\Includes\Classes\Extend_Elementor_Controls;
32 use EmbedPress\Includes\Classes\Extend_CustomPlayer_Controls;
33 use EmbedPress\Includes\Classes\Helper;
34 use EmbedPress\MilestoneNotification;
35 use EmbedPress\Shortcode;
36
37
38 defined('ABSPATH') or die("No direct script access allowed.");
39
40 // Store HTTP_REFERER if it's external
41 if (!defined('EMBEDPRESS_ORIGINAL_REFERRER')) {
42 $original_referrer = '';
43
44 if (!empty($_SERVER['HTTP_REFERER'])) {
45
46 $current_site_url = home_url();
47 if (strpos($_SERVER['HTTP_REFERER'], $current_site_url) !== 0) {
48 $original_referrer = $_SERVER['HTTP_REFERER'];
49 }
50 }
51
52 define('EMBEDPRESS_ORIGINAL_REFERRER', $original_referrer);
53 }
54
55
56 define('EMBEDPRESS_PLUGIN_BASENAME', plugin_basename(__FILE__));
57 define('EMBEDPRESS_FILE', __FILE__);
58
59 if (!defined('EMBEDPRESS_PLUGIN_VERSION')) {
60
61 if (defined('EMBEDPRESS_DEV_MODE') && EMBEDPRESS_DEV_MODE) {
62 define('EMBEDPRESS_PLUGIN_VERSION', time());
63 } else {
64 define('EMBEDPRESS_PLUGIN_VERSION', '4.6.1');
65 }
66 }
67
68 define('EMBEDPRESS_PLUGIN_DIR_PATH', plugin_dir_path(__FILE__));
69 define('EMBEDPRESS_PLUGIN_DIR_URL', plugin_dir_url(__FILE__));
70 define('EMBEDPRESS_GUTENBERG_DIR_URL', EMBEDPRESS_PLUGIN_DIR_URL . 'Gutenberg/');
71 define('EMBEDPRESS_GUTENBERG_DIR_PATH', EMBEDPRESS_PLUGIN_DIR_PATH . 'Gutenberg/');
72 define('EMBEDPRESS_SETTINGS_ASSETS_URL', EMBEDPRESS_PLUGIN_DIR_URL . 'EmbedPress/Ends/Back/Settings/assets/');
73 define('EMBEDPRESS_SETTINGS_PATH', EMBEDPRESS_PLUGIN_DIR_PATH . 'EmbedPress/Ends/Back/Settings/');
74 define('EMBEDPRESS_PLUGIN_URL', plugins_url('/', __FILE__));
75
76
77 require_once EMBEDPRESS_PLUGIN_DIR_PATH . 'includes.php';
78
79 // Initialize core functionality
80 require_once EMBEDPRESS_PLUGIN_DIR_PATH . 'Core/init.php';
81
82 include_once ABSPATH . 'wp-admin/includes/plugin.php';
83
84 if (!defined('EMBEDPRESS_IS_LOADED')) {
85 return;
86 }
87
88 add_action('embedpress_cache_cleanup_action', 'embedpress_cache_cleanup');
89
90
91 if (!empty($_GET['hash'])) {
92 remove_action('wp_head', 'rel_canonical');
93 }
94
95 function onPluginActivationCallback()
96 {
97 Core::onPluginActivationCallback();
98 }
99
100 function onPluginDeactivationCallback()
101 {
102 Core::onPluginDeactivationCallback();
103 }
104
105 register_activation_hook(__FILE__, 'onPluginActivationCallback');
106 register_deactivation_hook(__FILE__, 'onPluginDeactivationCallback');
107
108
109 add_action('plugins_loaded', function () {
110 do_action('embedpress_before_init');
111 });
112 $editor_check = get_option('classic-editor-replace');
113
114 if (isset($_GET['classic-editor']) || isset($_POST['action']) && $_POST['action'] == 'embedpress_do_ajax_request') {
115 $embedPressPlugin = new CoreLegacy();
116 } elseif ((Compatibility::isWordPress5() && !Compatibility::isClassicalEditorActive()) || (Compatibility::isClassicalEditorActive() && 'block' === $editor_check)) {
117 $embedPressPlugin = new Core();
118 } else {
119 $embedPressPlugin = new CoreLegacy();
120 }
121
122 // Check if we should use the new block system to avoid conflicts
123 // $use_new_blocks = apply_filters('embedpress_use_new_block_system', true);
124
125 // if (!$use_new_blocks) {
126 // $embedPressPlugin->initialize();
127 // } else {
128 // // Only initialize core functionality, skip the handlers that enqueue conflicting scripts
129 // $embedPressPlugin->initialize_minimal();
130 // }
131 $embedPressPlugin->initialize();
132
133 // SSRF hardening: WP core's wp_http_validate_url() blocks loopback + RFC1918 but
134 // leaves link-local (169.254/16, incl. the 169.254.169.254 cloud-metadata IP),
135 // CGNAT (100.64/10) and benchmark (198.18/15) reachable, and its
136 // http_request_host_is_external filter only fires for IPs core already suspects.
137 // pre_http_request fires for every outbound request, so hook it once here to
138 // cover every wp_remote/wp_safe_remote fetch on every path (Core + CoreLegacy).
139 add_filter('pre_http_request', ['\\EmbedPress\\Includes\\Classes\\Helper', 'block_internal_http_requests'], 10, 3);
140
141 new Feature_Enhancer();
142 new Extend_Elementor_Controls();
143 new Extend_CustomPlayer_Controls();
144 if (is_admin()) {
145 new Analytics();
146
147 // Initialize Milestone Notification
148
149 if (!defined('EMBEDPRESS_SL_ITEM_SLUG')) {
150 MilestoneNotification::init();
151 }
152 }
153
154 new Helper();
155
156 // Initialize Analytics
157 use EmbedPress\Includes\Classes\Analytics\Analytics_Manager;
158 use Embedpress\Pro\Dependencies\WPDeveloper\Licensing\LicenseManager;
159
160 Analytics_Manager::get_instance();
161
162 \EmbedPress\Includes\Classes\View_Count_Display::register();
163
164 // Pro-only Custom Player feature backends (Email Capture, Heatmap,
165 // LMS Completion, CDN Offloading) live in embedpress-pro and are
166 // instantiated from Pro's Bootstrap. The frontend init helpers in
167 // initplyr.js degrade gracefully when those REST routes are absent.
168
169
170 if (is_plugin_active('elementor/elementor.php')) {
171 $embedPressElements = new Embedpress_Elementor_Integration();
172 $embedPressElements->init();
173 }
174
175 Shortcode::register();
176
177 if (!class_exists('\simple_html_dom')) {
178 include_once EMBEDPRESS_PATH_CORE . 'simple_html_dom.php';
179 }
180
181
182 /**
183 * Check is embedpress-pro active
184 */
185 $is_pro_active = false;
186 if (class_exists('EmbedPress_Licensing')) {
187 $is_pro_active = true;
188 }
189
190 function embedpress_exclude_height($excluded_sources)
191 {
192 $social_media_sources = [
193 'opensea',
194 'google-photos'
195 ];
196
197 return array_merge($excluded_sources, $social_media_sources);
198 }
199 add_filter('embedpress_excluded_height_sources', 'embedpress_exclude_height');
200
201
202 // init plugin updater with version check
203 add_action('init', 'embedpress_init_plugin_updater', 99);
204
205 /**
206 * Initialize plugin updater
207 *
208 * @since 4.2.1
209 */
210
211 function embedpress_init_plugin_updater()
212 {
213 if (is_admin() && defined('EMBEDPRESS_PRO_PLUGIN_VERSION') && version_compare(EMBEDPRESS_PRO_PLUGIN_VERSION, '3.1.12', '>=') && version_compare(EMBEDPRESS_PRO_PLUGIN_VERSION, '3.8.0', '<=')) {
214
215 $license_manager = LicenseManager::get_instance([]);
216 $license_manager->plugin_updater();
217 }
218 }
219