Repository navigation
Release - #4656
Merged
Merged
Release#4656
Conversation
Bumps [codeinwp/themeisle-sdk](https://github.com/Codeinwp/themeisle-sdk) from 3.3.65 to 3.3.66. - [Release notes](https://github.com/Codeinwp/themeisle-sdk/releases) - [Commits](Codeinwp/themeisle-sdk@v3.3.65...v3.3.66) --- updated-dependencies: - dependency-name: codeinwp/themeisle-sdk dependency-version: 3.3.66 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Collaborator
Author
* fix: guard missing woo customizer sections * test: cover shop template warning
Bumps [codeinwp/themeisle-sdk](https://github.com/Codeinwp/themeisle-sdk) from 3.3.66 to 3.3.67. - [Release notes](https://github.com/Codeinwp/themeisle-sdk/releases) - [Commits](Codeinwp/themeisle-sdk@v3.3.66...v3.3.67) --- updated-dependencies: - dependency-name: codeinwp/themeisle-sdk dependency-version: 3.3.67 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: remote font preview handling * test: isolate local font preview fixtures * fix: guard missing filesystem in font previews * fix: skip unconnected filesystem in previews * fix: skip cached fonts in customizer * fix: require cached weights before skipping
* fix: wrap cart coupon error notice * test: harden coupon notice spec setup
* fix: validate gradient color values * fix: strip HTML tags from CSS styles
* fix: enhance typography styles for block elements * test: wait for editor canvas iframe * fix: keep editor typography above core reset * fix: restore headings on WordPress 5.8 * fix: restore headings * fix: apply body typography in iframe editor * fix: keep editor link focus colour
* fix: accept decoded arrays in the HFG JSON sanitizers Pro conditional headers return stored responsive values already decoded, so sanitize_responsive_int_json() called json_decode() on an array and fatalled with a TypeError on PHP 8. Both JSON sanitizers now accept the array form and reject other non-string input instead of crashing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs: widen the JSON sanitizer param docblocks to mixed Both sanitizers accept any value and return the default for anything that is not a JSON string or decoded array. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Fixed letter spacing control handling
Fixed the imported content width metadata
…ab (#4668) With Starter Sites & Templates active, the Starter Sites tab only has a url (it links to the onboarding page), but getTabHash() still accepted #starter-sites, so App rendered tabs[currentTab].render() and crashed with 'render is not a function', leaving the dashboard blank. Pressing Back after activating the plugin landed there. Only accept hashes for tabs that render content; others fall back to the Welcome tab. Closes #4667 Claude-Session: https://claude.ai/code/session_01WPwFxvA5VPq8sd4EzsNFFA Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
#4650) * feat(customizer): add global header and footer visibility toggles Add a Disable Header Globally toggle to the Header panel and a Disable Footer Globally toggle to the Footer panel. Both feed the existing neve_filter_toggle_content_parts filter, at a priority that runs after the post meta, so the site wide setting wins. Move the filter check outside the header element in both templates. The element used to be printed even when the header was off, which left an empty wrapper that held only the skip link. The skip link now sits outside the element, so it survives a disabled header. The builder panels hide every section they do not name, so both sections are added to the whitelist in the customizer styles. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(amp): print the amp states outside the header The states were printed on neve_after_header_hook, which does not run when the header is off. One of them drives the WooCommerce shop sidebar, which stays on the page without a header. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * test: cover the global header and footer toggles Add unit tests for the toggle, its precedence over the post meta, the markup of both templates and the customizer registration. Add end to end tests, one of which opens the builder panels, because a section can register and still be hidden by the panel styles. Complete the WooCommerce stub with the conditional tags, so tests that render body_class() after the cart tests do not fatal. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * test: restore the customizer global after each test The test case restores the hooks and rolls back the database, but it does not touch $wp_customize. Keep the previous value and put it back, the way the metabox test does with the REST server. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * refactor(customizer): keep the section labels next to their part Hold the panel, the section title and the control label in one array per part, in place of two ternaries. Assert on the toggle structure in the e2e spec, not on the English label. Check that the stylesheet exists before the test reads it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs: trim the comments around the visibility filter Drop the hook docblock copied into header.php. footer.php documents this filter and the block theme template carries none. Keep only the part of the filter docblock a reader cannot infer. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * style(header): match the skip link markup in both templates Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * style(e2e): use the project spacing in the panel loop Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(amp): keep the scroll to top animations off the header The animations were printed on `neve_before_header_hook`, which only runs inside the header element. A header turned off in the customizer took them with it, and the button stays hidden until an animation shows it. Print them on `neve_before_header_wrapper_hook`, next to the AMP states. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(amp): give the scroll to top observer an anchor to watch An `amp-position-observer` watches its own parent when it has no target. Moving the observer out of the header in 9462899 made the page wrapper its parent, and the wrapper is never out of the viewport, so the button stayed hidden on every AMP page. Print an anchor at the top of the wrapper and point the observer at it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * refactor(customizer): move the header and footer toggles into global settings The toggles no longer get a section each. Disable Header now opens the General tab of Global Header Settings, where Neve Pro already keeps its site-wide header controls. Disable Footer lives in a new Global Footer Settings section, the footer's counterpart, so the two panels match. The theme mod keys stay neve_disable_header and neve_disable_footer, so the render filter and saved values are unchanged. Both toggles reuse the per-page labels and say that page builder headers and footers go too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: add screenshots of the global header and footer settings docs/ is excluded from the theme build by .distignore. Drop this commit before merging if the images should not stay in the repository. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(customizer): keep Disable Header on the legacy builder The toggle was registered only with the new builder's global header settings, so sites still on the legacy builder lost it. Those sites now get a Global Header Settings section with the toggle as a plain control. It has no tabs, so any Neve Pro controls in that section show as before, and a section Pro registered first is kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * refactor(customizer): share the Disable Header setting arguments Both registrations of neve_disable_header now take default, transport and sanitize_callback from get_disable_header_setting_args(), so the legacy and the new builder paths cannot drift apart. The user-since data provider gets a precise return type. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(customizer): name the sanitize callback in the legacy add_setting call Theme Check reads each $wp_customize->add_setting() call and requires a sanitize_callback key in it, so passing the shared argument array failed the check. The legacy call now lists the keys, with values still taken from get_disable_header_setting_args(). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * refactor(customizer): add array return types to the Disable Header helpers Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * refactor(customizer): reuse existing strings for the toggles The footer section is now titled Footer Options and both toggles drop their descriptions, so the change adds no strings to translate. Every label it uses already exists in the theme. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: retake the screenshots after the string reuse Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep content hooked around a disabled header, and AMP pagination without the footer A disabled header skipped neve_before_header_hook and neve_after_header_hook along with the wrapper. Neve Pro prints its page header on neve_after_header_hook, so a page that turned its header off lost the page header too, which development keeps. The hooks now always run, and the header wrapper prints when the header is on or when the hooks printed something. An empty wrapper is still dropped. The block template follows the same rule. The AMP infinite scroll wraps the footer hooks and removes the regular pagination, so with the footer off an AMP blog archive had no pagination at all. The infinite scroll now steps aside when the footer is off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(amp): hide the moved skip link on appended infinite scroll pages The skip link used to sit inside <header next-page-hide>, so AMP infinite scroll hid it on the pages it appends. Outside the header it needs its own attribute, or every appended page adds another focusable skip link. Tests now also cover whitespace-only hook output and the per-page switch in the block theme template. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test: make the block template tests able to fail The block template helper never enabled the theme's FSE templates, so the header part never rendered and the tests passed whatever the template did. They now turn the templates on and check neve_do_header, and a new case covers the AMP attribute on the block template skip link. The shop test is gone: it opened a regular page and never reached the shop branch, and the rule it checked is covered by the global-over-meta test. Docblocks of the providers and helpers now give their shapes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: remove the PR screenshots from docs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Alexia Soare <108459992+Alexia-Soare@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Fixed AMP submenu toggle accessibility
Collaborator
Author
🌍 i18n String Review Report📊 Summary
➕ Added Strings (1) - Click to expand
|
Collaborator
Author
|
🎉 This PR is included in version 4.2.17 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked issues
This release will close the following issues once merged:
Public changelog