// Scheduler
add_action( 'admin_notices', function() {
// Require Action Scheduler
if( ! function_exists( 'as_has_scheduled_action' ) ) {
printf(
'
<div class="notice notice-warning is-dismissible">
<p>%s</p>
</div>
', 'Expired Coupons Cleaner -- Missing Action Scheduler.'
);
return;
}
// Check Preexistence
$hook = 'ccom_delete_expired_coupons';
if( ! as_has_scheduled_action( $hook ) ) {
// Set New Schedule
as_schedule_recurring_action(
current_time( 'timestamp', 1 ),
DAY_IN_SECONDS,
$hook
);
}
} );
add_action( 'ccom_delete_expired_coupons', function() {
$args = [
'posts_per_page' => -1,
'post_type' => 'shop_coupon',
'post_status' => 'publish',
'meta_query' => [
'relation' => 'AND',
[
'key' => 'date_expires',
'value' => '',
'compare' => '!='
],
[
'key' => 'date_expires',
'value' => current_time( 'timestamp' ),
'compare' => '<='
]
]
];
$coupons = get_posts( $args );
if( ! $coupons ) {
return;
}
foreach( $coupons as $coupon ) {
wp_trash_post( $coupon->ID );
}
} );
Automatically trash expired coupons daily
Adds an Action Scheduler daily job to trash all expired coupons.
How to use
- Log into a staging, development, or locally hosted clone of your site
- Install and activate Code Snippets
- WP Admin > Snippets > Add New
- Copy and paste the code from the Description tab above
- Check to ensure formatting came over properly and no syntax errors show up in the editor
- Customize the code as desired
- Add a meaningful title
- Select whether to run on front-end or back-end (or both)
- Click “Save and Activate”
- Test your site to ensure it works
- Disable if any problems, or recover
- Repeat for live environment
License
All code snippets are licensed GPLv2 (or later) matching WordPress licensing.
Disclaimer of warranty:
Except when otherwise stated in writing the copyright holders and/or other parties provide the program as-is without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Support
- Describe the issue and what you’ve observed.
- Describe your expected outcome(s).
- List steps to reproduce the issue.
- Optionally provide screen-shot or video URLs.
