/**
  * Add a new item to order
  *
  * @param       $item
  * @param int   $quantity
  * @param array $meta
  *
  * @return bool
  */
 function add_item($item, $quantity = 1, $meta = array())
 {
     $item_id = learn_press_add_order_item($this->id, $item);
     if (!$item_id) {
         return false;
     }
     learn_press_add_order_item_meta($item_id, '_course_id', $item['item_id']);
     learn_press_add_order_item_meta($item_id, '_quantity', $item['quantity']);
     learn_press_add_order_item_meta($item_id, '_subtotal', $item['subtotal']);
     learn_press_add_order_item_meta($item_id, '_total', $item['total']);
     return $item_id;
 }
 /**
  * Add new course to order
  */
 static function add_item_to_order()
 {
     // ensure that user has permission
     if (!current_user_can('edit_lp_orders')) {
         die(__('Permission denied', 'learn_press'));
     }
     // verify nonce
     $nonce = learn_press_get_request('nonce');
     if (!wp_verify_nonce($nonce, 'add_item_to_order')) {
         die(__('Check nonce failed', 'learn_press'));
     }
     // validate order
     $order_id = learn_press_get_request('order_id');
     if (!is_numeric($order_id) || get_post_type($order_id) != 'lp_order') {
         die(__('Order invalid', 'learn_press'));
     }
     // validate item
     $item_id = learn_press_get_request('item_id');
     $post = get_post($item_id);
     if (!$post || 'lp_course' !== $post->post_type) {
         die(__('Course invalid', 'learn_press'));
     }
     $course = learn_press_get_course($post->ID);
     $order = learn_press_get_order($order_id);
     $item = array('course_id' => $course->id, 'name' => $course->get_title(), 'quantity' => 1, 'subtotal' => $course->get_price(), 'total' => $course->get_price());
     // Add item
     $item_id = learn_press_add_order_item($order_id, array('order_item_name' => $item['name']));
     $item['id'] = $item_id;
     // Add item meta
     if ($item_id) {
         $item = apply_filters('learn_press_ajax_order_item', $item);
         learn_press_add_order_item_meta($item_id, '_course_id', $item['course_id']);
         learn_press_add_order_item_meta($item_id, '_quantity', $item['quantity']);
         learn_press_add_order_item_meta($item_id, '_subtotal', $item['subtotal']);
         learn_press_add_order_item_meta($item_id, '_total', $item['total']);
         do_action('learn_press_ajax_add_order_item_meta', $item);
     }
     $order_data = learn_press_update_order_items($order_id);
     $currency_symbol = learn_press_get_currency_symbol($order_data['currency']);
     $order_data['subtotal_html'] = learn_press_format_price($order_data['subtotal'], $currency_symbol);
     $order_data['total_html'] = learn_press_format_price($order_data['total'], $currency_symbol);
     ob_start();
     include learn_press_get_admin_view('meta-boxes/order/order-item.php');
     $item_html = ob_get_clean();
     learn_press_send_json(array('result' => 'success', 'item_html' => $item_html, 'order_data' => $order_data));
 }