The following code will be triggered once daily and will send an email reminder with a custom message on unpaid orders (for "on-hold" order status) : add_action ( 'restrict_manage_posts' , 'on_hold_payment_reminder' ); function on_hold_payment_reminder () { global $pagenow , $post_type ; if ( 'shop_order' === $post_type && 'edit.php' === $pagenow && get_option ( 'unpaid_orders_reminder_daily_process' ) < time () ) : $days_delay = 2 ; // 48 hours $one_day = 24 * 60 * 60 ; $today = strtotime ( date ( 'Y-m-d' ) ); $unpaid_orders = ( array ) wc_get_orders ( array ( 'limit' => - 1 , 'status' => 'on-hold' , 'date_created' => '<' . ( $today - ( $days_delay * $one_day ) ), ) ); if ( sizeof ( $unpaid_orders ) > 0...