PluginProbe ʕ •ᴥ•ʔ
CloudSecure WP Security / 1.2.3
CloudSecure WP Security v1.2.3
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 / admin / rename-login-page.php
cloudsecure-wp-security / modules / admin Last commit date
captcha.php 2 years ago common.php 2 years ago dashboard.php 2 years ago disable-author-query.php 2 years ago disable-login.php 2 years ago disable-restapi.php 2 years ago disable-xmlrpc.php 2 years ago login-log-table.php 2 years ago login-log.php 2 years ago login-notification.php 2 years ago rename-login-page.php 2 years ago restrict-admin-page.php 2 years ago server-error-notification.php 2 years ago server-error-table.php 2 years ago two-factor-authentication-registration.php 2 years ago two-factor-authentication.php 2 years ago unify-messages.php 2 years ago update-notice.php 2 years ago
rename-login-page.php
167 lines
1 <?php
2 class CloudSecureWP_Admin_Rename_Login_Page extends CloudSecureWP_Admin_Common {
3 private $rename_login_page;
4 private $page_url;
5
6 function __construct( array $info, CloudSecureWP_Rename_Login_Page $rename_login_page ) {
7 parent::__construct( $info );
8 $this->rename_login_page = $rename_login_page;
9 $this->page_url = admin_url( 'admin.php?page=rename_login_page' );
10 $this->prepare_view_data();
11 $this->render();
12 }
13
14 /**
15 * 画面表示用のデータを準備
16 */
17 public function prepare_view_data(): void {
18 $this->datas = $this->rename_login_page->get_settings();
19
20 $is_renamed = sanitize_text_field( $_GET['renamed'] ?? '' );
21 if ( 't' === $is_renamed ) {
22 $this->messages[] = 'ログインURL変更機能が有効になりました。';
23 $this->important_messages[] = '<a href="' . site_url() . '/' . $this->datas['rename_login_page_name'] . '" target="__blank">新しいログインページURL</a>をブックマークしてください';
24
25 } elseif ( 'f' === $is_renamed ) {
26 $this->messages[] = 'ログインURL変更機能が無効になりました。';
27 }
28
29 if ( ! empty( $_POST ) && check_admin_referer( $this->rename_login_page->get_feature_key() . '_csrf' ) ) {
30
31 foreach ( $this->datas as $key => $val ) {
32
33 switch ( $key ) {
34 case 'rename_login_page':
35 $tmp = sanitize_text_field( $_POST[ $key ] ?? '' );
36 if ( ! $this->is_selected( $tmp, self::TF_VALIES ) ) {
37 $this->errors[] = '有効・無効の値が不正です';
38 }
39
40 if ( ! $this->check_environment() ) {
41 $tmp = 'f';
42 }
43
44 $this->datas[ $key ] = $tmp;
45 break;
46
47 case 'rename_login_page_name':
48 $tmp = sanitize_text_field( $_POST[ $key ] ?? '' );
49 if ( ! $tmp || ! preg_match( '/^[a-z0-9_\-]{4,12}$/', $tmp ) ) {
50 $this->errors[] = 'ログインページ名の値が不正です<br />( 半角英小文字、半角数字、ハイフン、アンダースコアが使用可能で4文字以上12文字以下で�
51 �力してください )';
52 } elseif ( $this->rename_login_page->is_duplicat_file( $tmp ) ) {
53 $this->errors[] = 'ログインページ名の値が不正です<br />( 既に存在する名称です )';
54 }
55 $this->datas[ $key ] = $tmp;
56 break;
57
58 case 'rename_login_page_disable_redirect':
59 $tmp = sanitize_text_field( $_POST[ $key ] ?? 'f' );
60 if ( ! $this->is_selected( $tmp, self::TF_VALIES ) ) {
61 $this->errors[] = 'リダイレクト設定の値が不正です';
62 }
63 $this->datas[ $key ] = $tmp;
64 break;
65 }
66 }
67
68 if ( empty( $this->errors ) ) {
69
70 $old_data = $this->rename_login_page->get_settings();
71 $this->rename_login_page->save_settings( $this->datas );
72 $logout_url = $this->page_url . '&renamed=';
73
74 if ( 't' === $this->datas['rename_login_page'] ) {
75 if ( $this->rename_login_page->update_htaccess() ) {
76 $this->messages[] = 'ログインURL変更機能が有効になりました。';
77
78 if ( $old_data['rename_login_page'] !== $this->datas['rename_login_page'] || $old_data['rename_login_page_name'] !== $this->datas['rename_login_page_name'] ) {
79 $this->rename_login_page->notification( $this->datas['rename_login_page_name'] );
80 $logout_url .= 't';
81 wp_redirect( $logout_url );
82 exit;
83 }
84 } else {
85 $this->errors[] = self::MESSAGES['error_htaccess_update'];
86 $this->errors[] = 'ログインURL変更機能が無効になりました。';
87
88 $this->datas['rename_login_page'] = 'f';
89 $this->datas['rename_login_page_name'] = $old_data['rename_login_page_name'];
90 $this->rename_login_page->save_settings( $this->datas );
91 }
92 } elseif ( $this->rename_login_page->remove_htaccess() ) {
93 $logout_url .= 'f';
94 wp_redirect( $logout_url );
95 exit;
96
97 } else {
98 $this->errors[] = self::MESSAGES['error_htaccess_update'];
99 }
100 }
101 }
102
103 $this->datas = $this->get_checked( $this->datas, array( 'rename_login_page', 'rename_login_page_disable_redirect' ) );
104 }
105
106 /**
107 * デスクリプション
108 */
109 protected function admin_description(): void {
110 ?>
111 <div class="title-block mb-12">
112 <p class="title-block-small-text">この機能のマニュアルは<a class="title-block-link" target="_blank" href="https://wpplugin.cloudsecure.ne.jp/cloudsecure_wp_security/rename_login_page.php">こちら</a></p>
113 <h1 class="title-block-title">ログインURL変更</h1>
114 </div>
115 <div class="title-bottom-text">
116 ログインURL(wp-login.php)を変更します。<br />
117 半角英小文字、半角数字、ハイフン、アンダースコアのいずれかを使用し、4文字以上12文字以下でお好みの名前(文字列)に設定できます。<br />
118 <strong>※この機能を使用するには「mod_rewrite」がサーバーにロードされている�
119 要があります。</strong>
120 </div>
121 <?php
122 }
123
124 /**
125 * ページコンテンツ
126 */
127 protected function page(): void {
128 ?>
129 <form method="post" action="<?php echo esc_url( $this->page_url ); ?>">
130 <div class="enabled-or-disabled">
131 <input class="enabled-or-disabled__btn" id="enabled" type="radio" name="rename_login_page" value="t" <?php echo esc_html( $this->datas['rename_login_page_t'] ?? '' ); ?> /><label for="enabled">有効</label>
132 <input class="enabled-or-disabled__btn" id="disabled" type="radio" name="rename_login_page" value="f" <?php echo esc_html( $this->datas['rename_login_page_f'] ?? '' ); ?> /><label for="disabled">無効</label>
133 </div>
134 <div class="box">
135 <div class="box-bottom">
136 <div class="box-row flex-start">
137 <div class="box-row-title not-label pt-12">
138 変更後のログインURL
139 </div>
140 <div class="box-row-content">
141 <div class="flex">
142 <span class="before-input"><?php echo esc_url( site_url() ); ?>/</span><input type="text" class="rename-login-page-name-input" name="rename_login_page_name" id="rename_login_page_name" value="<?php echo esc_attr( sanitize_text_field( $this->datas['rename_login_page_name'] ) ); ?>" minlength="4" maxlength="12" />
143 </div>
144 <p class="pale-text">半角英小文字、半角数字、ハイフン、アンダースコアのいずれかを使用し、4文字以上12文字以下で�
145 �力してください。</p>
146 </div>
147 </div>
148 <div class="box-row flex-start">
149 <div class="box-row-title not-label">
150 リダイレクト設定
151 </div>
152 <div class="box-row-content ">
153 <input id="redirect-checkbox" class="checkbox" type="checkbox" name="rename_login_page_disable_redirect" value="t" <?php echo esc_html( $this->datas['rename_login_page_disable_redirect_t'] ?? '' ); ?> /><label for="redirect-checkbox">管理�
154 ページからログインページにリダイレクトしない</label>
155 </div>
156 </div>
157 </div>
158 </div>
159 <div id="submit-btn-area">
160 <?php $this->nonce_wp( $this->rename_login_page->get_feature_key() ); ?>
161 <?php $this->submit_button_wp(); ?>
162 </div>
163 </form>
164 <?php
165 }
166 }
167