577 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			577 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php 
 | |
| 
 | |
| // Event schedules failed
 | |
| if ( !wp_next_scheduled ( 'cau_set_schedule_mail' ) ) {
 | |
| 	echo '<div id="message" class="error"><p><b>'.__( 'Companion Auto Update was not able to set the event for sending you emails, please re-activate the plugin in order to set the event', 'companion-auto-update' ).'.</b></p></div>';
 | |
| }
 | |
| 
 | |
| // Database requires an update
 | |
| if ( cau_incorrectDatabaseVersion() ) {
 | |
|         echo '<div id="message" class="error"><p><b>'.__( 'Companion Auto Update Database Update', 'companion-auto-update' ).' –</b>
 | |
|         '.__( 'We need you to update to the latest database version', 'companion-auto-update' ).'. <a href="'.cau_url( 'status' ).'&run=db_update" class="button button-alt" style="background: #FFF;">'.__( 'Run updater now', 'companion-auto-update' ).'</a></p></div>';
 | |
| }
 | |
| 
 | |
| // Update log DB is empty
 | |
| if ( cau_updateLogDBisEmpty() ) {
 | |
|         echo '<div id="message" class="error"><p><b>'.__( 'Companion Auto Update Database Update', 'companion-auto-update' ).' –</b>
 | |
|         '.__( 'We need to add some information to your database', 'companion-auto-update' ).'. <a href="'.cau_url( 'status' ).'&run=db_info_update" class="button button-alt" style="background: #FFF;">'.__( 'Run updater now', 'companion-auto-update' ).'</a></p></div>';
 | |
| }
 | |
| 
 | |
| // Save settings
 | |
| if( isset( $_POST['submit'] ) ) {
 | |
| 
 | |
| 	check_admin_referer( 'cau_save_settings' );
 | |
| 
 | |
| 	global $wpdb;
 | |
| 	$table_name = $wpdb->prefix . "auto_updates"; 
 | |
| 
 | |
| 	// Auto updater
 | |
| 	$plugins 			= isset( $_POST['plugins'] ) ? sanitize_text_field( $_POST['plugins'] ) : '';
 | |
| 	$themes 			= isset( $_POST['themes'] ) ? sanitize_text_field( $_POST['themes'] ) : '';
 | |
| 	$minor 				= isset( $_POST['minor'] ) ? sanitize_text_field( $_POST['minor'] ) : '';
 | |
| 	$major 				= isset( $_POST['major'] ) ? sanitize_text_field( $_POST['major'] ) : '';
 | |
| 	$translations 		= isset( $_POST['translations'] ) ? sanitize_text_field( $_POST['translations'] ) : '';
 | |
| 
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'plugins'", $plugins ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'themes'", $themes ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'minor'", $minor ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'major'", $major ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'translations'", $translations ) );
 | |
| 
 | |
| 	// Emails
 | |
| 	$send 				= isset( $_POST['cau_send'] ) ? sanitize_text_field( $_POST['cau_send'] ) : '';
 | |
| 	$sendupdate 		= isset( $_POST['cau_send_update'] ) ? sanitize_text_field( $_POST['cau_send_update'] ) : '';
 | |
| 	$sendoutdated 		= isset( $_POST['cau_send_outdated'] ) ? sanitize_text_field( $_POST['cau_send_outdated'] ) : '';
 | |
| 	$wpemails 			= isset( $_POST['wpemails'] ) ? sanitize_text_field( $_POST['wpemails'] ) : '';
 | |
| 	$email 				= isset( $_POST['cau_email'] ) ? sanitize_text_field( $_POST['cau_email'] ) : '';
 | |
| 	$html_or_text 		= isset( $_POST['html_or_text'] ) ? sanitize_text_field( $_POST['html_or_text'] ) : 'html';
 | |
| 	$dbupdateemails 	= isset( $_POST['dbupdateemails'] ) ? sanitize_text_field( $_POST['dbupdateemails'] ) : '';
 | |
| 
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'email'", $email ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'send'", $send ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'sendupdate'", $sendupdate ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'sendoutdated'", $sendoutdated ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'wpemails'", $wpemails ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'html_or_text'", $html_or_text ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'dbupdateemails'", $dbupdateemails ) );
 | |
| 
 | |
| 	// Advanced
 | |
| 	$allow_editor 			= isset( $_POST['allow_editor'] ) ? sanitize_text_field( $_POST['allow_editor'] ) : '';
 | |
| 	$allow_author 			= isset( $_POST['allow_author'] ) ? sanitize_text_field( $_POST['allow_author'] ) : '';
 | |
| 	$advanced_info_emails 	= isset( $_POST['advanced_info_emails'] ) ? sanitize_text_field( $_POST['advanced_info_emails'] ) : '';
 | |
| 	$plugin_links_emails 	= isset( $_POST['plugin_links_emails'] ) ? sanitize_text_field( $_POST['plugin_links_emails'] ) : '';
 | |
| 
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'allow_editor'", $allow_editor ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'allow_author'", $allow_author ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'advanced_info_emails'", $advanced_info_emails ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'plugin_links_emails'", $plugin_links_emails ) );
 | |
