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 6 days ago CommentCount.php 6 days ago FirstPost.php 6 days ago FullName.php 6 days ago HasRichEditing.php 6 days ago LastPost.php 6 days ago Meta.php 6 days ago PostCount.php 6 days ago PostCountOriginal.php 6 days ago Property.php 6 days ago Roles.php 6 days ago ShowToolbar.php 6 days ago TranslatedRoles.php 6 days ago UserFilteredPostLink.php 6 days ago UserLink.php 6 days ago UserName.php 6 days 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