PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 3.9.9
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v3.9.9
4.0.3 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 All 341 releases
profile-builder / admin / private-website.php

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

174 lines 9.9 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( '', __( '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-form-subsection-wrapper cozmoslabs-no-title-section">
76
77 <div class="cozmoslabs-form-field-wrapper cozmoslabs-toggle-switch">
78 <label class="cozmoslabs-form-field-label" for="private-website-enable"><?php esc_html_e('Private Website', 'profile-builder'); ?></label>
79
80 <div class="cozmoslabs-toggle-container">
81 <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' : ''; ?> >
82 <label class="cozmoslabs-toggle-track" for="private-website-enable"></label>
83 </div>
84
85 <div class="cozmoslabs-toggle-description">
86 <p class="cozmoslabs-description"><?php esc_html_e( 'Activate Private Website. It will restrict the content, RSS and REST API for your website.', 'profile-builder' ); ?></p>
87 </div>
88 </div>
89
90 <div class="cozmoslabs-form-field-wrapper">
91 <label class="cozmoslabs-form-field-label" for="private-website-redirect-to-login"><?php esc_html_e('Redirect to', 'profile-builder'); ?></label>
92
93 <select id="private-website-redirect-to-login" class="wppb-select" name="wppb_private_website_settings[redirect_to]">
94 <option value=""><?php esc_html_e( 'Default WordPress login page', 'profile-builder' ); ?></option>
95
96 <?php
97 if( !empty( $all_pages ) ){
98 foreach ($all_pages as $page){
99 ?>
100 <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>
101 <?php
102 }
103 }
104 ?>
105 </select>
106
107 <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>
108 <p class="cozmoslabs-description cozmoslabs-description-space-left">
109 <?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' ); ?>
110 <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>
111 </p>
112 </div>
113
114 <div class="cozmoslabs-form-field-wrapper">
115 <label class="cozmoslabs-form-field-label" for="private-website-allowed-pages"><?php esc_html_e('Allowed Pages', 'profile-builder'); ?></label>
116
117 <select id="private-website-allowed-pages" class="wppb-select" name="wppb_private_website_settings[allowed_pages][]" multiple="multiple">
118 <?php
119 if( !empty( $all_pages ) ){
120 foreach ($all_pages as $page){
121 ?>
122 <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>
123 <?php
124 }
125 }
126 ?>
127
128 </select>
129
130 <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>
131 </div>
132
133 <div class="cozmoslabs-form-field-wrapper">
134 <label class="cozmoslabs-form-field-label" for="private-website-allowed-paths"><?php esc_html_e('Allowed Paths', 'profile-builder'); ?></label>
135 <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>
136
137 <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>
138 </div>
139
140 <div class="cozmoslabs-form-field-wrapper cozmoslabs-toggle-switch">
141 <label class="cozmoslabs-form-field-label" for="private-website-menu-hide"><?php esc_html_e('Hide all Menus', 'profile-builder'); ?></label>
142
143 <div class="cozmoslabs-toggle-container">
144 <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' : ''; ?> >
145 <label class="cozmoslabs-toggle-track" for="private-website-menu-hide"></label>
146 </div>
147
148 <div class="cozmoslabs-toggle-description">
149 <p 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/' ) ) //phpcs:ignore; ?></p>
150 </div>
151 </div>
152
153 <div class="cozmoslabs-form-field-wrapper cozmoslabs-toggle-switch">
154 <label class="cozmoslabs-form-field-label" for="private-website-disable-rest-api"><?php esc_html_e('Disable REST-API', 'profile-builder'); ?></label>
155
156 <div class="cozmoslabs-toggle-container">
157 <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' : ''; ?> >
158 <label class="cozmoslabs-toggle-track" for="private-website-disable-rest-api"></label>
159 </div>
160
161 <div class="cozmoslabs-toggle-description">
162 <p class="cozmoslabs-description"><?php esc_html_e( 'Disable the WordPress REST-API for non-logged in users when Private Website is enabled', 'profile-builder' ); ?></p>
163 </div>
164 </div>
165
166 </div>
167
168 <?php submit_button( esc_html__( 'Save Changes', 'profile-builder' ) ); ?>
169 </form>
170
171 </div>
172 <?php
173 }
174