| 
 | |
| 	// Delay
 | |
| 	$update_delay 		= isset( $_POST['update_delay'] ) ? sanitize_text_field( $_POST['update_delay'] ) : '';
 | |
| 	$update_delay_days 	= isset( $_POST['update_delay_days'] ) ? sanitize_text_field( $_POST['update_delay_days'] ) : '';
 | |
| 
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'update_delay'", $update_delay ) );
 | |
| 	$wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'update_delay_days'", $update_delay_days ) );
 | |
| 
 | |
| 	// Intervals
 | |
| 
 | |
| 	// Set variables
 | |
| 	$plugin_sc 			= sanitize_text_field( $_POST['plugin_schedule'] );
 | |
| 	$theme_sc 			= sanitize_text_field( $_POST['theme_schedule'] );
 | |
| 	$core_sc 			= sanitize_text_field( $_POST['core_schedule'] );
 | |
| 	$schedule_mail 		= sanitize_text_field( $_POST['update_notifications'] );
 | |
| 	$outdated_notifier 	= sanitize_text_field( $_POST['outdated_notifier'] );
 | |
| 
 | |
| 	// First clear schedules
 | |
| 	wp_clear_scheduled_hook( 'wp_update_plugins' );
 | |
| 	wp_clear_scheduled_hook( 'wp_update_themes' );
 | |
| 	wp_clear_scheduled_hook( 'wp_version_check' );
 | |
| 	wp_clear_scheduled_hook( 'cau_set_schedule_mail' );
 | |
| 	wp_clear_scheduled_hook( 'cau_custom_hooks_plugins' );
 | |
| 	wp_clear_scheduled_hook( 'cau_custom_hooks_themes' );
 | |
| 	wp_clear_scheduled_hook( 'cau_log_updater' );
 | |
| 	wp_clear_scheduled_hook( 'cau_outdated_notifier' );
 | |
| 
 | |
| 	// Then set the new times
 | |
| 
 | |
| 	// Plugins
 | |
| 	if( $plugin_sc == 'daily' ) {
 | |
| 
 | |
| 		$date 			= date( 'Y-m-d' );
 | |
| 		$hours 			= sanitize_text_field( $_POST['plugin_schedule-sethour'] );
 | |
| 		$minutes 		= sanitize_text_field( $_POST['plugin_schedule-setminutes'] );
 | |
| 		$seconds 		= date( 's' );
 | |
| 		$fullDate 		= $date.' '.$hours.':'.$minutes.':'.$seconds;
 | |
| 		$pluginSetTime 		= strtotime( $fullDate );
 | |
| 
 | |
| 		wp_schedule_event( $pluginSetTime, $plugin_sc, 'wp_update_plugins' );
 | |
| 		wp_schedule_event( $pluginSetTime, $plugin_sc, 'cau_custom_hooks_plugins' );
 | |
| 		wp_schedule_event( ( $pluginSetTime - 1800 ), $plugin_sc, 'cau_log_updater' );
 | |
| 
 | |
| 	} else {
 | |
| 		wp_schedule_event( time(), $plugin_sc, 'wp_update_plugins' );
 | |
| 		wp_schedule_event( time(), $plugin_sc, 'cau_custom_hooks_plugins' );
 | |
| 		wp_schedule_event( ( time() - 1800 ), $plugin_sc, 'cau_log_updater' );
 | |
| 	}
 | |
| 
 | |
| 	// Themes
 | |
| 	if( $theme_sc == 'daily' ) {
 | |
| 
 | |
| 		$dateT 			= date( 'Y-m-d' );
 | |
| 		$hoursT 		= sanitize_text_field( $_POST['theme_schedule-sethour'] );
 | |
| 		$minutesT 		= sanitize_text_field( $_POST['theme_schedule-setminutes'] );
 | |
| 		$secondsT 		= date( 's' );
 | |
| 		$fullDateT 		= $dateT.' '.$hoursT.':'.$minutesT.':'.$secondsT;
 | |
| 		$themeSetTime 		= strtotime( $fullDateT );
 | |
| 
 | |
| 		wp_schedule_event( $themeSetTime, $theme_sc, 'wp_update_themes' );
 | |
| 		wp_schedule_event( $themeSetTime, $theme_sc, 'cau_custom_hooks_themes' );
 | |
| 
 | |
| 	} else {
 | |
| 		wp_schedule_event( time(), $theme_sc, 'wp_update_themes' );
 | |
| 		wp_schedule_event( time(), $theme_sc, 'cau_custom_hooks_themes' );
 | |
| 	}
 | |
