/** * Update course into user's metadata if order status is "Completed" -> user enrolled course * Otherwise, remove course from user's metadata -> user hasn't enrolled course * * @param $status * @param $order_id */ function learn_press_active_user_course($status, $order_id) { $order = new LPR_Order($order_id); $user = $order->get_user(); $course_id = learn_press_get_course_by_order($order_id); $user_course_time = get_user_meta($user->ID, '_lpr_course_time', true); if (strtolower($status) == 'completed') { if (empty($user_course_time[$course_id])) { $user_course_time[$course_id] = array('start' => time(), 'end' => null); } } else { if (!empty($user_course_time[$course_id])) { unset($user_course_time[$course_id]); } } if ($user_course_time) { update_user_meta($user->ID, '_lpr_course_time', $user_course_time); } else { delete_user_meta($user->ID, '_lpr_course_time'); } }
function learn_press_on_order_status_changed($status, $order_id) { $course_id = learn_press_get_course_by_order($order_id); $user_id = get_post_meta($order_id, '_learn_press_customer_id', true); $user_courses = get_user_meta($user_id, '_lpr_user_course', true); $course_users = get_post_meta($course_id, '_lpr_course_user', true); if (strtolower($status) == 'completed') { learn_press_increment_user_enrolled($course_id); if (is_array($user_courses)) { $user_courses[] = $course_id; } else { $user_courses = array($course_id); } if (is_array($course_users)) { $course_users[] = $user_id; } else { $course_users = array($user_id); } } else { learn_press_decrement_user_enrolled($course_id); if (is_array($user_courses) && false !== ($pos = array_search($course_id, $user_courses))) { unset($user_courses[$pos]); } if (is_array($course_users) && false !== ($pos = array_search($user_id, $course_users))) { unset($course_users[$pos]); } } update_user_meta($user_id, '_lpr_user_course', $user_courses); update_post_meta($course_id, '_lpr_course_user', $course_users); }