/var/www/html_us/wp-content/plugins/woocommerce/vendor/woocommerce/blueprint/src/Cli.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
89
90
91
92
93
94
95
<?php

namespace Automattic\WooCommerce\Blueprint;

use 
Automattic\WooCommerce\Blueprint\Cli\ExportCli;
use 
Automattic\WooCommerce\Blueprint\Cli\ImportCli;

$autoload_path __DIR__ '/../vendor/autoload.php';
if ( 
file_exists$autoload_path ) ) {
    require_once 
$autoload_path;
}
/**
 * Class Cli.
 *
 * This class is included and execute from WC_CLI(class-wc-cli.php) to register
 * WP CLI commands.
 */
class Cli {
    
/**
     * Register WP CLI commands.
     *
     * @return void
     */
    
public static function register_commands() {
        
\WP_CLI::add_command(
            
'wc blueprint import',
            function ( 
$args$assoc_args ) {
                
$import = new ImportCli$args[0] );
                
$import->run$assoc_args );
            },
            array(
                
'synopsis' => array(
                    array(
                        
'type'     => 'positional',
                        
'name'     => 'schema-path',
                        
'optional' => false,
                    ),
                    array(
                        
'type'     => 'assoc',
                        
'name'     => 'show-messages',
                        
'optional' => true,
                        
'options'  => array( 'all''error''info''debug' ),
                    ),
                ),
                
'when'     => 'after_wp_load',
            )
        );

        
\WP_CLI::add_command(
            
'wc blueprint export',
            function ( 
$args$assoc_args ) {
                
$export = new ExportCli$args[0] );
                
$steps  = array();
                
$format $assoc_args['format'] ?? 'json';

                if ( isset( 
$assoc_args['steps'] ) ) {
                    
$steps array_map(
                        function ( 
$step ) {
                            return 
trim$step );
                        },
                        
explode','$assoc_args['steps'] )
                    );
                }
                
$export->run(
                    array(
                        
'steps'  => $steps,
                        
'format' => $format,
                    )
                );
            },
            array(
                
'synopsis' => array(
                    array(
                        
'type'     => 'positional',
                        
'name'     => 'save-to',
                        
'optional' => false,
                    ),
                    array(
                        
'type'     => 'assoc',
                        
'name'     => 'steps',
                        
'optional' => true,
                    ),
                    array(
                        
'type'     => 'assoc',
                        
'name'     => 'format',
                        
'optional' => true,
                        
'default'  => 'json',
                        
'options'  => array( 'json''zip' ),
                    ),
                ),
                
'when'     => 'after_wp_load',
            )
        );
    }
}