| 
 | |
| 	// Core
 | |
| 	if( $core_sc == 'daily' ) {
 | |
| 
 | |
| 		$dateC 			= date( 'Y-m-d' );
 | |
| 		$hoursC 		= sanitize_text_field( $_POST['core_schedule-sethour'] );
 | |
| 		$minutesC 		= sanitize_text_field( $_POST['core_schedule-setminutes'] );
 | |
| 		$secondsC 		= date( 's' );
 | |
| 		$fullDateC 		= $dateC.' '.$hoursC.':'.$minutesC.':'.$secondsC;
 | |
| 		$coreSetTime 		= strtotime( $fullDateC );
 | |
| 
 | |
| 		wp_schedule_event( $coreSetTime, $core_sc, 'wp_version_check' );
 | |
| 
 | |
| 	} else {
 | |
| 		wp_schedule_event( time(), $core_sc, 'wp_version_check' );
 | |
| 	}
 | |
| 
 | |
| 	// Update notifications
 | |
| 	if( $schedule_mail == 'daily' ) {
 | |
| 
 | |
| 		$dateT 			= date( 'Y-m-d' );
 | |
| 		$hoursT 		= sanitize_text_field( $_POST['update_notifications-sethour'] );
 | |
| 		$minutesT 		= sanitize_text_field( $_POST['update_notifications-setminutes'] );
 | |
| 		$secondsT 		= date( 's' );
 | |
| 		$fullDateT 		= $dateT.' '.$hoursT.':'.$minutesT.':'.$secondsT;
 | |
| 		$emailSetTime 		= strtotime( $fullDateT );
 | |
| 
 | |
| 		wp_schedule_event( $emailSetTime, $schedule_mail, 'cau_set_schedule_mail' );
 | |
| 
 | |
| 	} else {
 | |
| 		wp_schedule_event( time(), $schedule_mail, 'cau_set_schedule_mail' );
 | |
| 	}
 | |
| 
 | |
| 	// Outdated notifications
 | |
| 	if( $outdated_notifier == 'daily' ) {
 | |
| 
 | |
| 		$dateT 			= date( 'Y-m-d' );
 | |
| 		$hoursT 		= sanitize_text_field( $_POST['outdated_notifier-sethour'] );
 | |
| 		$minutesT 		= sanitize_text_field( $_POST['outdated_notifier-setminutes'] );
 | |
| 		$secondsT 		= date( 's' );
 | |
| 		$fullDateT 		= $dateT.' '.$hoursT.':'.$minutesT.':'.$secondsT;
 | |
| 		$emailSetTime 		= strtotime( $fullDateT );
 | |
| 
 | |
| 		wp_schedule_event( $emailSetTime, $outdated_notifier, 'cau_outdated_notifier' );
 | |
| 
 | |
| 	} else {
 | |
| 		wp_schedule_event( time(), $outdated_notifier, 'cau_outdated_notifier' );
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	echo '<div id="message" class="updated"><p><b>'.__( 'Settings saved.' ).'</b></p></div>';
 | |
| 
 | |
| }
 | |
| 
 | |
| // Welcome screen for first time viewers
 | |
| if( isset( $_GET['welcome'] ) ) {
 | |
| 	echo '<div class="welcome-to-cau welcome-bg" style="margin-bottom: 0px;">
 | |
| 		<div class="welcome-image">
 | |
| 		</div><div class="welcome-content">
 | |
| 
 | |
| 		<h3>'.__( 'Welcome to Companion Auto Update', 'companion-auto-update' ).'</h3>
 | |
| 		<br />
 | |
| 		<p><strong>'.__( 'You\'re set and ready to go', 'companion-auto-update' ).'</strong></p>
 | |
| 		<p>'.__( 'The plugin is all set and ready to go with the recommended settings, but if you\'d like you can change them below.' ).'</p>
 | |
| 		<br />
 | |
| 		<p><strong>'.__( 'Get Started' ).': </strong> <a href="'.cau_url( 'pluginlist' ).'">'.__( 'Update filter', 'companion-auto-update' ).'</a>   |  
 | |
| 		<strong>'.__( 'More Actions' ).': </strong> <a href="http://codeermeneer.nl/cau_poll/" target="_blank">'.__('Give feedback', 'companion-auto-update').'</a> - <a href="https://translate.wordpress.org/projects/wp-plugins/companion-auto-update/" target="_blank">'.__( 'Help us translate', 'companion-auto-update' ).'</a></p>
 | |
| 
 | |
| 		</div>
 | |
| 	</div>';
 | |
| }
 | |
