Skip to content

Fix: Sticky Menu Filter File Missing in Production Builds#834

Merged
krugazul merged 3 commits intodevelopfrom
hotfix/sticky-menu-filter-build
Jan 6, 2026
Merged

Fix: Sticky Menu Filter File Missing in Production Builds#834
krugazul merged 3 commits intodevelopfrom
hotfix/sticky-menu-filter-build

Conversation

@tibiii
Copy link
Copy Markdown
Contributor

@tibiii tibiii commented Jan 5, 2026


type: fix
scope: sticky-menu, build
breaking: false

Description

Fixes a critical production deployment issue where the sticky menu's mobile section headers filter was not available in production releases. The filter file was located in src/ but only the build/ folder is included in WordPress.org releases.

Problem

The sticky menu block includes a render_block filter (add_mobile_section_headers) that adds collapsible mobile headers to Group blocks with sticky menu attributes. This filter was in src/blocks/sticky-menu/render.php but production releases only include the build/ folder, causing fatal errors for users installing from WordPress.org.

Changes

File Renaming

  • Renamed src/blocks/sticky-menu/render.phpsrc/blocks/sticky-menu/filters.php
    • Better reflects its purpose (filter hook, not render callback)
    • Distinguishes it from standard block render files

Build Configuration

  • Added CopyWebpackPlugin to webpack.config.js
  • Configured automatic copy of filters.php to build/blocks/sticky-menu/ during build
  • Added copy-webpack-plugin@^10.2.4 to package.json devDependencies

Code Updates

Documentation

  • Added comprehensive README explaining why this file is separate from block.json
  • Updated changelog with fix details

Files Changed

  • webpack.config.js - Added CopyWebpackPlugin configuration
  • package.json - Added copy-webpack-plugin dependency
  • tour-operator.php - Updated require path to build folder
  • src/blocks/sticky-menu/render.phpfilters.php - Renamed and added function_exists check
  • docs/css-class-audit.md - Updated file references
  • src/blocks/sticky-menu/README.md - New architecture documentation
  • changelog.md - Added fix entry

Testing

  • ✅ Build process successfully copies filters.php to build folder
  • ✅ No PHP syntax errors
  • ✅ File includes function_exists() check
  • ✅ Site loads without fatal errors
  • ✅ Sticky menu mobile headers work correctly

Type of Change

  • Bug fix (critical - fixes production deployment issue)

Production Impact

This fix is critical for production. Without it, sites installing from WordPress.org will experience fatal PHP errors due to missing filter file.

Related Issues

Resolves fatal error: "Cannot redeclare function add_mobile_section_headers()" in production environments

Summary by CodeRabbit

  • New Features

    • Sticky menu now includes mobile‑optimised section headers with collapsible sections for improved navigation on small screens.
  • Chores

    • Release bumped to 2.1.1 and build/deployment updated to ensure the sticky‑menu filter is packaged.
    • Changelog and documentation updated for the new release.

✏️ Tip: You can customize this high-level summary in your review settings.

- Removed `render.php` and replaced it with `filters.php` to handle mobile section headers.
- Updated webpack configuration to copy `filters.php` to the build folder.
- Added functionality to dynamically create mobile headers for group blocks with sticky menu enabled.
- Updated changelog to reflect changes in sticky menu block functionality.
- Adjusted CSS class audit documentation to reference new filters file.
@chatgpt-codex-connector
Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@github-actions github-actions bot added lang:php PHP code area:ci Build and CI pipelines area:dependencies Composer/npm dependency work lang:md Markdown content/docs lang:javascript area:block-editor labels Jan 5, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jan 5, 2026

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: String must contain at most 250 character(s) at "tone_instructions"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Walkthrough

Moved sticky-menu server-side wrapper logic from src/.../render.php into a new filters.php registered on render_block; build tooling now copies the new file into build/, asset hashes and bundle IDs were updated, package and docs/version metadata bumped to 2.1.1.

Changes

