This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | namespace DummyPress; |
||
3 | |||
4 | /** |
||
5 | * Class for handling CMB data |
||
6 | * |
||
7 | * @package WordPress |
||
8 | * @subpackage Evans |
||
9 | * @author Mike Selander |
||
10 | */ |
||
11 | class MetaboxValues { |
||
12 | |||
13 | /** |
||
14 | * Assigns the proper testing data to a custom metabox. |
||
15 | * |
||
16 | * Swaps through the possible types of CMB2 supported fields and |
||
17 | * insert the appropriate data based on type & id. |
||
18 | * Some types are not yet supported due to low frequency of use. |
||
19 | * |
||
20 | * @see TestContent, add_post_meta |
||
21 | * |
||
22 | * @param int $post_id Single post ID. |
||
23 | * @param array $cmb custom metabox array from CMB2. |
||
24 | */ |
||
25 | public function get_values( $post_id, $cmb, $connected ) { |
||
0 ignored issues
–
show
|
|||
26 | $value = ''; |
||
27 | |||
28 | // First check that our post ID & cmb array aren't empty |
||
29 | if ( empty( $cmb ) || empty( $post_id ) || ! is_user_logged_in() ) { |
||
30 | return; |
||
31 | } |
||
32 | |||
33 | // Fetch the appropriate type of data and return |
||
34 | switch( $cmb['type'] ) { |
||
35 | |||
36 | case 'text': |
||
37 | case 'text_small': |
||
38 | case 'text_medium': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
39 | |||
40 | $value = $this->text( $cmb ); |
||
41 | |||
42 | break; |
||
43 | |||
44 | case 'text_url': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
45 | |||
46 | $value = $this->url( $cmb ); |
||
47 | |||
48 | break; |
||
49 | |||
50 | case 'text_email' : |
||
0 ignored issues
–
show
There must be no space before the colon in a CASE statement
As per the PSR-2 coding standard, there must not be a space in front of the colon in case statements. switch ($selector) {
case "A": //right
doSomething();
break;
case "B" : //wrong
doSomethingElse();
break;
}
To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
51 | case 'email': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
52 | |||
53 | $value = $this->email( $cmb ); |
||
54 | |||
55 | break; |
||
56 | |||
57 | case 'number' : |
||
0 ignored issues
–
show
There must be no space before the colon in a CASE statement
As per the PSR-2 coding standard, there must not be a space in front of the colon in case statements. switch ($selector) {
case "A": //right
doSomething();
break;
case "B" : //wrong
doSomethingElse();
break;
}
To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
58 | case 'text_money': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
59 | |||
60 | $value = $this->number( $cmb ); |
||
61 | |||
62 | break; |
||
63 | |||
64 | case 'text_time': |
||
65 | case 'time': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
66 | |||
67 | $value = $this->time( $cmb ); |
||
68 | |||
69 | break; |
||
70 | |||
71 | case 'select_timezone': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
72 | |||
73 | $value = $this->timezone( $cmb ); |
||
74 | |||
75 | break; |
||
76 | |||
77 | case 'text_date': |
||
78 | case 'date': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
79 | |||
80 | $value = $this->date( $cmb ); |
||
81 | |||
82 | break; |
||
83 | |||
84 | case 'text_date_timestamp': |
||
85 | case 'text_datetime_timestamp': |
||
86 | case 'date_unix': |
||
87 | case 'datetime_unix': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
88 | |||
89 | $value = $this->timestamp( $cmb ); |
||
90 | |||
91 | break; |
||
92 | |||
93 | // case 'text_datetime_timestamp_timezone': break; |
||
0 ignored issues
–
show
Unused Code
Comprehensibility
introduced
by
63% of this comment could be valid code. Did you maybe forget this after debugging?
Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it. The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production. This check looks for comments that seem to be mostly valid code and reports them. ![]() |
|||
94 | |||
95 | case 'test_colorpicker': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
96 | |||
97 | $value = $this->color( $cmb ); |
||
98 | |||
99 | break; |
||
100 | |||
101 | case 'textarea': |
||
102 | case 'textarea_small': |
||
103 | case 'textarea_code': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
104 | |||
105 | $value = $this->textarea( $cmb ); |
||
106 | |||
107 | break; |
||
108 | |||
109 | case 'select': |
||
110 | case 'radio_inline': |
||
111 | case 'radio': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
112 | |||
113 | $value = $this->radio( $cmb ); |
||
114 | |||
115 | break; |
||
116 | |||
117 | // case 'taxonomy_radio': break; |
||
0 ignored issues
–
show
Unused Code
Comprehensibility
introduced
by
63% of this comment could be valid code. Did you maybe forget this after debugging?
Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it. The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production. This check looks for comments that seem to be mostly valid code and reports them. ![]() |
|||
118 | // case 'taxonomy_select': break; |
||
0 ignored issues
–
show
Unused Code
Comprehensibility
introduced
by
63% of this comment could be valid code. Did you maybe forget this after debugging?
Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it. The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production. This check looks for comments that seem to be mostly valid code and reports them. ![]() |
|||
119 | // case 'taxonomy_multicheck': break; |
||
0 ignored issues
–
show
Unused Code
Comprehensibility
introduced
by
63% of this comment could be valid code. Did you maybe forget this after debugging?
Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it. The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production. This check looks for comments that seem to be mostly valid code and reports them. ![]() |
|||
120 | |||
121 | case 'checkbox': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
122 | |||
123 | if ( isset( $cmb['source'] ) && 'acf' === $cmb['source'] ) { |
||
124 | $value = $this->multicheck( $cmb ); |
||
125 | } else { |
||
126 | $value = $this->checkbox( $cmb ); |
||
127 | } |
||
128 | |||
129 | break; |
||
130 | |||
131 | case 'multicheck': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
132 | |||
133 | $value = $this->multicheck( $cmb ); |
||
134 | |||
135 | break; |
||
136 | |||
137 | case 'wysiwyg': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
138 | |||
139 | $value = $this->wysiwyg( $cmb ); |
||
140 | |||
141 | break; |
||
142 | |||
143 | case 'file': |
||
144 | case 'image': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
145 | |||
146 | $value = $this->file( $cmb, $post_id, $connected ); |
||
147 | |||
148 | break; |
||
149 | |||
150 | // case 'file_list': break; |
||
0 ignored issues
–
show
Unused Code
Comprehensibility
introduced
by
63% of this comment could be valid code. Did you maybe forget this after debugging?
Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it. The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production. This check looks for comments that seem to be mostly valid code and reports them. ![]() |
|||
151 | |||
152 | case 'oembed': |
||
0 ignored issues
–
show
The case body in a switch statement must start on the line following the statement.
According to the PSR-2, the body of a case statement must start on the line immediately following the case statement. switch ($expr) {
case "A":
doSomething(); //right
break;
case "B":
doSomethingElse(); //wrong
break;
} To learn more about the PSR-2 coding standard, please refer to the PHP-Fig. ![]() |
|||
153 | |||
154 | $value = $this->oembed( $cmb ); |
||
155 | |||
156 | break; |
||
157 | |||
158 | } |
||
159 | |||
160 | // Value must exist to attempt to insert |
||
161 | if ( ! empty( $value ) && ! is_wp_error( $value ) ) { |
||
162 | |||
163 | $this->update_meta( $post_id, $value, $cmb ); |
||
164 | |||
165 | // If we're dealing with a WP Error object, just return the message for debugging |
||
166 | } elseif ( is_wp_error( $value ) ) { |
||
167 | |||
168 | return $value->get_error_message(); |
||
169 | |||
170 | } |
||
171 | |||
172 | } // end get_values |
||
173 | |||
174 | |||
175 | /** |
||
176 | * Pulls a text string for CMB field. |
||
177 | * |
||
178 | * @see TestContent |
||
179 | * |
||
180 | * @param array $cmb Metabox data |
||
181 | * @return string cmb value |
||
182 | */ |
||
183 | private function text( $cmb ) { |
||
184 | |||
185 | // If phone is in the id, fetch a phone # |
||
186 | if ( stripos( $cmb['id'], 'phone' ) ) { |
||
187 | $value = TestContent::phone(); |
||
188 | |||
189 | // If email is in the id, fetch an email address |
||
190 | } elseif ( stripos( $cmb['id'], 'email' ) ) { |
||
191 | $value = TestContent::email(); |
||
192 | |||
193 | // If time is in the id, fetch a time string |
||
194 | } elseif ( stripos( $cmb['id'], 'time' ) ) { |
||
195 | $value = TestContent::time(); |
||
196 | |||
197 | // If company|organization is in the ID, fetch a company name |
||
198 | } elseif ( stripos( $cmb['id'], 'company' ) || stripos( $cmb['id'], 'organization' ) ) { |
||
199 | $value = TestContent::organization(); |
||
200 | |||
201 | // Otherwise, just a random text string |
||
202 | } else { |
||
203 | $value = TestContent::title( rand( 10, 50 ) ); |
||
204 | } |
||
205 | |||
206 | View Code Duplication | if ( 'acf' === $cmb['source'] && ! empty( $cmb['extras']->chars ) ) { |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
207 | $value = substr( $value, 0, $cmb['extras']->chars ); |
||
208 | } |
||
209 | |||
210 | return $value; |
||
211 | |||
212 | } |
||
213 | |||
214 | |||
215 | /** |
||
216 | * Pulls a URL value CMB field. |
||
217 | * |
||
218 | * @see TestContent |
||
219 | * |
||
220 | * @param array $cmb Metabox data |
||
221 | * @return string cmb value |
||
222 | */ |
||
223 | private function url( $cmb ) { |
||
0 ignored issues
–
show
|
|||
224 | |||
225 | return TestContent::link(); |
||
226 | |||
227 | } |
||
228 | |||
229 | |||
230 | /** |
||
231 | * Pulls an email address for CMB field. |
||
232 | * |
||
233 | * @see TestContent |
||
234 | * |
||
235 | * @param array $cmb Metabox data |
||
236 | * @return string cmb value |
||
237 | */ |
||
238 | private function email( $cmb ) { |
||
0 ignored issues
–
show
|
|||
239 | |||
240 | return TestContent::email(); |
||
241 | |||
242 | } |
||
243 | |||
244 | |||
245 | /** |
||
246 | * Pulls a random valnumberue for CMB field. |
||
247 | * |
||
248 | * @param array $cmb Metabox data |
||
249 | * @return int cmb value |
||
250 | */ |
||
251 | private function number( $cmb ) { |
||
252 | |||
253 | $min = 1; |
||
254 | $max = 10000000; |
||
255 | |||
256 | View Code Duplication | if ( 'acf' == $cmb['source'] && ! empty( $cmb['extras']->min ) ) { |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
257 | $min = $cmb['extras']->min; |
||
258 | } |
||
259 | |||
260 | View Code Duplication | if ( 'acf' == $cmb['source'] && ! empty( $cmb['extras']->max ) ) { |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
261 | $max = $cmb['extras']->max; |
||
262 | } |
||
263 | |||
264 | return rand( $min, $max ); |
||
265 | |||
266 | } |
||
267 | |||
268 | |||
269 | /** |
||
270 | * Pulls a time of day for CMB field. |
||
271 | * |
||
272 | * @see TestContent |
||
273 | * |
||
274 | * @param array $cmb Metabox data |
||
275 | * @return string cmb value |
||
276 | */ |
||
277 | private function time( $cmb ) { |
||
0 ignored issues
–
show
|
|||
278 | |||
279 | return TestContent::time(); |
||
280 | |||
281 | } |
||
282 | |||
283 | |||
284 | /** |
||
285 | * Pulls a timezone for CMB field. |
||
286 | * |
||
287 | * @see TestContent |
||
288 | * |
||
289 | * @param array $cmb Metabox data |
||
290 | * @return string cmb value |
||
291 | */ |
||
292 | private function timezone( $cmb ) { |
||
0 ignored issues
–
show
|
|||
293 | |||
294 | return TestContent::timezone(); |
||
295 | |||
296 | } |
||
297 | |||
298 | |||
299 | /** |
||
300 | * Pulls a date for CMB field. |
||
301 | * |
||
302 | * @see TestContent |
||
303 | * |
||
304 | * @param array $cmb Metabox data |
||
305 | * @return string cmb value |
||
306 | */ |
||
307 | private function date( $cmb ) { |
||
0 ignored issues
–
show
|
|||
308 | |||
309 | return TestContent::date( 'm/d/Y' ); |
||
310 | |||
311 | } |
||
312 | |||
313 | |||
314 | /** |
||
315 | * Pulls a timestamp for CMB field. |
||
316 | * |
||
317 | * @see TestContent |
||
318 | * |
||
319 | * @param array $cmb Metabox data |
||
320 | * @return string cmb value |
||
321 | */ |
||
322 | private function timestamp( $cmb ) { |
||
0 ignored issues
–
show
|
|||
323 | |||
324 | return TestContent::date( 'U' ); |
||
325 | |||
326 | } |
||
327 | |||
328 | |||
329 | /** |
||
330 | * Pulls a random hexadecimal color code for CMB field. |
||
331 | * |
||
332 | * @param array $cmb Metabox data |
||
333 | * @return string cmb value |
||
334 | */ |
||
335 | private function color( $cmb ) { |
||
0 ignored issues
–
show
|
|||
336 | |||
337 | return '#' . str_pad( dechex( mt_rand( 0, 0xFFFFFF ) ), 6, '0', STR_PAD_LEFT ); |
||
338 | |||
339 | } |
||
340 | |||
341 | |||
342 | /** |
||
343 | * Pulls a long text string for CMB field. |
||
344 | * |
||
345 | * @see TestContent |
||
346 | * |
||
347 | * @param array $cmb Metabox data |
||
348 | * @return string cmb value |
||
349 | */ |
||
350 | private function textarea( $cmb ) { |
||
351 | |||
352 | $value = TestContent::plain_text(); |
||
353 | |||
354 | View Code Duplication | if ( 'acf' == $cmb['source'] && ! empty( $cmb['extras']->chars ) ) { |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
355 | $value = substr( $value, 0, $cmb['extras']->chars ); |
||
356 | } |
||
357 | |||
358 | return $value; |
||
359 | |||
360 | } |
||
361 | |||
362 | |||
363 | /** |
||
364 | * Pulls a random radio field value for CMB field. |
||
365 | * |
||
366 | * @see TestContent |
||
367 | * |
||
368 | * @param array $cmb Metabox data |
||
369 | * @return string cmb value |
||
370 | */ |
||
371 | private function radio( $cmb ) { |
||
372 | |||
373 | // Grab a random item out of the array and return the key |
||
374 | $new_val = array_slice( $cmb['options'], rand( 0, count( $cmb['options'] ) ), 1 ); |
||
375 | $value = key( $new_val ); |
||
376 | |||
377 | return $value; |
||
378 | |||
379 | } |
||
380 | |||
381 | |||
382 | /** |
||
383 | * Pulls a random checkbox field value for CMB field. |
||
384 | * |
||
385 | * @see TestContent |
||
386 | * |
||
387 | * @param array $cmb Metabox data |
||
388 | * @return string cmb value |
||
389 | */ |
||
390 | private function checkbox( $cmb ) { |
||
0 ignored issues
–
show
|
|||
391 | $value = ''; |
||
392 | |||
393 | // 50/50 odds of being turned on |
||
394 | if ( rand( 0, 1 ) == 1 ) { |
||
395 | $value = 'on'; |
||
396 | } |
||
397 | |||
398 | return $value; |
||
399 | |||
400 | } |
||
401 | |||
402 | |||
403 | /** |
||
404 | * Pulls a random multicheck field value for CMB field. |
||
405 | * |
||
406 | * @see TestContent |
||
407 | * |
||
408 | * @param array $cmb Metabox data |
||
409 | * @return array cmb value |
||
410 | */ |
||
411 | private function multicheck( $cmb ) { |
||
412 | |||
413 | $new_option = array(); |
||
414 | |||
415 | // Loop through each of our options |
||
416 | foreach ( $cmb['options'] as $key => $value ) { |
||
417 | |||
418 | // 50/50 chance of being included |
||
419 | if ( rand( 0, 1 ) ) { |
||
420 | $new_option[] = $key; |
||
421 | } |
||
422 | |||
423 | } |
||
424 | |||
425 | return $new_option; |
||
426 | |||
427 | } |
||
428 | |||
429 | |||
430 | /** |
||
431 | * Pulls an HTML paragraph string for CMB field. |
||
432 | * |
||
433 | * @see TestContent |
||
434 | * |
||
435 | * @param array $cmb Metabox data |
||
436 | * @return string cmb value |
||
437 | */ |
||
438 | private function wysiwyg( $cmb ) { |
||
0 ignored issues
–
show
|
|||
439 | |||
440 | return TestContent::paragraphs(); |
||
441 | |||
442 | } |
||
443 | |||
444 | |||
445 | /** |
||
446 | * Pulls an image URL for CMB field. |
||
447 | * |
||
448 | * @see TestContent |
||
449 | * |
||
450 | * @param array $cmb Metabox data |
||
451 | * @param int $post_id Post ID |
||
452 | * @param bool $connected Whether we're connected to the Internets or not |
||
453 | * @return mixed string|object cmb value or WP_Error object |
||
454 | */ |
||
455 | private function file( $cmb, $post_id, $connected ) { |
||
0 ignored issues
–
show
|
|||
456 | $value = ''; |
||
457 | |||
458 | if ( true === $connected ) { |
||
459 | $value = TestContent::image( $post_id ); |
||
460 | } |
||
461 | |||
462 | return $value; |
||
463 | |||
464 | } |
||
465 | |||
466 | |||
467 | /** |
||
468 | * Pulls an Oembed URL for CMB field. |
||
469 | * |
||
470 | * @see TestContent |
||
471 | * |
||
472 | * @param array $cmb Metabox data |
||
473 | * @return string cmb value |
||
474 | */ |
||
475 | private function oembed( $cmb ) { |
||
0 ignored issues
–
show
|
|||
476 | |||
477 | return TestContent::oembed(); |
||
478 | |||
479 | } |
||
480 | |||
481 | |||
482 | /** |
||
483 | * Update the metabox with new data. |
||
484 | * |
||
485 | * @access private |
||
486 | * |
||
487 | * @see add_post_meta |
||
488 | * |
||
489 | * @param int $post_id Post ID. |
||
490 | * @param string $value Value to add into the database. |
||
491 | * @param array $cmb SMB data. |
||
492 | */ |
||
493 | private function update_meta( $post_id, $value, $cmb ) { |
||
494 | |||
495 | $type = $cmb['type']; |
||
496 | $id = $cmb['id']; |
||
497 | $value = apply_filters( "tc_{$type}_metabox", $value ); // Filter by metabox type |
||
498 | $value = apply_filters( "tc_{$id}_metabox", $value ); // Filter by metabox ID |
||
499 | |||
500 | // Files must be treated separately - they use the attachment ID |
||
501 | // & url of media for separate cmb values. (only in cmb1 & cmb2 though) |
||
502 | if ( 'file'!== $cmb['type'] || ( 'file' === $cmb['type'] && 'cmb_hm' === $cmb['source'] ) ) { |
||
503 | add_post_meta( $post_id, $cmb['id'], $value, true ); |
||
504 | } else { |
||
505 | add_post_meta( $post_id, $cmb['id'].'_id', $value, true ); |
||
506 | add_post_meta( $post_id, $cmb['id'], wp_get_attachment_url( $value ), true ); |
||
507 | } |
||
508 | |||
509 | // Add extra, redundant meta. Because, why not have two rows for the price of one? |
||
510 | if ( isset( $cmb['source'] ) && 'acf' === $cmb['source'] ) { |
||
511 | add_post_meta( $post_id, '_' . $cmb['id'], $cmb['key'], true ); |
||
512 | } |
||
513 | |||
514 | } |
||
515 | |||
516 | } |
||
517 |
Our type inference engine in quite powerful, but sometimes the code does not provide enough clues to go by. In these cases we request you to add a
@return
annotation as described here.