$postValue){ if( substr($postKey, 0, 5) == 'dbem_' ){ //TODO some more validation/reporting $numeric_options = array('dbem_locations_default_limit','dbem_events_default_limit'); if( in_array($postKey,$numeric_options) && !is_numeric($postValue) ){ //Do nothing, keep old setting. }else{ //TODO slashes being added? update_option($postKey, stripslashes($postValue)); } } } //set capabilities if( !empty($_POST['em_capabilities']) && is_array($_POST['em_capabilities']) && (!is_multisite() || is_multisite() && is_super_admin()) ){ global $em_capabilities_array, $wp_roles; if( is_multisite() && is_network_admin() && $_POST['dbem_ms_global_caps'] == 1 ){ //apply_caps_to_blog global $current_site,$wpdb; $blog_ids = $wpdb->get_col('SELECT blog_id FROM '.$wpdb->blogs.' WHERE site_id='.$current_site->id); foreach($blog_ids as $blog_id){ switch_to_blog($blog_id); //normal blog role application foreach( $wp_roles->role_objects as $role_name => $role ){ foreach( array_keys($em_capabilities_array) as $capability){ if( !empty($_POST['em_capabilities'][$role_name][$capability]) ){ $role->add_cap($capability); }else{ $role->remove_cap($capability); } } } restore_current_blog(); } }elseif( !is_network_admin() ){ //normal blog role application foreach( $wp_roles->role_objects as $role_name => $role ){ foreach( array_keys($em_capabilities_array) as $capability){ if( !empty($_POST['em_capabilities'][$role_name][$capability]) ){ $role->add_cap($capability); }else{ $role->remove_cap($capability); } } } } } update_option('dbem_flush_needed',1); do_action('em_options_save'); $EM_Notices->add_confirm(''.__('Changes saved.', 'dbem').'', true); wp_redirect(wp_get_referer()); exit(); } //Migration if( !empty($_GET['em_migrate_images']) && check_admin_referer('em_migrate_images','_wpnonce') && get_option('dbem_migrate_images') ){ include(plugin_dir_path(__FILE__).'../em-install.php'); $result = em_migrate_uploads(); if($result){ $failed = ( $result['fail'] > 0 ) ? $result['fail'] . ' images failed to migrate.' : ''; $EM_Notices->add_confirm(''.$result['success'].' images migrated successfully. '.$failed.''); } wp_redirect(admin_url().'edit.php?post_type=event&page=events-manager-options&em_migrate_images'); }elseif( !empty($_GET['em_not_migrate_images']) && check_admin_referer('em_not_migrate_images','_wpnonce') ){ delete_option('dbem_migrate_images_nag'); delete_option('dbem_migrate_images'); } //Uninstall if( !empty($_REQUEST['action']) && $_REQUEST['action'] == 'uninstall' && !empty($_REQUEST['confirmed']) && check_admin_referer('em_uninstall_'.get_current_user_id().'_wpnonce') && is_super_admin() ){ if( check_admin_referer('em_uninstall_'.get_current_user_id().'_confirmed','_wpnonce2') ){ //We have a go to uninstall global $wpdb; //delete EM posts remove_action('before_delete_post',array('EM_Location_Post_Admin','before_delete_post'),10,1); remove_action('before_delete_post',array('EM_Event_Post_Admin','before_delete_post'),10,1); remove_action('before_delete_post',array('EM_Event_Recurring_Post_Admin','before_delete_post'),10,1); $post_ids = $wpdb->get_col('SELECT ID FROM '.$wpdb->posts." WHERE post_type IN ('".EM_POST_TYPE_EVENT."','".EM_POST_TYPE_LOCATION."','event-recurring')"); foreach($post_ids as $post_id){ wp_delete_post($post_id); } //delete categories $cat_terms = get_terms(EM_TAXONOMY_CATEGORY, array('hide_empty'=>false)); foreach($cat_terms as $cat_term){ wp_delete_term($cat_term->term_id, EM_TAXONOMY_CATEGORY); } $tag_terms = get_terms(EM_TAXONOMY_TAG, array('hide_empty'=>false)); foreach($tag_terms as $tag_term){ wp_delete_term($tag_term->term_id, EM_TAXONOMY_TAG); } //delete EM tables $wpdb->query('DROP TABLE '.EM_EVENTS_TABLE); $wpdb->query('DROP TABLE '.EM_BOOKINGS_TABLE); $wpdb->query('DROP TABLE '.EM_LOCATIONS_TABLE); $wpdb->query('DROP TABLE '.EM_TICKETS_TABLE); $wpdb->query('DROP TABLE '.EM_TICKETS_BOOKINGS_TABLE); $wpdb->query('DROP TABLE '.EM_RECURRENCE_TABLE); $wpdb->query('DROP TABLE '.EM_CATEGORIES_TABLE); $wpdb->query('DROP TABLE '.EM_META_TABLE); //delete options $wpdb->query('DELETE FROM '.$wpdb->options.' WHERE option_name LIKE \'em_%\' OR option_name LIKE \'dbem_%\''); //deactivate and go! deactivate_plugins(array('events-manager/events-manager.php','events-manager-pro/events-manager-pro.php'), true); wp_redirect(admin_url('plugins.php?deactivate=true')); exit(); } } //Reset if( !empty($_REQUEST['action']) && $_REQUEST['action'] == 'reset' && !empty($_REQUEST['confirmed']) && check_admin_referer('em_reset_'.get_current_user_id().'_wpnonce') && is_super_admin() ){ if( check_admin_referer('em_reset_'.get_current_user_id().'_confirmed','_wpnonce2') ){ //We have a go to uninstall global $wpdb; //delete options $wpdb->query('DELETE FROM '.$wpdb->options.' WHERE option_name LIKE \'em_%\' OR option_name LIKE \'dbem_%\''); //reset capabilities global $em_capabilities_array, $wp_roles; foreach( $wp_roles->role_objects as $role_name => $role ){ foreach( array_keys($em_capabilities_array) as $capability){ $role->remove_cap($capability); } } //go back to plugin options page $EM_Notices->add_confirm(__('Settings have been reset back to default. Your events, locations and categories have not been modified.','dbem'), true); wp_redirect(EM_ADMIN_URL.'&page=events-manager-options'); exit(); } } //Force Update Recheck - Workaround for now if( !empty($_REQUEST['action']) && $_REQUEST['action'] == 'recheck_updates' && check_admin_referer('em_recheck_updates_'.get_current_user_id().'_wpnonce') && is_super_admin() ){ //force recheck of plugin updates, to refresh dl links delete_transient('update_plugins'); delete_site_transient('update_plugins'); $EM_Notices->add_confirm(__('If there are any new updates, you should now see them in your Plugins or Updates admin pages.','dbem'), true); wp_redirect(wp_get_referer()); exit(); } //Flag version checking to look at trunk, not tag if( !empty($_REQUEST['action']) && $_REQUEST['action'] == 'check_devs' && check_admin_referer('em_check_devs_'.get_current_user_id().'_wpnonce') && is_super_admin() ){ //delete transients, and add a flag to recheck dev version next time round delete_transient('update_plugins'); delete_site_transient('update_plugins'); update_option('em_check_dev_version', true); $EM_Notices->add_confirm(__('Checking for dev versions.','dbem').' '. __('If there are any new updates, you should now see them in your Plugins or Updates admin pages.','dbem'), true); wp_redirect(wp_get_referer()); exit(); } } add_action('admin_init', 'em_options_save'); function em_admin_options_reset_page(){ if( check_admin_referer('em_reset_'.get_current_user_id().'_wpnonce') && is_super_admin() ){ ?>
'. __('Event Related Placeholders','dbem') .''; $locations_placeholders = ''. __('Location Related Placeholders','dbem') .''; $bookings_placeholders = ''. __('Booking Related Placeholders','dbem') .''; $categories_placeholders = ''. __('Category Related Placeholders','dbem') .''; $events_placeholder_tip = " ". sprintf(__('This accepts %s and %s placeholders.','dbem'),$events_placeholders, $locations_placeholders); $locations_placeholder_tip = " ". sprintf(__('This accepts %s placeholders.','dbem'), $locations_placeholders); $categories_placeholder_tip = " ". sprintf(__('This accepts %s placeholders.','dbem'), $categories_placeholders); $bookings_placeholder_tip = " ". sprintf(__('This accepts %s, %s and %s placeholders.','dbem'), $bookings_placeholders, $events_placeholders, $locations_placeholders); global $save_button; $save_button = '|
| |||||
|
| |||||
| |||||