| 
 | |
| $cs_hooks_p = wp_get_schedule( 'cau_custom_hooks_plugins' );
 | |
| $cs_hooks_t = wp_get_schedule( 'cau_custom_hooks_themes' );
 | |
| 
 | |
| ?>
 | |
| 
 | |
| <div class="cau-dashboard cau-column-wide">
 | |
| 	
 | |
| 	<form method="POST">
 | |
| 
 | |
| 		<div class="welcome-to-cau update-bg cau-dashboard-box">
 | |
| 			
 | |
| 			<h2 class="title"><?php _e('Auto Updater', 'companion-auto-update');?></h2>
 | |
| 
 | |
| 			<table class="form-table">
 | |
| 				<tr>
 | |
| 					<td>
 | |
| 						<fieldset>
 | |
| 
 | |
| 							<?php
 | |
| 
 | |
| 							$plugins_on 		= ( cau_get_db_value( 'plugins' ) == 'on' ) ? "CHECKED" : "";
 | |
| 							$themes_on 			= ( cau_get_db_value( 'themes' ) == 'on' ) ? "CHECKED" : "";
 | |
| 							$minor_on 			= ( cau_get_db_value( 'minor' ) == 'on' ) ? "CHECKED" : "";
 | |
| 							$major_on 			= ( cau_get_db_value( 'major' ) == 'on' ) ? "CHECKED" : "";
 | |
| 							$translations_on 	= ( cau_get_db_value( 'translations' ) == 'on' ) ? "CHECKED" : "";
 | |
| 
 | |
| 							echo "<p><input id='plugins' name='plugins' type='checkbox' {$plugins_on}/><label for='plugins'>".__( 'Auto update plugins?', 'companion-auto-update' )."</label></p>";
 | |
| 							echo "<p><input id='themes' name='themes' type='checkbox' {$themes_on}/><label for='themes'>".__( 'Auto update themes?', 'companion-auto-update' )."</label></p>";
 | |
| 							echo "<p><input id='minor' name='minor' type='checkbox' {$minor_on}/><label for='minor'>".__( 'Auto update minor core updates?', 'companion-auto-update' )."  <code class='majorMinorExplain'>6.0.0 > 6.0.1</code></label></p>";
 | |
| 							echo "<p><input id='major' name='major' type='checkbox' {$major_on}/><label for='major'>".__( 'Auto update major core updates?', 'companion-auto-update' )."  <code class='majorMinorExplain'>6.0.0 > 6.1.0</code></label></p>";
 | |
| 							echo "<p><input id='translations' name='translations' type='checkbox' {$translations_on}/><label for='translations'>".__( 'Auto update translation files?', 'companion-auto-update' )."</label></p>";
 | |
| 
 | |
| 							?>
 | |
| 
 | |
| 						</fieldset>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 			</table>
 | |
| 
 | |
| 		</div>
 | |
| 
 | |
| 		<div class="welcome-to-cau email-bg cau-dashboard-box">
 | |
| 
 | |
| 			<h2 class="title"><?php _e( 'Email Notifications', 'companion-auto-update' );?></h2>
 | |
| 
 | |
| 			<?php
 | |
| 
 | |
| 			$db_email 	= cau_get_db_value( 'email' );
 | |
| 			$toemail 	= ( $db_email == '' ) ? get_option( 'admin_email' ) : $db_email;
 | |
| 
 | |
| 			$hot 		= cau_get_db_value( 'html_or_text' );
 | |
| 
 | |
| 			?>
 | |
| 
 | |
| 			<table class="form-table">
 | |
| 				<tr>
 | |
| 					<th scope="row"><?php _e( 'Update notifications', 'companion-auto-update' );?></th>
 | |
| 					<td>
 | |
| 						<p>
 | |
| 							<input id="cau_send_update" name="cau_send_update" type="checkbox" <?php if( cau_get_db_value( 'sendupdate' ) == 'on' ) { echo 'checked'; } ?> />
 | |
| 							<label for="cau_send_update"><?php _e( 'Send me emails when something has been updated.', 'companion-auto-update' );?></label>
 | |
| 						</p>
 | |
| 						<p>
 | |
| 							<input id="cau_send" name="cau_send" type="checkbox" <?php if( cau_get_db_value( 'send' ) == 'on' ) { echo 'checked'; } ?> />
 | |
| 							<label for="cau_send"><?php _e( 'Send me emails when an update is available.', 'companion-auto-update' );?></label>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th scope="row"><?php _e( 'Check for outdated software', 'companion-auto-update' );?></th>
 | |
| 					<td>
 | |
| 						<p>
 | |
| 							<input id="cau_send_outdated" name="cau_send_outdated" type="checkbox" <?php if( cau_get_db_value( 'sendoutdated' ) == 'on' ) { echo 'checked'; } ?> />
 | |
