PluginProbe
Ovation Elements / 1.1.3
Ovation Elements v1.1.3
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.1.3, at ovation-elements.php

296 lines 13.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: 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.1.3
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( 'OVA_ELEMS_LICENSE_ENDPOINT', 'https://license.ovationthemes.com/api/public/' );
25
26 define( 'OVA_ELEMS_VER', '1.1.3' );
27
28 // Include necessary files
29 include(plugin_dir_path(__FILE__) . 'includes/admin-settings.php');
30 include(plugin_dir_path(__FILE__) . 'includes/slider-shortcode.php');
31 include(plugin_dir_path(__FILE__) . 'ajax/ajax.php');
32
33 //enqueue script start
34 function ova_elems_admin_scripts($hook) {
35 $is_premium_user = get_option('ovation_slider_is_premium', false);
36
37 // Define all admin pages
38 $admin_pages = [
39 'toplevel_page_ovation_elements',
40 'ovation-elements_page_select-template',
41 'admin_page_edit-slider-template-template1',
42 'admin_page_edit-slider-template-template2',
43 'admin_page_edit-slider-template-template3',
44 'admin_page_edit-slider-template-template4',
45 'admin_page_edit-slider-template-template5',
46 'admin_page_edit-slider-template-template6',
47 'admin_page_edit-slider-template-template7',
48 'admin_page_edit-slider-template-template8',
49 'ot-elements_page_select-template',
50 'edit.php?post_type=ova_elems'
51 ];
52
53 if (in_array($hook, $admin_pages) || ($hook === 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] === 'ova_elems')) {
54 // Enqueue common styles and scripts for admin pages
55 wp_enqueue_style('ova-elems-mod-bootstrap-css', plugin_dir_url(__FILE__) . 'assets/css/bootstrap.min.css', [], OVA_ELEMS_VER);
56 wp_enqueue_script('ova-elems-mod-bootstrap-js', plugin_dir_url(__FILE__) . 'assets/js/bootstrap.bundle.min.js', ['jquery'], OVA_ELEMS_VER, true);
57 wp_enqueue_style('ova-elems-admin-css-slider', plugin_dir_url(__FILE__) . 'assets/css/preview-slider.css', [], OVA_ELEMS_VER);
58 wp_enqueue_media();
59 }
60 wp_enqueue_style('ova-elems-admin-css', plugin_dir_url(__FILE__) . 'assets/css/slider-admin.css', [], OVA_ELEMS_VER);
61
62 // Define template-specific scripts
63 $templates = [
64 'admin_page_edit-slider-template-template1' => 'template-1-scripts',
65 'admin_page_edit-slider-template-template2' => 'template-2-scripts',
66 'admin_page_edit-slider-template-template3' => 'template-3-scripts',
67 'admin_page_edit-slider-template-template4' => 'template-4-scripts',
68 'admin_page_edit-slider-template-template5' => 'template-5-scripts',
69 'admin_page_edit-slider-template-template6' => 'template-6-scripts',
70 'admin_page_edit-slider-template-template7' => 'template-7-scripts',
71 'admin_page_edit-slider-template-template8' => 'template-8-scripts',
72 ];
73
74 if (array_key_exists($hook, $templates)) {
75 $script_handle = 'ova-elems-' . $templates[$hook];
76 $script_path = plugin_dir_url(__FILE__) . 'assets/js/admin/' . $templates[$hook] . '.js';
77
78 wp_enqueue_script($script_handle, $script_path, ['jquery'], OVA_ELEMS_VER, true);
79
80 wp_localize_script($script_handle, 'sliderData', [
81 'isPremiumUser' => $is_premium_user,
82 'maxSlides' => 2,
83 ]);
84
85 // Localize script
86 if ($hook == 'admin_page_edit-slider-template-template1') {
87 wp_localize_script($script_handle, 'wpVars', [
88 'ajaxUrl' => admin_url('admin-ajax.php'),
89 'nonce' => wp_create_nonce('upload_cropped_image_nonce'),
90 ]);
91 }
92
93 if ($hook == 'admin_page_edit-slider-template-template2') {
94 wp_localize_script($script_handle, 'OvimageData', [
95 'plugin_url' => plugin_dir_url(__FILE__),
96 'nonce' => wp_create_nonce('ova_elems_ajax_nonce'),
97 ]);
98 }
99
100 if ($hook == 'admin_page_edit-slider-template-template4' || $hook == 'admin_page_edit-slider-template-template7') {
101 wp_localize_script($script_handle, 'ova_elems_template_script', [
102 'ajaxurl' => admin_url('admin-ajax.php'),
103 'nonce' => wp_create_nonce('ova_elems_ajax_nonce'),
104 ]);
105 }
106
107 if ($hook == 'admin_page_edit-slider-template-template6') {
108 wp_enqueue_script('ova-elems-bootstrap-js', plugin_dir_url(__FILE__) . 'assets/js/bootstrap.bundle.min.js', ['jquery'], OVA_ELEMS_VER, true);
109 }
110 }
111 }
112
113 add_action('admin_enqueue_scripts', 'ova_elems_admin_scripts');
114 //enqueue scripts end
115
116 function ova_elems_admin_enqueue_scripts($hook_suffix) {
117 if ($hook_suffix !== 'toplevel_page_ova-elems') {
118 return;
119 }
120
121 wp_enqueue_script('jquery');
122
123 }
124 add_action('admin_enqueue_scripts', 'ova_elems_admin_enqueue_scripts');
125
126 //i add temprory
127
128 //for enque
129 function ova_elems_enqueue_scripts($hook) {
130
131 // Enqueue Font Awesome
132 wp_enqueue_style('ova-elems-font-awesome', plugin_dir_url(__FILE__) . 'assets/css/font.all.min.css', array(), OVA_ELEMS_VER);
133 wp_enqueue_style('ova-elems-modal-css', OVA_ELEMS_URL . 'assets/css/modal.css', array(), OVA_ELEMS_VER);
134
135 wp_enqueue_script(
136 'ova-elems-redirect-js',
137 OVA_ELEMS_URL . 'assets/js/redirect.js',
138 array( 'jquery' ),
139 OVA_ELEMS_VER,
140 true
141 );
142
143 // Enqueue Bootstrap CSS
144 wp_enqueue_script('jquery');
145 if (isset($_GET['page']) && $_GET['page'] == 'ovation_elements') {
146
147 wp_enqueue_style('ova-elems-bootstrap-css', plugin_dir_url(__FILE__) . 'assets/css/bootstrap.min.css', [], OVA_ELEMS_VER);
148 // Enqueue Bootstrap JS and its dependency Popper.js
149 wp_enqueue_script('ova-elems-popper-js', plugin_dir_url(__FILE__) . 'assets/js/popper.min.js', ['jquery'], OVA_ELEMS_VER, true);
150 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);
151 }
152 }
153 add_action('admin_enqueue_scripts', 'ova_elems_enqueue_scripts');
154
155 // Register activation hook
156 register_activation_hook(__FILE__, 'ova_elems_activate');
157
158 function ova_elems_activate() {
159 // Activation code here
160 ova_elems_post_type();
161 flush_rewrite_rules();
162 }
163
164 // Register deactivation hook
165 register_deactivation_hook(__FILE__, 'ova_elems_deactivate');
166
167 function ova_elems_deactivate() {
168 // Deactivation code here
169 flush_rewrite_rules();
170 }
171
172 function ova_elems_enqueue_block_editor_assets() {
173
174 wp_enqueue_style('ova-elems-modal-css', OVA_ELEMS_URL . 'assets/css/modal.css', array(), OVA_ELEMS_VER);
175
176 wp_register_script(
177 'ova-elems-modal-js',
178 OVA_ELEMS_URL . 'assets/js/modal.js',
179 array( 'jquery' ),
180 OVA_ELEMS_VER,
181 true
182 );
183
184 $theme = wp_get_theme();
185 $theme_author = $theme->get('Author');
186 $theme_text_domain = $theme->get('TextDomain');
187
188 $theme_directory = get_stylesheet_directory_uri();
189 $screenshot_url = $theme_directory . '/screenshot.png';
190
191 $demo_btn = strtoupper(str_replace("-", "_", $theme_text_domain)) . '_LIVE_DEMO';
192 $buy_pro = strtoupper(str_replace("-", "_", $theme_text_domain)) . '_BUY_PRO';
193 $free_doc = strtoupper(str_replace("-", "_", $theme_text_domain)) . '_FREE_DOC';
194
195 $is_demo_defined = defined($demo_btn);
196 $is_buy_pro_defined = defined($buy_pro);
197 $is_free_doc_defined = defined($free_doc);
198
199 $localize_arr = array(
200 'admin_ajax' => admin_url( 'admin-ajax.php' ),
201 'search_icon' => OVA_ELEMS_URL . 'assets/images/search.png',
202 'is_author' => $theme_author === 'pewilliams' ? true : false,
203 'bundle_image' => OVA_ELEMS_URL . 'assets/images/bundle-images.png'
204 );
205
206 if ($theme_author === 'pewilliams') {
207 $localize_arr['screenshot_url'] = $screenshot_url;
208
209 $localize_arr['demo_btn'] = $is_demo_defined ? constant($demo_btn) : 'https://www.ovationthemes.com/collections/professional-wordpress-themes';
210 $localize_arr['buy_pro'] = $is_buy_pro_defined ? constant($buy_pro) : 'https://www.ovationthemes.com/products/wordpress-bundle';
211 $localize_arr['free_doc'] = $is_free_doc_defined ? constant($free_doc) : 'https://www.ovationthemes.com/';
212 }
213
214 wp_localize_script(
215 'ova-elems-modal-js',
216 'ova_elems_modal_js',
217 $localize_arr
218 );
219 wp_enqueue_script( 'ova-elems-modal-js' );
220 }
221 add_action( 'enqueue_block_editor_assets', 'ova_elems_enqueue_block_editor_assets' );
222
223 // Register block script.
224 function ova_elems_register_block() {
225 wp_register_script(
226 'ova-elems-block',
227 plugins_url( 'build/index.js', __FILE__ ),
228 array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-components' ),
229 OVA_ELEMS_VER,
230 true
231 );
232 register_block_type(
233 'ova-elems/ovation-sliders',
234 array(
235 'editor_script' => 'ova-elems-block',
236 'style' => 'ova-elems-style',
237 'editor_style' => 'ova-elems-editor-style',
238 'attributes' => array(
239 'selectedPost' => array(
240 'type' => 'number',
241 'default' => null,
242 ),
243 ),
244 'render_callback' => 'ova_elems_render_slider_block'
245 )
246 );
247 }
248 add_action( 'init', 'ova_elems_register_block' );
249
250 function ova_elems_render_slider_block( $attributes ) {
251
252 $id = isset( $attributes['selectedPost'] ) ? $attributes['selectedPost'] : null;
253
254 if ( ! $id ) {
255 return '';
256 }
257
258 return do_shortcode( '[ova-elems-slider-template id="' . intval( $id ) . '"]' );
259 }
260
261 add_filter( 'block_categories_all', function( $categories, $post ) {
262 return array_merge(
263 array(
264 array(
265 'slug' => 'Ovation Sliders',
266 'title' => 'Ovation Sliders',
267 '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>'
268 ),
269 ),
270 $categories
271 );
272 }, 99999, 2 );
273
274 add_action('admin_notices', 'ova_elems_admin_notice_with_html');
275
276 function ova_elems_admin_notice_with_html() {
277 ?>
278 <div class="notice is-dismissible ova-elems">
279 <div class="ova-elems-notice-banner-wrap">
280 <div class="ova-elems-notice-left-img">
281 <img src="<?php echo esc_url( OVA_ELEMS_URL . 'assets/images/notice-background.png'); ?>" alt="">
282 </div>
283 <div class="ova-elems-notice-heading">
284 <h1 class="ova-elems-main-head"><?php echo esc_html('WORDPRESS THEME BUNDLE');?></h1>
285 <h4 class="ova-elems-sub-head"><?php echo esc_html('Access 120+ Gutenberg Block WordPress themes at Just $89');?></h4>
286 </div>
287 <div class="ova-elems-notice-btn">
288 <a class="ova-elems-buy-btn" target="_blank" href="<?php echo esc_url('https://www.ovationthemes.com/products/wordpress-bundle'); ?>"><?php echo esc_html('BUY NOW');?></a>
289 </div>
290 <div class="notice-right-img">
291 <img src="<?php echo esc_url( OVA_ELEMS_URL . 'assets/images/bundle-package.png'); ?>" alt="">
292 </div>
293 </div>
294 </div>
295 <?php
296 }