PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.7
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.7
4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 4.2.0 4.2.1 All 138 releases
learnpress / inc / Databases / UserItemsDB.php

UserItemsDB.php in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.4.7, at inc/Databases/UserItemsDB.php

113 lines 3.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace LearnPress\Databases;
4
5 use Exception;
6 use LearnPress\Filters\UserItemsFilter;
7 use LP_Helper;
8
9 defined( 'ABSPATH' ) || exit();
10
11 /**
12 * Class UserItemsDB
13 *
14 * @since 4.2.9.3
15 * @version 1.0.0
16 */
17 class UserItemsDB extends DataBase {
18 private static $_instance;
19
20 protected function __construct() {
21 parent::__construct();
22 }
23
24 public static function getInstance() {
25 if ( is_null( self::$_instance ) ) {
26 self::$_instance = new self();
27 }
28
29 return self::$_instance;
30 }
31
32 /**
33 * Get users items
34 *
35 * @return array|null|int|string
36 * @throws Exception
37 * @since 4.1.6.9
38 * @version 1.0.4
39 */
40 public function get_user_items( UserItemsFilter $filter, int &$total_rows = 0 ) {
41 $filter->fields = array_merge( $filter->all_fields, $filter->fields );
42
43 if ( empty( $filter->collection ) ) {
44 $filter->collection = $this->tb_lp_user_items;
45 }
46
47 if ( empty( $filter->collection_alias ) ) {
48 $filter->collection_alias = 'ui';
49 }
50
51 if ( isset( $filter->ref_id ) ) {
52 $filter->where[] = $this->wpdb->prepare( 'AND ui.ref_id = %d', $filter->ref_id );
53 }
54
55 if ( isset( $filter->ref_type ) ) {
56 $filter->where[] = $this->wpdb->prepare( 'AND ui.ref_type = %s', $filter->ref_type );
57 }
58
59 if ( isset( $filter->user_item_id ) ) {
60 $filter->where[] = $this->wpdb->prepare( 'AND ui.user_item_id = %d', $filter->user_item_id );
61 }
62
63 // Get by user_item_ids
64 if ( ! empty( $filter->user_item_ids ) ) {
65 $user_item_ids_format = LP_Helper::db_format_array( $filter->user_item_ids );
66 $filter->where[] = $this->wpdb->prepare( 'AND ui.user_item_id IN (' . $user_item_ids_format . ')', $filter->user_item_ids );
67 }
68
69 if ( isset( $filter->user_id ) ) {
70 $filter->where[] = $this->wpdb->prepare( 'AND ui.user_id = %d', $filter->user_id );
71 }
72
73 if ( isset( $filter->item_type ) ) {
74 $filter->where[] = $this->wpdb->prepare( 'AND ui.item_type = %s', $filter->item_type );
75 }
76
77 if ( ! empty( $filter->item_ids ) ) {
78 $item_ids_format = LP_Helper::db_format_array( $filter->item_ids );
79 $filter->where[] = $this->wpdb->prepare( 'AND ui.item_id IN (' . $item_ids_format . ')', $filter->item_ids );
80 }
81
82 if ( isset( $filter->item_id ) ) {
83 $filter->where[] = $this->wpdb->prepare( 'AND ui.item_id = %s', $filter->item_id );
84 }
85
86 if ( isset( $filter->status ) ) {
87 $filter->where[] = $this->wpdb->prepare( 'AND ui.status = %s', $filter->status );
88 }
89
90 if ( ! empty( $filter->statues ) ) {
91 $statues_format = LP_Helper::db_format_array( $filter->statues );
92 $filter->where[] = $this->wpdb->prepare( 'AND ui.status IN (' . $statues_format . ')', $filter->statues );
93 }
94
95 if ( isset( $filter->graduation ) ) {
96 $filter->where[] = $this->wpdb->prepare( 'AND ui.graduation = %s', $filter->graduation );
97 }
98
99 if ( ! empty( $filter->graduations ) ) {
100 $graduations_format = LP_Helper::db_format_array( $filter->graduations );
101 $filter->where[] = $this->wpdb->prepare( 'AND ui.graduation IN (' . $graduations_format . ')', $filter->graduations );
102 }
103
104 if ( isset( $filter->parent_id ) ) {
105 $filter->where[] = $this->wpdb->prepare( 'AND ui.parent_id = %s', $filter->parent_id );
106 }
107
108 $filter = apply_filters( 'lp/user_items/query/filter', $filter );
109
110 return $this->execute( $filter, $total_rows );
111 }
112 }
113