| 							<label for="cau_send_outdated"><?php _e( 'Be notified of plugins that have not been tested with the 3 latest major versions of WordPress.', 'companion-auto-update' );?></label>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th scope="row"><?php _e( 'Email Address', 'companion-auto-update' );?></th>
 | |
| 					<td>
 | |
| 						<p>
 | |
| 							<label for="cau_email"><?php _e( 'To', 'companion-auto-update' ); ?>:</label>
 | |
| 							<input type="text" name="cau_email" id="cau_email" class="regular-text" placeholder="<?php echo get_option( 'admin_email' ); ?>" value="<?php echo esc_html( $toemail ); ?>" />
 | |
| 						</p>
 | |
| 
 | |
| 						<p class="description"><?php _e('Seperate email addresses using commas.', 'companion-auto-update');?></p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th scope="row"><?php _e( 'Use HTML in emails?', 'companion-auto-update' );?></th>
 | |
| 					<td>
 | |
| 						<p>
 | |
| 							<select id='html_or_text' name='html_or_text'>
 | |
| 								<option value='html' <?php if( $hot == 'html' ) { echo "SELECTED"; } ?>><?php _e( 'Use HTML', 'companion-auto-update' ); ?></option>
 | |
| 								<option value='text' <?php if( $hot == 'text' ) { echo "SELECTED"; } ?>><?php _e( 'Use plain text', 'companion-auto-update' ); ?></option>
 | |
| 							</select>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th scope="row"><?php _e( 'Show more info in emails', 'companion-auto-update' );?></th>
 | |
| 					<td>
 | |
| 						<p>
 | |
| 							<label for="advanced_info_emails"><input name="advanced_info_emails" type="checkbox" id="advanced_info_emails" <?php if( cau_get_db_value( 'advanced_info_emails' ) == 'on' ) { echo "CHECKED"; } ?>> <?php _e( 'Show the time of the update', 'companion-auto-update' ); ?></label>
 | |
| 						</p>
 | |
| 						<p>
 | |
| 							<label for="plugin_links_emails"><input name="plugin_links_emails" type="checkbox" id="plugin_links_emails" <?php if( cau_get_db_value( 'plugin_links_emails' ) == 'on' ) { echo "CHECKED"; } ?>> <?php _e( 'Show links to WordPress.org pages', 'companion-auto-update' ); ?></label>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th scope="row">
 | |
| 						<?php _e( 'WordPress notifications', 'companion-auto-update' );?>
 | |
| 						<span class='cau_tooltip'><span class="dashicons dashicons-editor-help"></span>
 | |
| 							<span class='cau_tooltip_text'>
 | |
| 								<?php _e( 'Core notifications are handled by WordPress and not by this plugin. You can only disable them, changing your email address in the settings above will not affect these notifications.', 'companion-auto-update' );?>
 | |
| 							</span>
 | |
| 						</span>
 | |
| 					</th>
 | |
| 					<td>
 | |
| 						<p>
 | |
| 							<input id="wpemails" name="wpemails" type="checkbox" <?php if( cau_get_db_value( 'wpemails' ) == 'on' ) { echo 'checked'; } ?> />
 | |
| 							<label for="wpemails"><?php _e( 'By default WordPress sends an email when a core update has occurred. Uncheck this box to disable these emails.', 'companion-auto-update' ); ?></label>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th scope="row"><?php _e( 'Database update required', 'companion-auto-update' );?></th>
 | |
| 					<td>
 | |
| 						<p>
 | |
| 							<input id="dbupdateemails" name="dbupdateemails" type="checkbox" <?php if( cau_get_db_value( 'dbupdateemails' ) == 'on' ) { echo 'checked'; } ?> />
 | |
| 							<label for="dbupdateemails"><?php _e( 'Sometimes we\'ll need your help updating our database version to the latest version, check this box to allow us to send you an email about this.', 'companion-auto-update' ); ?></label>
 | |
| 						</p>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 			</table>
 | |
| 
 | |
| 		</div>
 | |
| 
 | |
| 		<div class="welcome-to-cau interval-bg cau-dashboard-box" style="overflow: hidden;">
 | |
| 
 | |
| 			<h2 class="title"><?php _e( 'Intervals', 'companion-auto-update' );?></h2>
 | |
| 
 | |
| 			<?php 
 | |
| 
 | |
