Skip to content

[Refactor]: Standardize Metadata for Accommodation-Related Blocks #624

@tibiii

Description

@tibiii

Code Area(s) Impacted

  • Block Variations
  • Block Registration System
  • Metadata Structure
  • Accommodation-related block workflow

Is your code refactoring request related to a problem?

The metadata and registration patterns of accommodation-related blocks in the Tour Operator plugin lack consistency, reducing discoverability and editor integration. Blocks such as accommodation-related-accommodation, accommodation-related-destination, accommodation-related-tour, and accommodation-type have missing or inconsistent fields (description, keywords, icons, textdomain, supports, example attributes). This leads to poor user experience and incomplete WordPress.org integration for these blocks.

Describe the Refactoring / Review Task

Scope:

  • Refactor metadata and registration for the following blocks in the src/blocks/ directory:
    • accommodation-related-accommodation
    • accommodation-related-destination
    • accommodation-related-tour
    • accommodation-type
  • Use src/blocks/icons/block.json as metadata template for consistency.
  • Add/standardize essential fields (description, keywords, icon, textdomain, supports, attributes, example).
  • Document block.json limitations for block variations (certain attributes must be handled in JS registration).
  • Modularize work: one PR per block for clarity and changelog traceability.
  • Use Copilot for suggestions, ESLint and wp-scripts for code quality.
  • Adhere to LightSpeed Coding Standards.

Use Case

Beneficiaries: WordPress users, plugin developers, content creators. This refactor improves block discoverability, user experience, onboarding, and compliance with WordPress and repository standards.

Alternatives Considered

  • Manual, unstructured metadata changes.
  • Relying only on PR reviews for metadata issues.

Additional Context

Example Code Snippets

// Before: Block variation with incomplete metadata
wp.blocks.registerBlockVariation("core/group", {
  name: "lsx-tour-operator/accommodation-related-accommodation",
  title: "Accommodation"
});

// After: Standardized metadata
wp.blocks.registerBlockVariation("core/group", {
  name: "lsx-tour-operator/accommodation-related-accommodation",
  title: "Accommodation",
  description: "Display accommodation details.",
  keywords: ["accommodation", "lodging", "stay"],
  icon: "building",
  category: "lsx-tour-operator",
  attributes: { metadata: { name: "Accommodation" } },
  example: { attributes: { type: "Hotel" } },
  supports: { color: true, spacing: { margin: true, padding: true }, typography: true }
});

Refactoring / Review Checklist

  • Create sub-issues for each accommodation block
  • Note block.json limitations for variations
  • Modular, clear PRs and changelog entries
  • Merge to one changelog entry when all the sub issues are closed

References

Metadata

Metadata

Assignees

Projects

Status

✅ Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions