llms_update_300_update_orders()
Migrate all orders from the 2.x to 3.x data structure
Contents
Return Return
(void)
Source Source
File: includes/functions/updates/llms-functions-updates-300.php
function llms_update_300_update_orders() { $args = array( 'post_type' => array( 'llms_order' ), 'posts_per_page' => -1, 'status' => 'publish', ); $orders = new WP_Query( $args ); if ( $orders->have_posts() ) { foreach ( $orders->posts as $post ) { $order = new LLMS_Order( $post ); // Add an order key. $order->set( 'order_key', $order->generate_order_key() ); $order->set( 'access_expiration', 'lifetime' ); // Add coupon used info. $coupon_used = $order->get( 'coupon_id' ) ? 'yes' : 'no'; $order->set( 'coupon_used', $coupon_used ); // Add data about the user to the order if we can find it. if ( isset( $order->user_id ) ) { $id = $order->get( 'user_id' ); if ( $id && get_user_by( 'ID', $id ) ) { $student = new LLMS_Student( $id ); $metas = array( 'billing_address_1' => 'billing_address_1', 'billing_address_2' => 'billing_address_2', 'billing_city' => 'billing_city', 'billing_country' => 'billing_country', 'billing_email' => 'user_email', 'billing_first_name' => 'first_name', 'billing_last_name' => 'last_name', 'billing_state' => 'billing_state', 'billing_zip' => 'billing_zip', ); foreach ( $metas as $ordermeta => $usermeta ) { $v = $student->$usermeta; if ( $v ) { $order->set( $ordermeta, $v ); } } } } // Setup trial info if there was a first payment recorded. if ( $order->get( 'trial_total' ) ) { $order->set( 'trial_offer', 'yes' ); $order->set( 'trial_length', $order->get( 'billing_length' ) ); $order->set( 'trial_period', $order->get( 'billing_period' ) ); $order->set( 'trial_original_total', $order->get( 'trial_total' ) ); } else { $order->set( 'trial_offer', 'no' ); } $total = $order->is_recurring() ? get_post_meta( $post->ID, '_llms_order_recurring_price', true ) : get_post_meta( $post->ID, '_llms_order_total', true ); $order->set( 'original_total', $total ); $order->set( 'total', $total ); $order->add_note( sprintf( __( 'This order was migrated to the LifterLMS 3.0 data structure. %1$sLearn more%2$s.', 'lifterlms' ), '<a href="https://lifterlms.com/docs/lifterlms-orders#migration" target="_blank">', '</a>' ) ); // Remove deprecated. delete_post_meta( $post->ID, '_llms_order_recurring_price' ); delete_post_meta( $post->ID, '_llms_order_total' ); delete_post_meta( $post->ID, '_llms_order_coupon_limit' ); delete_post_meta( $post->ID, '_llms_order_product_price' ); delete_post_meta( $post->ID, '_llms_order_billing_start_date' ); delete_post_meta( $post->ID, '_llms_order_coupon_value' ); delete_post_meta( $post->ID, '_llms_order_original_total' ); } } }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
3.0.0 | Introduced. |