diff --git a/includes/class-beep.php b/includes/class-beep.php index 0ec8fd5..61fef0e 100755 --- a/includes/class-beep.php +++ b/includes/class-beep.php @@ -18,6 +18,51 @@ class Beep_Plugin { if (!get_option('beep_giphy_key')) { update_option('beep_giphy_key', 'xuxYxuIvzPqw5tPB4laa7sQO8dFtSlNS'); } + + // Admin settings + add_action('admin_menu', [__CLASS__, 'add_admin_menu']); + add_action('admin_init', [__CLASS__, 'register_settings']); + } + + public static function add_admin_menu() { + add_options_page( + 'Beep Settings', + 'Beep', + 'manage_options', + 'beep-settings', + [__CLASS__, 'render_settings_page'] + ); + } + + public static function register_settings() { + register_setting('beep_settings_group', 'beep_giphy_key', [ + 'sanitize_callback' => 'sanitize_text_field', + ]); + add_settings_section('beep_main_section', 'API Configuration', null, 'beep-settings'); + add_settings_field( + 'beep_giphy_key', + 'Giphy API Key', + [__CLASS__, 'giphy_key_field'], + 'beep-settings', + 'beep_main_section', + ['label_for' => 'beep_giphy_key'] + ); + } + + public static function giphy_key_field() { + $key = get_option('beep_giphy_key', ''); + echo ''; + echo '
Get a free API key at developers.giphy.com
'; + } + + public static function render_settings_page() { + if (!current_user_can('manage_options')) return; + echo '