<?php class WOOBE_ADV { public $notices_list = array(); public function __construct($alert_list = array()) { //fix to avoid disabling of 'Upload Theme' button action on /wp-admin/theme-install.php if (isset($_SERVER['REQUEST_URI'])) { if (substr_count($_SERVER['REQUEST_URI'], 'theme-install.php')) { return; } } else { if (isset($_SERVER['PHP_SELF'])) { if (substr_count($_SERVER['PHP_SELF'], 'theme-install.php')) { return; } } } //*** $this->notices_list = array( 'woot_products_tables' => 'profit-products-tables-for-woocommerce', //'func_name'=>'plugin_dir_name' ); $this->notices_list = array_merge($this->notices_list, $alert_list); } public function init() { if (is_admin()) { //update_option('woobe_alert', array());//reset if (get_option('woobe_version') != WOOBE_VERSION) {// if update plugin update_option('woobe_version', WOOBE_VERSION); $alert = (array) get_option('woobe_alert', array()); foreach ($this->notices_list as $key => $item) { $alert[$key] = ""; } add_option('woobe_alert', $alert, '', 'no'); update_option('woobe_alert', $alert); } foreach ($this->notices_list as $key => $item) { if (file_exists(WP_PLUGIN_DIR . '/' . $item)) { unset($this->notices_list[$key]); } } global $wp_version; if (version_compare($wp_version, '4.2', '>=') && current_user_can('install_plugins') && !empty($this->notices_list)) { $alert = (array) get_option('woobe_alert', array()); foreach ($this->notices_list as $key => $item) { if (empty($alert[$key]) AND method_exists($this, 'alert_' . $key)) { add_action('admin_notices', array($this, 'alert_' . $key)); add_action('network_admin_notices', array($this, 'alert_' . $key)); } } add_action('wp_ajax_woobe_dismiss_alert', array($this, 'woobe_dismiss_alert')); add_action('admin_enqueue_scripts', array($this, 'woobe_alert_scripts')); //enqueue admin/js/updates.js } } } public function woobe_dismiss_alert() { check_ajax_referer('woobe_dissmiss_alert', 'sec'); $alert = (array) get_option('woobe_alert', array()); $alert[$_POST['alert']] = 1; add_option('woobe_alert', $alert, '', 'no'); update_option('woobe_alert', $alert); exit; } public function woobe_alert_scripts() { wp_enqueue_script('plugin-install'); add_thickbox(); wp_enqueue_script('updates'); } public function alert_woot_products_tables() { if (isset($_GET['page']) AND $_GET['page'] === 'woobe') { $screen = get_current_screen(); ?> <div class="notice notice-info is-dismissible" id="woobe_alert_woot"> <p class="plugin-card-profit-products-tables-for-woocommerce"<?php if ($screen->id != 'plugin-install') echo ' id="plugin-woot"' ?>> <?php esc_html_e("Try new BEAR compatible plugin for displaying WooCommerce shop products in table format", 'woo-bulk-editor') ?>: <a href="https://products-tables.com/" target="_blank">WOOT - WooCommerce Active Products Tables</a> (ACTIVE). <a href="<?php echo network_admin_url('plugin-install.php?tab=plugin-information') ?>&amp;plugin=profit-products-tables-for-woocommerce&amp;TB_iframe=true&amp;width=600&amp;height=550" class="thickbox open-plugin-details-modal button" aria-label="More information about WOOT" data-title="WOOT" id="woobe_alert_install_button_woot"><?php esc_html_e("Install", 'woo-bulk-editor') ?></a> <a class="install-now button" data-slug="profit-products-tables-for-woocommerce" href="<?php echo network_admin_url('update.php?action=install-plugin') ?>&amp;plugin=profit-products-tables-for-woocommerce&amp;_wpnonce=<?php echo wp_create_nonce('install-profit-products-tables-for-woocommerce') ?>" aria-label="Install WOOT now" data-name="WOOT" style="display:none"><?php esc_html_e("Install Now", 'woo-bulk-editor') ?></a> </p> </div> <script> jQuery('#woobe_alert_woot .open-plugin-details-modal').on('click', function () { jQuery('#woobe_alert_install_button_woot').hide().next().show(); return true; }); jQuery(function ($) { var alert_w = $('#woobe_alert_woot'); alert_w.on('click', '.notice-dismiss', function (e) { //e.preventDefault $.post(ajaxurl, { action: 'woobe_dismiss_alert', alert: 'woot_products_tables', sec: <?php echo json_encode(wp_create_nonce('woobe_dissmiss_alert')) ?> }); }); <?php if ($screen->id == 'plugin-install'): ?> $('#plugin-woot').prepend(alert_w.css('margin-bottom', '10px').addClass('inline')); <?php endif ?> $(document).on('tb_unload', function () { if (jQuery('#woobe_alert_install_button_woot').next().hasClass('updating-message')) return; jQuery('#woobe_alert_install_button_woot').show().next().hide(); }); $(document).on('credential-modal-cancel', function () { jQuery('#woobe_alert_install_button_woot').show().next().hide(); }); }); </script> <?php wp_print_request_filesystem_credentials_modal(); } } public function alert_bulk_editor() { $screen = get_current_screen(); ?> <div class="notice notice-info is-dismissible" id="woobe_alert_wpbe"> <p class="plugin-card-bulk-editor"<?php if ($screen->id != 'plugin-install') echo ' id="plugin-woobe"' ?>> If you need bulk editor plugin for your site posts and pages try <a href="<?php echo network_admin_url('plugin-install.php?tab=plugin-information') ?>&amp;plugin=bulk-editor&amp;TB_iframe=true&amp;width=600&amp;height=550" class="thickbox open-plugin-details-modal" aria-label="BEAR team recommends" data-title="WPBE - WordPress Posts Bulk Editor Professional">WPBE - WordPress Posts Bulk Editor Professional</a> - plugin for managing and bulk edit WordPress posts, pages and custom post types data in robust and flexible way! <a href="<?php echo network_admin_url('plugin-install.php?tab=plugin-information') ?>&amp;plugin=bulk-editor&amp;TB_iframe=true&amp;width=600&amp;height=550" class="thickbox open-plugin-details-modal button" aria-label="More information about WPBE" data-title="WPBE" id="woobe_alert_install_button_wpbe"><?php esc_html_e("Install", 'woo-bulk-editor') ?></a> <a class="install-now button" data-slug="bulk-editor" href="<?php echo network_admin_url('update.php?action=install-plugin') ?>&amp;plugin=bulk-editor&amp;_wpnonce=<?php echo wp_create_nonce('install-plugin-bulk-editor') ?>" aria-label="Install wordpress bulk editor now" data-name="Posts bulk editor" style="display:none"><?php esc_html_e("Install Now", 'woo-bulk-editor') ?></a> </p> </div> <script> jQuery('#woobe_alert_wpbe .open-plugin-details-modal').on('click', function () { jQuery('#woobe_alert_install_button_wpbe').hide().next().show(); return true; }); jQuery(function ($) { var alert_w = $('#woobe_alert_wpbe'); alert_w.on('click', '.notice-dismiss', function (e) { //e.preventDefault $.post(ajaxurl, { action: 'woobe_dismiss_alert', alert: 'bulk_editor', sec: <?php echo json_encode(wp_create_nonce('woobe_dissmiss_alert')) ?> }); }); <?php if ($screen->id == 'plugin-install'): ?> $('#plugin-woobe').prepend(alert_w.css('margin-bottom', '10px').addClass('inline')); <?php endif ?> $(document).on('tb_unload', function () { if (jQuery('#woobe_alert_install_button_wpbe').next().hasClass('updating-message')) return; jQuery('#woobe_alert_install_button_wpbe').show().next().hide(); }); $(document).on('credential-modal-cancel', function () { jQuery('#woobe_alert_install_button_wpbe').show().next().hide(); }); }); </script> <?php wp_print_request_filesystem_credentials_modal(); } }