function fv_wp_flowplayer_install_extension($plugin_package = 'fv_player_pro') { global $hook_suffix; $aInstalled = get_option('fv_flowplayer_extension_install') ? get_option('fv_flowplayer_extension_install') : array(); $aInstalled = array_merge($aInstalled, array($plugin_package => false)); update_option('fv_flowplayer_extension_install', $aInstalled); $aPluginInfo = get_transient('fv_flowplayer_license'); $plugin_basename = $aPluginInfo->{$plugin_package}->slug; $download_url = $aPluginInfo->{$plugin_package}->url; $sPluginBasenameReal = fv_flowplayer_get_extension_path(str_replace('_', '-', $plugin_package)); $plugin_basename = $sPluginBasenameReal ? $sPluginBasenameReal : $plugin_basename; $url = wp_nonce_url(site_url() . '/wp-admin/options-general.php?page=fvplayer', 'fv_player_pro_install', 'nonce_fv_player_pro_install'); set_current_screen(); ob_start(); if (false === ($creds = request_filesystem_credentials($url, '', false, false, false))) { $form = ob_get_clean(); include ABSPATH . 'wp-admin/admin-header.php'; echo fv_wp_flowplayer_install_extension_talk($form); include ABSPATH . 'wp-admin/admin-footer.php'; die; } if (!WP_Filesystem($creds)) { ob_start(); request_filesystem_credentials($url, $method, true, false, false); $form = ob_get_clean(); include ABSPATH . 'wp-admin/admin-header.php'; echo fv_wp_flowplayer_install_extension_talk($form); include ABSPATH . 'wp-admin/admin-footer.php'; die; } require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; $sTaskDone = 'FV Flowplayer Pro extension installed - check the new <a href="' . site_url() . '/wp-admin/options-general.php?page=fvplayer#fv_player_pro">Pro features!</a>!'; if (!$sPluginBasenameReal || is_wp_error(validate_plugin($plugin_basename))) { echo '<div style="display: none;">'; $objInstaller = new Plugin_Upgrader(); $objInstaller->install($download_url); echo '</div>'; wp_cache_flush(); if (is_wp_error($objInstaller->skin->result)) { update_option('fv_wordpress_flowplayer_deferred_notices', 'FV Flowplayer Pro extension install failed - ' . $objInstaller->skin->result->get_error_message()); $bResult = false; } else { if ($objInstaller->plugin_info()) { $plugin_basename = $objInstaller->plugin_info(); } $activate = activate_plugin($plugin_basename); if (is_wp_error($activate)) { update_option('fv_wordpress_flowplayer_deferred_notices', 'FV Flowplayer Pro extension install failed - ' . $activate->get_error_message()); $bResult = false; } } } else { if ($sPluginBasenameReal) { $sTaskDone = 'FV Flowplayer Pro extension upgraded succesfully!'; echo '<div style="display: none;">'; $objInstaller = new Plugin_Upgrader(); $objInstaller->upgrade($sPluginBasenameReal); echo '</div></div>'; // explanation: extra closing tag just to be safe (in case of "The plugin is at the latest version.") wp_cache_flush(); if (is_wp_error($objInstaller->skin->result)) { update_option('fv_wordpress_flowplayer_deferred_notices', 'FV Flowplayer Pro extension upgrade failed - ' . $objInstaller->skin->result->get_error_message()); $bResult = false; } else { if ($objInstaller->plugin_info()) { $plugin_basename = $objInstaller->plugin_info(); } $activate = activate_plugin($plugin_basename); if (is_wp_error($activate)) { update_option('fv_wordpress_flowplayer_deferred_notices', 'FV Flowplayer Pro extension upgrade failed - ' . $activate->get_error_message()); $bResult = false; } } } } if (!isset($bResult)) { if (!isset($_GET['page']) || strcmp($_GET['page'], 'fvplayer') != 0) { update_option('fv_wordpress_flowplayer_deferred_notices', $sTaskDone); } $bResult = true; } $aInstalled = get_option('fv_flowplayer_extension_install') ? get_option('fv_flowplayer_extension_install') : array(); $aInstalled = array_merge($aInstalled, array($plugin_package => $bResult)); update_option('fv_flowplayer_extension_install', $aInstalled); return $bResult; }
do_action('fv_flowplayer_admin_buttons_after'); ?> </p> <div id="fv_flowplayer_admin_notices"> </div> <?php do_action('fv_player_settings_pre'); if (isset($_GET['fv_flowplayer_checker'])) { do_action('fv_flowplayer_checker_event'); } if (flowplayer::is_licensed()) { $aCheck = get_transient('fv_flowplayer_license'); $aInstalled = get_option('fv_flowplayer_extension_install'); } if (isset($aCheck->valid) && $aCheck->valid) { $fv_player_pro_path = fv_flowplayer_get_extension_path('fv-player-pro'); if (is_plugin_inactive($fv_player_pro_path) && !is_wp_error(validate_plugin($fv_player_pro_path))) { ?> <div id="fv_flowplayer_addon_pro"> <p>Thank you for purchasing FV Player license! <input type="button" class='button fv_wp_flowplayer_activate_extension' data-plugin="<?php echo $fv_player_pro_path; ?> " value="Enable the Pro extension" /> <img style="display: none; " src="<?php echo site_url(); ?> /wp-includes/images/wpspin.gif" width="16" height="16" /></p> </div> <?php } elseif (is_plugin_active($fv_player_pro_path) && !is_wp_error(validate_plugin($fv_player_pro_path))) { ?> <div id="fv_flowplayer_addon_pro">