aDBc_prepare_elements_to_clean(); $this->aDBc_print_page_content(); } /** Prepare elements to display */ function aDBc_prepare_elements_to_clean() { // Test if user wants to save the scheduled task if ( isset( $_POST['aDBc_schedule_name'] ) ) { //Quick nonce security check! if ( ! check_admin_referer( 'add_optimize_schedule_nonce', 'add_optimize_schedule_nonce' ) ) return; //get out if we didn't click the save_schedule button $trim_schedule_name = trim( $_POST['aDBc_schedule_name'] ); if ( ! empty( $trim_schedule_name ) ) { if ( preg_match( '/^[a-zA-Z0-9_]+$/', $_POST['aDBc_schedule_name'] ) ) { // Test if the name is used by other schedules. $clean_schedule_setting = get_option( 'aDBc_clean_schedule' ); $clean_schedule_setting = is_array( $clean_schedule_setting ) ? $clean_schedule_setting : array(); $optimize_schedule_setting = get_option( 'aDBc_optimize_schedule' ); $optimize_schedule_setting = is_array( $optimize_schedule_setting ) ? $optimize_schedule_setting : array(); if ( ! array_key_exists( $_POST['aDBc_schedule_name'], $clean_schedule_setting ) && ! array_key_exists( $_POST['aDBc_schedule_name'], $optimize_schedule_setting ) ) { if ( ! empty( $_POST['aDBc_date'] ) ) { if ( ! empty( $_POST['aDBc_time'] ) ) { if ( ! empty( $_POST['aDBc_operation1'] ) || ! empty( $_POST['aDBc_operation2'] ) ) { // We will create the new schedule $new_schedule_params['repeat'] = sanitize_html_class( $_POST['aDBc_schedule_repeat'] ); $new_schedule_params['start_date'] = preg_replace( "/[^0-9-]/", '', $_POST['aDBc_date'] ); $new_schedule_params['start_time'] = preg_replace( "/[^0-9:]/", '', $_POST['aDBc_time'] ); // Prepare operations to perform $operations = array(); if ( ! empty( $_POST['aDBc_operation1'] ) ) array_push( $operations, sanitize_html_class( $_POST['aDBc_operation1'] ) ); if ( ! empty( $_POST['aDBc_operation2'] ) ) array_push( $operations, sanitize_html_class( $_POST['aDBc_operation2'] ) ); $new_schedule_params['operations'] = $operations; $new_schedule_params['active'] = sanitize_html_class( $_POST['aDBc_status'] ); $optimize_schedule_setting[$_POST['aDBc_schedule_name']] = $new_schedule_params; update_option( 'aDBc_optimize_schedule', $optimize_schedule_setting, "no" ); list( $year, $month, $day ) = explode( '-', preg_replace( "/[^0-9-]/", '', $_POST['aDBc_date'] ) ); list( $hours, $minutes ) = explode( ':', preg_replace( "/[^0-9:]/", '', $_POST['aDBc_time'] ) ); $seconds = "0"; $timestamp = mktime( $hours, $minutes, $seconds, $month, $day, $year ); if ( $_POST['aDBc_status'] == "1" ) { if ( $_POST['aDBc_schedule_repeat'] == "once" ) { wp_schedule_single_event( $timestamp, "aDBc_optimize_scheduler", array( $_POST['aDBc_schedule_name'] ) ); } else { wp_schedule_event( $timestamp, sanitize_html_class( $_POST['aDBc_schedule_repeat'] ), "aDBc_optimize_scheduler", array( $_POST['aDBc_schedule_name'] ) ); } $this->aDBc_message = __( 'The clean-up schedule saved successfully!', 'advanced-database-cleaner' ); } else { $this->aDBc_message = __( 'The clean-up schedule saved successfully but it is inactive!', 'advanced-database-cleaner' ); } } else { $this->aDBc_class_message = "error"; $this->aDBc_message = __( 'Please choose at least one operation to perform!', 'advanced-database-cleaner' ); } } else { $this->aDBc_class_message = "error"; $this->aDBc_message = __( 'Please specify a valide time!', 'advanced-database-cleaner' ); } } else { $this->aDBc_class_message = "error"; $this->aDBc_message = __( 'Please specify a valide date!', 'advanced-database-cleaner' ); } } else { $this->aDBc_class_message = "error"; $this->aDBc_message = __( 'The name you have specified is already used by another schedule! Please change it!', 'advanced-database-cleaner' ); } } else { $this->aDBc_class_message = "error"; $this->aDBc_message = __( 'Please change the name! Only letters, numbers and underscores are allowed!', 'advanced-database-cleaner' ); } } else { $this->aDBc_class_message = "error"; $this->aDBc_message = __( 'Please give a name to your schedule!', 'advanced-database-cleaner' ); } } } /** Print the page content */ function aDBc_print_page_content() { // Print a message if any if ( $this->aDBc_message != "" ) { echo '
'; } ?>