PluginProbe
Ovation Elements / 1.2.4
Ovation Elements v1.2.4
1.2.7 1.2.6 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 All 27 releases
ovation-elements / ovation-elements.php

ovation-elements.php in Ovation Elements 1.2.4, at ovation-elements.php

306 lines 14.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Ovation Elements
4 * Plugin URI: https://www.ovationthemes.com/products/ovation-elements-pro
5 * Description: Transform your site with captivating sliders. Perfect for beginners and advanced users. Create and customize with our ultimate slider plugin.
6 * Version: 1.2.4
7 * Requires at least: 5.2
8 * Requires PHP: 7.2
9 * Author: pewilliams
10 * Author URI: https://www.ovationthemes.com/
11 * License: GPL v2 or later
12 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
13 * Text Domain: ovation-elements
14 */
15
16 if (!defined('ABSPATH')) {
17 exit; // Exit if accessed directly.
18 }
19
20 define('OVA_ELEMS_FILE', __FILE__);
21 define('OVA_ELEMS_BASE', plugin_basename(OVA_ELEMS_FILE));
22 define('OVA_ELEMS_DIR', plugin_dir_path(OVA_ELEMS_FILE));
23 define('OVA_ELEMS_URL', plugins_url('/', OVA_ELEMS_FILE));
24 define('OVATION_ELEMENTS_URL', plugin_dir_url(__FILE__));
25
26 define('OVA_ELEMS_LICENSE_ENDPOINT', 'https://license.ovationthemes.com/api/public/');
27 define('OVA_ELEMS_SERVICES_URL', 'https://www.ovationthemes.com/products');
28 define('OVA_ELEMS_VER', '1.2.4');
29
30 include(plugin_dir_path(__FILE__) . 'includes/admin-settings.php');
31 include(plugin_dir_path(__FILE__) . 'includes/slider-shortcode.php');
32 include(plugin_dir_path(__FILE__) . 'ajax/ajax.php');
33
34 function ova_elems_admin_scripts($hook)
35 {
36 $is_premium_user = get_option('ovation_slider_is_premium', false);
37
38 // Define all admin pages
39 $admin_pages = [
40 'toplevel_page_ovation_elements',
41 'ovation-elements_page_select-template',
42 'admin_page_edit-slider-template-template1',
43 'admin_page_edit-slider-template-template2',
44 'admin_page_edit-slider-template-template3',
45 'admin_page_edit-slider-template-template4',
46 'admin_page_edit-slider-template-template5',
47 'admin_page_edit-slider-template-template6',
48 'admin_page_edit-slider-template-template7',
49 'admin_page_edit-slider-template-template8',
50 'admin_page_edit-slider-template-template9',
51 'ot-elements_page_select-template',
52 'edit.php?post_type=ova_elems'
53 ];
54
55 if (in_array($hook, $admin_pages) || ($hook === 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] === 'ova_elems')) {
56 // Enqueue common styles and scripts for admin pages
57 wp_enqueue_style('ova-elems-mod-bootstrap-css', plugin_dir_url(__FILE__) . 'assets/css/bootstrap.min.css', [], OVA_ELEMS_VER);
58 wp_enqueue_script('ova-elems-mod-bootstrap-js', plugin_dir_url(__FILE__) . 'assets/js/bootstrap.bundle.min.js', ['jquery'], OVA_ELEMS_VER, true);
59 wp_enqueue_style('ova-elems-admin-css-slider', plugin_dir_url(__FILE__) . 'assets/css/preview-slider.css', [], OVA_ELEMS_VER);
60 wp_enqueue_media();
61 }
62 wp_enqueue_style('ova-elems-admin-css', plugin_dir_url(__FILE__) . 'assets/css/slider-admin.css', [], OVA_ELEMS_VER);
63
64 // Define template-specific scripts
65 $templates = [
66 'admin_page_edit-slider-template-template1' => 'template-1-scripts',
67 'admin_page_edit-slider-template-template2' => 'template-2-scripts',
68 'admin_page_edit-slider-template-template3' => 'template-3-scripts',
69 'admin_page_edit-slider-template-template4' => 'template-4-scripts',
70 'admin_page_edit-slider-template-template5' => 'template-5-scripts',
71 'admin_page_edit-slider-template-template6' => 'template-6-scripts',
72 'admin_page_edit-slider-template-template7' => 'template-7-scripts',
73 'admin_page_edit-slider-template-template8' => 'template-8-scripts',
74 'admin_page_edit-slider-template-template9' => 'template-9-scripts',
75 ];
76
77 if (array_key_exists($hook, $templates)) {
78 $script_handle = 'ova-elems-' . $templates[$hook];
79 $script_path = plugin_dir_url(__FILE__) . 'assets/js/admin/' . $templates[$hook] . '.js';
80
81 wp_enqueue_script($script_handle, $script_path, ['jquery'], OVA_ELEMS_VER, true);
82
83 wp_localize_script($script_handle, 'sliderData', [
84 'isPremiumUser' => $is_premium_user,
85 'maxSlides' => 2,
86 ]);
87
88 // Localize script
89 if ($hook == 'admin_page_edit-slider-template-template1') {
90 wp_localize_script($script_handle, 'wpVars', [
91 'ajaxUrl' => admin_url('admin-ajax.php'),
92 'nonce' => wp_create_nonce('upload_cropped_image_nonce'),
93 ]);
94 }
95
96 if ($hook == 'admin_page_edit-slider-template-template2') {
97 wp_localize_script($script_handle, 'OvimageData', [
98 'plugin_url' => plugin_dir_url(__FILE__),
99 'nonce' => wp_create_nonce('ova_elems_ajax_nonce'),
100 ]);
101 }
102
103 if ($hook == 'admin_page_edit-slider-template-template4' || $hook == 'admin_page_edit-slider-template-template7') {
104 wp_localize_script($script_handle, 'ova_elems_template_script', [
105 'ajaxurl' => admin_url('admin-ajax.php'),
106 'nonce' => wp_create_nonce('ova_elems_ajax_nonce'),
107 ]);
108 }
109
110 if ($hook == 'admin_page_edit-slider-template-template6') {
111 wp_enqueue_script('ova-elems-bootstrap-js', plugin_dir_url(__FILE__) . 'assets/js/bootstrap.bundle.min.js', ['jquery'], OVA_ELEMS_VER, true);
112 }
113 }
114 }
115
116 add_action('admin_enqueue_scripts', 'ova_elems_admin_scripts');
117
118
119 //enqueue scripts end
120 function ova_elems_admin_enqueue_scripts($hook_suffix)
121 {
122 if ($hook_suffix !== 'toplevel_page_ova-elems') {
123 return;
124 }
125
126 wp_enqueue_script('jquery');
127 }
128 add_action('admin_enqueue_scripts', 'ova_elems_admin_enqueue_scripts');
129
130
131 //for enque
132 function ova_elems_enqueue_scripts($hook)
133 {
134
135 // Enqueue Font Awesome
136 wp_enqueue_style('ova-elems-font-awesome', plugin_dir_url(__FILE__) . 'assets/css/font.all.min.css', array(), OVA_ELEMS_VER);
137 wp_enqueue_style('ova-elems-modal-css', OVA_ELEMS_URL . 'assets/css/modal.css', array(), OVA_ELEMS_VER);
138
139 wp_enqueue_script(
140 'ova-elems-redirect-js',
141 OVA_ELEMS_URL . 'assets/js/redirect.js',
142 array('jquery'),
143 OVA_ELEMS_VER,
144 true
145 );
146
147 // Enqueue Bootstrap CSS
148 wp_enqueue_script('jquery');
149 if (isset($_GET['page']) && $_GET['page'] == 'ovation_elements') {
150
151 wp_enqueue_style('ova-elems-bootstrap-css', plugin_dir_url(__FILE__) . 'assets/css/bootstrap.min.css', [], OVA_ELEMS_VER);
152 wp_enqueue_script('ova-elems-popper-js', plugin_dir_url(__FILE__) . 'assets/js/popper.min.js', ['jquery'], OVA_ELEMS_VER, true);
153 wp_enqueue_script('ova-elems-dash-bootstrap-js', plugin_dir_url(__FILE__) . 'assets/js/bootstrap.min.js', array('jquery', 'ova-elems-popper-js'), OVA_ELEMS_VER, true);
154 wp_enqueue_script('ova-elems-admin-operations', plugin_dir_url(__FILE__) . 'assets/js/admin/ova-elems-admin.js', ['jquery'], OVA_ELEMS_VER, true);
155 }
156 }
157 add_action('admin_enqueue_scripts', 'ova_elems_enqueue_scripts');
158
159 register_activation_hook(__FILE__, 'ova_elems_activate');
160
161 function ova_elems_activate()
162 {
163 ova_elems_post_type();
164 flush_rewrite_rules();
165 }
166
167 register_deactivation_hook(__FILE__, 'ova_elems_deactivate');
168
169 function ova_elems_deactivate()
170 {
171 flush_rewrite_rules();
172 }
173
174 function ova_elems_enqueue_block_editor_assets()
175 {
176
177 wp_enqueue_style('ova-elems-modal-css', OVA_ELEMS_URL . 'assets/css/modal.css', array(), OVA_ELEMS_VER);
178
179 wp_register_script(
180 'ova-elems-modal-js',
181 OVA_ELEMS_URL . 'assets/js/modal.js',
182 array('jquery'),
183 OVA_ELEMS_VER,
184 true
185 );
186
187 $theme = wp_get_theme();
188 $theme_author = $theme->get('Author');
189 $theme_text_domain = $theme->get('TextDomain');
190
191 $theme_directory = get_stylesheet_directory_uri();
192 $screenshot_url = $theme_directory . '/screenshot.png';
193
194 $demo_btn = strtoupper(str_replace("-", "_", $theme_text_domain)) . '_LIVE_DEMO';
195 $buy_pro = strtoupper(str_replace("-", "_", $theme_text_domain)) . '_BUY_PRO';
196 $free_doc = strtoupper(str_replace("-", "_", $theme_text_domain)) . '_FREE_DOC';
197
198 $is_demo_defined = defined($demo_btn);
199 $is_buy_pro_defined = defined($buy_pro);
200 $is_free_doc_defined = defined($free_doc);
201
202 $localize_arr = array(
203 'admin_ajax' => admin_url('admin-ajax.php'),
204 'search_icon' => OVA_ELEMS_URL . 'assets/images/search.png',
205 'is_author' => $theme_author === 'pewilliams' ? true : false,
206 'bundle_image' => OVA_ELEMS_URL . 'assets/images/bundle-images.png',
207 'nonce' => wp_create_nonce('ova_elems_ajax_nonce')
208 );
209
210 if ($theme_author === 'pewilliams') {
211 $localize_arr['screenshot_url'] = $screenshot_url;
212
213 $localize_arr['demo_btn'] = $is_demo_defined ? constant($demo_btn) : 'https://www.ovationthemes.com/collections/professional-wordpress-themes';
214 $localize_arr['buy_pro'] = $is_buy_pro_defined ? constant($buy_pro) : 'https://www.ovationthemes.com/products/wordpress-bundle';
215 $localize_arr['free_doc'] = $is_free_doc_defined ? constant($free_doc) : 'https://www.ovationthemes.com/';
216 }
217
218 wp_localize_script(
219 'ova-elems-modal-js',
220 'ova_elems_modal_js',
221 $localize_arr
222 );
223 wp_enqueue_script('ova-elems-modal-js');
224 }
225 add_action('enqueue_block_editor_assets', 'ova_elems_enqueue_block_editor_assets');
226
227 // Register block script.
228 function ova_elems_register_block()
229 {
230 wp_register_script(
231 'ova-elems-block',
232 plugins_url('build/index.js', __FILE__),
233 array('wp-blocks', 'wp-element', 'wp-editor', 'wp-components'),
234 OVA_ELEMS_VER,
235 true
236 );
237 register_block_type(
238 'ova-elems/ovation-sliders',
239 array(
240 'editor_script' => 'ova-elems-block',
241 'style' => 'ova-elems-style',
242 'editor_style' => 'ova-elems-editor-style',
243 'attributes' => array(
244 'selectedPost' => array(
245 'type' => 'number',
246 'default' => null,
247 ),
248 ),
249 'render_callback' => 'ova_elems_render_slider_block'
250 )
251 );
252 }
253 add_action('init', 'ova_elems_register_block');
254
255 function ova_elems_render_slider_block($attributes)
256 {
257
258 $id = isset($attributes['selectedPost']) ? $attributes['selectedPost'] : null;
259
260 if (!$id) {
261 return '';
262 }
263
264 return do_shortcode('[ova-elems-slider-template id="' . intval($id) . '"]');
265 }
266
267 add_filter('block_categories_all', function ($categories, $post) {
268 return array_merge(
269 array(
270 array(
271 'slug' => 'Ovation Sliders',
272 'title' => 'Ovation Sliders',
273 'icon' => '<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22.56 22.07"><defs><style>{`.cls-1 {fill: #cee1f2;}.cls-2 {fill: none;stroke: #0023c4;stroke-width: .5px;}.cls-2, .cls-3 {stroke-miterlimit: 10;}.cls-4 {fill: #0023c4;}.cls-5, .cls-3 {fill: #ff5cf4;}.cls-3 {stroke: #ff5cf4;stroke-width: .25px;}`}</style></defs><g id="Layer_1-2" data-name="Layer_1"><path class="cls-4" d="M19.76,0h-5.52c-1.33,0-2.41,1.08-2.41,2.42v8.62c0,1.33,1.08,2.41,2.41,2.41h5.52c1.33,0,2.41-1.08,2.41-2.41V3.11l-2.41-3.11ZM20.44,11.03c0,.38-.31.69-.69.69h-5.52c-.38,0-.69-.31-.69-.69V2.42c0-.38.31-.69.69-.69h5.03v.91c0,.26.19.48.43.48h.75v7.92Z"/><path class="cls-1" d="M3.45,19.65v-7.07c0-.86.7-1.55,1.55-1.55h-2.59c-.86,0-1.55.7-1.55,1.55v7.07c0,.86.7,1.55,1.55,1.55h2.59c-.86,0-1.55-.7-1.55-1.55Z"/><path class="cls-4" d="M2.41,7.28h5.34c1.33,0,2.41-.91,2.41-2.04v-3.2c0-1.12-1.08-2.04-2.41-2.04H2.41C1.08,0,0,.91,0,2.04v3.2c0,1.12,1.08,2.04,2.41,2.04ZM1.72,2.04c0-.32.31-.58.69-.58h5.34c.38,0,.69.26.69.58v3.2c0,.32-.31.58-.69.58H2.41c-.38,0-.69-.26-.69-.58v-3.2Z"/><path class="cls-4" d="M2.41,22.07h5.34c1.33,0,2.41-1.08,2.41-2.41v-7.07c0-1.33-1.08-2.41-2.41-2.41H2.41c-1.33,0-2.41,1.08-2.41,2.41v7.07c0,1.33,1.08,2.41,2.41,2.41ZM1.72,12.59c0-.38.31-.69.69-.69h5.34c.38,0,.69.31.69.69v7.07c0,.38-.31.69-.69.69H2.41c-.38,0-.69-.31-.69-.69v-7.07Z"/><circle class="cls-4" cx="5.21" cy="8.75" r=".69"/><circle class="cls-2" cx="2.85" cy="8.75" r=".56"/><circle class="cls-2" cx="7.57" cy="8.75" r=".56"/><path class="cls-5" d="M21.01,19.09c-.4,0-.72.28-.72.62v.32c0,.44-.3.79-.67.79h-5.98c-.37,0-.67-.36-.67-.79v-1.88c0-.44.3-.79.67-.79h1.61c.4,0,.72-.28.72-.62h0c0-.34-.32-.62-.72-.62h-2c-.98,0-1.78.94-1.78,2.11v1.72c0,1.17.8,2.11,1.78,2.11h6.78c.98,0,1.78-.94,1.78-2.11v-.24c0-.34-.32-.62-.72-.62h-.07Z"/><path class="cls-5" d="M22.49,16.25l-2.14-2.22c-.07-.07-.18-.1-.27-.06-.09.04-.15.13-.15.23v1.07h-.08c-1.77,0-3.21,1.44-3.21,3.21v.49c0,.11.08.21.19.24.02,0,.04,0,.05,0,.09,0,.18-.05.23-.14.46-.93,1.4-1.5,2.43-1.5h.39v1.07c0,.1.06.19.15.23.09.04.2.01.27-.06l2.14-2.22c.09-.1.09-.25,0-.34Z"/><path class="cls-3" d="M7.59,3.77l.28-.28-.28-.28s-.02-.05,0-.06c.02-.02.04-.02.06,0l.31.31s.02.05,0,.06l-.31.31s-.05.02-.06,0c-.02-.02-.02-.04,0-.06h0Z"/><path class="cls-3" d="M2.41,3.77s.02.04,0,.06c-.02.02-.05.02-.06,0l-.31-.31s-.02-.05,0-.06l.31-.31s.04-.02.06,0c.02.02.02.05,0,.06l-.28.28.28.28h0Z"/></g></svg>'
274 ),
275 ),
276 $categories
277 );
278 }, 99999, 2);
279
280 add_action('admin_notices', 'ova_elems_admin_notice_with_html');
281
282 function ova_elems_admin_notice_with_html()
283 {
284 ?>
285 <div class="notice is-dismissible ova-elems">
286 <div class="ova-elems-notice-banner-wrap">
287 <div class="ova-elems-notice-left-img">
288 <img src="<?php echo esc_url(OVA_ELEMS_URL . 'assets/images/notice-background.png'); ?>" alt="">
289 </div>
290 <div class="ova-elems-notice-heading">
291 <h1 class="ova-elems-main-head"><?php echo esc_html('WORDPRESS THEME BUNDLE'); ?></h1>
292 <h4 class="ova-elems-sub-head">
293 <?php echo esc_html('Access 140+ Gutenberg Block WordPress themes at Just $89'); ?>
294 </h4>
295 </div>
296 <div class="ova-elems-notice-btn">
297 <a class="ova-elems-buy-btn" target="_blank"
298 href="<?php echo esc_url('https://www.ovationthemes.com/products/wordpress-bundle'); ?>"><?php echo esc_html('BUY NOW'); ?></a>
299 </div>
300 <div class="notice-right-img">
301 <img src="<?php echo esc_url(OVA_ELEMS_URL . 'assets/images/bundle-package.png'); ?>" alt="">
302 </div>
303 </div>
304 </div>
305 <?php
306 }