delete( $wpdb->postmeta, [ 'meta_key' => $key ], [ '%s' ] ); } // ── Remove cached audio files ───────────────────────────────────────────── $upload_dir = wp_upload_dir(); $piperless_dir = $upload_dir['basedir'] . '/piperless'; if ( is_dir( $piperless_dir ) ) { $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $piperless_dir, RecursiveDirectoryIterator::SKIP_DOTS ), RecursiveIteratorIterator::CHILD_FIRST ); foreach ( $files as $file ) { if ( $file->isDir() ) { @rmdir( $file->getRealPath() ); } else { @unlink( $file->getRealPath() ); } } @rmdir( $piperless_dir ); } // ── Clear scheduled hooks ───────────────────────────────────────────────── wp_clear_scheduled_hook( 'piperless_daily_cleanup' );