function duplicate_post_plugin_activation() { $installed_version = duplicate_post_get_installed_version(); if ($installed_version == duplicate_post_get_current_version()) { // do nothing } else { // delete old, obsolete options delete_option('duplicate_post_admin_user_level'); delete_option('duplicate_post_create_user_level'); delete_option('duplicate_post_view_user_level'); // Add all options, nothing already installed add_option('duplicate_post_copy_user_level', '5', 'Default user level to copy posts'); } // Update version number update_option('duplicate_post_version', duplicate_post_get_current_version()); }
function duplicate_post_plugin_upgrade() { $installed_version = duplicate_post_get_installed_version(); if (empty($installed_version)) { // first install // Add capability to admin and editors // Get default roles $default_roles = array(3 => 'editor', 8 => 'administrator'); // Cycle all roles and assign capability if its level >= duplicate_post_copy_user_level foreach ($default_roles as $level => $name) { $role = get_role($name); if (!empty($role)) { $role->add_cap('copy_posts'); } } add_option('duplicate_post_copytitle', '1'); add_option('duplicate_post_copydate', '0'); add_option('duplicate_post_copystatus', '0'); add_option('duplicate_post_copyslug', '1'); add_option('duplicate_post_copyexcerpt', '1'); add_option('duplicate_post_copycontent', '1'); add_option('duplicate_post_copypassword', '0'); add_option('duplicate_post_copyattachments', '0'); add_option('duplicate_post_copychildren', '0'); add_option('duplicate_post_copycomments', '0'); add_option('duplicate_post_taxonomies_blacklist', array()); add_option('duplicate_post_blacklist', ''); add_option('duplicate_post_types_enabled', array('post', 'page')); add_option('duplicate_post_show_row', '1'); add_option('duplicate_post_show_adminbar', '1'); add_option('duplicate_post_show_submitbox', '1'); } else { if ($installed_version == duplicate_post_get_current_version()) { //re-install // do nothing } else { //upgrade form previous version // delete old, obsolete options delete_option('duplicate_post_admin_user_level'); delete_option('duplicate_post_create_user_level'); delete_option('duplicate_post_view_user_level'); delete_option('dp_notice'); $installed_version_numbers = explode('.', $installed_version); if ($installed_version_numbers[0] == 2) { // upgrading from 2.* /* * Convert old userlevel option to new capability scheme */ // Get old duplicate_post_copy_user_level option $min_user_level = get_option('duplicate_post_copy_user_level'); if (!empty($min_user_level)) { // Get default roles $default_roles = array(1 => 'contributor', 2 => 'author', 3 => 'editor', 8 => 'administrator'); // Cycle all roles and assign capability if its level >= duplicate_post_copy_user_level foreach ($default_roles as $level => $name) { $role = get_role($name); if ($role && $min_user_level <= $level) { $role->add_cap('copy_posts'); } } // delete old option delete_option('duplicate_post_copy_user_level'); } add_option('duplicate_post_copytitle', '1'); add_option('duplicate_post_copydate', '0'); add_option('duplicate_post_copystatus', '0'); add_option('duplicate_post_copyslug', '1'); add_option('duplicate_post_copyexcerpt', '1'); add_option('duplicate_post_copycontent', '1'); add_option('duplicate_post_copypassword', '0'); add_option('duplicate_post_copyattachments', '0'); add_option('duplicate_post_copychildren', '0'); add_option('duplicate_post_copycomments', '0'); add_option('duplicate_post_taxonomies_blacklist', array()); add_option('duplicate_post_blacklist', ''); add_option('duplicate_post_types_enabled', array('post', 'page')); add_option('duplicate_post_show_row', '1'); add_option('duplicate_post_show_adminbar', '1'); add_option('duplicate_post_show_submitbox', '1'); // show notice about new features add_site_option('duplicate_post_show_notice', '1'); } else { if ($installed_version_numbers[0] == 3) { // upgrading from 3.* // hide notice, we assume people already know of new features delete_option('duplicate_post_show_notice', 0); update_site_option('duplicate_post_show_notice', 0); } } } } // Update version number delete_option('duplicate_post_version'); update_site_option('duplicate_post_version', duplicate_post_get_current_version()); }
function duplicate_post_plugin_upgrade() { $installed_version = duplicate_post_get_installed_version(); if (empty($installed_version)) { // first install // Add capability to admin and editors // Get default roles $default_roles = array(3 => 'editor', 8 => 'administrator'); // Cycle all roles and assign capability if its level >= duplicate_post_copy_user_level foreach ($default_roles as $level => $name) { $role = get_role($name); if (!empty($role)) { $role->add_cap('copy_posts'); } } add_option('duplicate_post_copyexcerpt', '1'); add_option('duplicate_post_copyattachments', '0'); add_option('duplicate_post_copychildren', '0'); add_option('duplicate_post_copystatus', '0'); add_option('duplicate_post_taxonomies_blacklist', array()); add_option('duplicate_post_show_row', '1'); add_option('duplicate_post_show_adminbar', '1'); add_option('duplicate_post_show_submitbox', '1'); } else { if ($installed_version == duplicate_post_get_current_version()) { //re-install // do nothing } else { //upgrade form previous version // delete old, obsolete options delete_option('duplicate_post_admin_user_level'); delete_option('duplicate_post_create_user_level'); delete_option('duplicate_post_view_user_level'); delete_option('dp_notice'); /* * Convert old userlevel option to new capability scheme */ // Get old duplicate_post_copy_user_level option $min_user_level = get_option('duplicate_post_copy_user_level'); if (!empty($min_user_level)) { // Get default roles $default_roles = array(1 => 'contributor', 2 => 'author', 3 => 'editor', 8 => 'administrator'); // Cycle all roles and assign capability if its level >= duplicate_post_copy_user_level foreach ($default_roles as $level => $name) { $role = get_role($name); if ($role && $min_user_level <= $level) { $role->add_cap('copy_posts'); } } // delete old option delete_option('duplicate_post_copy_user_level'); } add_option('duplicate_post_copyexcerpt', '1'); add_option('duplicate_post_copyattachments', '0'); add_option('duplicate_post_copychildren', '0'); add_option('duplicate_post_copystatus', '0'); add_option('duplicate_post_taxonomies_blacklist', array()); add_option('duplicate_post_show_row', '1'); add_option('duplicate_post_show_adminbar', '1'); add_option('duplicate_post_show_submitbox', '1'); } } // Update version number update_option('duplicate_post_version', duplicate_post_get_current_version()); }