PluginProbe ʕ •ᴥ•ʔ
CloudSecure WP Security / 0.9.0
CloudSecure WP Security v0.9.0
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 unify-messages.php 2 years ago update-notice.php 2 years ago
rename-login-page.php
171 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 } else {
53 if ( $this->rename_login_page->is_duplicat_file( $tmp ) ) {
54 $this->errors[] = 'ログインページ名の値が不正です<br />( 既に存在する名称です )';
55 }
56 }
57 $this->datas[ $key ] = $tmp;
58 break;
59
60 case 'rename_login_page_disable_redirect':
61 $tmp = sanitize_text_field( $_POST[ $key ] ?? 'f' );
62 if ( ! $this->is_selected( $tmp, self::TF_VALIES ) ) {
63 $this->errors[] = 'リダイレクト設定の値が不正です';
64 }
65 $this->datas[ $key ] = $tmp;
66 break;
67 }
68 }
69
70 if ( empty( $this->errors ) ) {
71
72 $old_data = $this->rename_login_page->get_settings();
73 $this->rename_login_page->save_settings( $this->datas );
74 $logout_url = $this->page_url . '&renamed=';
75
76 if ( 't' === $this->datas['rename_login_page'] ) {
77 if ( $this->rename_login_page->update_htaccess() ) {
78 $this->messages[] = 'ログインURL変更機能が有効になりました。';
79
80 if ( $old_data['rename_login_page'] !== $this->datas['rename_login_page'] || $old_data['rename_login_page_name'] !== $this->datas['rename_login_page_name'] ) {
81 $this->rename_login_page->notification( $this->datas['rename_login_page_name'] );
82 $logout_url .= 't';
83 wp_redirect( $logout_url );
84 exit;
85 }
86 } else {
87 $this->errors[] = self::MESSAGES['error_htaccess_update'];
88 $this->errors[] = 'ログインURL変更機能が無効になりました。';
89
90 $this->datas['rename_login_page'] = 'f';
91 $this->datas['rename_login_page_name'] = $old_data['rename_login_page_name'];
92 $this->rename_login_page->save_settings( $this->datas );
93 }
94 } else {
95 if ( $this->rename_login_page->remove_htaccess() ) {
96 $logout_url .= 'f';
97 wp_redirect( $logout_url );
98 exit;
99
100 } else {
101 $this->errors[] = self::MESSAGES['error_htaccess_update'];
102 }
103 }
104 }
105 }
106
107 $this->datas = $this->get_checked( $this->datas, array( 'rename_login_page', 'rename_login_page_disable_redirect' ) );
108 }
109
110 /**
111 * デスクリプション
112 */
113 protected function admin_description(): void {
114 ?>
115 <div class="title-block mb-12">
116 <h1 class="title-block-title">ログインURL変更</h1>
117 <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>
118 </div>
119 <div class="title-bottom-text">
120 ログインURL(wp-login.php)を変更します。<br />
121 半角英小文字、半角数字、ハイフン、アンダースコアのいずれかを使用し、4文字以上12文字以下でお好みの名前(文字列)に設定できます。<br />
122 <strong>※この機能を使用するには「mod_rewrite」がサーバーにロードされている�
123 要があります。</strong>
124 </div>
125 <?php
126 }
127
128 /**
129 * ページコンテンツ
130 */
131 protected function page(): void {
132 ?>
133 <form method="post" action="<?php echo esc_url( $this->page_url ); ?>">
134 <div class="enabled-or-disabled">
135 <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>
136 <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>
137 </div>
138 <div class="box">
139 <div class="box-bottom">
140 <div class="box-row flex-start">
141 <div class="box-row-title not-label pt-12">
142 変更後のログインURL
143 </div>
144 <div class="box-row-content">
145 <div class="flex">
146 <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" />
147 </div>
148 <p class="pale-text">半角英小文字、半角数字、ハイフン、アンダースコアのいずれかを使用し、4文字以上12文字以下で�
149 �力してください。</p>
150 </div>
151 </div>
152 <div class="box-row flex-start">
153 <div class="box-row-title not-label">
154 リダイレクト設定
155 </div>
156 <div class="box-row-content ">
157 <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">管理�
158 ページからログインページにリダイレクトしない</label>
159 </div>
160 </div>
161 </div>
162 </div>
163 <div id="submit-btn-area">
164 <?php $this->nonce_wp( $this->rename_login_page->get_feature_key() ); ?>
165 <?php $this->submit_button_wp(); ?>
166 </div>
167 </form>
168 <?php
169 }
170 }
171