Manage Wordpress Cron

How To Edit and Delete WordPress Cron Jobs

Table of Contents

Cron is a Unix/Linux utility that is usually used to schedule background commands or scripts on a web server. A cron job is a task that is used to schedule tasks at regular intervals, such as hours, dates, or intervals. These typically involve time-consuming routine activities that are automated to save time. WP-Cron, which is used to simulate a machine cron in WordPress, takes care of this.

Since WordPress has to run on a variety of devices, operating systems, and configurations, it can't depend on the server's cronjob service to manage scheduled tasks. This is why WordPress developers invented a workaround: when someone loads a tab, the wp-cron.php file in your main WordPress folder is executed. It then checks to see if there is a scheduled task that needs to be performed and, if so, executes it.

A WordPress cron job may be used to schedule the publication of a post or to run a backup plugin on a set schedule. We'll look at how to easily build, alter, and run a WordPress cron job today.

What is WordPress Cron?

WordPress has its own cron framework for tasks like searching for notifications, preparing a post for release, and removing trash comments. WP-Cron is in charge of all cron work.

Although the name (and the main idea) was inspired by UNIX cron, WP-Cron does not function in the same way and instead uses intervals to schedule tasks. Hourly, twice daily, daily, and weekly are the default time intervals given by WordPress. The time-based tasks here are dependent on users visiting your site, so WP-Cron will only run if anyone visits your site.

WP-Cron, in other words, is enabled when the page loads. Many users choose a server-level cron job over the WP-Cron job because this isn't always accurate.

I'll teach you how to handle WordPress cron jobs and set up a real cron job for your WordPress site in this post.

What is a WordPress Cron Job and How To Manage It?

There are many methods for setting up and handling WordPress cron work, but I'll show you two of the most common ones.

The first employs a cron management plugin such as WP Crontrol, which lets you add, change, and control WordPress cron jobs directly from the WordPress dashboard. You can also set up a cron job, construct hooks and functions, and set custom task time intervals.

The second choice is to use the WordPress CLI.

How to Use a Plugin to Manage WordPress Cron Jobs

I'll use the WP Crontrol plugin, which lets you see and access WP cron jobs for your WordPress site. It is the most common plugin for managing WP cron work, with over 100,000 active instals.
This is the best way to handle WordPress cron work, and you can view, edit, build, remove, and do a lot more with WP cron events.

So let's get this party started!

Install the WP Crontrol Plugin first.

You must install and enable WP Crontrol from the plugin repository, just like any other plugin. After it's been mounted, you'll find a new option called “Cron Events” in the Tools tab.

WP-CRON-SETTINGS

Cron Events: How to See and Understand Them

Then click Cron Events to see a list of cron events that are currently active on your WordPress application.

WP-CRON

You can run, edit, and uninstall your cron events from this section. When you hover your mouse over any cron case, you'll see this option.

You'll also find useful information about these cron jobs, such as how to easily classify which cron job is used for which task, and much more. Hook is the name of the hook used by the WordPress core or any plugin in the first column. For example, the prefix “wp” simply indicates that it is a WordPress core cron. You'll also find that there's no way to uninstall these cron events, but you can edit them and run them now. Similarly, you'll find that other prefixes are used by your plugins (for example, “wc” or “woocommerce” for WooCommerce).

Some plugins which are not coded well create cron jobs which might put high load on your server. I had experienced with one of the form plugins which created a cron job to check for updates on hourly basis and that created a lot of load on my server. After looking into the code, I found that it was not well coded. This also led me to compare and write about different types of WordPress Form Plugins.

The arguments passed to the hook functions are mentioned in the second column.

The third column indicates when this cron job will run next.

