I’m not sure how to add this functionality in a way that makes it work regardless of what CDN you happen to be using.
Does anybody know of the best WP way to purge an item from a CDN cache?
I just need somewhere in your code that I can hook into which runs after a file has been replaced. So as soon as the file has been replaced I can add in some custom code to contact CloudFlare and purge the file.
I have to admit I don’t know exactly how.
Would you test it for me? If you add:
do_action("enable-media-replace-upload-done", $new_guid);
after line 157 in upload.php (the last $returnurl statement) – does that do it for you?
That does work in that it fires the hook, but $new_guid is empty. I will need the full URL of the new file so this is important. Do you have any idea why this is not working?
I’ve done the following:
Line 158 of upload.php:
do_action("enable_media_replace_upload_done", $new_guid);
in my functions.php:
function upload_done_function( $new_guid )
{
$email = 'my@email-address.com';
wp_mail( $email, "File changed", 'I just changed the following file: ' . $new_guid . ' I will now tell CloudFlare to purge it.' );
}
add_action( 'enable_media_replace_upload_done', 'upload_done_function', 10, 1 );
I see, $new_guid is empty if you do a simple replace, without renaming the file. My mistake. Try this line instead:
do_action("enable-media-replace-upload-done", ($new_guid ? $new_guid : $current_guid));
That worked a treat, thanks. Will you be adding that to the next version? 🙂
Great!
Yes, I’ll go ahead and check in the latest version now, you should have it live within the hour. Thanks for the input!
Hi,
I actually just realised that it would be more useful to get the ID of the attachment, instead of the guid. This is so I can purge all the generated image sizes as well as the main image.
Sorry to ask after you’ve already published it, but perhaps you could change it to:
do_action(“enable-media-replace-upload-done”, $_POST[“ID”]);
Hi Mans, do you think you could make this change? Or add another hook for the ID? It’s more useful than the GUID as I can use it to replace all image sizes. Thanks!