'boolean', 'default' => true, 'sanitize_callback' => 'rest_sanitize_boolean', )); define('AWPLR_NUMBER_SETTINGS', array( 'type' => 'number', 'default' => 1000, 'sanitize_callback' => 'absint', )); define('AWPLR_DELAY_SETTINGS', array( 'type' => 'number', 'default' => 300, 'sanitize_callback' => 'absint', )); define('AWPLR_COLOR_SETTINGS', array( 'type' => 'string', 'default' => '#0073aa', 'sanitize_callback' => 'sanitize_hex_color', )); define('AWPLR_ANIMATION_TYPE_SETTINGS', array( 'type' => 'string', 'default' => 'spinner', 'sanitize_callback' => 'sanitize_text_field', )); define('AWPLR_URL_SETTINGS', array( 'type' => 'string', 'default' => '', 'sanitize_callback' => 'esc_url_raw', )); define('AWPLR_ANIMATION_SIZE_SETTINGS', array( 'type' => 'number', 'default' => 150, 'sanitize_callback' => 'absint', )); define('AWPLR_BACKGROUND_COLOR_SETTINGS', array( 'type' => 'string', 'default' => '#ffffff', 'sanitize_callback' => 'sanitize_hex_color', )); define('AWPLR_TEXT_SETTINGS', array( 'type' => 'string', 'default' => '', 'sanitize_callback' => 'sanitize_text_field', )); /** * Register settings */ function awplr_register_settings() { // Register settings using constants register_setting('awplr_settings', 'awplr_enabled', AWPLR_BOOLEAN_SETTINGS); register_setting('awplr_settings', 'awplr_animation_duration', AWPLR_NUMBER_SETTINGS); register_setting('awplr_settings', 'awplr_delay', AWPLR_DELAY_SETTINGS); register_setting('awplr_settings', 'awplr_color', AWPLR_COLOR_SETTINGS); register_setting('awplr_settings', 'awplr_animation_type', AWPLR_ANIMATION_TYPE_SETTINGS); register_setting('awplr_settings', 'awplr_svg_url', AWPLR_URL_SETTINGS); register_setting('awplr_settings', 'awplr_image_url', AWPLR_URL_SETTINGS); register_setting('awplr_settings', 'awplr_animation_size', AWPLR_ANIMATION_SIZE_SETTINGS); register_setting('awplr_settings', 'awplr_background_color', AWPLR_BACKGROUND_COLOR_SETTINGS); register_setting('awplr_settings', 'awplr_text', AWPLR_TEXT_SETTINGS); register_setting('awplr_settings', 'awplr_show_text', AWPLR_BOOLEAN_SETTINGS); } add_action('admin_init', 'awplr_register_settings'); /** * Settings page content */ function awplr_settings_page() { // Get current animation type $animation_type = get_option('awplr_animation_type', 'spinner'); // Enqueue media scripts for the media uploader wp_enqueue_media(); // Enqueue admin script wp_enqueue_script( 'abovewp-admin', AWPLR_URL . 'assets/js/admin.js', array('jquery'), AWPLR_VERSION, true ); ?>