The fourth column, Action, indicates what action this cron will take (the cron job's “function”).

The cron jobs' recurrence timings are described in the last column. This is essentially the duration of the scheduled mission.

Cron Event Editor

Let's test this plugin by editing a WP cron work.

Click edit next to a hook's name. A new section named “Edit Cron Case” will appear, with various fields. I modified the “wp privacy delete old export files” hook in my case. After that, I'll change the cron job's recurrence to “Every Fifteen Minutes.”

Customizing a Time Interval

EDIT-WP-CRON

After that, I'll demonstrate how to add a custom time interval to your cron events. To do so, press the “Cron Schedule” tab, which will bring up a new screen with the specifics of the planned time intervals. Then scroll down to the bottom and click “Add Cron Schedule.” To create a cron schedule, fill in the fields and press Add Cron Schedule.

ADD-CRON-WORDPRESS

It's worth noting that the interval input is in seconds. To make the interval 10 minutes, I'll use 600 seconds.

You can now edit your cron event and replace the default interval with your own.

EDIT-WORDPRESS-CRON

Adding a New Cron Event 

Now that you know how to handle basic cron jobs, what if you want to build your own cron job for your WordPress application? Don't worry, it's really simple, and all you have to do is follow the steps below.

To start, click Add Cron Event to join the add cron section. Then give the hook whatever name you want (should follow normal PHP naming convention and no spaces).

Then, optionally, add arguments (in my case, it's blank). Then, in the Next Run area, choose any choice and enter a time. Finally, for your new cron, select a recurrence time (schedule time) and press Add Event.

ADD-WP-CRON

If you have any concerns, you can look at the settings of any currently running cron job in your cron events.

Go to the cron events tab after adding a new cron job and check your newly developed cron. You'll note that None appears in the action column (error). This is because no actions have been identified for this cron work. As a consequence, you'll need to add an action and a few lines of code to the theme's functions.php file.

CRON EVENTS

Note: Backing up the WordPress site is strongly recommended before proceeding.

Let's open the file and add the following lines of code after the <?php

add_action( 'rockin_new_cron', 'rwp_function' );
function rwp_function() {
wp_mail( 'tousif@rockinwordpress.com', 'Rockin Cron', 'Rockin WordPress!' );
}

Don't forget to substitute your own email address for mine.

EDIT THEMES WP CRON

As you can see in the picture above, I edited it directly in the WordPress dashboard. You can edit this file using an FTP client like FileZilla if you want to.

Check your email inbox to see if the message was sent. Most probably it will be there.

How to Use WP CLI to Manage WordPress Cron Jobs

You can also use the WordPress CLI to display and control all of your WordPress cron work. You must open the terminal and log in with the server credentials.

The route to your WordPress application should then be entered. The URL in my case was:

cd var/www/public_html/

Next, you need to run this command:

wp cron event list
WP CLI WP CRON

The hook term, next run time, next run relative, and recurrence are all visible (scheduled time).

How to Setup a Cron Job

You now understand what a WordPress cron work is and how it performs. What if you need to replace it with a real cron job for some purpose, such as low traffic, critical tasks that must be completed at a specific time, DDoS attacks, or a long page load time?

So let's get this party started!

Step 1: Edit the wp-config.php file.

To begin, use an FTP client such as FileZilla or an SSH client such as PuTTY to open the wp-config file. Then, before the line that says /* That's it, stop editing!, Have fun with your blogging. */ add the following line of code to the file.

define('DISABLE_WP_CRON', true);

This code disables your WordPress site's running cron events, allowing you to build a real cron job on server.

Step 2: Adding a New Cron Job on Server

To do so, go to cPanel and scroll down using your cPanel credentials. Within the Advanced section, look for the Cron Jobs option and select it.

CRON JOBS WORDPRESS

Scroll down to the Add New Cron Job section in the new window that appears. Select the recurrence time from the Common Settings list and type the following into the Command field:

wget -q -O – https://your-website-url.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Instead of the placeholder https://your-website-url.com, make sure to use the real website URL. When you're done, click Add New Cron Work.

CRON JOBS SERVER

The GNU Wget utility is included in the command we used. We recommend that you check the Wget manual to learn about all of the available commands, as this is a fairly advanced topic that needs further research.

The >/dev/null 2>&1 portion at the end of the command we used can be omitted. You may choose to leave it out because it just serves to disable email alerts for the scheduled Cron work.

Final Words

Being able to automate and plan those website activities can be extremely beneficial. You can be sure that you won't forget to run a regular task or that you won't be late if you use a WordPress Cron work. Furthermore, they will save you time, enabling you to concentrate on improving your website, using SEO tools, or just sitting back and relaxing. We hope that this article has shown that Cron jobs are not a mystery and that they are relatively simple to handle. So you can focus on more difficult tasks while Cron takes care of the minor details.

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: