*/ public function getAll(): array { global $wpdb; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $results = $wpdb->get_results( $wpdb->prepare( "SELECT option_name, option_value FROM $wpdb->options WHERE option_name LIKE %s", self::OPTION_PREFIX . '%' ) ); $config = []; foreach ( $results as $row ) { if ( ! is_object( $row ) || ! isset( $row->option_name ) || ! isset( $row->option_value ) ) { continue; } $key = str_replace( self::OPTION_PREFIX, '', (string) $row->option_name ); $config[ $key ] = is_scalar( $row->option_value ) ? (string) $row->option_value : ''; } return $config; } /** * Set a configuration value. * * @param string $key Configuration key. * @param string $value Configuration value. */ public function set( string $key, string $value ): void { update_option( self::OPTION_PREFIX . $key, $value ); } /** * Delete a configuration value. * * @param string $key Configuration key. */ public function delete( string $key ): void { delete_option( self::OPTION_PREFIX . $key ); } }