1, 'ai_share_names' => 0, 'ai_monthly_cap' => 100, 'hookbird_events' => 1, 'weekly_briefing' => 1, ); } /** * All settings. * * @return array */ public static function all() { $s = get_option( self::OPTION, array() ); return wp_parse_args( is_array( $s ) ? $s : array(), self::defaults() ); } /** * One setting. * * @param string $key Key. * @return mixed */ public static function get( $key ) { $all = self::all(); return $all[ $key ] ?? null; } /** * Saves submitted settings. * * @param array $input Raw input. * @return array Saved settings. */ public static function save( array $input ) { $clean = array( 'ai_enabled' => empty( $input['ai_enabled'] ) ? 0 : 1, 'ai_share_names' => empty( $input['ai_share_names'] ) ? 0 : 1, 'ai_monthly_cap' => max( 0, min( 10000, absint( $input['ai_monthly_cap'] ?? 100 ) ) ), 'hookbird_events' => empty( $input['hookbird_events'] ) ? 0 : 1, 'weekly_briefing' => empty( $input['weekly_briefing'] ) ? 0 : 1, ); update_option( self::OPTION, $clean, false ); return $clean; } }