How can I ping update-core.php with a script?

I have the paid Divi theme on many websites on a cPanel powered server. I use WP-CLI in a bash script to update all the plugins and themes. But Divi will never update because it only reveals an update is available when you visit wp-admin/update-core.php When you visit that main update page with a browser, you’ll see the update number next to “Updates” magically grow by +1.

What I want to do is call update-core.php so it runs one time, because after that happens, WP-CLI is able to detect the Divi update without any problem. At least this is what I think I want to do. Clearly I’m open to suggestions.

What I’ve tried so far:

This is the php script in the public web root:

<?php
define( ‘WP_ADMIN’, true );
ignore_user_abort(true);
$path = $_SERVER[‘DOCUMENT_ROOT’];
//define( ‘SHORTINIT’, true );
require( $path.’/wp-load.php’ );
require( $path.’/wp-admin/update-core.php’ );

But calling that from a browser just goes to a login screen, because it fails the current_user_can checks at the beginning of update-core.php Should I try to create a hacked version of update-core.php that has no user checks? Am I pursuing the wrong path entirely?

There was a discussion on GitHub but I was not able to get the –require feature to work with a script containing define( ‘WP_ADMIN’, true );

https://github.com/wp-cli/extension-command/issues/106

The bash script I use to bulk update is like this–

#!/bin/bash

declare -a arr=(
“account1”
“account2”
“account3”
)

for i in “${arr[@]}”
do
echo “$i”
echo ______________________________________________________
cd /home/”$i”/www
wp core update-db –allow-root
wp core update –allow-root
wp plugin update –all –allow-root
wp theme update –all –allow-root
chown -R “$i”:”$i” *
done

Read more here:: How can I ping update-core.php with a script?

Leave a Reply

Your email address will not be published. Required fields are marked *