register(); ( new Notify() )->register(); add_action( 'rooster_lms_live_occurrence_moved', array( History::class, 'on_moved' ), 10, 3 ); add_action( 'rooster_lms_live_session_rescheduled', array( History::class, 'on_rescheduled' ), 10, 6 ); add_action( 'rooster_lms_live_session_changed', array( History::class, 'on_state' ), 10, 2 ); add_action( 'rooster_lms_live_occurrence_cancelled', array( History::class, 'on_occurrence_cancelled' ), 10, 2 ); add_action( 'rooster_lms_live_sessions_changed', array( Facets::class, 'forget' ), 10, 0 ); add_action( 'save_post_' . PostTypes::COURSE, array( Facets::class, 'forget' ), 30, 0 ); add_filter( 'render_block_rooster-lms/live-lesson', array( LessonJsonLd::class, 'append' ), 20, 3 ); add_action( 'wp_footer', array( JsonLd::class, 'print_footer' ) ); } public static function register_block(): void { $dir = BlockRegistry::build_dir() . Events::NAME; if ( ! is_file( $dir . '/block.json' ) || BlockRegistry::is_registered( Events::NAME ) ) { return; } $type = register_block_type( $dir, array( 'render_callback' => array( Events::class, 'render' ) ) ); if ( false === $type ) { return; } $handle = generate_block_asset_handle( 'rooster-lms/' . Events::NAME, 'editorScript' ); if ( wp_script_is( $handle, 'registered' ) ) { wp_set_script_translations( $handle, 'rooster-lms', ROOSTER_LMS_DIR . 'languages' ); } } public static function add_shortcode(): void { add_shortcode( Events::SHORTCODE, array( Events::class, 'shortcode' ) ); } public static function elementor_blocks( $blocks ) { if ( is_array( $blocks ) ) { $blocks[] = Events::NAME; } return $blocks; } }