register(new Beep_Elementor_Widget()); } }, 5); // Admin settings (Giphy API key only — full settings via Beep_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 '