{"id":165072,"date":"2022-11-08T18:18:06","date_gmt":"2022-11-08T18:18:06","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/crontrol-hours\/"},"modified":"2024-12-02T14:04:02","modified_gmt":"2024-12-02T14:04:02","slug":"crontrol-hours","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/crontrol-hours\/","author":17108179,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.1.0","stable_tag":"2.1.0","tested":"6.7.5","requires":"5.8","requires_php":"5.6.20","requires_plugins":null,"header_name":"Crontrol Hours","header_author":"AuRise Creative","header_description":"Take control over your CRON jobs by restricting them to your website's low traffic hours.","assets_banners_color":"a4b1a7","last_updated":"2024-12-02 14:04:02","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/just1voice.com\/donate\/","header_plugin_uri":"https:\/\/aurisecreative.com\/crontrol-hours\/","header_author_uri":"https:\/\/aurisecreative.com\/","rating":0,"author_block_rating":0,"active_installs":60,"downloads":1834,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"tessawatkinsllc","date":"2023-03-30 15:23:31"},"2.0.0":{"tag":"2.0.0","author":"tessawatkinsllc","date":"2023-03-30 23:59:40"},"2.1.0":{"tag":"2.1.0","author":"tessawatkinsllc","date":"2024-12-02 14:04:02"}},"upgrade_notice":{"2.1.0":"<p>Updates to the backend admin screen and tested up to WordPress 6.4.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2814593,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2814593,"resolution":"256x256","location":"assets","locale":""},"icon-300x300.png":{"filename":"icon-300x300.png","revision":2814593,"resolution":"300x300","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2814593,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2814593,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3200963,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/tools.php?page=crontrol-hours\",\"preferredVersions\":{\"php\":\"latest\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"login\":true,\"steps\":[{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"Crontrol Hours Demo\",\"blogdescription\":\"Demonstrating the plugin called Crontrol Hours\"}},{\"step\":\"installPlugin\",\"pluginZipFile\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"crontrol-hours\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.1.0","2.0.0","2.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2826091,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2826091,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2826091,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2826091,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":2826091,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"Plugin settings screen","2":"Plugin status screen where you can see the calculated duration of the window you set, the CRON schedules and hooks registered on your website","3":"Update Hours screen where you can perform a dry run of what events would be modified or manually run the event now","4":"An example of a dry run and what the output looks like","5":"An example of a real run and what the output looks like"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[226916,12431,215379,215378,4568],"plugin_category":[59],"plugin_contributors":[172264],"plugin_business_model":[],"class_list":["post-165072","plugin","type-plugin","status-publish","hentry","plugin_tags-after-hours","plugin_tags-business-hours","plugin_tags-limit-hours","plugin_tags-restrict-hours","plugin_tags-wp-cron","plugin_category-utilities-and-tools","plugin_contributors-tessawatkinsllc","plugin_committers-tessawatkinsllc"],"banners":{"banner":"https:\/\/ps.w.org\/crontrol-hours\/assets\/banner-772x250.png?rev=2814593","banner_2x":"https:\/\/ps.w.org\/crontrol-hours\/assets\/banner-1544x500.png?rev=2814593","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/crontrol-hours\/assets\/icon-128x128.png?rev=2814593","icon_2x":"https:\/\/ps.w.org\/crontrol-hours\/assets\/icon-256x256.png?rev=2814593","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/crontrol-hours\/assets\/screenshot-1.png?rev=2826091","caption":"Plugin settings screen"},{"src":"https:\/\/ps.w.org\/crontrol-hours\/assets\/screenshot-2.png?rev=2826091","caption":"Plugin status screen where you can see the calculated duration of the window you set, the CRON schedules and hooks registered on your website"},{"src":"https:\/\/ps.w.org\/crontrol-hours\/assets\/screenshot-3.png?rev=2826091","caption":"Update Hours screen where you can perform a dry run of what events would be modified or manually run the event now"},{"src":"https:\/\/ps.w.org\/crontrol-hours\/assets\/screenshot-4.png?rev=2826091","caption":"An example of a dry run and what the output looks like"},{"src":"https:\/\/ps.w.org\/crontrol-hours\/assets\/screenshot-5.png?rev=2826091","caption":"An example of a real run and what the output looks like"}],"raw_content":"<!--section=description-->\n<p>Take control of your CRON jobs by restricting them to your website's low traffic hours. From the admin screen, you can:<\/p>\n\n<ul>\n<li>Specify a daily window of when recurring CRON events should be triggered.<\/li>\n<li>Optionally limit events that run multiple times a day to only once a day.<\/li>\n<li>Optionally restrict events that run multiple times a day to only during your off-hours.<\/li>\n<li>Target specific schedules, including custom ones created by other plugins.<\/li>\n<li>Exclude specific CRON hooks from being affected<\/li>\n<\/ul>\n\n<h4>Benefits<\/h4>\n\n<p>Restricting your recurring CRON events to only run after hours helps with two (2) things:<\/p>\n\n<ol>\n<li>Automatic updates for WordPress core, plugins, and themes are prevented from running during your highest-traffic times so users aren't shown a maintenance page when it's the most visible.<\/li>\n<li>Less stress is placed on your server when automatic maintenance occurs during low traffic times.<\/li>\n<\/ol>\n\n<h4>Ensuring CRON Events Always Run<\/h4>\n\n<p>WordPress CRON is based on traffic, which means if your site does not see a lot of traffic, CRON events may not be triggered at the time that they are scheduled. Limiting your website's CRON events to off-hours while also depending on site traffic to trigger them may not produce the intended results. There are two (2) solutions I recommend:<\/p>\n\n<ol>\n<li><strong>Use Server CRON.<\/strong> It is recommended in the WordPress developer resources to set up your system's task scheduler to run on the desired intervals and to use that to make a web request to <code>wp-cron.php<\/code>. <a href=\"https:\/\/developer.wordpress.org\/plugins\/cron\/hooking-wp-cron-into-the-system-task-scheduler\/\">View WordPress Documentation<\/a>.<\/li>\n<li><strong>Use Cron-Job.org.<\/strong> If you can't set up your system's task scheduler, I recommend outsourcing that job to cron-job.org to automatically ping your website's <code>wp-cron.php<\/code> file. It is a free service from the German-based developers. Go to <a href=\"https:\/\/cron-job.org\/\">Cron-Job.org<\/a>.<\/li>\n<\/ol>\n\n<!--section=installation-->\n<p>There are three (3) ways to install my plugin: automatically, upload, or manually.<\/p>\n\n<h4>Install Method 1: Automatic Installation<\/h4>\n\n<p>Automatic installation is the easiest option as WordPress handles the file transfers itself and you don't need to leave your web browser.<\/p>\n\n<ol>\n<li>Log in to your WordPress dashboard.<\/li>\n<li>Navigate to <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Where it says \"Keyword\" in a dropdown, change it to \"Author\"<\/li>\n<li>In the search form, type <code>TessaWatkinsLLC<\/code> (results may begin populating as you type but my plugins will only show when the full name is there)<\/li>\n<li>Once you've found my plugin in the search results that appear, click the <strong>Install Now<\/strong> button and wait for the installation process to complete.<\/li>\n<li>Once the installation process is completed, click the <strong>Activate<\/strong> button to activate my plugin.<\/li>\n<\/ol>\n\n<h4>Install Method 2: Upload via WordPress Admin<\/h4>\n\n<p>This method involves is a little more involved. You don't need to leave your web browser, but you'll need to download and then upload the files yourself.<\/p>\n\n<ol>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/crontrol-hours\/\">Download my plugin<\/a> from WordPress.org; it will be in the form of a zip file.<\/li>\n<li>Log in to your WordPress dashboard.<\/li>\n<li>Navigate to <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Click the <strong>Upload Plugin<\/strong> button at the top of the screen.<\/li>\n<li>Select the zip file from your local file system that was downloaded in step 1.<\/li>\n<li>Click the <strong>Install Now<\/strong> button and wait for the installation process to complete.<\/li>\n<li>Once the installation process is completed, click the <strong>Activate<\/strong> button to activate it.<\/li>\n<\/ol>\n\n<h4>Install Method 3: Manual Installation<\/h4>\n\n<p>This method is the most involved as it requires you to be familiar with the process of transferring files using an SFTP client.<\/p>\n\n<ol>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/crontrol-hours\/\">Download my plugin<\/a> from WordPress.org; it will be in the form of a zip file.<\/li>\n<li>Unzip the contents; you should have a single folder named <code>crontrol-hours<\/code>.<\/li>\n<li>Connect to your WordPress server with your favorite SFTP client.<\/li>\n<li>Copy the folder from step 2 to the <code>\/wp-content\/plugins\/<\/code> folder in your WordPress directory. Once the folder and all of its files are there, installation is complete.<\/li>\n<li>Now log in to your WordPress dashboard.<\/li>\n<li>Navigate to <strong>Plugins &gt; Installed Plugins<\/strong>. You should now see my plugin in your list.<\/li>\n<li>Click the <strong>Activate<\/strong> button under my plugin to activate it.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<p>Please check out the <a href=\"https:\/\/aurisecreative.com\/docs\/crontrol-hours\/frequently-asked-questions\/?utm_source=wordpress.org&amp;utm_medium=link&amp;utm_campaign=crontrol-hours&amp;utm_content=readme\">FAQ on our website<\/a>.<\/p>\n\n<!--section=changelog-->\n<h4>2.1.0 - November 9, 2023<\/h4>\n\n<ul>\n<li>Update: updated configuration to match other AuRise Creative plugins<\/li>\n<li>Update: confirmed functionality for WordPress Core version 6.4<\/li>\n<li>Feature: added additional resources in Plugin Support block on admin page (developer documentation, FAQ, and emergency website service)<\/li>\n<li>Update: updated backend scripts to utilize defer strategy loading<\/li>\n<li>Update: updated backend script to use <code>wp_add_inline_script<\/code> instead of <code>wp_localize_script<\/code> for AJAX URL.<\/li>\n<li>Update: updated backend assets to use minified files when not debugging<\/li>\n<li>Minor: updated JS files to use <code>let<\/code> and <code>const<\/code> instead of <code>var<\/code><\/li>\n<li>Minor: updated styles for admin page<\/li>\n<li>Language: removed the <code>languages<\/code> folder and <code>Domain Path<\/code> in plugin to rely on <a href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/crontrol-hours\/\">Translating WordPress<\/a><\/li>\n<\/ul>\n\n<h4>2.0.0 - March 30, 2023<\/h4>\n\n<ul>\n<li>Feature: Added a \"Restrict Frequent\" setting that, when enabled, will restrict events that run multiple times a day to only run between the daily start and end times while maintaining their specified intervals.<\/li>\n<li>UI: Updated the appearance of the settings page<\/li>\n<li>UI: Added more information to the \"Update Hours\" tab and outputted information<\/li>\n<li>Assets: Compressed the PNG images loaded on the backend<\/li>\n<\/ul>\n\n<h4>1.1.0 - November 9, 2022<\/h4>\n\n<ul>\n<li>Feature: Added a plugin setting to explicitly exclude hooks from being automatically updated<\/li>\n<li>Feature: Added a status and fix link to the list of links on the plugin page between \"Settings\" and \"Deactivate\" to quickly navigate to those tabs from the plugins page<\/li>\n<li>Fix: Updated the CRON event that is added when the plugin is activated to take place around midnight respective to the WordPress site's timezone<\/li>\n<li>Language: Added the <code>\/languages\/<\/code> directory with the POT file to allow translations.<\/li>\n<\/ul>\n\n<h4>1.0.0 - November 3, 2022<\/h4>\n\n<ul>\n<li>Major: Submitted to WordPress.org repository!<\/li>\n<\/ul>","raw_excerpt":"Take control of your CRON jobs by restricting them to your website&#039;s low traffic hours.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/165072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=165072"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tessawatkinsllc"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=165072"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=165072"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=165072"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=165072"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=165072"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=165072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}