From 4f0ee46f1ee40ce68e4dbcf3c27c91ef3fb2cc1e Mon Sep 17 00:00:00 2001 From: Tungnx Date: Wed, 10 Apr 2024 18:25:27 +0700 Subject: [PATCH] = 4.2.6.5 = ~ Tweak: hook when change lp order status --- inc/user/class-lp-user-factory.php | 54 +++++++++++++++--------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/inc/user/class-lp-user-factory.php b/inc/user/class-lp-user-factory.php index 0a5b9e33d..eb9fa8f14 100644 --- a/inc/user/class-lp-user-factory.php +++ b/inc/user/class-lp-user-factory.php @@ -93,22 +93,23 @@ protected static function _update_user_item_order_pending( $order, $old_status, } foreach ( $order->get_users() as $user_id ) { + $user = learn_press_get_user( $user_id ); + foreach ( $items as $item ) { - if ( ! isset( $item['course_id'] ) ) { - continue; - } else { - do_action( 'lp/order-pending/update/user-item', $item, $order ); - } + if ( isset( $item['course_id'] ) ) { + $course_id = $item['course_id']; - $course_id = $item['course_id']; + // Check this order is the latest by user and course_id + $last_order_id = $lp_order_db->get_last_lp_order_id_of_user_course( $user_id, $course_id ); + if ( $last_order_id && $last_order_id != $order->get_id() ) { + continue; + } - // Check this order is the latest by user and course_id - $last_order_id = $lp_order_db->get_last_lp_order_id_of_user_course( $user_id, $course_id ); - if ( $last_order_id && $last_order_id != $order->get_id() ) { - continue; + $lp_user_items_db->delete_user_items_old( $user_id, $course_id ); + } else { + // For buy other item type (not course) + do_action( 'lp/order-pending/update/user-item', $item, $order, $user ); } - - $lp_user_items_db->delete_user_items_old( $user_id, $course_id ); } } } @@ -137,24 +138,23 @@ protected static function _update_user_item_order_completed( LP_Order $order, st $user = learn_press_get_user( $user_id ); foreach ( $items as $item ) { - if ( ! isset( $item['course_id'] ) || get_post_type( $item['course_id'] ) !== LP_COURSE_CPT ) { - continue; - } else { - do_action( 'lp/order-completed/update/user-item', $item, $order ); - } + if ( isset( $item['course_id'] ) && LP_COURSE_CPT === get_post_type( $item['course_id'] ) ) { + $course_id = $item['course_id']; - $course_id = $item['course_id']; - - // Check this order is the latest by user and course_id - $last_order_id = $lp_order_db->get_last_lp_order_id_of_user_course( $user->get_id(), $course_id ); - if ( $last_order_id && $last_order_id != $order->get_id() ) { - continue; - } + // Check this order is the latest by user and course_id + $last_order_id = $lp_order_db->get_last_lp_order_id_of_user_course( $user->get_id(), $course_id ); + if ( $last_order_id && $last_order_id != $order->get_id() ) { + continue; + } - if ( 'manual' === $created_via ) { - self::handle_item_manual_order_completed( $order, $user, $item ); + if ( 'manual' === $created_via ) { + self::handle_item_manual_order_completed( $order, $user, $item ); + } else { + self::handle_item_order_completed( $order, $user, $item ); + } } else { - self::handle_item_order_completed( $order, $user, $item ); + // For buy other item type (not course) + do_action( 'lp/order-completed/update/user-item', $item, $order, $user ); } } }