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 / UserLink.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
UserLink.php
77 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\Helper;
10 use AC\Type\PostTypeSlug;
11 use AC\Type\Value;
12
13 class UserLink implements Formatter
14 {
15 private string $link_to;
16
17 private ?PostTypeSlug $post_type;
18
19 public function __construct(string $link_to, ?PostTypeSlug $post_type = null)
20 {
21 $this->link_to = $link_to;
22 $this->post_type = $post_type;
23 }
24
25 public function format(Value $value): Value
26 {
27 $user_id = (int)$value->get_id();
28
29 $user = get_userdata($user_id);
30
31 if (! $user) {
32 throw ValueNotFoundException::from_id($value->get_id());
33 }
34
35 $link = '';
36 $args = [];
37
38 switch ($this->link_to) {
39 case 'edit_user':
40 if (current_user_can('edit_users')) {
41 $link = add_query_arg('user_id', $user_id, self_admin_url('user-edit.php'));
42 }
43 break;
44 case 'view_user_posts' :
45 $args['author'] = $user_id;
46
47 if ($this->post_type) {
48 $args['post_type'] = (string)$this->post_type;
49 }
50
51 $link = add_query_arg($args, 'edit.php');
52 break;
53 case 'view_author':
54 $link = get_author_posts_url($user_id);
55
56 break;
57 case 'email_user':
58 $email = get_the_author_meta('email', $user_id);
59
60 if (! $email) {
61 throw ValueNotFoundException::from_id($value->get_id());
62 }
63
64 $link = 'mailto:' . $email;
65
66 break;
67 default:
68 return $value;
69 }
70
71 return $link
72 ? $value->with_value(Helper\Html::create()->link($link, (string)$value))
73 : $value;
74 }
75
76 }
77