/var/www/html_uk/wp-content/plugins/automatewoo/includes/AdminNotices/NewWorkflowHelperManager.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
<?php

namespace AutomateWoo\AdminNotices;

use 
AutomateWoo\Admin;
use 
AutomateWoo\AdminNotices;

/**
 * Queue and display the dismissible New Workflow Helper notice on the Add New Workflow page for
 * first installs or upgrades from <5.0 to >=5.1
 *
 * @since   5.1.0
 * @package AutomateWoo\AdminNotices
 */
class NewWorkflowHelperManager {

    
/** @var string */
    
const NOTICE_ID 'new_workflow_helper';

    
/** @var string */
    
const VERSION_PRESETS_INTRODUCED '5.1';

    
/**
     * Attach callbacks.
     */
    
public static function init() {
        
add_action'automatewoo_first_installed', [ __CLASS__'maybe_add_new_workflow_helper_notice' ] );
        
add_action'automatewoo_version_changed', [ __CLASS__'maybe_add_new_workflow_helper_notice' ] );

        
add_action'automatewoo/admin_notice/' self::NOTICE_ID, [ __CLASS__'output_new_workflow_helper_notice' ] );
    }

    
/**
     * Output New Workflow Helper notice ONLY on the Add New Workflow page.
     */
    
public static function output_new_workflow_helper_notice() {
        
$screen get_current_screen();
        if ( ! 
$screen || $screen->id !== 'aw_workflow' || $screen->action !== 'add' ) {
            return;
        }

        
Admin::get_view(
            
'simple-notice',
            [
                
'notice_identifier' => self::NOTICE_ID,
                
'type'              => 'info',
                
'class'             => 'is-dismissible automatewoo-notice--new-workflow-helper',
                
'strong'            => '',
                
'message'           => sprintf(
                    
/* translators: %1$s: workflow presets opening link tag, %2$s: closing link tag, %3$s: help opening link tag, %4$s: closing link tag */
                    
__'Need help? Try out one of our <%1$s>preset workflows<%2$s> or check out the <%3$s>help center<%4$s>.''automatewoo' ),
                    
'a href="' Admin::page_url'workflow-presets' ) . '" target="_blank" data-automatewoo-link-type="presets"',
                    
'/a',
                    
'a href="' Admin::get_docs_link'''new-workflow-helper-notice' ) . '" target="_blank" data-automatewoo-link-type="docs"',
                    
'/a'
                
),
            ]
        );
    }


    
/**
     * Add the New Workflow Helper notice on first install or upgrade from <5.1 to >=5.1
     *
     * @param string|null $old_version the previously installed version for updates (or null for new installs)
     * @param string|null $new_version the new version
     */
    
public static function maybe_add_new_workflow_helper_notice$old_version null$new_version null ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
        
$is_first_install      = ! $old_version;
        
$is_applicable_upgrade version_compare$old_versionself::VERSION_PRESETS_INTRODUCED'<' );
        if ( 
$is_first_install || $is_applicable_upgrade ) {
            
AdminNotices::add_notice'new_workflow_helper' );
        }
    }
}