llms_update_300_migrate_course_postmeta()
Update keys of course meta fields for consistency
Return Return
(void)
Source Source
File: includes/functions/updates/llms-functions-updates-300.php
function llms_update_300_migrate_course_postmeta() { global $wpdb; // Rekey meta fields. llms_update_util_rekey_meta( 'course', '_llms_audio_embed', '_audio_embed' ); llms_update_util_rekey_meta( 'course', '_llms_video_embed', '_video_embed' ); llms_update_util_rekey_meta( 'course', '_llms_has_prerequisite', '_has_prerequisite' ); llms_update_util_rekey_meta( 'course', '_llms_length', '_lesson_length' ); llms_update_util_rekey_meta( 'course', '_llms_capacity', '_lesson_max_user' ); llms_update_util_rekey_meta( 'course', '_llms_prerequisite', '_prerequisite' ); llms_update_util_rekey_meta( 'course', '_llms_prerequisite_track', '_prerequisite_track' ); llms_update_util_rekey_meta( 'course', '_llms_start_date', '_course_dates_from' ); llms_update_util_rekey_meta( 'course', '_llms_end_date', '_course_dates_to' ); // Updates course enrollment settings and reformats existing dates. $dates = $wpdb->get_results( "SELECT m.meta_id, m.post_id, m.meta_value FROM {$wpdb->postmeta} AS m INNER JOIN {$wpdb->posts} AS p ON p.ID = m.post_ID WHERE p.post_type = 'course' AND ( m.meta_key = '_llms_start_date' OR m.meta_key = '_llms_end_date' );" ); // db call ok; no-cache ok. foreach ( $dates as $r ) { // If no value in the field skip it otherwise we end up with start of the epoch. if ( ! $r->meta_value ) { continue; } $wpdb->update( $wpdb->postmeta, array( 'meta_value' => date( 'm/d/Y', strtotime( $r->meta_value ) ), ), array( 'meta_id' => $r->meta_id, ) ); // db call ok; no-cache ok. add_post_meta( $r->post_id, '_llms_time_period', 'yes' ); add_post_meta( $r->post_id, '_llms_course_opens_message', sprintf( __( 'This course opens on [lifterlms_course_info id="%d" key="start_date"].', 'lifterlms' ), $r->post_id ) ); add_post_meta( $r->post_id, '_llms_course_closed_message', sprintf( __( 'This course closed on [lifterlms_course_info id="%d" key="end_date"].', 'lifterlms' ), $r->post_id ) ); } // Update course capacity bool and related settings. $capacity = $wpdb->get_results( "SELECT m.post_id, m.meta_value FROM {$wpdb->postmeta} AS m INNER JOIN {$wpdb->posts} AS p ON p.ID = m.post_ID WHERE p.post_type = 'course' AND m.meta_key = '_llms_capacity';" ); // db call ok; no-cache ok. foreach ( $capacity as $r ) { if ( $r->meta_value ) { add_post_meta( $r->post_id, '_llms_enable_capacity', 'yes' ); add_post_meta( $r->post_id, '_llms_capacity_message', __( 'Enrollment has closed because the maximum number of allowed students has been reached.', 'lifterlms' ) ); } } // Convert numeric has_preqeq to "yes". $prereq = $wpdb->query( "UPDATE {$wpdb->prefix}postmeta AS m INNER JOIN {$wpdb->prefix}posts AS p ON p.ID = m.post_ID SET m.meta_value = 'yes' WHERE p.post_type = 'course' AND m.meta_key = '_llms_has_prerequisite' AND m.meta_value = 1;" ); // db call ok; no-cache ok. // Convert empty has_prereq to "no". $prereq = $wpdb->query( "UPDATE {$wpdb->prefix}postmeta AS m INNER JOIN {$wpdb->prefix}posts AS p ON p.ID = m.post_ID SET m.meta_value = 'no' WHERE p.post_type = 'course' AND m.meta_key = '_llms_has_prerequisite' AND m.meta_value = '';" ); // db call ok; no-cache ok. }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
3.0.0 | Introduced. |