PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 3.16.6
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v3.16.6
4.0.2 4.0.1 4.0.0 3.16.6 3.16.5 3.16.4 3.16.3 3.16.2 3.16.1 3.16.0 3.15.9 3.9.9 3.9.5 3.9.6 3.9.7 3.9.8 1.1.7 1.1.8 1.1.9 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 All 340 releases
profile-builder / admin / private-website.php

private-website.php in User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor 3.16.6, at admin/private-website.php

195 lines 12.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3 /**
4 * Function that creates the "Private Website" submenu page
5 *
6 * @since v.2.0
7 *
8 * @return void
9 */
10 function wppb_private_website_submenu_page() {
11 add_submenu_page( 'profile-builder', __( 'Private Website', 'profile-builder' ), __( 'Private Website', 'profile-builder' ), 'manage_options', 'profile-builder-private-website', 'wppb_private_website_content' );
12 }
13 add_action( 'admin_menu', 'wppb_private_website_submenu_page' );
14
15
16 /**
17 * Function that generates the default settings for private page
18 */
19 function wppb_private_website_settings_defaults() {
20
21 add_option( 'wppb_private_website_settings',
22 array(
23 'private_website' => 'no',
24 'redirect_to' => '',
25 'allowed_pages' => array(),
26 'hide_menus' => 'no',
27 'disable_rest_api' => 'yes',
28 )
29 );
30
31 }
32
33 /**
34 * Function that generates the content for the settings page
35 */
36 function wppb_private_website_content() {
37
38 wppb_private_website_settings_defaults();
39
40 $wppb_private_website_settings = get_option( 'wppb_private_website_settings', 'not_found' );
41
42 $args = array(
43 'post_type' => 'page',
44 'posts_per_page' => -1
45 );
46
47 if( function_exists( 'wc_get_page_id' ) )
48 $args['exclude'] = wc_get_page_id( 'shop' );
49
50 $all_pages = get_posts( $args );
51 ?>
52 <div class="wrap wppb-wrap wppb-private-website cozmoslabs-wrap">
53
54 <h1></h1>
55 <!-- WordPress Notices are added after the h1 tag -->
56
57 <div class="cozmoslabs-page-header">
58 <div class="cozmoslabs-section-title">
59
60 <h2 class="cozmoslabs-page-title">
61 <?php esc_html_e( 'Private Website Settings', 'profile-builder' );?>
62 <a href="https://www.cozmoslabs.com/docs/profile-builder/general-settings/private-website/?utm_source=wpbackend&utm_medium=pb-documentation&utm_campaign=PBDocs" target="_blank" data-code="f223" class="wppb-docs-link dashicons dashicons-editor-help"></a>
63 </h2>
64
65 </div>
66 </div>
67
68 <?php settings_errors(); ?>
69
70 <?php wppb_generate_settings_tabs() ?>
71
72 <form method="post" action="options.php">
73 <?php settings_fields( 'wppb_private_website_settings' ); ?>
74
75 <div class="cozmoslabs-settings-container">
76
77 <div class="cozmoslabs-settings">
78
79 <div class="cozmoslabs-form-subsection-wrapper cozmoslabs-no-title-section">
80
81 <div class="cozmoslabs-form-field-wrapper cozmoslabs-toggle-switch">
82 <label class="cozmoslabs-form-field-label" for="private-website-enable"><?php esc_html_e('Private Website', 'profile-builder'); ?></label>
83
84 <div class="cozmoslabs-toggle-container">
85 <input type="checkbox" name="wppb_private_website_settings[private_website]" id="private-website-enable" value="yes" <?php echo (!empty($wppb_private_website_settings['private_website']) && $wppb_private_website_settings['private_website'] === 'yes') ? 'checked' : ''; ?> >
86 <label class="cozmoslabs-toggle-track" for="private-website-enable"></label>
87 </div>
88
89 <div class="cozmoslabs-toggle-description">
90 <label for="private-website-enable" class="cozmoslabs-description"><?php esc_html_e( 'Activate Private Website. It will restrict the content, RSS and REST API for your website.', 'profile-builder' ); ?></label>
91 </div>
92 </div>
93
94 <div class="cozmoslabs-form-field-wrapper">
95 <label class="cozmoslabs-form-field-label" for="private-website-redirect-to-login"><?php esc_html_e('Redirect to', 'profile-builder'); ?></label>
96
97 <select id="private-website-redirect-to-login" class="wppb-select" name="wppb_private_website_settings[redirect_to]">
98 <option value=""><?php esc_html_e( 'Default WordPress login page', 'profile-builder' ); ?></option>
99
100 <?php
101 if( !empty( $all_pages ) ){
102 foreach ($all_pages as $page){
103 ?>
104 <option value="<?php echo esc_attr( $page->ID ) ?>" <?php echo ( ( $wppb_private_website_settings != 'not_found' && isset( $wppb_private_website_settings['redirect_to'] ) && $wppb_private_website_settings['redirect_to'] == $page->ID ) ? 'selected' : '' ); ?>><?php echo esc_html( $page->post_title ) ?></option>
105 <?php
106 }
107 }
108 ?>
109 </select>
110
111 <p class="cozmoslabs-description cozmoslabs-description-space-left"><?php esc_html_e( 'Redirects to this page if not logged in. We recommend this page contains the [wppb-login] shortcode.', 'profile-builder' ); ?></p>
112 <p class="cozmoslabs-description cozmoslabs-description-space-left">
113 <?php esc_html_e( 'You can force access to wp-login.php so you don\'t get locked out of the site by accessing the link:', 'profile-builder' ); ?>
114 <a href="<?php echo esc_url( wp_login_url() ).'?wppb_force_wp_login=true' ?>"><?php echo esc_url( wp_login_url() ).'?wppb_force_wp_login=true' ?></a>
115 </p>
116 </div>
117
118 <div class="cozmoslabs-form-field-wrapper">
119 <label class="cozmoslabs-form-field-label" for="private-website-allowed-pages"><?php esc_html_e('Allowed Pages', 'profile-builder'); ?></label>
120
121 <select id="private-website-allowed-pages" class="wppb-select" name="wppb_private_website_settings[allowed_pages][]" multiple="multiple">
122 <?php
123 if( !empty( $all_pages ) ){
124 foreach ($all_pages as $page){
125 ?>
126 <option value="<?php echo esc_attr( $page->ID ) ?>" <?php echo ( ( $wppb_private_website_settings != 'not_found' && isset( $wppb_private_website_settings['allowed_pages'] ) && in_array( $page->ID, $wppb_private_website_settings['allowed_pages'] ) ) ? 'selected' : '' ); ?>><?php echo esc_html( $page->post_title ) ?></option>
127 <?php
128 }
129 }
130 ?>
131
132 </select>
133
134 <p class="cozmoslabs-description cozmoslabs-description-space-left"><?php esc_html_e( 'Allow these pages to be accessed even if you are not logged in', 'profile-builder' ); ?></p>
135 </div>
136
137 <div class="cozmoslabs-form-field-wrapper">
138 <label class="cozmoslabs-form-field-label" for="private-website-allowed-paths"><?php esc_html_e('Allowed Paths', 'profile-builder'); ?></label>
139 <textarea id="private-website-allowed-paths" class="wppb-textarea" name="wppb_private_website_settings[allowed_paths]"><?php echo ( ( $wppb_private_website_settings != 'not_found' && !empty($wppb_private_website_settings['allowed_paths']) ) ? esc_textarea( $wppb_private_website_settings['allowed_paths'] ) : '' ); ?></textarea>
140
141 <p class="cozmoslabs-description cozmoslabs-description-space-left"><?php esc_html_e( 'Allow these paths to be accessed even if you are not logged in (supports wildcard at the end of the path). For example to exclude https://example.com/some/path/ you can either use the rule /some/path/ or /some/* Enter each rule on it\'s own line', 'profile-builder' ); ?></p>
142 </div>
143
144 <div class="cozmoslabs-form-field-wrapper">
145 <label class="cozmoslabs-form-field-label" for="private-website-allowed-query-strings"><?php esc_html_e('Allowed Query Strings', 'profile-builder'); ?></label>
146 <textarea id="private-website-allowed-query-strings" class="wppb-textarea" name="wppb_private_website_settings[allowed_query_strings]"><?php echo ( ( $wppb_private_website_settings != 'not_found' && !empty( $wppb_private_website_settings['allowed_query_strings'] ) ) ? esc_textarea( $wppb_private_website_settings['allowed_query_strings'] ) : '' ); ?></textarea>
147
148 <p class="cozmoslabs-description cozmoslabs-description-space-left"><?php esc_html_e( 'Allow paths containing these query strings to be accessible to logged out users. For example, you can add s to exclude a search request: https://example.com/?s=search', 'profile-builder' ); ?></p>
149 </div>
150
151 <div class="cozmoslabs-form-field-wrapper cozmoslabs-toggle-switch">
152 <label class="cozmoslabs-form-field-label" for="private-website-menu-hide"><?php esc_html_e('Hide all Menus', 'profile-builder'); ?></label>
153
154 <div class="cozmoslabs-toggle-container">
155 <input type="checkbox" name="wppb_private_website_settings[hide_menus]" id="private-website-menu-hide" value="yes" <?php echo ( !empty( $wppb_private_website_settings['hide_menus'] ) && $wppb_private_website_settings['hide_menus'] === 'yes' ) ? 'checked' : ''; ?> >
156 <label class="cozmoslabs-toggle-track" for="private-website-menu-hide"></label>
157 </div>
158
159 <div class="cozmoslabs-toggle-description">
160 <label for="private-website-menu-hide" class="cozmoslabs-description"><?php wp_kses_post( printf( __( 'Hide all menu items if you are not logged in. We recommend "<a href="%s" target="_blank">Custom Profile Menus</a>" addon if you need different menu items for logged in / logged out users.', 'profile-builder' ), 'https://www.cozmoslabs.com/add-ons/custom-profile-menus/?utm_source=pb-private-website-settings&utm_medium=client-site&utm_campaign=pb-hide-all-menus' ) ) //phpcs:ignore; ?></label>
161 </div>
162 </div>
163
164 <div class="cozmoslabs-form-field-wrapper cozmoslabs-toggle-switch">
165 <label class="cozmoslabs-form-field-label" for="private-website-disable-rest-api"><?php esc_html_e('Disable REST-API', 'profile-builder'); ?></label>
166
167 <div class="cozmoslabs-toggle-container">
168 <input type="checkbox" name="wppb_private_website_settings[disable_rest_api]" id="private-website-disable-rest-api" value="yes" <?php echo ( !empty( $wppb_private_website_settings['disable_rest_api'] ) && $wppb_private_website_settings['disable_rest_api'] === 'yes' ) ? 'checked' : ''; ?> >
169 <label class="cozmoslabs-toggle-track" for="private-website-disable-rest-api"></label>
170 </div>
171
172 <div class="cozmoslabs-toggle-description">
173 <label for="private-website-disable-rest-api" class="cozmoslabs-description"><?php esc_html_e( 'Disable the WordPress REST-API for non-logged in users when Private Website is enabled', 'profile-builder' ); ?></label>
174 </div>
175 </div>
176
177 </div>
178
179 </div>
180
181 <div class="submit cozmoslabs-submit">
182 <h3 class="cozmoslabs-subsection-title"><?php esc_html_e( 'Update Settings', 'profile-builder' ) ?></h3>
183 <div class="cozmoslabs-publish-button-group">
184 <?php submit_button( esc_html__( 'Save Changes', 'profile-builder' ) ); ?>
185 </div>
186 </div>
187
188 </div>
189
190 </form>
191
192 </div>
193 <?php
194 }
195