PluginProbe
WP Reset / 1.40
WP Reset v1.40
trunk 1.0 1.1 1.11 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70 1.75 1.77 1.80 1.81 1.82 1.83 1.84 1.85 1.86 1.90 All 42 releases
wp-reset / wp-reset-cli.php

wp-reset-cli.php in WP Reset 1.40, at wp-reset-cli.php

143 lines 4.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * WP Reset
4 * https://wpreset.com/
5 * (c) WebFactory Ltd, 2017-2018
6 */
7
8
9 // include only file
10 if (!defined('ABSPATH')) {
11 wp_die(__('Do not open this file directly.', 'wp-error'));
12 }
13
14
15 /**
16 * Resets the site to the default values without modifying any files.
17 */
18 class WP_Reset_CLI extends WP_CLI_Command {
19
20 /**
21 * Reset the site database to default values. No files are modified.
22 *
23 * ## OPTIONS
24 *
25 * [--reactivate-theme]
26 * : Reactivate currently active theme after reset.
27 *
28 * [--reactivate-plugins]
29 * : Reactivate all currently active plugins after reset.
30 *
31 * [--deactivate-wp-reset]
32 * : Deactivate WP Reset plugin after reset. By default it will stay active after reset.
33 *
34 * [--yes]
35 * : Answer yes to the confirmation message.
36 *
37 * ## EXAMPLES
38 *
39 * $ wp reset reset --yes
40 * Success: Database has been reset.
41 *
42 * @when after_wp_load
43 */
44 function reset( $args, $assoc_args ) {
45 WP_CLI::confirm( 'Are you sure you want to reset the site? There is NO UNDO!', $assoc_args );
46
47 global $wp_reset;
48 $params = array();
49
50 if ( !empty( $assoc_args['reactivate-theme'] ) ) {
51 $params['reactivate_theme'] = true;
52 }
53 if ( !empty( $assoc_args['disable-wp-reset'] ) ) {
54 $params['reactivate_wpreset'] = false;
55 } else {
56 $params['reactivate_wpreset'] = true;
57 }
58 if ( !empty( $assoc_args['reactivate-plugins'] ) ) {
59 $params['reactivate_plugins'] = true;
60 }
61
62 $result = $wp_reset->do_reinstall( $params );
63 if (is_wp_error($result)) {
64 WP_CLI::error( $result->get_error_message );
65 } else {
66 WP_CLI::success( 'Database has been reset.' );
67 }
68 } // reset
69
70
71 /**
72 * Display WP Reset version.
73 *
74 * @when after_wp_load
75 */
76 function version( $args, $assoc_args ) {
77 global $wp_reset;
78
79 WP_CLI::line( 'WP Reset v' . $wp_reset->version );
80 } // version
81
82
83 /**
84 * Delete selected WordPress objects.
85 *
86 * ## OPTIONS
87 *
88 * <plugins|themes|transients|uploads>
89 * : WP objects to delete.
90 *
91 * [--yes]
92 * : Answer yes to the confirmation message.
93 *
94 * ## EXAMPLES
95 *
96 * $ wp reset delete themes --yes
97 * Success: 3 themes have been deleted.
98 *
99 * @when after_wp_load
100 */
101 function delete( $args, $assoc_args ) {
102 global $wp_reset;
103
104 if ( empty( $args[0] ) ) {
105 WP_CLI::error( 'Please choose a subcommand: plugins, themes, transients or uploads.' );
106 return;
107 } elseif ( false == in_array( $args[0], array( 'themes', 'plugins', 'transients', 'uploads' ) ) ) {
108 WP_CLI::error( 'Unknown subcommand. Please choose from: plugins, themes, transients or uploads.' );
109 } else {
110 $subcommand = $args[0];
111 }
112
113 switch ($subcommand) {
114 case 'themes':
115 WP_CLI::confirm( 'Are you sure you want to delete all themes?', $assoc_args );
116 $cnt = $wp_reset->do_delete_themes( false );
117 WP_CLI::success( $cnt . ' themes have been deleted.' );
118 break;
119 case 'plugins':
120 WP_CLI::confirm( 'Are you sure you want to delete all plugins?', $assoc_args );
121 $cnt = $wp_reset->do_delete_plugins( true, false );
122 WP_CLI::success( $cnt . ' plugins have been deleted.' );
123 break;
124 case 'transients':
125 WP_CLI::confirm( 'Are you sure you want to delete all transients?', $assoc_args );
126 $cnt = $wp_reset->do_delete_transients();
127 WP_CLI::success( $cnt . ' transient database entries have been deleted.' );
128 break;
129 case 'uploads':
130 WP_CLI::confirm( 'Are you sure you want to delete all files & folders in /uploads/ folder?', $assoc_args );
131 $cnt = $wp_reset->do_delete_uploads();
132 WP_CLI::success( $cnt . ' files & folders have been deleted.' );
133 break;
134 default:
135 // should never come to this but can't hurt
136 WP_CLI::error( 'Unknown subcommand. Please choose from: plugins, themes, transients or uploads.' );
137 return;
138 }
139 } // delete
140 } // WP_Reset_CLI
141
142 WP_CLI::add_command( 'reset', 'WP_Reset_CLI' );
143