response) : false; if ( in_array( $plugin_path, (array) get_option( 'active_plugins', array() ), true ) || is_plugin_active_for_network( $plugin_path ) ) { return $plugin_needs_update ? 'active_update' : 'active'; } else { return $plugin_needs_update ? 'inactive_update' : 'inactive'; } } } /** ** Install a plugin. */ public function install_plugin( $plugin_slug ) { if ( ! current_user_can( 'install_plugins' ) ) { return; } if ( ! function_exists( 'plugins_api' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; } if ( ! class_exists( 'WP_Upgrader' ) ) { require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; } if ( false === filter_var( $plugin_slug, FILTER_VALIDATE_URL ) ) { $api = plugins_api( 'plugin_information', [ 'slug' => $plugin_slug, 'fields' => [ 'short_description' => false, 'sections' => false, 'requires' => false, 'rating' => false, 'ratings' => false, 'downloaded' => false, 'last_updated' => false, 'added' => false, 'tags' => false, 'compatibility' => false, 'homepage' => false, 'donate_link' => false, ], ] ); $download_link = $api->download_link; } else { $download_link = $plugin_slug; } // Use AJAX upgrader skin instead of plugin installer skin. // ref: function wp_ajax_install_plugin(). $upgrader = new Plugin_Upgrader( new WP_Ajax_Upgrader_Skin() ); $install = $upgrader->install( $download_link ); if ( false === $install ) { return false; } else { return true; } } /** ** Update a plugin. */ public function update_plugin( $plugin_path ) { if ( ! current_user_can( 'install_plugins' ) ) { return; } if ( ! function_exists( 'plugins_api' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; } if ( ! class_exists( 'WP_Upgrader' ) ) { require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; } // Use AJAX upgrader skin instead of plugin installer skin. // ref: function wp_ajax_install_plugin(). $upgrader = new Plugin_Upgrader( new WP_Ajax_Upgrader_Skin() ); $upgrade = $upgrader->upgrade( $plugin_path ); if ( false === $upgrade ) { return false; } else { return true; } } /** ** Update all plugins. */ public function update_all_plugins() { if ( ! current_user_can( 'install_plugins' ) ) { return; } if ( ! function_exists( 'plugins_api' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; } if ( ! class_exists( 'WP_Upgrader' ) ) { require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; } // Use AJAX upgrader skin instead of plugin installer skin. // ref: function wp_ajax_install_plugin(). $upgrader = new Plugin_Upgrader( new WP_Ajax_Upgrader_Skin() ); $upgrade = $upgrader->bulk_upgrade([ 'elementor/elementor.php', 'royal-elementor-addons/wpr-addons.php' ]); if ( false === $upgrade ) { return false; } else { return true; } } /** ** Activate a plugin. */ public function activate_plugin( $plugin_path ) { if ( ! current_user_can( 'install_plugins' ) ) { return false; } $activate = activate_plugin( $plugin_path, '', false, false ); // TODO: last argument changed to false instead of true if ( is_wp_error( $activate ) ) { return false; } else { return true; } } /** ** Install Elementor. */ public function install_activate_elementor() { check_ajax_referer( 'nonce', 'nonce' ); if ( ! current_user_can( 'install_plugins' ) ) { wp_send_json_error( esc_html__( 'Insufficient permissions to install the plugin.', 'bard' ) ); wp_die(); } $elementor_status = $this->get_plugin_status( 'elementor/elementor.php' ); $actions_data = []; if ( 'not_installed' === $elementor_status ) { $this->install_plugin( 'elementor' ); $this->activate_plugin( 'elementor/elementor.php' ); } else { if ( 'inactive' === $elementor_status ) { $this->activate_plugin( 'elementor/elementor.php' ); } elseif ( 'inactive_update' === $elementor_status || 'active_update' === $elementor_status ) { $addons_status = $this->get_plugin_status( 'royal-elementor-addons/wpr-addons.php' ); if ( 'inactive_update' === $addons_status || 'active_update' === $addons_status ) { $this->update_all_plugins(); $this->activate_plugin( 'elementor/elementor.php' ); $this->activate_plugin( 'royal-elementor-addons/wpr-addons.php' ); $actions_data['plugins_updated'] = true; } else { $this->update_plugin( 'elementor/elementor.php' ); $this->activate_plugin( 'elementor/elementor.php' ); } } } if ( 'active' === $this->get_plugin_status( 'elementor/elementor.php' ) ) { wp_send_json_success( $actions_data ); } wp_send_json_error( esc_html__( 'Failed to initialize or activate importer plugin.', 'bard' ) ); wp_die(); } /** ** Install Royal Elementor Addons. */ public function install_activate_royal_addons() { check_ajax_referer( 'nonce', 'nonce' ); if ( ! current_user_can( 'install_plugins' ) ) { wp_send_json_error( esc_html__( 'Insufficient permissions to install the plugin.', 'bard' ) ); wp_die(); } $plugin_status = $this->get_plugin_status( 'royal-elementor-addons/wpr-addons.php' ); if ( 'not_installed' === $plugin_status ) { $this->install_plugin( 'royal-elementor-addons' ); $this->activate_plugin( 'royal-elementor-addons/wpr-addons.php' ); } else { if ( 'inactive' === $plugin_status ) { $this->activate_plugin( 'royal-elementor-addons/wpr-addons.php' ); } elseif ( 'inactive_update' === $plugin_status || 'active_update' === $plugin_status ) { $this->update_plugin( 'royal-elementor-addons/wpr-addons.php' ); $this->activate_plugin( 'royal-elementor-addons/wpr-addons.php' ); } } if ( 'active' === $this->get_plugin_status( 'royal-elementor-addons/wpr-addons.php' ) ) { wp_send_json_success(); } wp_send_json_error( esc_html__( 'Failed to initialize or activate importer plugin.', 'bard' ) ); wp_die(); } /** ** Render Notice */ public function render_notice() { global $pagenow; $screen = get_current_screen(); if ( 'wpr-addons' !== $screen->parent_base ) { $transient_name = sprintf( '%s_activation_notice', get_template() ); if ( ! get_transient( $transient_name ) ) { ?>
get_plugin_status( 'elementor/elementor.php' ); $royal_addons_status = $this->get_plugin_status( 'royal-elementor-addons/wpr-addons.php' ); if ( 'active' === $elementor_status && 'active' === $royal_addons_status ) { $action = 'default'; } if ( function_exists('wpr_fs') ) { if ( wpr_fs()->is_registered() && wpr_fs()->is_tracking_allowed() || wpr_fs()->is_pending_activation() || wpr_fs()->is_anonymous() ) { $redirect_url = 'admin.php?page=wpr-templates-kit'; $freemius_passed = 'true'; } } $screen = get_current_screen(); $flex_attr = ''; $display_attr = 'display: inline-block !important'; if ( 'appearance_page_about-bard' === $screen->id ) { $flex_attr = 'display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center'; $display_attr = 'display: none !important'; } ?>