Cohort / File(s) Summary
Sticky Menu Filter Logic — Source & Build
src/blocks/sticky-menu/filters.php, build/blocks/sticky-menu/filters.php
New add_mobile_section_headers() added and registered with add_filter('render_block', ...) to wrap core/group blocks that have addToStickyMenu and stickyMenuId attributes with an accessible mobile header and collapsible content region.
Sticky Menu Source — Removed Render
src/blocks/sticky-menu/render.php
Removed previous server-rendered add_mobile_section_headers() and its render_block registration (logic migrated to filters.php).
Sticky Menu Build Assets
build/blocks/sticky-menu/index.asset.php, build/blocks/sticky-menu/index.js
Rebuilt assets: version hash updated (...ebef7a......fa65b6...) and internal webpack module ID updated (560 → 2842); no API/interface changes.
Icon Block Asset Metadata
build/blocks/icons/index.asset.php
Asset metadata version hash updated only (...e6c6da......d9fe69...).
Build Configuration & Dependencies
webpack.config.js, package.json
Added CopyWebpackPlugin import and configured it to copy src/blocks/sticky-menu/filters.php into build output; added copy-webpack-plugin to devDependencies; bumped package version to 2.1.1.
Main Plugin & Docs
tour-operator.php, changelog.md, docs/css-class-audit.md, readme.txt
Bumped plugin/version constants to 2.1.1, changed include path to build/blocks/sticky-menu/filters.php, updated changelog and CSS-class audit references from render.phpfilters.php.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

area:infrastructure

Suggested reviewers

  • krugazul

Poem

🐰 I hopped a render to a filter new,

Packed it neat with webpack too.
Hashes changed and docs align,
A tiny jump — the build’s fine.
Carrot cheers for code that’s true.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title accurately and specifically describes the main change: moving the sticky menu filter file from src/ to build/ to ensure it's included in production releases.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch hotfix/sticky-menu-filter-build

📜 Recent review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1b551af and c558b52.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (1)
  • package.json
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{php,js,jsx,ts,tsx,json}

📄 CodeRabbit inference engine (GEMINI.md)

Follow WordPress Coding Standards including proper namespacing, security practices (sanitization/escaping), and code organization

Files:

  • package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Summary
🔇 Additional comments (2)
package.json (2)

3-3: Version bump is appropriate for this hotfix.

The patch version increment from 2.1.0 to 2.1.1 correctly follows semantic versioning for a bug fix release, aligning with the critical production issue being addressed in this PR.


45-45: Excellent choice using the latest version.

The addition of copy-webpack-plugin at version 13.0.1 addresses previous review feedback and uses the latest available version with no known security vulnerabilities. The placement in devDependencies is correct for a build-time tool, and testing results confirm the build process works as expected.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added status:needs-review Awaiting code review meta:needs-changelog Requires a changelog entry before merge labels Jan 5, 2026
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @tibiii, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical production deployment issue where a necessary PHP filter file for the sticky menu block was not being included in WordPress.org releases, leading to fatal errors. The changes involve a strategic renaming of the filter file, an update to the build configuration to ensure this file is correctly copied to the production-ready build directory, and adjustments to the main plugin file to load the filter from its new, correct location. This fix guarantees the sticky menu's mobile header functionality is available and stable across all environments.

Highlights

  • Critical Production Fix: Resolved a fatal error in production builds where the sticky menu's mobile section headers filter file was missing, causing sites installing from WordPress.org to experience fatal PHP errors.
  • File Restructuring and Safety: Renamed src/blocks/sticky-menu/render.php to filters.php to better reflect its role as a filter hook and added a function_exists() check to prevent redeclaration errors.
  • Build Process Enhancement: Integrated CopyWebpackPlugin into webpack.config.js to automatically copy filters.php from src/ to the build/ directory during the build process, ensuring its availability in production releases.
  • Path Updates: Modified tour-operator.php to correctly load the filters.php file from the build/ directory, aligning with the new build output structure.
  • Documentation Updates: Updated docs/css-class-audit.md to reflect the file rename and added a new src/blocks/sticky-menu/README.md to explain the block's architecture.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@tibiii tibiii self-assigned this Jan 5, 2026
@github-actions github-actions bot added status:needs-review Awaiting code review and removed status:needs-review Awaiting code review labels Jan 5, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively resolves a critical production bug by ensuring the sticky menu's filter file is included in the build. The changes are well-structured, including renaming the file for clarity, updating the build process with CopyWebpackPlugin, and adding a function_exists check to prevent errors. I've added a couple of suggestions to improve code readability and to update a development dependency.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Fix all issues with AI Agents 🤖
In @package.json:
- Line 45: Update the dependency entry "copy-webpack-plugin" from "^10.2.4" to
"^13.0.1" in package.json, run your package manager (npm install or yarn) to
update lockfiles, and rebuild to ensure compatibility; also review and adjust
any webpack configuration that references CopyWebpackPlugin (constructor options
or plugin API) to match v13's API changes if needed.
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 26ad5db and 279d1d8.

