/var/www/html_uk/wp-content/plugins/automatewoo/includes/AdminNotices/WelcomeNoticeManager.php


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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php

namespace AutomateWoo\AdminNotices;

use 
AutomateWoo\AdminNotices;
use 
AutomateWoo\Workflow_Query;
use 
AutomateWoo\Admin;

/**
 * Display an admin notice on plugin update
 *
 * @since   5.1.0
 * @package AutomateWoo
 */
class WelcomeNoticeManager {
    const 
NOTICE_ID 'welcome';

    
/**
     * Attach callbacks.
     */
    
public static function init() {
        
add_action'automatewoo_first_installed', [ __CLASS__'add_admin_notice' ], 10);
        
add_action'automatewoo/admin_notice/' self::NOTICE_ID, [ __CLASS__'output_admin_notice' ] );
    }

    
/**
     * Add a welcome admin notice - generally to be called when the plugin is installed for the first time.
     */
    
public static function add_admin_notice() {
        
AdminNotices::add_notice'welcome' );
    }

    
/**
     * Determines if the notice should be removed
     *
     * @return bool True if there are any Workflows created and hence the notice is going to be removed
     */
    
public static function maybe_remove_notice() {
        
$query = new Workflow_Query();
        
$query->set_limit);

        if ( 
count$query->get_results() ) > ) {
            
AdminNotices::remove_notice'welcome' );
            return 
true;
        }

        return 
false;
    }

    
/**
     * Outputs the update notice including details about the update.
     */
    
public static function output_admin_notice() {

        if ( 
self::maybe_remove_notice() ) {
            return;
        }

        
$title       __'Welcome to AutomateWoo!''automatewoo' );
        
$description __'Create your first workflow easily with our presets, or build your own from scratch.''automatewoo' );
        
$links       = [
            [
                
'text'           => __'Browse presets''automatewoo' ),
                
'href'           => Admin::page_url'workflow-presets' ),
                
'class'          => 'button-primary',
                
'data_link_type' => 'presets',
                
'target'         => '_self',
            ],
            [
                
'text'           => __'Learn more''automatewoo' ),
                
'href'           => Admin::get_docs_link'getting-started''welcome-notice' ),
                
'class'          => 'button-secondary',
                
'data_link_type' => 'getting_started',
                
'target'         => '_blank',
            ],
        ];

        
Admin::get_view(
            
'welcome-notice',
            [
                
'notice_identifier' => self::NOTICE_ID,
                
'title'             => $title,
                
'description'       => $description,
                
'links'             => $links,
            ]
        );
    }
}