| 			function cau_show_interval_selection( $identiefier, $schedule ) {
 | |
| 
 | |
| 				// Get the info
 | |
| 				$setValue 		= wp_get_schedule( $schedule );
 | |
| 				$setTime 		= wp_next_scheduled( $schedule );
 | |
| 				$setHour 		= date( 'H' , $setTime );
 | |
| 				$setMinutes 	= date( 'i' , $setTime ); 
 | |
| 
 | |
| 				// Show interval selection
 | |
| 				echo "<p>";
 | |
| 					echo "<select name='$identiefier' id='$identiefier' class='schedule_interval wide interval_scheduler' data-timeblock='$identiefier'>";
 | |
| 						foreach ( cau_wp_get_schedules() as $key => $value ) {
 | |
| 							echo "<option "; if( $setValue == $key ) { echo "selected "; } echo "value='".$key."'>".$value."</option>"; 
 | |
| 						}
 | |
| 					echo "</select>";
 | |
| 				echo "</p>";
 | |
| 
 | |
| 				// Set the time when daily is selected
 | |
| 				echo "<div class='timeblock-$identiefier' style='display: none;'>";
 | |
| 
 | |
| 					echo "<div class='cau_schedule_input'>
 | |
| 						<input type='number' min='0' max='23' name='".$identiefier."-sethour' value='$setHour' maxlength='2' >
 | |
| 					</div><div class='cau_schedule_input_div'>
 | |
| 						:
 | |
| 					</div><div class='cau_schedule_input'>
 | |
| 						<input type='number' min='0' max='59' name='".$identiefier."-setminutes' value='$setMinutes' maxlength='2' > 
 | |
| 					</div><div class='cau_shedule_notation'>
 | |
| 						<span class='cau_tooltip'><span class='dashicons dashicons-editor-help'></span>
 | |
| 							<span class='cau_tooltip_text'>".__( 'At what time should the updater run? Only works when set to <u>daily</u>.', 'companion-auto-update' )." - ".__( 'Time notation: 24H', 'companion-auto-update' )."</span>
 | |
| 						</span>
 | |
| 					</div>";
 | |
| 
 | |
| 				echo "</div>";
 | |
| 
 | |
| 			}
 | |
| 
 | |
| 			?>
 | |
| 
 | |
| 			<div class="welcome-column">
 | |
| 
 | |
| 				<h4><?php _e( 'Plugin update interval', 'companion-auto-update' );?></h4>
 | |
| 				<?php cau_show_interval_selection( 'plugin_schedule', 'wp_update_plugins' ); ?>
 | |
| 
 | |
| 			</div>
 | |
| 
 | |
| 			<div class="welcome-column">
 | |
| 
 | |
| 				<h4><?php _e( 'Theme update interval', 'companion-auto-update' );?></h4>
 | |
| 				<?php cau_show_interval_selection( 'theme_schedule', 'wp_update_themes' ); ?>
 | |
| 
 | |
| 			</div>
 | |
| 
 | |
| 			<div class="welcome-column">
 | |
| 
 | |
| 				<h4><?php _e( 'Core update interval', 'companion-auto-update' );?></h4>
 | |
| 				<?php cau_show_interval_selection( 'core_schedule', 'wp_version_check' ); ?>
 | |
| 
 | |
| 			</div>
 | |
| 
 | |
| 			<p></p>
 | |
| 
 | |
| 			<div class="welcome-column">
 | |
| 
 | |
| 				<h4><?php _e( 'Update notifications', 'companion-auto-update' );?></h4>
 | |
| 				<?php cau_show_interval_selection( 'update_notifications', 'cau_set_schedule_mail' ); ?>
 | |
| 
 | |
| 			</div>
 | |
| 
 | |
| 			<div class="welcome-column">
 | |
| 
 | |
| 				<h4><?php _e( 'Outdated software', 'companion-auto-update' );?></h4>
 | |
| 				<?php cau_show_interval_selection( 'outdated_notifier', 'cau_outdated_notifier' ); ?>
 | |
| 
 | |
| 			</div>
 | |
| 
 | |
| 		</div>
 | |
| 
 | |
| 		<div class="welcome-to-cau advanced-bg cau-dashboard-box">
 | |
| 
 | |
| 			<h2 class="title"><?php _e( 'Advanced settings', 'companion-auto-update' ); ?></h2>
 | |
| 
 | |
| 			<?php
 | |
| 
 | |
| 			// Access
 | |
| 			$accessallowed 		= cau_allowed_user_rights_array();
 | |
| 			$has_editor 		= in_array( 'editor', $accessallowed ) ? true : false;
 | |
| 			$has_author 		= in_array( 'author', $accessallowed ) ? true : false;
 | |
| 
 | |
| 			// Update delays
 | |
| 			$has_updatedelay 	= ( cau_get_db_value( 'update_delay' ) == 'on' ) ? true : false;
 | |
| 
 | |
| 			?>
 | |
| 
 | |
| 			<table class="form-table">
 | |
| 				<tbody>
 | |
| 					<tr>
 | |
| 						<th scope="row"><label><?php _e( 'Allow access to:', 'companion-auto-update' ); ?></label></th>
 | |
