| 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.7 |
| 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.7'); |
| 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 |
} |