PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.13
Admin Columns v7.0.13
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 3 months ago CommentCount.php 3 months ago FirstPost.php 3 months ago FullName.php 3 months ago HasRichEditing.php 3 months ago LastPost.php 3 months ago Meta.php 3 months ago PostCount.php 3 months ago PostCountOriginal.php 3 months ago Property.php 3 months ago Roles.php 3 months ago ShowToolbar.php 3 months ago TranslatedRoles.php 3 months ago UserFilteredPostLink.php 3 months ago UserLink.php 3 months ago UserName.php 3 months 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
14 private ?array $post_type;
15
16 private ?array $post_stati;
17
18 public function __construct(?array $post_type = null, ?array $post_stati = null)
19 {
20 $this->post_type = $post_type;
21 $this->post_stati = $post_stati;
22 }
23
24 public function format(Value $value): Value
25 {
26 $post_id = $this->get_last_post((int)$value->get_id());
27
28 if ( ! $post_id) {
29 throw ValueNotFoundException::from_id($value->get_id());
30 }
31
32 return new Value($post_id);
33 }
34
35 private function get_last_post(int $user_id): ?int
36 {
37 $args = [
38 'author' => $user_id,
39 'fields' => 'ids',
40 'number' => 1,
41 ];
42
43 if ($this->post_stati) {
44 $args['post_status'] = $this->post_stati;
45 }
46
47 if ($this->post_type) {
48 $args['post_type'] = $this->post_type;
49 }
50
51 $post_id = get_posts($args)[0] ?? null;
52
53 return $post_id
54 ? (int)$post_id
55 : null;
56 }
57
58 }