| 						<td>
 | |
| 							<p><label for="allow_administrator"><input name="allow_administrator" type="checkbox" id="allow_administrator" disabled="" checked=""><?php _e( 'Administrator', 'companion-auto-update' ); ?></label></p>
 | |
| 							<p><label for="allow_editor"><input name="allow_editor" type="checkbox" id="allow_editor" <?php if( $has_editor ) { echo "CHECKED"; } ?>><?php _e( 'Editor', 'companion-auto-update' ); ?></label></p>
 | |
| 							<p><label for="allow_author"><input name="allow_author" type="checkbox" id="allow_author" <?php if( $has_author ) { echo "CHECKED"; } ?>><?php _e( 'Author', 'companion-auto-update' ); ?></label></p>
 | |
| 						</td>
 | |
| 					</tr>
 | |
| 					<tr>
 | |
| 						<th scope="row"><label><?php _e( 'Delay updates', 'companion-auto-update' ); ?></label></th>
 | |
| 						<td>
 | |
| 							<p><label for="update_delay"><input name="update_delay" type="checkbox" id="update_delay" <?php echo $has_updatedelay ? "CHECKED" : ""; ?> ><?php _e( 'Delay updates', 'companion-auto-update' ); ?></label></p>
 | |
| 						</td>
 | |
| 					</tr>
 | |
| 					<tr id='update_delay_days_block' <?php echo !$has_updatedelay ? "class='disabled_option'" : ""; ?>>
 | |
| 						<th scope="row"><label><?php _e( 'Number of days', 'companion-auto-update' ); ?></label></th>
 | |
| 						<td>
 | |
| 							<input type="number" min="0" max="31" name="update_delay_days" id="update_delay_days" class="regular-text" value="<?php echo cau_get_db_value( 'update_delay_days' ); ?>" />
 | |
| 							<p><?php _e( 'For how many days should updates be put on hold?', 'companion-auto-update' ); ?></p>
 | |
| 							<p><small><strong>Please note:</strong> Delaying updates does not work with WordPress updates yet.</small></p>
 | |
| 						</td>
 | |
| 					</tr>
 | |
| 				</tbody>
 | |
| 			</table>
 | |
| 
 | |
| 		</div>
 | |
| 
 | |
| 		<?php wp_nonce_field( 'cau_save_settings' ); ?>	
 | |
| 		
 | |
| 		<div class="cau_save_button">
 | |
| 			<?php submit_button(); ?>
 | |
| 		</div>
 | |
| 		<div class="cau_save_button__space"></div>
 | |
| 
 | |
| 		<script>jQuery( '.cau-dashboard input, .cau-dashboard select, .cau-dashboard textarea' ).on( 'change', function() { jQuery('.cau_save_button').addClass( 'fixed_button' ); } );</script>
 | |
| 
 | |
| 	</form>
 | |
| 
 | |
| </div><div class="cau-column-small">
 | |
| 
 | |
| 	<div class="welcome-to-cau help-bg cau-dashboard-box">
 | |
| 		<div class="welcome-column welcome-column.welcome-column-half">
 | |
| 			<h3 class="support-sidebar-title"><?php _e( 'Help' ); ?></h3>
 | |
| 			<ul class="support-sidebar-list">
 | |
| 				<li><a href="https://codeermeneer.nl/stuffs/faq-auto-updater/" target="_blank"><?php _e( 'Frequently Asked Questions', 'companion-auto-update' ); ?></a></li>
 | |
| 				<li><a href="https://wordpress.org/support/plugin/companion-auto-update" target="_blank"><?php _e( 'Support Forums' ); ?></a></li>
 | |
| 			</ul>
 | |
| 
 | |
| 			<h3 class="support-sidebar-title"><?php _e( 'Want to contribute?', 'companion-auto-update' ); ?></h3>
 | |
| 			<ul class="support-sidebar-list">
 | |
| 				<li><a href="http://codeermeneer.nl/cau_poll/" target="_blank"><?php _e( 'Give feedback', 'companion-auto-update' ); ?></a></li>
 | |
| 				<li><a href="https://codeermeneer.nl/blog/companion-auto-update-and-its-future/" target="_blank"><?php _e( 'Feature To-Do List', 'companion-auto-update' ); ?></a></li>
 | |
| 				<li><a href="https://translate.wordpress.org/projects/wp-plugins/companion-auto-update/" target="_blank"><?php _e( 'Help us translate', 'companion-auto-update' ); ?></a></li>
 | |
| 			</ul>
 | |
| 		</div>
 | |
| 		<div class="welcome-column welcome-column.welcome-column-half">
 | |
| 			<h3 class="support-sidebar-title"><?php _e( 'Developer?', 'companion-auto-update' ); ?></h3>
 | |
