Beta.php
1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
namespace ACP\Check;
use AC\Message\Notice;
use AC\Registerable;
use AC\Screen;
use AC\Type\Url\Site;
use AC\Type\Url\UtmTags;
use ACP\Admin\Feedback;
class Beta
implements Registerable {
/**
* @var Feedback
*/
private $feedback;
public function __construct( Feedback $feedback ) {
$this->feedback = $feedback;
}
public function register() {
add_action( 'ac/screen', [ $this, 'register_notice' ] );
}
public function render() {
echo $this->feedback->render();
}
public function scripts() {
foreach ( $this->feedback->get_assets()->all() as $asset ) {
$asset->enqueue();
}
}
public function register_notice( Screen $screen ) {
if ( ! $screen->is_list_screen() && ! $screen->is_admin_screen() ) {
return;
}
$notice = new Notice( $this->get_message() );
$notice->set_type( Notice::WARNING )
->register();
add_action( 'admin_footer', [ $this, 'render' ] );
add_action( 'admin_enqueue_scripts', [ $this, 'scripts' ] );
}
/**
* @return string
*/
protected function get_feedback_link() {
return ( new UtmTags( new Site( Site::PAGE_FORUM_BETA ), 'beta-notice' ) )->get_url();
}
/**
* @return string
*/
protected function get_message() {
return implode( ' ', [
sprintf( __( 'You are using a beta version of %s.', 'codepress-admin-columns' ), 'Admin Columns Pro' ),
sprintf( __( 'If you have feedback or have found a bug, please %s.', 'codepress-admin-columns' ),
sprintf( '<a href="#" data-ac-modal="feedback">%s</a>', __( 'leave us a message', 'codepress-admin-columns' ) )
),
] );
}
}