Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: WebberZone/knowledgebase
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.1.2
Choose a base ref
...
head repository: WebberZone/knowledgebase
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.1.3
Choose a head ref
  • 17 commits
  • 75 files changed
  • 1 contributor

Commits on Aug 17, 2026

  1. Sync from pro: fix default value resolution for settings read before …

    …init
    
    get_defaults() returned raw booleans while settings_defaults() normalises
    checkbox defaults with (int) (bool). Since get_default_option() switched to
    the former, checkbox defaults resolved to true/false instead of 1/0, which
    breaks consumers that expect a numeric value (block attributes, REST schemas).
    Defaults are now stored pre-normalised.
    
    custom_css has no 'default' key in its field definition, so settings_defaults()
    assigned '' while get_defaults() had no entry at all, making the option resolve
    to false. Added an explicit entry.
    
    The wzkb_settings_defaults filter was also bypassed on the get_default_option()
    path. It is now applied by both consumers, keeping get_defaults() itself
    unfiltered so it runs exactly once per path. Settings::$prefix is initialised at
    declaration because it was only assigned in the constructor, which never runs
    outside the admin area, so settings_defaults() fired _settings_defaults rather
    than wzkb_settings_defaults on the frontend.
    
    Also picks up root file drift from the sync: composer.json and package.json
    versions catch up to 3.1.2, and CLAUDE.md/AGENTS.md links match pro.
    ajaydsouza committed Aug 17, 2026
    Configuration menu
    Copy the full SHA
    47b58a1 View commit details
    Browse the repository at this point in the history
  2. Fix settings wizard silently dropping repeater field rows on save

    sanitize_setting_value() called each field's type-specific sanitizer with
    only the raw value, dropping the field config. sanitize_repeater_field()
    needs that config for its subfield schema, so every repeater row came back
    empty and was discarded before validation ever ran.
    ajaydsouza committed Aug 17, 2026
    Configuration menu
    Copy the full SHA
    d5234cd View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2026

  1. Configuration menu
    Copy the full SHA
    c45485a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d840563 View commit details
    Browse the repository at this point in the history
  3. Sync from knowledgebase-pro: changelog and admin docblock updates

    Include the 3.1.3 wizard repeater-row fix note and pro-side admin comment cleanups.
    ajaydsouza committed Aug 18, 2026
    Configuration menu
    Copy the full SHA
    d20eddc View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2026

  1. Rename WZ settings-API JS globals to Webber, fix referer/is_array han…

    …dling
    
    Aligns with the WordPress.org plugin-review fix applied in webberzone-image-optimizer: renames the WZSettingsAdmin/WZTomSelectSettings/WZInitTomSelect JS globals to Webber-prefixed names, makes settings_sanitize() run its sanitizer loop even without a referer, guards $input with is_array() instead of a truthy check, and removes the dead freemkitTomSelectSettings fallback.
    ajaydsouza committed Aug 19, 2026
    Configuration menu
    Copy the full SHA
    d2a9fd3 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2026

  1. Sync settings framework: sanitize every field type

    get_sanitize_callback() returned false for any field type without a
    matching sanitize_{type}_field() method, and settings_sanitize() then let
    array_merge() store the submitted value raw. radio, radiodesc, thumbsizes,
    select, wysiwyg, file, password, css and html all fell through that path.
    
    - Add the nine missing sanitizers. Choice fields (radio, radiodesc,
      select, thumbsizes) validate against the options the field actually
      renders and fall back to the field own default rather than blanking.
    - Generalise the repeater-only closure so every callback receives the
      field configuration, and make sanitize_missing() the fallback instead
      of false, so no type can store raw input.
    - sanitize_missing() now deep-sanitizes arrays instead of passing through.
    - Build the output array from stored settings rather than merging raw
      input, so submitted keys that are not registered settings are sanitized
      too instead of being written verbatim.
    
    register_setting() now declares type => object and an explicit default.
    show_in_rest is off: the value is an open-ended map with no REST schema,
    and settings_sanitize() expects a form submission.
    
    Settings_API VERSION 2.11.0 -> 3.0.0.
    ajaydsouza committed Aug 20, 2026
    Configuration menu
    Copy the full SHA
    5b380b2 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2026

  1. Configuration menu
    Copy the full SHA
    0985c1a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2fc175a View commit details
    Browse the repository at this point in the history
  3. Sync Options API and admin notices API with canonical copies

    Adds get_settings_with_defaults(), get_blog_option() and aligns docblocks;
    notice API members switch from private to protected.
    ajaydsouza committed Aug 23, 2026
    Configuration menu
    Copy the full SHA
    a40129f View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2026

  1. Configuration menu
    Copy the full SHA
    855f291 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2026

  1. Escape documented [toc] references, and fix the escaping note

    The note explaining the convention had it backwards: it said double
    brackets while showing single. Double brackets are the escaped form and
    render as the literal [toc]; single brackets trigger TOC insertion.
    ajaydsouza committed Aug 26, 2026
    Configuration menu
    Copy the full SHA
    bf21e74 View commit details
    Browse the repository at this point in the history
  2. Bump version to 3.1.3 and rewrite GitHub export wizard with chunked p…

    …rocessing
    
    Replace two-phase bulk push with bounded chunk processing: preview articles, start job, process chunks, finalize commits per repo/branch. Add retry logic with exponential backoff, stale-job guards, and resume-from-pause support. Track tasks by key, render status updates incrementally, and show commit URLs in summary.
    ajaydsouza committed Aug 26, 2026
    Configuration menu
    Copy the full SHA
    1890b5c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5e0f48d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e26de78 View commit details
    Browse the repository at this point in the history
  5. Update language files

    ajaydsouza committed Aug 26, 2026
    Configuration menu
    Copy the full SHA
    f34c2f7 View commit details
    Browse the repository at this point in the history
  6. Pre-release update

    ajaydsouza committed Aug 26, 2026
    Configuration menu
    Copy the full SHA
    66a9d4c View commit details
    Browse the repository at this point in the history
Loading
Sponsor
SponsoredKunjungi sekarang
Promo