PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.9
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.9
4.4.9 4.4.8 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 All 140 releases
← All changes | inc/Databases/class-lp-user-item-results-db.php +205 -205 4.3.8 → 4.4.9 View file →
@@ -1,205 +1,205 @@
1 -<?php
2 -
3 -use LearnPress\Filters\UserItemsFilter;
4 -
5 -/**
6 - * Query in table learnpress_user_item_result.
7 - *
8 - * @author Nhamdv <[email protected]>
9 - */
10 -class LP_User_Items_Result_DB extends LP_Database {
11 - private static $_instance = null;
12 -
13 - protected function __construct() {
14 - parent::__construct();
15 - }
16 -
17 - /**
18 - * Get list results.
19 - *
20 - * @param [type] $user_item_id
21 - * @param integer $limit Number result in db.
22 - * @param boolean $last Remove lastest result.
23 - *
24 - * @return array result
25 - */
26 - public function get_results( $user_item_id, $limit = 3, $last = false ) {
27 - global $wpdb;
28 -
29 - if ( ! $user_item_id ) {
30 - return array();
31 - }
32 -
33 - $limit = absint( $limit ) ?? 3;
34 -
35 - $query = $wpdb->prepare(
36 - "SELECT result FROM $wpdb->learnpress_user_item_results
37 - WHERE user_item_id=%d ORDER BY id DESC LIMIT %d",
38 - $user_item_id,
39 - $limit + 1
40 - );
41 -
42 - $col = $wpdb->get_col( $query );
43 -
44 - if ( ! empty( $col ) && $last ) {
45 - unset( $col[0] );
46 - }
47 -
48 - return $col;
49 - }
50 -
51 - /**
52 - * Get latest result.
53 - *
54 - * @param integer $user_item_id
55 - *
56 - * @return array|bool
57 - */
58 - public function get_result( int $user_item_id = 0 ) {
59 - if ( ! $user_item_id ) {
60 - return false;
61 - }
62 -
63 - $result = $this->wpdb->get_var(
64 - $this->wpdb->prepare(
65 - "SELECT result FROM $this->tb_lp_user_item_results
66 - WHERE user_item_id = %d
67 - ORDER BY id DESC LIMIT 1
68 - ",
69 - $user_item_id
70 - )
71 - );
72 -
73 - return $result && is_string( $result ) ? json_decode( $result, true ) : false;
74 - }
75 -
76 - /**
77 - * Update or Insert result
78 - *
79 - * @param int $user_item_id
80 - * @param string $result
81 - *
82 - * @return bool|int
83 - */
84 - public function update( int $user_item_id = 0, string $result = '' ) {
85 - global $wpdb;
86 -
87 - if ( ! $user_item_id ) {
88 - return false;
89 - }
90 -
91 - $max_id = $wpdb->get_var(
92 - $wpdb->prepare(
93 - "SELECT MAX(id) id FROM $wpdb->learnpress_user_item_results
94 - WHERE user_item_id=%d
95 - ",
96 - $user_item_id
97 - )
98 - );
99 -
100 - $data = array( 'result' => $result );
101 - $where = array(
102 - 'id' => absint( $max_id ),
103 - 'user_item_id' => $user_item_id,
104 - );
105 - $format = array( '%s' );
106 -
107 - if ( absint( $max_id ) > 0 ) {
108 - $output = $wpdb->update( $wpdb->learnpress_user_item_results, $data, $where, $format );
109 - } else {
110 - $output = $this->insert( $user_item_id, $result );
111 - }
112 -
113 - return $output;
114 - }
115 -
116 - public function insert( $user_item_id = 0, $result = null ) {
117 - global $wpdb;
118 -
119 - if ( ! $user_item_id ) {
120 - return false;
121 - }
122 -
123 - $insert = $wpdb->insert(
124 - $wpdb->learnpress_user_item_results,
125 - array(
126 - 'user_item_id' => $user_item_id,
127 - 'result' => $result,
128 - ),
129 - array( '%d', '%s' )
130 - );
131 -
132 - if ( $insert ) {
133 - return $wpdb->insert_id;
134 - }
135 -
136 - return false;
137 - }
138 -
139 - /**
140 - * Delete all results by user_item_id.
141 - *
142 - * @param int $user_item_id .
143 - *
144 - * @return bool|int
145 - */
146 - public function delete( $user_item_id = 0 ) {
147 - if ( ! current_user_can( ADMIN_ROLE ) ) {
148 - return false;
149 - }
150 -
151 - $delete = $this->wpdb->delete(
152 - $this->tb_lp_user_item_results,
153 - array(
154 - 'user_item_id' => $user_item_id,
155 - ),
156 - array( '%d' )
157 - );
158 -
159 - return $delete;
160 - }
161 -
162 - /**
163 - * Delete all rows in user_item_ids
164 - *
165 - * @param LP_User_Items_Filter|UserItemsFilter $filter $filter->user_item_ids
166 - *
167 - * @return bool|int
168 - * @since 4.1.4
169 - * @author tungnx
170 - * @version 1.0.0
171 - */
172 - public function remove_user_item_results( $filter ) {
173 - // Check valid user.
174 - /*if ( ! is_user_logged_in() || ( ! current_user_can( 'administrator' ) && get_current_user_id() != $filter->user_id ) ) {
175 - throw new Exception( __( 'User invalid!', 'learnpress' ) );
176 - }*/
177 -
178 - if ( empty( $filter->user_item_ids ) ) {
179 - return 1;
180 - }
181 -
182 - $where = 'WHERE 1=1 ';
183 -
184 - $where .= $this->wpdb->prepare(
185 - 'AND user_item_id IN(' . LP_Helper::db_format_array( $filter->user_item_ids, '%d' ) . ')',
186 - $filter->user_item_ids
187 - );
188 -
189 - return $this->wpdb->query(
190 - "DELETE FROM {$this->tb_lp_user_item_results}
191 - {$where}
192 - "
193 - );
194 - }
195 -
196 - public static function instance() {
197 - if ( is_null( self::$_instance ) ) {
198 - self::$_instance = new self();
199 - }
200 -
201 - return self::$_instance;
202 - }
203 -}
204 -
205 -LP_User_Items_Result_DB::instance();
1 +<?php
2 +
3 +use LearnPress\Filters\UserItemsFilter;
4 +
5 +/**
6 + * Query in table learnpress_user_item_result.
7 + *
8 + * @author Nhamdv <[email protected]>
9 + */
10 +class LP_User_Items_Result_DB extends LP_Database {
11 + private static $_instance = null;
12 +
13 + protected function __construct() {
14 + parent::__construct();
15 + }
16 +
17 + /**
18 + * Get list results.
19 + *
20 + * @param [type] $user_item_id
21 + * @param integer $limit Number result in db.
22 + * @param boolean $last Remove lastest result.
23 + *
24 + * @return array result
25 + */
26 + public function get_results( $user_item_id, $limit = 3, $last = false ) {
27 + global $wpdb;
28 +
29 + if ( ! $user_item_id ) {
30 + return array();
31 + }
32 +
33 + $limit = absint( $limit ) ?? 3;
34 +
35 + $query = $wpdb->prepare(
36 + "SELECT result FROM $wpdb->learnpress_user_item_results
37 + WHERE user_item_id=%d ORDER BY id DESC LIMIT %d",
38 + $user_item_id,
39 + $limit + 1
40 + );
41 +
42 + $col = $wpdb->get_col( $query );
43 +
44 + if ( ! empty( $col ) && $last ) {
45 + unset( $col[0] );
46 + }
47 +
48 + return $col;
49 + }
50 +
51 + /**
52 + * Get latest result.
53 + *
54 + * @param integer $user_item_id
55 + *
56 + * @return array|bool
57 + */
58 + public function get_result( int $user_item_id = 0 ) {
59 + if ( ! $user_item_id ) {
60 + return false;
61 + }
62 +
63 + $result = $this->wpdb->get_var(
64 + $this->wpdb->prepare(
65 + "SELECT result FROM $this->tb_lp_user_item_results
66 + WHERE user_item_id = %d
67 + ORDER BY id DESC LIMIT 1
68 + ",
69 + $user_item_id
70 + )
71 + );
72 +
73 + return $result && is_string( $result ) ? json_decode( $result, true ) : false;
74 + }
75 +
76 + /**
77 + * Update or Insert result
78 + *
79 + * @param int $user_item_id
80 + * @param string $result
81 + *
82 + * @return bool|int
83 + */
84 + public function update( int $user_item_id = 0, string $result = '' ) {
85 + global $wpdb;
86 +
87 + if ( ! $user_item_id ) {
88 + return false;
89 + }
90 +
91 + $max_id = $wpdb->get_var(
92 + $wpdb->prepare(
93 + "SELECT MAX(id) id FROM $wpdb->learnpress_user_item_results
94 + WHERE user_item_id=%d
95 + ",
96 + $user_item_id
97 + )
98 + );
99 +
100 + $data = array( 'result' => $result );
101 + $where = array(
102 + 'id' => absint( $max_id ),
103 + 'user_item_id' => $user_item_id,
104 + );
105 + $format = array( '%s' );
106 +
107 + if ( absint( $max_id ) > 0 ) {
108 + $output = $wpdb->update( $wpdb->learnpress_user_item_results, $data, $where, $format );
109 + } else {
110 + $output = $this->insert( $user_item_id, $result );
111 + }
112 +
113 + return $output;
114 + }
115 +
116 + public function insert( $user_item_id = 0, $result = null ) {
117 + global $wpdb;
118 +
119 + if ( ! $user_item_id ) {
120 + return false;
121 + }
122 +
123 + $insert = $wpdb->insert(
124 + $wpdb->learnpress_user_item_results,
125 + array(
126 + 'user_item_id' => $user_item_id,
127 + 'result' => $result,
128 + ),
129 + array( '%d', '%s' )
130 + );
131 +
132 + if ( $insert ) {
133 + return $wpdb->insert_id;
134 + }
135 +
136 + return false;
137 + }
138 +
139 + /**
140 + * Delete all results by user_item_id.
141 + *
142 + * @param int $user_item_id .
143 + *
144 + * @return bool|int
145 + */
146 + public function delete( $user_item_id = 0 ) {
147 + if ( ! current_user_can( ADMIN_ROLE ) ) {
148 + return false;
149 + }
150 +
151 + $delete = $this->wpdb->delete(
152 + $this->tb_lp_user_item_results,
153 + array(
154 + 'user_item_id' => $user_item_id,
155 + ),
156 + array( '%d' )
157 + );
158 +
159 + return $delete;
160 + }
161 +
162 + /**
163 + * Delete all rows in user_item_ids
164 + *
165 + * @param LP_User_Items_Filter|UserItemsFilter $filter $filter->user_item_ids
166 + *
167 + * @return bool|int
168 + * @since 4.1.4
169 + * @author tungnx
170 + * @version 1.0.0
171 + */
172 + public function remove_user_item_results( $filter ) {
173 + // Check valid user.
174 + /*if ( ! is_user_logged_in() || ( ! current_user_can( 'administrator' ) && get_current_user_id() != $filter->user_id ) ) {
175 + throw new Exception( __( 'User invalid!', 'learnpress' ) );
176 + }*/
177 +
178 + if ( empty( $filter->user_item_ids ) ) {
179 + return 1;
180 + }
181 +
182 + $where = 'WHERE 1=1 ';
183 +
184 + $where .= $this->wpdb->prepare(
185 + 'AND user_item_id IN(' . LP_Helper::db_format_array( $filter->user_item_ids, '%d' ) . ')',
186 + $filter->user_item_ids
187 + );
188 +
189 + return $this->wpdb->query(
190 + "DELETE FROM {$this->tb_lp_user_item_results}
191 + {$where}
192 + "
193 + );
194 + }
195 +
196 + public static function instance() {
197 + if ( is_null( self::$_instance ) ) {
198 + self::$_instance = new self();
199 + }
200 +
201 + return self::$_instance;
202 + }
203 +}
204 +
205 +LP_User_Items_Result_DB::instance();