| 			<ul class="support-sidebar-list">
 | |
| 				<li><a href="https://codeermeneer.nl/documentation/auto-update/" target="_blank"><?php _e( 'Documentation' ); ?></a></li>
 | |
| 			</ul>
 | |
| 		</div>
 | |
| 	</div>
 | |
| 
 | |
| 	<div class="welcome-to-cau support-bg cau-dashboard-box">
 | |
| 		<div class="welcome-column welcome-column">
 | |
| 			<h3><?php _e('Support', 'companion-auto-update');?></h3>
 | |
| 			<p><?php _e('Feel free to reach out to us if you have any questions or feedback.', 'companion-auto-update'); ?></p>
 | |
| 			<p><a href="https://codeermeneer.nl/contact/" target="_blank" class="button button-primary"><?php _e( 'Contact us', 'companion-auto-update' ); ?></a></p>
 | |
| 			<p><a href="https://codeermeneer.nl/plugins/" target="_blank" class="button button-alt"><?php _e('Check out our other plugins', 'companion-auto-update');?></a></p>
 | |
| 		</div>
 | |
| 	</div>
 | |
| 
 | |
| 	<div class="welcome-to-cau love-bg cau-show-love cau-dashboard-box">
 | |
| 		<h3><?php _e( 'Like our plugin?', 'companion-auto-update' ); ?></h3>
 | |
| 		<p><?php _e('Companion Auto Update is free to use. It has required a great deal of time and effort to develop and you can help support this development by making a small donation.<br />You get useful software and we get to carry on making it better.', 'companion-auto-update'); ?></p>
 | |
| 		<a href="https://wordpress.org/support/plugin/companion-auto-update/reviews/#new-post" target="_blank" class="button button-alt button-hero">
 | |
| 			<?php _e('Rate us (5 stars?)', 'companion-auto-update'); ?>
 | |
| 		</a>
 | |
| 		<a href="<?php echo cau_donateUrl(); ?>" target="_blank" class="button button-primary button-hero">
 | |
| 			<?php _e('Donate to help development', 'companion-auto-update'); ?>
 | |
| 		</a>
 | |
| 		<p style="font-size: 12px; color: #BDBDBD;"><?php _e( 'Donations via PayPal. Amount can be changed.', 'companion-auto-update'); ?></p>
 | |
| 	</div>
 | |
| 
 | |
| 	<div class="welcome-to-cau cau-dashboard-box">
 | |
| 		<h3><span style='background: #EBE3F7; color: #BCADD3; padding: 1px 5px; border-radius: 3px; font-size: .8em'>Plugin Promotion</span></h3>
 | |
| 		<h3>Keep your site fast with our Revision Manager</h3>
 | |
| 		<p>Post Revisions are great, but will also slow down your site. Take back control over revisions with Companion Revision Manager!</p>
 | |
| 		<a href="https://codeermeneer.nl/portfolio/plugin/companion-revision-manager/" target="_blank" class="button button-alt">Read more</a>
 | |
| 	</div>
 | |
| 
 | |
| </div>
 | |
| 
 | |
| <style>
 | |
| .disabled_option {
 | |
| 	opacity: .5;
 | |
| }
 | |
| </style>
 | |
| 
 | |
| <script type="text/javascript">
 | |
| 	
 | |
| 	jQuery( '#update_delay' ).change( function() {
 | |
| 		jQuery( '#update_delay_days_block' ).toggleClass( 'disabled_option' );
 | |
| 	});
 | |
| 	
 | |
| 	jQuery( '.interval_scheduler' ).change( function() {
 | |
| 
 | |
| 		var selected 	= jQuery(this).val(); // Selected value
 | |
| 		var timeblock 	= jQuery(this).data( 'timeblock' ); // Corresponding time block
 | |
| 
 | |
| 		if( selected == 'daily' ) {
 | |
| 			jQuery( '.timeblock-'+timeblock ).show();
 | |
| 		} else {
 | |
| 			jQuery( '.timeblock-'+timeblock ).hide();
 | |
| 		}
 | |
| 
 | |
| 	});
 | |
| 	
 | |
| 	jQuery( '.interval_scheduler' ).each( function() {
 | |
| 
 | |
| 		var selected 	= jQuery(this).val(); // Selected value
 | |
| 		var timeblock 	= jQuery(this).data( 'timeblock' ); // Corresponding time block
 | |
| 
 | |
| 		if( selected == 'daily' ) {
 | |
| 			jQuery( '.timeblock-'+timeblock ).show();
 | |
| 		} else {
 | |
| 			jQuery( '.timeblock-'+timeblock ).hide();
 | |
| 		}
 | |
| 
 | |
| 	});
 | |
| 
 | |
| </script>
 |