PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Formatter / User / LastPost.php
codepress-admin-columns / classes / Formatter / User Last commit date
AuthorPostUrl.php 1 day ago CommentCount.php 1 day ago FirstPost.php 1 day ago FullName.php 1 day ago HasRichEditing.php 1 day ago LastPost.php 1 day ago Meta.php 1 day ago PostCount.php 1 day ago PostCountOriginal.php 1 day ago Property.php 1 day ago Roles.php 1 day ago ShowToolbar.php 1 day ago TranslatedRoles.php 1 day ago UserFilteredPostLink.php 1 day ago UserLink.php 1 day ago UserName.php 1 day ago
LastPost.php
58 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Formatter\User;
6
7 use AC\Exception\ValueNotFoundException;
8 use AC\Formatter;
9 use AC\Type\Value;
10
11 class LastPost implements Formatter
12 {
13 private ?array $post_type;
14
15 private ?array $post_stati;
16
17 public function __construct(?array $post_type = null, ?array $post_stati = null)
18 {
19 $this->post_type = $post_type;
20 $this->post_stati = $post_stati;
21 }
22
23 public function format(Value $value): Value
24 {
25 $post_id = $this->get_last_post((int)$value->get_id());
26
27 if (! $post_id) {
28 throw ValueNotFoundException::from_id($value->get_id());
29 }
30
31 return new Value($post_id);
32 }
33
34 private function get_last_post(int $user_id): ?int
35 {
36 $args = [
37 'author' => $user_id,
38 'fields' => 'ids',
39 'number' => 1,
40 ];
41
42 if ($this->post_stati) {
43 $args['post_status'] = $this->post_stati;
44 }
45
46 if ($this->post_type) {
47 $args['post_type'] = $this->post_type;
48 }
49
50 $post_id = get_posts($args)[0] ?? null;
51
52 return $post_id
53 ? (int)$post_id
54 : null;
55 }
56
57 }
58