The automatic_updates_complete WordPress PHP action fires after all automatic updates have run.
Usage
add_action('automatic_updates_complete', 'your_custom_function');
function your_custom_function($update_results) {
// your custom code here
}
Parameters
$update_results(array): The results of all attempted updates.
More information
See WordPress Developer Resources: automatic_updates_complete
Examples
Log update results to a file
Logs the update results to a log file in the root directory.
add_action('automatic_updates_complete', 'log_update_results', 10, 1);
function log_update_results($update_results) {
$log_file = fopen('updates.log', 'a');
fwrite($log_file, json_encode($update_results));
fclose($log_file);
}
Send update results via email
Sends the update results to a specified email address.
add_action('automatic_updates_complete', 'email_update_results', 10, 1);
function email_update_results($update_results) {
$to = '[email protected]';
$subject = 'Automatic Update Results';
$message = json_encode($update_results);
wp_mail($to, $subject, $message);
}
Post update results to a Slack channel
Posts the update results to a specified Slack channel using a webhook.
add_action('automatic_updates_complete', 'slack_update_results', 10, 1);
function slack_update_results($update_results) {
$webhook_url = 'https://hooks.slack.com/services/your/webhook/url';
$data = array('text' => json_encode($update_results));
$options = array(
'body' => json_encode($data),
'headers' => array('Content-Type' => 'application/json'),
);
wp_remote_post($webhook_url, $options);
}
Store update results in an option
Stores the update results in a WordPress option for later use.
add_action('automatic_updates_complete', 'store_update_results', 10, 1);
function store_update_results($update_results) {
update_option('my_update_results', $update_results);
}
Display update results in admin notices
Displays the update results as admin notices in the WordPress dashboard.
add_action('automatic_updates_complete', 'show_update_results', 10, 1);
function show_update_results($update_results) {
set_transient('my_update_results_notice', $update_results, 3600);
}
add_action('admin_notices', 'display_update_results_notice');
function display_update_results_notice() {
$update_results = get_transient('my_update_results_notice');
if ($update_results) {
foreach ($update_results as $result) {
echo '<div class="notice notice-info is-dismissible">';
echo '<p>' . $result . '</p>';
echo '</div>';
}
}
}
Log Update Results
Log the results of automatic updates to a custom log file.
add_action('automatic_updates_complete', 'log_update_results');
function log_update_results($update_results) {
// Specify the log file
$log_file = WP_CONTENT_DIR . '/update_log.txt';
// Open the log file for writing
$file_handle = fopen($log_file, 'a');
// Write the update results to the log file
fwrite($file_handle, print_r($update_results, true));
// Close the log file
fclose($file_handle);
}
Send Email Notification
Send an email notification with the update results after automatic updates have completed.
add_action('automatic_updates_complete', 'send_update_email_notification');
function send_update_email_notification($update_results) {
// Email recipient and subject
$to = '[email protected]';
$subject = 'WordPress Automatic Update Results';
// Prepare the email body with the update results
$message = 'Automatic updates completed. Results:' . PHP_EOL . print_r($update_results, true);
// Send the email
wp_mail($to, $subject, $message);
}
Post Update Results to Slack
Post the update results to a Slack channel after automatic updates have completed.
add_action('automatic_updates_complete', 'post_update_results_to_slack');
function post_update_results_to_slack($update_results) {
// Slack webhook URL
$webhook_url = 'https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX';
// Prepare the Slack message
$message = 'WordPress Automatic Update Results:' . PHP_EOL . '```' . print_r($update_results, true) . '```';
// Send the message to Slack
wp_remote_post($webhook_url, array(
'body' => json_encode(array('text' => $message)),
'headers' => array('Content-Type' => 'application/json'),
));
}
Custom Update Result Handling
Perform custom actions based on the type of updates and their results.
add_action('automatic_updates_complete', 'custom_update_result_handling');
function custom_update_result_handling($update_results) {
foreach ($update_results as $result) {
// Perform custom actions for successful plugin updates
if ($result->type == 'plugin' && $result->result) {
// your custom code for successful plugin updates
}
// Perform custom actions for failed theme updates
if ($result->type == 'theme' && !$result->result) {
// your custom code for failed theme updates
}
}
}
Disable Automatic Updates for Specific Plugins
Prevent specific plugins from being updated automatically.
add_filter('auto_update_plugin', 'disable_automatic_updates_for_specific_plugins', 10, 2);
function disable_automatic_updates_for_specific_plugins($update, $item) {
// Specify the plugin slugs to exclude from automatic updates
$excluded_plugins = array(
'plugin-slug-1',
'plugin-slug-2',
'plugin-slug-3',
);
// Disable automatic updates for the specified plugins
if (in_array($item->slug, $excluded_plugins)) {
return false;
}
return $update;
}
Log Successful Updates Only
Log only successful updates to a custom log file.
add_action('automatic_updates_complete', 'log_successful_updates');
function log_successful_updates($update_results) {
// Specify the log file
$log_file = WP_CONTENT_DIR . '/successful_updates_log.txt';
// Open the log file for writing
$file_handle = fopen($log_file, 'a');
// Loop through update results and log only successful updates
foreach ($update_results as $result) {
if ($result->result) {
fwrite($file_handle, print_r($result, true));
}
}
// Close the log file
fclose($file_handle);
}