PluginProbe ʕ •ᴥ•ʔ
CloudSecure WP Security / 1.4.6
CloudSecure WP Security v1.4.6
1.4.10 1.4.9 trunk 0.9.0 1.0.2 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.19 1.3.2 1.3.20 1.3.21 1.3.22 1.3.23 1.3.24 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8
cloudsecure-wp-security / modules / cli / commands / class-cloudsecure-wp-cli-disable.php
cloudsecure-wp-security / modules / cli / commands Last commit date
class-cloudsecure-wp-cli-disable-restapi.php 8 months ago class-cloudsecure-wp-cli-disable.php 8 months ago class-cloudsecure-wp-cli-enable.php 8 months ago class-cloudsecure-wp-cli-list.php 8 months ago class-cloudsecure-wp-cli-status.php 8 months ago
class-cloudsecure-wp-cli-disable.php
118 lines
1 <?php
2 /**
3 * CloudSecure WP Security Disable Command
4 * 機能の無効化専用のコマンドクラス
5 *
6 * @package CloudSecure_WP_Security
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 if ( ! class_exists( 'WP_CLI' ) ) {
14 return;
15 }
16
17 // ベースクラスを読み込み
18 require_once dirname( __DIR__ ) . '/class-cloudsecure-wp-cli-base.php';
19
20 /**
21 * CloudSecure WP Security Disable Command
22 * 機能の無効化専用のコマンドクラス
23 */
24 class CloudSecureWP_CLI_Disable extends CloudSecureWP_CLI_Base {
25
26 /**
27 * 機能を無効化する
28 *
29 * ## EXAMPLES
30 * wp cldsec-wp-security disable disable-login
31 * wp cldsec-wp-security disable two-factor-authentication
32 *
33 * ## OPTIONS
34 * <feature> : 無効化する機能名(�
35 須)
36 *
37 * @param array $args 位置引数
38 * @param array $assoc_args 関連�
39 �列引数
40 */
41 public function __invoke( $args = array(), $assoc_args = array() ) {
42 try {
43 // �
44 �通の機能検証処理
45 $validation_result = $this->validate_feature_arguments( $args, true );
46 if ( ! $validation_result['success'] ) {
47 $this->output_error_response(
48 array(
49 'message' => $validation_result['error'],
50 )
51 );
52 return;
53 }
54
55 $feature_name = $validation_result['feature_name'];
56 $description = $validation_result['description'];
57 $feature_instance = $validation_result['feature_instance'];
58
59 // 無効化処理を実行
60 $deactivation_result = $this->deactivate_feature( $feature_instance, $feature_name );
61
62 if ( $deactivation_result['success'] ) {
63 // 成功レスポンス
64 $response_data = array(
65 'result' => 'success',
66 'message' => $description . '機能が無効になりました。',
67 );
68
69 $this->output_success_response( $response_data );
70 } else {
71 $error_message = "機能 '{$feature_name}' ({$description}) の無効化に失敗しました。";
72
73 $this->output_error_response(
74 array(
75 'message' => $error_message,
76 'error_details' => $deactivation_result['error'] ?? '詳細不明',
77 )
78 );
79 }
80 } catch ( Exception $e ) {
81 $this->output_error_response(
82 array(
83 'message' => 'コマンド実行中にエラーが発生しました: ' . $e->getMessage(),
84 )
85 );
86 }
87 }
88
89 /**
90 * 機能を無効化する
91 *
92 * @param object $feature_instance 機能インスタンス
93 * @param string $feature_name 機能名
94 * @return array 実行結果
95 */
96 private function deactivate_feature( $feature_instance, $feature_name ) {
97 try {
98 // 通常の機能の場合、deactivateメソッドを呼び出し
99 if ( method_exists( $feature_instance, 'deactivate' ) ) {
100 $feature_instance->deactivate();
101 return array(
102 'success' => true,
103 );
104 } else {
105 return array(
106 'success' => false,
107 'error' => 'deactivateメソッドが見つかりません。',
108 );
109 }
110 } catch ( Exception $e ) {
111 return array(
112 'success' => false,
113 'error' => $e->getMessage(),
114 );
115 }
116 }
117 }
118