📒 Files selected for processing (12)
  • build/blocks/icons/index.asset.php
  • build/blocks/icons/index.js
  • build/blocks/sticky-menu/filters.php
  • build/blocks/sticky-menu/index.asset.php
  • build/blocks/sticky-menu/index.js
  • changelog.md
  • docs/css-class-audit.md
  • package.json
  • src/blocks/sticky-menu/filters.php
  • src/blocks/sticky-menu/render.php
  • tour-operator.php
  • webpack.config.js
💤 Files with no reviewable changes (1)
  • src/blocks/sticky-menu/render.php
🧰 Additional context used
📓 Path-based instructions (14)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

Use semicolons to terminate statements in JavaScript block code

Ensure all generated code follows ESLint rules and WordPress Coding Standards before deployment

Files:

  • build/blocks/sticky-menu/index.js
  • webpack.config.js
**/*.{php,js,jsx,ts,tsx,json}

📄 CodeRabbit inference engine (GEMINI.md)

Follow WordPress Coding Standards including proper namespacing, security practices (sanitization/escaping), and code organization

Files:

  • build/blocks/sticky-menu/index.js
  • tour-operator.php
  • build/blocks/sticky-menu/filters.php
  • webpack.config.js
  • package.json
  • build/blocks/sticky-menu/index.asset.php
  • src/blocks/sticky-menu/filters.php
  • build/blocks/icons/index.asset.php
**/*.{js,jsx,ts,tsx,php}

📄 CodeRabbit inference engine (GEMINI.md)

Implement accessibility features following WCAG 2.2 AA standards in all block components and patterns

Files:

  • build/blocks/sticky-menu/index.js
  • tour-operator.php
  • build/blocks/sticky-menu/filters.php
  • webpack.config.js
  • build/blocks/sticky-menu/index.asset.php
  • src/blocks/sticky-menu/filters.php
  • build/blocks/icons/index.asset.php
**/*.{php,js,jsx,ts,tsx}

📄 CodeRabbit inference engine (GEMINI.md)

Validate generated code against WordPress standards, test thoroughly, check security implications, and review for proper sanitization/escaping

Files:

  • build/blocks/sticky-menu/index.js
  • tour-operator.php
  • build/blocks/sticky-menu/filters.php
  • webpack.config.js
  • build/blocks/sticky-menu/index.asset.php
  • src/blocks/sticky-menu/filters.php
  • build/blocks/icons/index.asset.php
**/*.{js,jsx,ts,tsx,php,scss,css}

📄 CodeRabbit inference engine (GEMINI.md)

Use camelCase for variable and function names, kebab-case for CSS classes, and snake_case for PHP variable names per WordPress Coding Standards

Files:

  • build/blocks/sticky-menu/index.js
  • tour-operator.php
  • build/blocks/sticky-menu/filters.php
  • webpack.config.js
  • build/blocks/sticky-menu/index.asset.php
  • src/blocks/sticky-menu/filters.php
  • build/blocks/icons/index.asset.php
**/*.{js,jsx,ts,tsx,scss,css}

📄 CodeRabbit inference engine (GEMINI.md)

For performance optimization, implement code splitting, lazy loading, and minimize CSS/JavaScript bundle sizes in block components

Files:

  • build/blocks/sticky-menu/index.js
  • webpack.config.js
**/*.{js,ts,tsx,jsx}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

**/*.{js,ts,tsx,jsx}: Use async/await syntax; avoid .then() chains
Use named exports; avoid default exports unless wrapping a module

Files:

  • build/blocks/sticky-menu/index.js
  • webpack.config.js
**/*tour*.{php,jsx,tsx}

📄 CodeRabbit inference engine (GEMINI.md)

Include all meta tags, schema.org markup, and SEO-related data in tour listing and detail components for proper search engine indexing

Files:

  • tour-operator.php
