AdminSettings
20 hours ago
Controllers
20 hours ago
Fly-Out
20 hours ago
Helpers
20 hours ago
Methods
20 hours ago
Settings
20 hours ago
SettingsPages
20 hours ago
Views
20 hours ago
class-about-us.php
20 hours ago
class-docs-and-support.php
20 hours ago
class-free-support-notice.php
20 hours ago
class-help-contact-us.php
20 hours ago
class-license-page.php
20 hours ago
class-new-interface-notice.php
20 hours ago
class-plugin-updated-notice.php
20 hours ago
class-premium-features.php
20 hours ago
class-profile-section-renderer.php
20 hours ago
class-settings-page.php
20 hours ago
class-setup-wizard.php
20 hours ago
class-top-bar-banner.php
20 hours ago
class-user-listing.php
20 hours ago
class-user-notices.php
20 hours ago
class-user-profile.php
20 hours ago
class-user-registered.php
20 hours ago
class-wizard-integration.php
20 hours ago
index.php
20 hours ago
class-docs-and-support.php
95 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Docs and Support page rendering class. |
| 4 | * |
| 5 | * @package wp2fa |
| 6 | * @subpackage admin |
| 7 | * @copyright 2026 Melapress |
| 8 | * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0 |
| 9 | * @link https://wordpress.org/plugins/wp-2fa/ |
| 10 | * @since 4.0.0 |
| 11 | */ |
| 12 | |
| 13 | declare( strict_types=1 ); |
| 14 | |
| 15 | namespace WP2FA\Admin; |
| 16 | |
| 17 | use WP2FA\WP2FA; |
| 18 | |
| 19 | if ( ! class_exists( '\WP2FA\Admin\Docs_And_Support' ) ) { |
| 20 | |
| 21 | /** |
| 22 | * Handles the Docs and Support admin page. |
| 23 | */ |
| 24 | class Docs_And_Support { |
| 25 | |
| 26 | const TOP_MENU_SLUG = 'wp-2fa-help-contact-us'; |
| 27 | |
| 28 | /** |
| 29 | * Create admin submenu entry for the Docs and Support page. |
| 30 | * |
| 31 | * @return void |
| 32 | * |
| 33 | * @since 4.0.0 |
| 34 | */ |
| 35 | public static function add_extra_menu_item() { |
| 36 | |
| 37 | \add_submenu_page( |
| 38 | Settings_Page::TOP_MENU_SLUG, |
| 39 | \esc_html__( 'Docs and Support', 'wp-2fa' ), |
| 40 | \esc_html__( 'Docs and Support', 'wp-2fa' ), |
| 41 | 'manage_options', |
| 42 | self::TOP_MENU_SLUG, |
| 43 | array( __CLASS__, 'render' ), |
| 44 | 100 |
| 45 | ); |
| 46 | |
| 47 | \add_action( |
| 48 | 'admin_enqueue_scripts', |
| 49 | function ( $hook ) { |
| 50 | if ( 'wp-2fa_page_' . self::TOP_MENU_SLUG !== $hook ) { |
| 51 | return; |
| 52 | } |
| 53 | |
| 54 | \wp_enqueue_style( |
| 55 | 'wp_2fa_settings_new_css', |
| 56 | WP_2FA_URL . 'includes/assets/css/settings.css', |
| 57 | array(), |
| 58 | WP_2FA_VERSION |
| 59 | ); |
| 60 | } |
| 61 | ); |
| 62 | } |
| 63 | |
| 64 | /** |
| 65 | * Render the Docs and Support page. |
| 66 | * |
| 67 | * @return void |
| 68 | * |
| 69 | * @since 4.0.0 |
| 70 | */ |
| 71 | public static function render() { |
| 72 | if ( ! \current_user_can( 'manage_options' ) ) { |
| 73 | \wp_die( \esc_html__( 'You do not have sufficient permissions to access this page.', 'wp-2fa' ) ); |
| 74 | } |
| 75 | |
| 76 | $main_user = ! empty( WP2FA::get_wp2fa_setting( '2fa_settings_last_updated_by' ) ) ? (int) WP2FA::get_wp2fa_setting( '2fa_settings_last_updated_by' ) : \get_current_user_id(); |
| 77 | if ( ! empty( WP2FA::get_wp2fa_general_setting( 'limit_access' ) ) && $main_user !== \get_current_user_id() ) { |
| 78 | echo \esc_html__( 'These settings have been disabled by your site administrator, please contact them for further assistance.', 'wp-2fa' ); |
| 79 | return; |
| 80 | } |
| 81 | |
| 82 | include_once \WP_2FA_PATH . 'includes/classes/Admin/Settings/templates/support/docs-and-support.php'; |
| 83 | } |
| 84 | |
| 85 | /** |
| 86 | * Gather basic settings and system information. |
| 87 | * |
| 88 | * @return string |
| 89 | */ |
| 90 | public static function get_sysinfo() { |
| 91 | return Help_Contact_Us::get_sysinfo(); |
| 92 | } |
| 93 | } |
| 94 | } |
| 95 |