| @@ -111,68 +111,76 @@ | ||
| 111 | 111 | |
| 112 | 112 | public function content() { |
| 113 | 113 | |
| 114 | 114 | // Checking //////////////////////////////////////////////////////////// |
| 115 | - | |
| 115 | + | |
| 116 | + if ( ! $this->can_manage_settings() ) { | |
| 117 | + wp_die( | |
| 118 | + esc_html__( 'Sorry, you are not allowed to manage Booking Manager settings.', 'booking-manager' ) | |
| 119 | + , esc_html__( 'Forbidden', 'booking-manager' ) | |
| 120 | + , array( 'response' => 403 ) | |
| 121 | + ); | |
| 122 | + } | |
| 123 | + | |
| 116 | 124 | do_action( 'wpbm_hook_settings_page_header', array( 'page' => $this->in_page() ) ); // Define Notices Section and show some static messages, if needed. |
| 117 | - | |
| 125 | + | |
| 118 | 126 | $is_can = apply_wpbm_filter('recheck_version', true); if ( ! $is_can ) { ?><script type="text/javascript"> jQuery(document).ready(function(){ jQuery( '.wpdvlp-sub-tabs').remove(); }); </script><?php return; } |
| 119 | - | |
| 120 | - | |
| 127 | + | |
| 128 | + | |
| 121 | 129 | // Init Settings API & Get Data from DB //////////////////////////////// |
| 122 | 130 | $this->settings_api(); // Define all fields and get values from DB |
| 123 | - | |
| 131 | + | |
| 124 | 132 | // Submit ///////////////////////////////////////////////////////////// |
| 125 | - | |
| 133 | + | |
| 126 | 134 | $submit_form_name = 'wpbm_general_settings_form'; // Define form name |
| 127 | - | |
| 135 | + | |
| 128 | 136 | if ( isset( $_POST['is_form_sbmitted_'. $submit_form_name ] ) ) { |
| 129 | 137 | |
| 130 | 138 | // Nonce checking {Return false if invalid, 1 if generated between, 0-12 hours ago, 2 if generated between 12-24 hours ago. } |
| 131 | 139 | $nonce_gen_time = check_admin_referer( 'wpbm_settings_page_' . $submit_form_name ); // Its stop show anything on submiting, if its not refear to the original page |
| 132 | 140 | |
| 133 | - // Save Changes | |
| 141 | + // Save Changes | |
| 134 | 142 | $this->update(); |
| 135 | - } | |
| 143 | + } | |
| 136 | 144 | //$wpbm_user_role_master = get_wpbm_option( 'wpbm_user_role_master' ); // O L D W A Y: Get Fields Data |
| 137 | - | |
| 138 | - | |
| 145 | + | |
| 146 | + | |
| 139 | 147 | // JavaScript: Tooltips, Popover, Datepick (js & css) ////////////////// |
| 140 | 148 | echo '<span class="wpdevelop">'; |
| 141 | - wpbm_js_for_items_page(); | |
| 149 | + wpbm_js_for_items_page(); | |
| 142 | 150 | echo '</span>'; |
| 143 | 151 | |
| 144 | - | |
| 152 | + | |
| 145 | 153 | ?><div class="clear"></div><?php |
| 146 | - | |
| 154 | + | |
| 147 | 155 | if ( 1 ) { |
| 148 | 156 | // Scroll links //////////////////////////////////////////////////////// |
| 149 | 157 | ?> |
| 150 | 158 | <div class="wpdvlp-sub-tabs" style="background:none;border:none;box-shadow: none;padding:0;"><span class="nav-tabs" style="text-align:right;"> |
| 151 | - <a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_wpbm_misc_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php | |
| 152 | - echo ucwords( __('Misc', 'booking-manager') ); ?></span></a> | |
| 159 | + <a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_wpbm_misc_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php | |
| 160 | + echo ucwords( __('Misc', 'booking-manager') ); ?></span></a> | |
| 153 | 161 | </span> |
| 154 | 162 | <span class="nav-tabs" style="text-align:right;"> |
| 155 | - <a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_permissions_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php | |
| 156 | - echo ucwords( __('Plugin Menu', 'booking-manager') ); ?></span></a> | |
| 163 | + <a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_permissions_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php | |
| 164 | + echo ucwords( __('Plugin Menu', 'booking-manager') ); ?></span></a> | |
| 157 | 165 | </span><span class="nav-tabs" style="text-align:right;"> |
| 158 | - <a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_uninstall_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php | |
| 159 | - echo ucwords( __('Uninstall', 'booking-manager') ); ?></span></a> | |
| 166 | + <a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_uninstall_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php | |
| 167 | + echo ucwords( __('Uninstall', 'booking-manager') ); ?></span></a> | |
| 160 | 168 | </span><span class="nav-tabs" style="text-align:right;"> |
| 161 | - <a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_advanced_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php | |
| 162 | - echo ucwords( __('Advanced', 'booking-manager') ); ?></span></a> | |
| 169 | + <a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_advanced_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php | |
| 170 | + echo ucwords( __('Advanced', 'booking-manager') ); ?></span></a> | |
| 163 | 171 | </span></div> |
| 164 | 172 | <?php |
| 165 | 173 | } |
| 166 | - | |
| 167 | - | |
| 174 | + | |
| 175 | + | |
| 168 | 176 | // Content //////////////////////////////////////////////////////////// |
| 169 | 177 | ?> |
| 170 | 178 | <div class="clear" style="margin-bottom:10px;"></div> |
| 171 | 179 | <span class="metabox-holder"> |
| 172 | 180 | <form name="<?php echo $submit_form_name; ?>" id="<?php echo $submit_form_name; ?>" action="" method="post"> |
| 173 | - <?php | |
| 174 | - // N o n c e field, and key for checking S u b m i t | |
| 181 | + <?php | |
| 182 | + // N o n c e field, and key for checking S u b m i t | |
| 175 | 183 | wp_nonce_field( 'wpbm_settings_page_' . $submit_form_name ); |
| 176 | 184 | ?><input type="hidden" name="is_form_sbmitted_<?php echo $submit_form_name; ?>" id="is_form_sbmitted_<?php echo $submit_form_name; ?>" value="1" /> |
| 177 | 185 | |
| 178 | 186 | <div class="wpbm_settings_row wpbm_settings_row_left" > |
| @@ -178,82 +186,91 @@ | ||
| 178 | 186 | <div class="wpbm_settings_row wpbm_settings_row_left" > |
| 179 | 187 | |
| 180 | 188 | <?php // wpbm_open_meta_box_section( 'wpbm_general_settings_calendar', __('General', 'booking-manager') ); ?> |
| 181 | 189 | |
| 182 | - <?php // $this->settings_api()->show( 'general' ); ?> | |
| 183 | - | |
| 190 | + <?php // $this->settings_api()->show( 'general' ); ?> | |
| 191 | + | |
| 184 | 192 | <?php // wpbm_close_meta_box_section(); ?> |
| 185 | - | |
| 186 | - | |
| 193 | + | |
| 194 | + | |
| 187 | 195 | <?php wpbm_open_meta_box_section( 'wpbm_general_settings_wpbm_misc', __('Miscellaneous', 'booking-manager') ); ?> |
| 188 | 196 | |
| 189 | - <?php $this->settings_api()->show( 'wpbm_listing' ); ?> | |
| 190 | - | |
| 197 | + <?php $this->settings_api()->show( 'wpbm_listing' ); ?> | |
| 198 | + | |
| 191 | 199 | <?php wpbm_close_meta_box_section(); ?> |
| 192 | - | |
| 193 | - | |
| 200 | + | |
| 201 | + | |
| 194 | 202 | <?php wpbm_open_meta_box_section( 'wpbm_general_settings_permissions', __('Plugin Menu', 'booking-manager') ); ?> |
| 195 | 203 | |
| 196 | - <?php $this->settings_api()->show( 'permissions' ); ?> | |
| 197 | - | |
| 198 | - <?php wpbm_close_meta_box_section(); ?> | |
| 204 | + <?php $this->settings_api()->show( 'permissions' ); ?> | |
| 199 | 205 | |
| 200 | - | |
| 206 | + <?php wpbm_close_meta_box_section(); ?> | |
| 207 | + | |
| 208 | + | |
| 201 | 209 | <?php wpbm_open_meta_box_section( 'wpbm_general_settings_uninstall', __('Uninstall / deactivation', 'booking-manager') ); ?> |
| 202 | 210 | |
| 203 | - <?php $this->settings_api()->show( 'uninstall' ); ?> | |
| 204 | - | |
| 205 | - <?php wpbm_close_meta_box_section(); ?> | |
| 206 | - | |
| 207 | - </div> | |
| 211 | + <?php $this->settings_api()->show( 'uninstall' ); ?> | |
| 212 | + | |
| 213 | + <?php wpbm_close_meta_box_section(); ?> | |
| 214 | + | |
| 215 | + </div> | |
| 208 | 216 | <div class="wpbm_settings_row wpbm_settings_row_right"> |
| 209 | 217 | |
| 210 | 218 | <?php wpbm_open_meta_box_section( 'wpbm_general_settings_information', __('Information', 'booking-manager') ); ?> |
| 211 | 219 | |
| 212 | - <?php $this->settings_api()->show( 'information' ); ?> | |
| 213 | - | |
| 214 | - <?php wpbm_close_meta_box_section(); ?> | |
| 220 | + <?php $this->settings_api()->show( 'information' ); ?> | |
| 215 | 221 | |
| 222 | + <?php wpbm_close_meta_box_section(); ?> | |
| 216 | 223 | |
| 217 | 224 | |
| 218 | - | |
| 225 | + | |
| 226 | + | |
| 219 | 227 | <?php wpbm_open_meta_box_section( 'wpbm_general_settings_advanced', __('Advanced', 'booking-manager') ); ?> |
| 220 | 228 | |
| 221 | - <?php $this->settings_api()->show( 'advanced' ); ?> | |
| 222 | - | |
| 229 | + <?php $this->settings_api()->show( 'advanced' ); ?> | |
| 230 | + | |
| 223 | 231 | <?php wpbm_close_meta_box_section(); ?> |
| 224 | - | |
| 225 | - </div> | |
| 232 | + | |
| 233 | + </div> | |
| 226 | 234 | <div class="clear"></div> |
| 227 | - <input type="submit" value="<?php _e('Save Changes', 'booking-manager'); ?>" class="button button-primary wpbm_submit_button" /> | |
| 235 | + <input type="submit" value="<?php _e('Save Changes', 'booking-manager'); ?>" class="button button-primary wpbm_submit_button" /> | |
| 228 | 236 | </form> |
| 229 | 237 | <?php if ( ( isset( $_GET['system_info'] ) ) && ( $_GET['system_info'] == 'show' ) ) { ?> |
| 230 | - | |
| 238 | + | |
| 231 | 239 | <div class="clear" style="height:30px;"></div> |
| 232 | - | |
| 240 | + | |
| 233 | 241 | <?php wpbm_open_meta_box_section( 'wpbm_general_settings_system_info', 'System Info' ); ?> |
| 234 | 242 | |
| 235 | 243 | <?php wpbm_system_info(); ?> |
| 236 | 244 | |
| 237 | - <?php wpbm_close_meta_box_section(); ?> | |
| 245 | + <?php wpbm_close_meta_box_section(); ?> | |
| 238 | 246 | |
| 239 | 247 | <?php } ?> |
| 240 | - | |
| 248 | + | |
| 241 | 249 | </span> |
| 242 | - <?php | |
| 250 | + <?php | |
| 243 | 251 | |
| 244 | - | |
| 245 | - | |
| 252 | + | |
| 253 | + | |
| 246 | 254 | do_action( 'wpbm_hook_settings_page_footer', 'general_settings' ); |
| 247 | - | |
| 248 | -//debuge( 'Content <strong>' . basename(__FILE__ ) . '</strong> <span style="font-size:9px;">' . __FILE__ . '</span>'); | |
| 255 | + | |
| 256 | +//debuge( 'Content <strong>' . basename(__FILE__ ) . '</strong> <span style="font-size:9px;">' . __FILE__ . '</span>'); | |
| 249 | 257 | } |
| 250 | 258 | |
| 251 | 259 | |
| 252 | 260 | public function update() { |
| 261 | + | |
| 262 | + if ( ! $this->can_manage_settings() ) { | |
| 263 | + wp_die( | |
| 264 | + esc_html__( 'Sorry, you are not allowed to manage Booking Manager settings.', 'booking-manager' ) | |
| 265 | + , esc_html__( 'Forbidden', 'booking-manager' ) | |
| 266 | + , array( 'response' => 403 ) | |
| 267 | + ); | |
| 268 | + } | |
| 269 | + | |
| 253 | 270 | //debuge($_POST); |
| 254 | 271 | $validated_fields = $this->settings_api()->validate_post(); // Get Validated Settings fields in $_POST request. |
| 255 | - | |
| 272 | + | |
| 256 | 273 | $validated_fields = apply_filters( 'wpbm_settings_validate_fields_before_saving', $validated_fields ); //Hook for validated fields. |
| 257 | 274 | //debuge($validated_fields); |
| 258 | 275 | // Skip saving specific option, for example in Demo mode. |
| 259 | 276 | // unset($validated_fields['wpbm_start_day_weeek']); |
| @@ -259,24 +276,35 @@ | ||
| 259 | 276 | // unset($validated_fields['wpbm_start_day_weeek']); |
| 260 | 277 | |
| 261 | 278 | $this->settings_api()->save_to_db( $validated_fields ); // Save fields to DB |
| 262 | 279 | wpbm_show_changes_saved_message(); |
| 263 | - | |
| 264 | -//debuge( basename(__FILE__), 'UPDATE', $_POST, $validated_fields); | |
| 265 | - | |
| 280 | + | |
| 281 | +//debuge( basename(__FILE__), 'UPDATE', $_POST, $validated_fields); | |
| 282 | + | |
| 266 | 283 | // O L D W A Y: Saving Fields Data |
| 267 | 284 | // update_wpbm_option( 'wpbm_is_delete_if_deactive' |
| 268 | - // , WPBM_Settings_API::validate_checkbox_post('wpbm_is_delete_if_deactive') ); | |
| 285 | + // , WPBM_Settings_API::validate_checkbox_post('wpbm_is_delete_if_deactive') ); | |
| 269 | 286 | // ( (isset( $_POST['wpbm_is_delete_if_deactive'] ))?'On':'Off') ); |
| 270 | 287 | |
| 271 | 288 | } |
| 289 | + | |
| 290 | + | |
| 291 | + /** | |
| 292 | + * Settings are global plugin options and require administrator-level access. | |
| 293 | + * | |
| 294 | + * @return bool | |
| 295 | + */ | |
| 296 | + private function can_manage_settings() { | |
| 297 | + | |
| 298 | + return current_user_can( 'manage_options' ); | |
| 299 | + } | |
| 272 | 300 | } |
| 273 | 301 | |
| 274 | 302 | |
| 275 | 303 | |
| 276 | -//if ( $is_other_tab ) { | |
| 277 | -// | |
| 278 | -// if ( ( ! isset( $_GET['tab'] ) ) || ( $_GET['tab'] == 'general' ) ) { // If tab was not selected or selected default, then redirect it to the "form" tab. | |
| 304 | +//if ( $is_other_tab ) { | |
| 305 | +// | |
| 306 | +// if ( ( ! isset( $_GET['tab'] ) ) || ( $_GET['tab'] == 'general' ) ) { // If tab was not selected or selected default, then redirect it to the "form" tab. | |
| 279 | 307 | // $_GET['tab'] = 'form'; |
| 280 | 308 | // } |
| 281 | 309 | //} else { |
| 282 | 310 | // add_action('wpbm_menu_created', array( new WPBM_Page_SettingsGeneral() , '__construct') ); // Executed after creation of Menu |
| @@ -282,5 +310,5 @@ | ||
| 282 | 310 | // add_action('wpbm_menu_created', array( new WPBM_Page_SettingsGeneral() , '__construct') ); // Executed after creation of Menu |
| 283 | 311 | //} |
| 284 | 312 | |
| 285 | 313 | add_action('wpbm_menu_created', array( new WPBM_Page_SettingsGeneral() , '__construct') ); // Executed after creation of Menu |
| 286 | - | |
| 314 | + | |