**/*.php

📄 CodeRabbit inference engine (AGENTS.md)

Follow WordPress Coding Standards (WPCS) for all WordPress code

**/*.php: Store block patterns in the /patterns/ directory at the root of the plugin (WordPress standard for plugins), not in /includes/patterns/
Use text domain 'tour-operator' for all localization strings in the plugin

Files:

  • tour-operator.php
  • build/blocks/sticky-menu/filters.php
  • build/blocks/sticky-menu/index.asset.php
  • src/blocks/sticky-menu/filters.php
  • build/blocks/icons/index.asset.php
**/*.{php,html}

📄 CodeRabbit inference engine (.github/instructions/patterns-templates-refactoring.instructions.md)

**/*.{php,html}: Always use LSX_TO_URL and LSX_TO_PATH constants for asset paths in plugin files
Include CSS variable fallbacks with absolute hex values in inline styles for plugin compatibility with any theme
Use CSS variable format var(--wp--preset--[type]--[name], fallback_value) in inline styles, not var:preset|[type]|[name] format
Use var:preset|[type]|[name] format only within JSON block attributes, not in inline styles
Use the correct spacing preset names: 'tiny' (10px), 'small' (16px), 'medium' (32px), 'large' (48px), and 'x-small' (8px)

Files:

  • tour-operator.php
  • build/blocks/sticky-menu/filters.php
  • build/blocks/sticky-menu/index.asset.php
  • src/blocks/sticky-menu/filters.php
  • build/blocks/icons/index.asset.php
**/*.{php,twig}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Do not generate .php, .twig, or legacy CMS files

Files:

  • tour-operator.php
  • build/blocks/sticky-menu/filters.php
  • build/blocks/sticky-menu/index.asset.php
  • src/blocks/sticky-menu/filters.php
  • build/blocks/icons/index.asset.php
**/blocks/**/*.php

📄 CodeRabbit inference engine (CLAUDE.md)

PHP render callbacks must be properly documented with descriptions of attributes and return values

Files:

  • build/blocks/sticky-menu/filters.php
  • build/blocks/sticky-menu/index.asset.php
  • src/blocks/sticky-menu/filters.php
  • build/blocks/icons/index.asset.php
docs/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

Document architectural decisions and block patterns in markdown documentation

Files:

  • docs/css-class-audit.md
{src/blocks/**/*.{js,jsx,ts,tsx},src/**/*.php,inc/**/*.php}

📄 CodeRabbit inference engine (AGENTS.md)

Apply WCAG 2.2 AA accessibility standards to all blocks and UI components

Files:

  • src/blocks/sticky-menu/filters.php
🪛 PHPMD (2.15.0)
build/blocks/sticky-menu/filters.php

30-67: The parameter $block_content is not named in camelCase. (undefined)

(CamelCaseParameterName)


33-33: The variable $block_content is not named in camelCase. (undefined)

(CamelCaseVariableName)


42-42: The variable $section_id is not named in camelCase. (undefined)

(CamelCaseVariableName)


43-43: The variable $section_title is not named in camelCase. (undefined)

(CamelCaseVariableName)


46-46: The variable $mobile_header is not named in camelCase. (undefined)

(CamelCaseVariableName)


59-59: The variable $wrapped_content is not named in camelCase. (undefined)

(CamelCaseVariableName)

src/blocks/sticky-menu/filters.php

30-67: The parameter $block_content is not named in camelCase. (undefined)

(CamelCaseParameterName)


33-33: The variable $block_content is not named in camelCase. (undefined)

(CamelCaseVariableName)


42-42: The variable $section_id is not named in camelCase. (undefined)

(CamelCaseVariableName)


43-43: The variable $section_title is not named in camelCase. (undefined)

(CamelCaseVariableName)


46-46: The variable $mobile_header is not named in camelCase. (undefined)

(CamelCaseVariableName)


59-59: The variable $wrapped_content is not named in camelCase. (undefined)

(CamelCaseVariableName)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Summary
🔇 Additional comments (13)
changelog.md (1)

116-116: Changelog entry is accurate and well-documented.

The entry clearly communicates the fix, including the file rename, webpack configuration, production availability concern, and redeclaration guard. Documentation is complete and properly formatted for consistency with other entries in the changelog.

build/blocks/sticky-menu/index.asset.php (1)

1-1: LGTM - Generated asset metadata update.

