llms_update_450_migrate_events_open_sessions()
Record open sessions in wp_lifterlms_events_open_sessions
Return Return
(bool) True if it needs to run again, false otherwise.
Source Source
File: includes/functions/updates/llms-functions-updates-450.php
function llms_update_450_migrate_events_open_sessions() { $limit = 200; $skip = get_transient( 'llms_450_skipper_events_open_sessions' ); if ( ! $skip ) { $skip = 0; } set_transient( 'llms_450_skipper_events_open_sessions', $skip + $limit, DAY_IN_SECONDS ); global $wpdb; $maybe_open_sessions = $wpdb->get_results( $wpdb->prepare( "SELECT id, actor_id, object_id FROM {$wpdb->prefix}lifterlms_events WHERE event_type='session' AND event_action='start' ORDER BY id ASC LIMIT %d, %d ", $skip, $limit ) ); // db call ok; no-cache ok. // Finished. if ( empty( $maybe_open_sessions ) ) { set_transient( 'llms_update_450_migrate_events_open_sessions', 'complete', DAY_IN_SECONDS ); return false; } $insert = ''; foreach ( $maybe_open_sessions as $maybe_open_session ) { // Create an event instance so to pass it to the `LLMS_Sessions::instance()->is_session_open()` util. $start = new LLMS_Event( $maybe_open_session->id ); // Set the only useful properties, without the need to save them from the db. $start->set( 'actor_id', $maybe_open_session->actor_id, false ); $start->set( 'object_id', $maybe_open_session->object_id, false ); if ( LLMS_Sessions::instance()->is_session_open( $start ) ) { if ( ! empty( $insert ) ) { $insert .= ', '; } $insert .= $wpdb->prepare( '(%s)', $maybe_open_session->id ); } } // Add the open sessions to the new table. if ( ! empty( $insert ) ) { $wpdb->query( "INSERT INTO {$wpdb->prefix}lifterlms_events_open_sessions ( `event_id` ) VALUES " . $insert . ';' // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- Values are prepared above. ); // db call ok; no-cache ok. } // Needs to run again. return true; }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
4.5.0 | Introduced. |