The version hash update is expected when webpack regenerates assets. No concerns.

build/blocks/sticky-menu/index.js (1)

1-1: LGTM - Generated webpack bundle.

The internal module ID change (560 → 2842) is a webpack build artifact with no functional impact. No concerns.

build/blocks/icons/index.asset.php (1)

1-1: LGTM - Generated asset metadata update.

Version hash update reflects webpack rebuild. No concerns.

docs/css-class-audit.md (1)

170-174: LGTM - Documentation accurately reflects code restructuring.

The CSS class references have been correctly updated to point to filters.php instead of render.php, aligning with the PR's architectural change.

src/blocks/sticky-menu/filters.php (1)

1-70: Excellent implementation - LGTM!

This filter implementation demonstrates best practices across multiple dimensions:

Security: Proper direct access prevention, function_exists guard, and comprehensive escaping (esc_attr, esc_html, esc_html__).

Accessibility (WCAG 2.2 AA): Outstanding ARIA implementation following the disclosure pattern—button with aria-expanded, aria-controls linking to content, aria-describedby for context, role="region" with aria-labelledby, aria-hidden on decorative SVG, and screen reader-only text.

WordPress Standards: Correctly follows WordPress Coding Standards including snake_case for PHP variables (the PHPMD camelCase warnings are false positives—WordPress explicitly requires snake_case for PHP), proper text domain usage, and defensive coding with the null coalescing operator.

The function_exists check addresses the redeclaration issue mentioned in the PR objectives.

Note on static analysis hints: The PHPMD warnings about camelCase variable naming are false positives. As per WordPress Coding Standards and the coding guidelines provided, PHP must use snake_case for variable names, which this code correctly implements.

build/blocks/sticky-menu/filters.php (4)

1-15: File header and security check look good!

The file follows WordPress standards with proper documentation and ABSPATH protection to prevent direct access.


17-29: Excellent documentation and redeclaration protection!

The function_exists() check prevents fatal errors if the file is included multiple times, and the PHPDoc follows WordPress standards with proper attribute and return value descriptions as per the coding guidelines.


30-67: Well-implemented filter with proper security and accessibility!

The function correctly:

  • Validates block type and attributes with early returns for performance
  • Escapes all output using esc_attr(), esc_html(), and esc_html__()
  • Implements WCAG 2.2 AA accessibility with proper ARIA attributes (aria-expanded, aria-controls, aria-describedby, role="region", aria-labelledby)
  • Uses the correct text domain 'tour-operator' for localization
  • Follows WordPress Coding Standards with snake_case variable names (the static analysis warnings about camelCase are false positives—WordPress standards require snake_case for PHP variables per your coding guidelines)

69-69: Filter registration is correct.

The render_block filter is registered with standard priority 10. Since the function has early returns for non-matching blocks, performance impact should be minimal.

tour-operator.php (1)

76-79: Critical fix correctly implemented!

The updated require statement correctly loads the filters.php from the build path, ensuring it's included in WordPress.org releases. The use of the LSX_TO_PATH constant follows the coding guidelines for asset paths.

webpack.config.js (2)

6-6: Import statement is correct!

The CopyWebpackPlugin is imported consistently with the existing code style.


42-49: CopyWebpackPlugin configuration is correct!

The plugin configuration properly copies src/blocks/sticky-menu/filters.php to build/blocks/sticky-menu/filters.php (the 'to' path is relative to webpack's output directory). This aligns with the require statement in tour-operator.php at line 79.

…son, and tour-operator.php for sticky menu block filter file in production.
@github-actions github-actions bot added status:needs-review Awaiting code review and removed status:needs-review Awaiting code review labels Jan 5, 2026
@github-actions github-actions bot added status:needs-review Awaiting code review and removed status:needs-review Awaiting code review labels Jan 6, 2026
@tibiii tibiii requested a review from krugazul January 6, 2026 08:05
@krugazul krugazul merged commit 9ce210a into develop Jan 6, 2026
7 of 10 checks passed
@krugazul krugazul deleted the hotfix/sticky-menu-filter-build branch January 6, 2026 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:block-editor area:ci Build and CI pipelines area:dependencies Composer/npm dependency work lang:javascript lang:md Markdown content/docs lang:php PHP code meta:needs-changelog Requires a changelog entry before merge status:needs-review Awaiting code review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants