From 725d3043d5188e6f129b3d525940cad19711843d Mon Sep 17 00:00:00 2001 From: Tony Volpe Date: Tue, 5 Dec 2023 23:05:59 +0000 Subject: [PATCH] Merged in feature/81-dev-dev01 (pull request #5) auto-patch 81-dev-dev01-2023-12-05T22_45_26 * auto-patch 81-dev-dev01-2023-12-05T22_45_26 --- wp/wp-admin/about.php | 312 +- wp/wp-admin/async-upload.php | 11 +- wp/wp-admin/authorize-application.php | 50 +- wp/wp-admin/comment.php | 16 +- wp/wp-admin/contribute.php | 30 +- wp/wp-admin/credits.php | 10 +- wp/wp-admin/css/about-rtl.css | 62 +- wp/wp-admin/css/about-rtl.min.css | 2 +- wp/wp-admin/css/about.css | 62 +- wp/wp-admin/css/about.min.css | 2 +- wp/wp-admin/css/common-rtl.css | 33 +- wp/wp-admin/css/common-rtl.min.css | 4 +- wp/wp-admin/css/common.css | 33 +- wp/wp-admin/css/common.min.css | 4 +- wp/wp-admin/css/customize-controls-rtl.css | 10 +- .../css/customize-controls-rtl.min.css | 2 +- wp/wp-admin/css/customize-controls.css | 10 +- wp/wp-admin/css/customize-controls.min.css | 2 +- wp/wp-admin/css/dashboard-rtl.css | 4 + wp/wp-admin/css/dashboard-rtl.min.css | 2 +- wp/wp-admin/css/dashboard.css | 4 + wp/wp-admin/css/dashboard.min.css | 2 +- wp/wp-admin/css/deprecated-media-rtl.css | 1 + wp/wp-admin/css/deprecated-media-rtl.min.css | 2 +- wp/wp-admin/css/deprecated-media.css | 1 + wp/wp-admin/css/deprecated-media.min.css | 2 +- wp/wp-admin/css/edit-rtl.css | 1 + wp/wp-admin/css/edit-rtl.min.css | 2 +- wp/wp-admin/css/edit.css | 1 + wp/wp-admin/css/edit.min.css | 2 +- wp/wp-admin/css/forms-rtl.css | 5 + wp/wp-admin/css/forms-rtl.min.css | 2 +- wp/wp-admin/css/forms.css | 5 + wp/wp-admin/css/forms.min.css | 2 +- wp/wp-admin/css/install-rtl.css | 1 + wp/wp-admin/css/install-rtl.min.css | 2 +- wp/wp-admin/css/install.css | 1 + wp/wp-admin/css/install.min.css | 2 +- wp/wp-admin/css/list-tables-rtl.css | 13 +- wp/wp-admin/css/list-tables-rtl.min.css | 2 +- wp/wp-admin/css/list-tables.css | 13 +- wp/wp-admin/css/list-tables.min.css | 2 +- wp/wp-admin/css/login-rtl.css | 26 +- wp/wp-admin/css/login-rtl.min.css | 2 +- wp/wp-admin/css/login.css | 26 +- wp/wp-admin/css/login.min.css | 2 +- wp/wp-admin/css/media-rtl.css | 2 + wp/wp-admin/css/media-rtl.min.css | 2 +- wp/wp-admin/css/media.css | 2 + wp/wp-admin/css/media.min.css | 2 +- wp/wp-admin/css/nav-menus-rtl.css | 15 +- wp/wp-admin/css/nav-menus-rtl.min.css | 2 +- wp/wp-admin/css/nav-menus.css | 15 +- wp/wp-admin/css/nav-menus.min.css | 2 +- wp/wp-admin/css/revisions-rtl.css | 1 + wp/wp-admin/css/revisions-rtl.min.css | 2 +- wp/wp-admin/css/revisions.css | 1 + wp/wp-admin/css/revisions.min.css | 2 +- wp/wp-admin/css/themes-rtl.css | 20 +- wp/wp-admin/css/themes-rtl.min.css | 2 +- wp/wp-admin/css/themes.css | 20 +- wp/wp-admin/css/themes.min.css | 2 +- wp/wp-admin/css/widgets-rtl.min.css | 2 +- wp/wp-admin/css/widgets.min.css | 2 +- wp/wp-admin/edit-comments.php | 32 +- wp/wp-admin/edit-form-advanced.php | 48 +- wp/wp-admin/edit-form-blocks.php | 62 +- wp/wp-admin/edit-link-form.php | 17 +- wp/wp-admin/edit-tag-form.php | 22 +- wp/wp-admin/edit-tags.php | 13 +- wp/wp-admin/edit.php | 48 +- wp/wp-admin/erase-personal-data.php | 2 +- wp/wp-admin/export.php | 7 +- wp/wp-admin/freedoms.php | 12 +- wp/wp-admin/images/about-header-about.svg | 12 +- .../images/about-header-background.svg | 11 + .../images/about-header-contribute.svg | 12 +- wp/wp-admin/images/about-header-credits.svg | 12 +- wp/wp-admin/images/about-header-freedoms.svg | 12 +- wp/wp-admin/images/about-header-privacy.svg | 12 +- wp/wp-admin/images/about-release-badge.svg | 13 +- wp/wp-admin/images/contribute-code.svg | 25 +- wp/wp-admin/images/contribute-main.svg | 22 +- wp/wp-admin/images/contribute-no-code.svg | 33 +- wp/wp-admin/images/freedom-1.svg | 15 +- wp/wp-admin/images/freedom-2.svg | 15 +- wp/wp-admin/images/freedom-3.svg | 55 +- wp/wp-admin/images/freedom-4.svg | 26 +- wp/wp-admin/images/privacy.svg | 13 +- wp/wp-admin/import.php | 25 +- wp/wp-admin/includes/admin-filters.php | 6 +- wp/wp-admin/includes/ajax-actions.php | 47 +- .../includes/class-bulk-upgrader-skin.php | 10 +- .../includes/class-custom-background.php | 50 +- .../includes/class-custom-image-header.php | 51 +- .../includes/class-language-pack-upgrader.php | 4 +- .../includes/class-plugin-upgrader.php | 70 +- wp/wp-admin/includes/class-theme-upgrader.php | 3 +- .../class-walker-category-checklist.php | 8 +- .../class-walker-nav-menu-checklist.php | 1 - .../includes/class-walker-nav-menu-edit.php | 4 +- .../includes/class-wp-automatic-updater.php | 4 +- .../includes/class-wp-comments-list-table.php | 38 +- .../includes/class-wp-community-events.php | 2 +- wp/wp-admin/includes/class-wp-debug-data.php | 36 +- .../includes/class-wp-filesystem-base.php | 6 +- wp/wp-admin/includes/class-wp-importer.php | 2 +- .../includes/class-wp-links-list-table.php | 12 +- wp/wp-admin/includes/class-wp-list-table.php | 59 +- .../includes/class-wp-media-list-table.php | 14 +- .../includes/class-wp-ms-sites-list-table.php | 19 +- .../class-wp-ms-themes-list-table.php | 27 +- .../includes/class-wp-ms-users-list-table.php | 20 +- .../class-wp-plugin-install-list-table.php | 50 +- .../includes/class-wp-plugins-list-table.php | 56 +- .../includes/class-wp-posts-list-table.php | 61 +- ...ivacy-data-removal-requests-list-table.php | 1 - .../class-wp-privacy-policy-content.php | 71 +- .../class-wp-privacy-requests-table.php | 14 +- .../class-wp-site-health-auto-updates.php | 4 +- wp/wp-admin/includes/class-wp-site-health.php | 53 +- .../includes/class-wp-terms-list-table.php | 82 +- wp/wp-admin/includes/class-wp-upgrader.php | 12 +- .../includes/class-wp-users-list-table.php | 9 +- wp/wp-admin/includes/dashboard.php | 71 +- wp/wp-admin/includes/deprecated.php | 3 +- wp/wp-admin/includes/file.php | 92 +- wp/wp-admin/includes/image-edit.php | 93 +- wp/wp-admin/includes/image.php | 7 +- wp/wp-admin/includes/media.php | 6 +- wp/wp-admin/includes/menu.php | 2 +- wp/wp-admin/includes/meta-boxes.php | 43 +- wp/wp-admin/includes/misc.php | 4 +- wp/wp-admin/includes/ms.php | 19 +- wp/wp-admin/includes/nav-menu.php | 42 +- wp/wp-admin/includes/network.php | 119 +- wp/wp-admin/includes/noop.php | 7 + wp/wp-admin/includes/plugin-install.php | 49 +- wp/wp-admin/includes/plugin.php | 17 +- wp/wp-admin/includes/post.php | 88 +- wp/wp-admin/includes/revision.php | 1 - wp/wp-admin/includes/schema.php | 5 +- wp/wp-admin/includes/template.php | 92 +- wp/wp-admin/includes/theme-install.php | 1 - wp/wp-admin/includes/theme.php | 42 +- wp/wp-admin/includes/update-core.php | 20 +- wp/wp-admin/includes/update.php | 37 +- wp/wp-admin/includes/upgrade.php | 37 +- wp/wp-admin/includes/user.php | 128 +- wp/wp-admin/includes/widgets.php | 4 +- wp/wp-admin/index.php | 29 +- wp/wp-admin/js/application-passwords.js | 2 +- wp/wp-admin/js/application-passwords.min.js | 2 +- wp/wp-admin/js/common.js | 165 +- wp/wp-admin/js/common.min.js | 2 +- wp/wp-admin/js/customize-controls.js | 6 +- wp/wp-admin/js/gallery.js | 2 - wp/wp-admin/js/gallery.min.js | 2 +- wp/wp-admin/js/image-edit.js | 38 +- wp/wp-admin/js/image-edit.min.js | 2 +- wp/wp-admin/js/inline-edit-post.js | 7 - wp/wp-admin/js/inline-edit-post.min.js | 2 +- wp/wp-admin/js/post.js | 2 +- wp/wp-admin/js/post.min.js | 2 +- wp/wp-admin/js/site-health.js | 39 +- wp/wp-admin/js/site-health.min.js | 2 +- wp/wp-admin/js/widgets/text-widgets.js | 2 +- wp/wp-admin/js/widgets/text-widgets.min.js | 2 +- wp/wp-admin/link-manager.php | 14 +- wp/wp-admin/link.php | 2 +- wp/wp-admin/maint/repair.php | 2 +- wp/wp-admin/media-upload.php | 1 - wp/wp-admin/menu.php | 23 +- wp/wp-admin/my-sites.php | 24 +- wp/wp-admin/nav-menus.php | 110 +- wp/wp-admin/network/menu.php | 8 +- wp/wp-admin/network/settings.php | 51 +- wp/wp-admin/network/site-info.php | 8 +- wp/wp-admin/network/site-new.php | 8 +- wp/wp-admin/network/site-settings.php | 8 +- wp/wp-admin/network/site-themes.php | 29 +- wp/wp-admin/network/site-users.php | 38 +- wp/wp-admin/network/sites.php | 11 +- wp/wp-admin/network/themes.php | 79 +- wp/wp-admin/network/user-new.php | 34 +- wp/wp-admin/network/users.php | 54 +- wp/wp-admin/options-general.php | 38 +- wp/wp-admin/options-privacy.php | 14 +- wp/wp-admin/options-reading.php | 28 +- wp/wp-admin/options.php | 29 +- wp/wp-admin/plugin-editor.php | 59 +- wp/wp-admin/plugins.php | 165 +- wp/wp-admin/privacy-policy-guide.php | 14 +- wp/wp-admin/privacy.php | 8 +- wp/wp-admin/revision.php | 4 +- wp/wp-admin/site-editor.php | 41 +- wp/wp-admin/site-health-info.php | 12 +- wp/wp-admin/site-health.php | 33 +- wp/wp-admin/theme-editor.php | 114 +- wp/wp-admin/theme-install.php | 21 +- wp/wp-admin/themes.php | 319 +- wp/wp-admin/update-core.php | 59 +- wp/wp-admin/upgrade.php | 2 +- wp/wp-admin/upload.php | 58 +- wp/wp-admin/user-edit.php | 139 +- wp/wp-admin/user-new.php | 57 +- wp/wp-admin/users.php | 148 +- wp/wp-admin/widgets-form-blocks.php | 45 +- wp/wp-admin/widgets-form.php | 32 +- .../contact-form-7/includes/formatting.php | 11 + .../includes/swv/rules/file.php | 2 +- .../plugins/contact-form-7/readme.txt | 6 +- .../contact-form-7/wp-contact-form-7.php | 4 +- .../i18n/languages/woocommerce.pot | 53 +- .../includes/class-woocommerce.php | 2 +- .../class-wc-coupon-data-store-cpt.php | 21 +- .../build/active-filters-frontend.asset.php | 2 +- .../build/active-filters-frontend.js | 12 +- .../build/active-filters-style.asset.php | 2 +- .../build/active-filters-wrapper-frontend.js | 12 +- .../build/active-filters.asset.php | 2 +- .../build/active-filters.js | 12 +- .../build/add-to-cart-form-style.asset.php | 2 +- .../build/all-products-frontend.asset.php | 2 +- .../build/all-products-frontend.js | 10 +- .../build/all-products-style.asset.php | 2 +- .../build/all-products.asset.php | 2 +- .../woocommerce-blocks/build/all-products.js | 36 +- .../build/all-reviews-rtl.css | 2 +- .../build/all-reviews-style.asset.php | 2 +- .../build/all-reviews.asset.php | 2 +- .../woocommerce-blocks/build/all-reviews.css | 2 +- .../woocommerce-blocks/build/all-reviews.js | 8 +- .../build/attribute-filter-frontend.asset.php | 2 +- .../build/attribute-filter-frontend.js | 22 +- .../build/attribute-filter-style.asset.php | 2 +- .../attribute-filter-wrapper-frontend.js | 18 +- .../build/attribute-filter.asset.php | 2 +- .../build/attribute-filter.js | 24 +- .../build/blocks-checkout.asset.php | 2 +- .../build/blocks-checkout.js | 4 +- .../build/blocks-components.asset.php | 2 +- .../build/blocks-components.js | 10 +- .../build/breadcrumbs-style.asset.php | 2 +- .../build/breadcrumbs.asset.php | 2 +- .../woocommerce-blocks/build/breadcrumbs.js | 2 +- .../cart-accepted-payment-methods-frontend.js | 2 +- .../cart-blocks/cart-cross-sells-frontend.js | 2 +- .../cart-cross-sells-products-frontend.js | 14 +- .../cart-blocks/cart-cross-sells-style.js | 2 +- .../cart-express-payment-frontend.js | 4 +- .../build/cart-blocks/cart-items-frontend.js | 2 +- .../build/cart-blocks/cart-items-style.js | 2 +- .../cart-blocks/cart-line-items-frontend.js | 22 +- .../cart-order-summary-frontend.js | 18 +- .../cart-blocks/cart-order-summary-style.js | 2 +- .../build/cart-blocks/cart-totals-frontend.js | 2 +- .../build/cart-blocks/cart-totals-style.js | 2 +- .../build/cart-blocks/empty-cart-frontend.js | 2 +- .../build/cart-blocks/empty-cart-style.js | 2 +- .../build/cart-blocks/filled-cart-frontend.js | 2 +- .../build/cart-blocks/filled-cart-style.js | 2 +- .../order-summary-coupon-form-frontend.js | 20 +- .../order-summary-discount-frontend.js | 20 +- .../cart-blocks/order-summary-fee-frontend.js | 2 +- .../order-summary-heading-frontend.js | 2 +- .../order-summary-heading-style.js | 2 +- .../order-summary-shipping-frontend.js | 18 +- .../order-summary-subtotal-frontend.js | 2 +- .../order-summary-taxes-frontend.js | 2 +- .../proceed-to-checkout-frontend.js | 2 +- .../cart-blocks/proceed-to-checkout-style.js | 2 +- .../build/cart-frontend.asset.php | 2 +- .../woocommerce-blocks/build/cart-frontend.js | 2 +- .../build/cart-style.asset.php | 2 +- .../woocommerce-blocks/build/cart.asset.php | 2 +- .../packages/woocommerce-blocks/build/cart.js | 54 +- .../build/catalog-sorting-style.asset.php | 2 +- .../build/catalog-sorting.asset.php | 2 +- .../build/catalog-sorting.js | 2 +- .../build/checkout-blocks/actions-frontend.js | 2 +- .../build/checkout-blocks/actions-style.js | 2 +- .../billing-address-frontend.js | 4 +- .../checkout-blocks/billing-address-style.js | 2 +- .../contact-information-frontend.js | 2 +- .../contact-information-style.js | 2 +- .../express-payment-frontend.js | 4 +- .../build/checkout-blocks/fields-frontend.js | 2 +- .../build/checkout-blocks/fields-style.js | 2 +- .../checkout-blocks/order-note-frontend.js | 2 +- .../order-summary-cart-items-frontend.js | 10 +- .../order-summary-coupon-form-frontend.js | 20 +- .../order-summary-discount-frontend.js | 20 +- .../order-summary-fee-frontend.js | 2 +- .../checkout-blocks/order-summary-frontend.js | 18 +- .../order-summary-shipping-frontend.js | 18 +- .../checkout-blocks/order-summary-style.js | 2 +- .../order-summary-subtotal-frontend.js | 2 +- .../order-summary-taxes-frontend.js | 2 +- .../build/checkout-blocks/payment-frontend.js | 8 +- .../build/checkout-blocks/payment-style.js | 2 +- .../pickup-options-frontend.js | 6 +- .../checkout-blocks/pickup-options-style.js | 2 +- .../shipping-address-frontend.js | 4 +- .../checkout-blocks/shipping-address-style.js | 2 +- .../shipping-method-frontend.js | 2 +- .../checkout-blocks/shipping-method-style.js | 2 +- .../shipping-methods-frontend.js | 8 +- .../checkout-blocks/shipping-methods-style.js | 2 +- .../build/checkout-blocks/terms-frontend.js | 6 +- .../build/checkout-blocks/terms-style.js | 2 +- .../build/checkout-blocks/totals-frontend.js | 2 +- .../build/checkout-blocks/totals-style.js | 2 +- .../build/checkout-frontend.asset.php | 2 +- .../build/checkout-frontend.js | 2 +- .../build/checkout-style.asset.php | 2 +- .../build/checkout.asset.php | 2 +- .../woocommerce-blocks/build/checkout.js | 44 +- .../build/classic-shortcode-style.asset.php | 2 +- .../build/classic-shortcode.asset.php | 2 +- .../build/classic-shortcode.js | 2 +- .../build/collection-filters-style.asset.php | 2 +- .../build/collection-filters.asset.php | 2 +- .../build/collection-filters.js | 2 +- .../collection-price-filter-style.asset.php | 2 +- .../build/collection-price-filter.asset.php | 2 +- .../build/collection-price-filter.js | 4 +- .../build/customer-account-style.asset.php | 2 +- .../build/customer-account.asset.php | 2 +- .../build/customer-account.js | 2 +- .../build/featured-category-style.asset.php | 2 +- .../build/featured-category.asset.php | 2 +- .../build/featured-category.js | 24 +- .../build/featured-product-style.asset.php | 2 +- .../build/featured-product.asset.php | 2 +- .../build/featured-product.js | 24 +- .../build/filter-wrapper-frontend.asset.php | 2 +- .../build/filter-wrapper-frontend.js | 2 +- .../build/filter-wrapper-style.asset.php | 2 +- .../build/filter-wrapper.asset.php | 2 +- .../build/filter-wrapper.js | 2 +- .../build/handpicked-products-style.asset.php | 2 +- .../build/handpicked-products.asset.php | 2 +- .../build/handpicked-products.js | 10 +- .../build/legacy-template-style.asset.php | 2 +- .../build/legacy-template.asset.php | 2 +- .../build/legacy-template.js | 8 +- .../mini-cart-component-frontend.asset.php | 2 +- .../build/mini-cart-component-frontend.js | 8 +- .../cart-button-frontend.js | 2 +- .../cart-button-style.js | 2 +- .../checkout-button-frontend.js | 2 +- .../checkout-button-style.js | 2 +- .../empty-cart-frontend.js | 2 +- .../empty-cart-style.js | 2 +- .../filled-cart-frontend.js | 2 +- .../filled-cart-style.js | 2 +- .../footer-frontend.js | 2 +- .../mini-cart-contents-block/footer-style.js | 2 +- .../items-frontend.js | 2 +- .../mini-cart-contents-block/items-style.js | 2 +- .../products-table-frontend.js | 22 +- .../shopping-button-frontend.js | 2 +- .../shopping-button-style.js | 2 +- .../title-frontend.js | 4 +- .../title-items-counter-frontend.js | 2 +- .../title-items-counter-style.js | 2 +- .../title-label-frontend.js | 2 +- .../title-label-style.js | 2 +- .../mini-cart-contents-block/title-style.js | 2 +- .../build/mini-cart-contents-style.asset.php | 2 +- .../build/mini-cart-contents.asset.php | 2 +- .../build/mini-cart-contents.js | 22 +- .../build/mini-cart-style.asset.php | 2 +- .../build/mini-cart.asset.php | 2 +- .../woocommerce-blocks/build/mini-cart.js | 2 +- ...ion-additional-information-style.asset.php | 2 +- ...firmation-additional-information.asset.php | 2 +- ...der-confirmation-additional-information.js | 2 +- ...nfirmation-billing-address-style.asset.php | 2 +- ...der-confirmation-billing-address.asset.php | 2 +- .../order-confirmation-billing-address.js | 2 +- ...nfirmation-billing-wrapper-style.asset.php | 2 +- ...der-confirmation-billing-wrapper.asset.php | 2 +- .../order-confirmation-billing-wrapper.js | 2 +- ...der-confirmation-downloads-style.asset.php | 2 +- ...irmation-downloads-wrapper-style.asset.php | 2 +- ...r-confirmation-downloads-wrapper.asset.php | 2 +- .../order-confirmation-downloads-wrapper.js | 2 +- .../order-confirmation-downloads.asset.php | 2 +- .../build/order-confirmation-downloads.js | 2 +- ...firmation-shipping-address-style.asset.php | 2 +- ...er-confirmation-shipping-address.asset.php | 2 +- .../order-confirmation-shipping-address.js | 2 +- ...firmation-shipping-wrapper-style.asset.php | 2 +- ...er-confirmation-shipping-wrapper.asset.php | 2 +- .../order-confirmation-shipping-wrapper.js | 2 +- .../order-confirmation-status-style.asset.php | 2 +- .../build/order-confirmation-status.asset.php | 2 +- .../build/order-confirmation-status.js | 2 +- ...order-confirmation-summary-style.asset.php | 2 +- .../order-confirmation-summary.asset.php | 2 +- .../build/order-confirmation-summary.js | 2 +- .../order-confirmation-totals-style.asset.php | 2 +- ...onfirmation-totals-wrapper-style.asset.php | 2 +- ...rder-confirmation-totals-wrapper.asset.php | 2 +- .../order-confirmation-totals-wrapper.js | 2 +- .../build/order-confirmation-totals.asset.php | 2 +- .../build/order-confirmation-totals.js | 2 +- .../build/packages-style-style.asset.php | 2 +- .../page-content-wrapper-style.asset.php | 2 +- .../build/page-content-wrapper.asset.php | 2 +- .../build/page-content-wrapper.js | 2 +- .../build/price-filter-frontend.asset.php | 2 +- .../build/price-filter-frontend.js | 6 +- .../build/price-filter-style.asset.php | 2 +- .../build/price-filter-wrapper-frontend.js | 6 +- .../build/price-filter.asset.php | 2 +- .../woocommerce-blocks/build/price-filter.js | 6 +- .../build/product-add-to-cart-frontend.js | 6 +- .../build/product-add-to-cart.js | 6 +- .../build/product-average-rating-frontend.js | 2 +- .../build/product-average-rating.js | 2 +- .../product-best-sellers-style.asset.php | 2 +- .../build/product-best-sellers.asset.php | 2 +- .../build/product-best-sellers.js | 10 +- .../build/product-button-frontend.js | 4 +- ...ct-button-interactivity-frontend.asset.php | 2 +- .../product-button-interactivity-frontend.js | 2 +- .../build/product-button.js | 4 +- .../build/product-categories-style.asset.php | 2 +- .../build/product-categories.asset.php | 2 +- .../build/product-categories.js | 2 +- .../build/product-category-style.asset.php | 2 +- .../build/product-category.asset.php | 2 +- .../build/product-category.js | 18 +- .../build/product-collection-style.asset.php | 2 +- .../build/product-collection.asset.php | 2 +- .../build/product-collection.js | 18 +- .../build/product-details-style.asset.php | 2 +- ...-large-image-next-previous-style.asset.php | 2 +- ...allery-large-image-next-previous.asset.php | 2 +- ...oduct-gallery-large-image-next-previous.js | 2 +- ...roduct-gallery-large-image-style.asset.php | 2 +- .../product-gallery-large-image.asset.php | 2 +- .../build/product-gallery-large-image.js | 2 +- .../product-gallery-pager-style.asset.php | 2 +- .../build/product-gallery-pager.asset.php | 2 +- .../build/product-gallery-pager.js | 2 +- .../build/product-gallery-style.asset.php | 2 +- ...product-gallery-thumbnails-style.asset.php | 2 +- .../product-gallery-thumbnails.asset.php | 2 +- .../build/product-gallery-thumbnails.js | 2 +- .../build/product-gallery.asset.php | 2 +- .../build/product-gallery.js | 2 +- .../build/product-image-frontend.js | 4 +- .../product-image-gallery-style.asset.php | 2 +- .../woocommerce-blocks/build/product-image.js | 4 +- .../build/product-new-style.asset.php | 2 +- .../build/product-new.asset.php | 2 +- .../woocommerce-blocks/build/product-new.js | 18 +- .../build/product-on-sale-style.asset.php | 2 +- .../build/product-on-sale.asset.php | 2 +- .../build/product-on-sale.js | 10 +- .../build/product-price-frontend.js | 4 +- .../woocommerce-blocks/build/product-price.js | 4 +- .../build/product-query-style.asset.php | 2 +- .../build/product-query.asset.php | 2 +- .../woocommerce-blocks/build/product-query.js | 14 +- .../build/product-rating-counter-frontend.js | 2 +- .../build/product-rating-counter.js | 2 +- .../build/product-rating-frontend.js | 2 +- .../build/product-rating-stars-frontend.js | 2 +- .../build/product-rating-stars.js | 2 +- .../build/product-rating.js | 2 +- .../product-results-count-style.asset.php | 2 +- .../build/product-results-count.asset.php | 2 +- .../build/product-results-count.js | 2 +- .../build/product-reviews-style.asset.php | 2 +- .../build/product-sale-badge-frontend.js | 2 +- .../build/product-sale-badge.js | 2 +- .../build/product-search-style.asset.php | 2 +- .../build/product-search.asset.php | 2 +- .../build/product-search.js | 2 +- .../build/product-sku-frontend.js | 2 +- .../woocommerce-blocks/build/product-sku.js | 2 +- .../build/product-stock-indicator-frontend.js | 2 +- .../build/product-stock-indicator.js | 2 +- .../build/product-summary-frontend.js | 2 +- .../build/product-summary.js | 2 +- .../build/product-tag-style.asset.php | 2 +- .../build/product-tag.asset.php | 2 +- .../woocommerce-blocks/build/product-tag.js | 10 +- .../build/product-template-style.asset.php | 2 +- .../build/product-template.asset.php | 2 +- .../build/product-template.js | 2 +- .../build/product-title-frontend.js | 2 +- .../woocommerce-blocks/build/product-title.js | 2 +- .../build/product-top-rated-style.asset.php | 2 +- .../build/product-top-rated.asset.php | 2 +- .../build/product-top-rated.js | 10 +- .../products-by-attribute-style.asset.php | 2 +- .../build/products-by-attribute.asset.php | 2 +- .../build/products-by-attribute.js | 18 +- .../build/rating-filter-frontend.asset.php | 2 +- .../build/rating-filter-frontend.js | 18 +- .../build/rating-filter-style.asset.php | 2 +- .../build/rating-filter-wrapper-frontend.js | 12 +- .../build/rating-filter.asset.php | 2 +- .../woocommerce-blocks/build/rating-filter.js | 12 +- .../build/reviews-by-category-rtl.css | 2 +- .../build/reviews-by-category-style.asset.php | 2 +- .../build/reviews-by-category.asset.php | 2 +- .../build/reviews-by-category.css | 2 +- .../build/reviews-by-category.js | 16 +- .../build/reviews-by-product-rtl.css | 2 +- .../build/reviews-by-product-style.asset.php | 2 +- .../build/reviews-by-product.asset.php | 2 +- .../build/reviews-by-product.css | 2 +- .../build/reviews-by-product.js | 20 +- .../build/reviews-frontend.asset.php | 2 +- .../build/reviews-frontend.js | 8 +- .../build/single-product-style.asset.php | 2 +- .../build/single-product.asset.php | 2 +- .../build/single-product.js | 12 +- .../build/stock-filter-frontend.asset.php | 2 +- .../build/stock-filter-frontend.js | 16 +- .../build/stock-filter-style.asset.php | 2 +- .../build/stock-filter-wrapper-frontend.js | 10 +- .../build/stock-filter.asset.php | 2 +- .../woocommerce-blocks/build/stock-filter.js | 10 +- .../build/store-notices-style.asset.php | 2 +- .../build/store-notices.asset.php | 2 +- .../woocommerce-blocks/build/store-notices.js | 2 +- ...mplate-revert-button-style-style.asset.php | 2 +- ...s-classic-template-revert-button.asset.php | 2 +- ...c-blocks-classic-template-revert-button.js | 2 +- .../build/wc-blocks-editor-style-rtl.css | 4 +- .../build/wc-blocks-editor-style.css | 4 +- .../build/wc-blocks-registry.asset.php | 2 +- .../build/wc-blocks-registry.js | 2 +- .../build/wc-blocks-shared-context.asset.php | 2 +- .../build/wc-blocks-shared-context.js | 2 +- .../build/wc-blocks-shared-hocs.asset.php | 2 +- .../build/wc-blocks-shared-hocs.js | 2 +- .../build/wc-blocks-style.asset.php | 2 +- .../build/wc-blocks.asset.php | 2 +- .../woocommerce-blocks/build/wc-blocks.js | 2 +- .../build/wc-interactivity.asset.php | 2 +- .../build/wc-interactivity.js | 2 +- .../build/wc-payment-method-bacs.asset.php | 2 +- .../build/wc-payment-method-bacs.js | 2 +- .../build/wc-payment-method-cheque.asset.php | 2 +- .../build/wc-payment-method-cheque.js | 2 +- .../build/wc-payment-method-cod.asset.php | 2 +- .../build/wc-payment-method-cod.js | 2 +- .../build/wc-payment-method-paypal.asset.php | 2 +- .../build/wc-payment-method-paypal.js | 2 +- ...-shipping-method-pickup-location.asset.php | 2 +- .../wc-shipping-method-pickup-location.js | 14 +- .../packages/woocommerce-blocks/readme.txt | 9 +- .../BlockTypes/OrderConfirmation/Status.php | 2 +- .../woocommerce-blocks/src/Package.php | 2 +- .../StoreApi/Utilities/OrderController.php | 130 +- .../vendor/composer/installed.php | 8 +- .../composer/jetpack_autoload_filemap.php | 4 +- .../vendor/composer/jetpack_autoload_psr4.php | 6 +- .../woocommerce-gutenberg-products-block.php | 2 +- wp/wp-content/plugins/woocommerce/readme.txt | 188 +- .../plugins/woocommerce/vendor/autoload.php | 2 +- .../woocommerce/vendor/autoload_packages.php | 2 +- .../vendor/composer/autoload_real.php | 10 +- .../vendor/composer/autoload_static.php | 10 +- .../vendor/composer/installed.json | 14 +- .../woocommerce/vendor/composer/installed.php | 14 +- .../composer/jetpack_autoload_classmap.php | 2018 +- .../composer/jetpack_autoload_filemap.php | 4 +- .../class-autoloader-handler.php | 2 +- .../class-autoloader-locator.php | 2 +- .../jetpack-autoloader/class-autoloader.php | 2 +- .../jetpack-autoloader/class-container.php | 2 +- .../jetpack-autoloader/class-hook-manager.php | 2 +- .../class-latest-autoloader-guard.php | 2 +- .../class-manifest-reader.php | 2 +- .../class-path-processor.php | 2 +- .../class-php-autoloader.php | 2 +- .../class-plugin-locator.php | 2 +- .../class-plugins-handler.php | 2 +- .../class-shutdown-handler.php | 2 +- .../class-version-loader.php | 2 +- .../class-version-selector.php | 2 +- .../plugins/woocommerce/woocommerce.php | 2 +- .../css/activity-report-widget.1701191857.css | 91 + .../plugins/wordfence/css/diff.1701191857.css | 123 + .../wordfence/css/fullLog.1701191857.css | 21 + .../wordfence/css/iptraf.1701191857.css | 49 + .../jquery-ui-timepicker-addon.1701191857.css | 27 + .../css/jquery-ui.min.1701191857.css | 7 + .../jquery-ui.structure.min.1701191857.css | 5 + .../css/jquery-ui.theme.min.1701191857.css | 5 + .../css/license/care-global.1701191857.css | 1 + .../wordfence/css/license/care.1701191857.css | 1 + .../css/license/free-global.1701191857.css | 1 + .../wordfence/css/license/free.1701191857.css | 1 + .../css/license/premium-global.1701191857.css | 1 + .../css/license/premium.1701191857.css | 1 + .../license/response-global.1701191857.css | 1 + .../license/response-variables.1701191857.css | 0 .../css/license/response.1701191857.css | 1 + .../plugins/wordfence/css/main.1701191857.css | 1 + .../wordfence/css/phpinfo.1701191857.css | 30 + .../wordfence/css/wf-adminbar.1701191857.css | 1 + .../wordfence/css/wf-colorbox.1701191857.css | 1 + .../css/wf-font-awesome.1701191857.css | 4 + .../wordfence/css/wf-global.1701191857.css | 1 + .../wordfence/css/wf-ionicons.1701191857.css | 1 + .../css/wf-onboarding.1701191857.css | 1 + .../css/wf-roboto-font.1701191857.css | 80 + .../css/wfselect2.min.1701191857.css | 1 + .../wordfence/css/wordfenceBox.1701191857.css | 169 + .../plugins/wordfence/js/admin.1701191857.js | 4027 ++ .../js/admin.ajaxWatcher.1701191857.js | 92 + .../js/admin.liveTraffic.1701191857.js | 924 + .../wordfence/js/chart.umd.1701191857.js | 14 + .../plugins/wordfence/js/date.1701191857.js | 96 + .../jquery-ui-timepicker-addon.1701191857.js | 2291 + .../js/jquery.colorbox-min.1701191857.js | 6 + .../js/jquery.colorbox.1701191857.js | 1105 + .../js/jquery.qrcode.min.1701191857.js | 28 + .../js/jquery.tmpl.min.1701191857.js | 10 + .../wordfence/js/knockout-3.5.1.1701191857.js | 139 + .../wordfence/js/wfdashboard.1701191857.js | 15 + .../wordfence/js/wfdropdown.1701191857.js | 165 + .../wordfence/js/wfglobal.1701191857.js | 276 + .../plugins/wordfence/js/wfi18n.1701191857.js | 225 + .../wordfence/js/wfonboarding.1701191857.js | 150 + .../wordfence/js/wfpopover.1701191857.js | 785 + .../wordfence/js/wfselect2.min.1701191857.js | 2 + .../plugins/wordfence/languages/wordfence.pot | 1954 +- .../wordfence/lib/menu_tools_diagnostic.php | 21 +- .../plugins/wordfence/lib/wfCentralAPI.php | 2 + .../plugins/wordfence/lib/wfConfig.php | 24 +- .../plugins/wordfence/lib/wfDiagnostic.php | 11 +- .../plugins/wordfence/lib/wfScanMonitor.php | 4 +- .../plugins/wordfence/lib/wfUtils.php | 25 +- .../plugins/wordfence/lib/wordfenceClass.php | 90 +- .../css/admin-global.1701191857.css | 1 + .../login-security/css/admin.1701191857.css | 1 + .../css/colorbox.1701191857.css | 1 + .../css/embedded.1701191857.css | 1 + .../css/font-awesome.1701191857.css | 4 + .../css/ionicons.1701191857.css | 1 + .../css/jquery-ui.min.1701191857.css | 5 + .../jquery-ui.structure.min.1701191857.css | 3 + .../css/jquery-ui.theme.min.1701191857.css | 3 + .../login-security/css/login.1701191857.css | 1 + .../css/woocommerce-account.1701191857.css | 1 + .../js/admin-global.1701191857.js | 90 + .../login-security/js/admin.1701191857.js | 932 + .../login-security/js/chart.umd.1701191857.js | 14 + .../js/jquery.colorbox.1701191857.js | 1105 + .../js/jquery.colorbox.min.1701191857.js | 1 + .../js/jquery.qrcode.min.1701191857.js | 28 + .../js/jquery.tmpl.min.1701191857.js | 10 + .../login-security/js/login.1701191857.js | 480 + .../wordfence-login-security.php | 2 +- wp/wp-content/plugins/wordfence/readme.txt | 12 +- .../vendor/wordfence/wf-waf/src/cacert.pem | 2220 +- .../wf-waf/src/lib/storage/mysql.php | 1 + .../vendor/wordfence/wf-waf/src/lib/waf.php | 38 +- .../views/dashboard/option-howgetips.php | 67 +- .../wordfence/views/diagnostics/text.php | 37 +- .../plugins/wordfence/waf/bootstrap.php | 2 +- wp/wp-content/plugins/wordfence/wordfence.php | 6 +- .../admin/class-admin-asset-manager.php | 1 + .../admin/class-gutenberg-compatibility.php | 4 +- .../admin/metabox/class-metabox.php | 1 - .../admin/taxonomy/class-taxonomy.php | 6 +- .../wordpress-seo/admin/views/redirects.php | 2 +- .../watchers/class-slug-change-watcher.php | 23 +- .../css/dist/academy-2160-rtl.css | 1 + .../wordpress-seo/css/dist/academy-2160.css | 1 + .../css/dist/admin-global-2160-rtl.css | 1 + .../css/dist/admin-global-2160.css | 1 + .../css/dist/adminbar-2160-rtl.css | 1 + .../wordpress-seo/css/dist/adminbar-2160.css | 1 + .../css/dist/ai-generator-2160-rtl.css | 1 + .../css/dist/ai-generator-2160.css | 1 + .../css/dist/alerts-2160-rtl.css | 1 + .../wordpress-seo/css/dist/alerts-2160.css | 1 + .../css/dist/black-friday-banner-2160-rtl.css | 1 + .../css/dist/black-friday-banner-2160.css | 1 + .../css/dist/dashboard-2160-rtl.css | 1 + .../wordpress-seo/css/dist/dashboard-2160.css | 1 + .../css/dist/edit-page-2160-rtl.css | 1 + .../wordpress-seo/css/dist/edit-page-2160.css | 1 + .../css/dist/elementor-2160-rtl.css | 1 + .../wordpress-seo/css/dist/elementor-2160.css | 1 + .../css/dist/featured-image-2160-rtl.css | 1 + .../css/dist/featured-image-2160.css | 1 + .../css/dist/filter-explanation-2160-rtl.css | 1 + .../css/dist/filter-explanation-2160.css | 1 + .../first-time-configuration-2160-rtl.css | 1 + .../dist/first-time-configuration-2160.css | 1 + .../wordpress-seo/css/dist/icons-2160-rtl.css | 1 + .../wordpress-seo/css/dist/icons-2160.css | 1 + .../css/dist/inside-editor-2160-rtl.css | 1 + .../css/dist/inside-editor-2160.css | 1 + .../css/dist/introductions-2160-rtl.css | 1 + .../css/dist/introductions-2160.css | 1 + .../css/dist/metabox-2160-rtl.css | 1 + .../wordpress-seo/css/dist/metabox-2160.css | 3 + .../metabox-primary-category-2160-rtl.css | 1 + .../dist/metabox-primary-category-2160.css | 1 + .../wordpress-seo/css/dist/modal-2160-rtl.css | 1 + .../wordpress-seo/css/dist/modal-2160.css | 1 + .../css/dist/monorepo-2160-rtl.css | 1 + .../wordpress-seo/css/dist/monorepo-2160.css | 1 + .../css/dist/new-settings-2160-rtl.css | 1 + .../css/dist/new-settings-2160.css | 1 + .../css/dist/notifications-2160-rtl.css | 1 + .../css/dist/notifications-2160.css | 1 + .../css/dist/score_icon-2160-rtl.css | 1 + .../css/dist/score_icon-2160.css | 1 + .../dist/structured-data-blocks-2160-rtl.css | 1 + .../css/dist/structured-data-blocks-2160.css | 1 + .../css/dist/support-2160-rtl.css | 1 + .../wordpress-seo/css/dist/support-2160.css | 1 + .../css/dist/tailwind-2160-rtl.css | 1 + .../wordpress-seo/css/dist/tailwind-2160.css | 1 + .../css/dist/toggle-switch-2160-rtl.css | 1 + .../css/dist/toggle-switch-2160.css | 1 + .../css/dist/tooltips-2160-rtl.css | 1 + .../wordpress-seo/css/dist/tooltips-2160.css | 1 + .../css/dist/workouts-2160-rtl.css | 1 + .../wordpress-seo/css/dist/workouts-2160.css | 1 + .../css/dist/wpseo-dismissible-2160-rtl.css | 1 + .../css/dist/wpseo-dismissible-2160.css | 1 + .../css/dist/yoast-extensions-2160-rtl.css | 1 + .../css/dist/yoast-extensions-2160.css | 1 + .../css/dist/yst_plugin_tools-2160-rtl.css | 1 + .../css/dist/yst_plugin_tools-2160.css | 1 + .../css/dist/yst_seo_score-2160-rtl.css | 1 + .../css/dist/yst_seo_score-2160.css | 1 + .../inc/options/class-wpseo-option-wpseo.php | 3 +- .../plugins/wordpress-seo/js/dist/42.js | 2 +- .../plugins/wordpress-seo/js/dist/academy.js | 20 +- .../js/dist/addon-installation.js | 10 +- .../wordpress-seo/js/dist/admin-global.js | 2 +- .../wordpress-seo/js/dist/admin-modules.js | 8 +- .../wordpress-seo/js/dist/analysis-worker.js | 2 +- .../wordpress-seo/js/dist/api-client.js | 2 +- .../wordpress-seo/js/dist/block-editor.js | 378 +- .../wordpress-seo/js/dist/bulk-editor.js | 2 +- .../wordpress-seo/js/dist/classic-editor.js | 304 +- .../wordpress-seo/js/dist/crawl-settings.js | 2 +- .../wordpress-seo/js/dist/dashboard-widget.js | 2 +- .../wordpress-seo/js/dist/dynamic-blocks.js | 2 +- .../wordpress-seo/js/dist/edit-page.js | 2 +- .../wordpress-seo/js/dist/editor-modules.js | 292 +- .../wordpress-seo/js/dist/elementor.js | 322 +- .../js/dist/externals-components.js | 161 +- .../js/dist/externals-contexts.js | 2 +- .../wordpress-seo/js/dist/externals-redux.js | 2 +- .../js/dist/externals/analysis.js | 155 +- .../js/dist/externals/analysisReport.js | 4 +- .../js/dist/externals/chart.js.js | 1 + .../js/dist/externals/components.js | 13 +- .../js/dist/externals/componentsNew.js | 23 +- .../js/dist/externals/draftJs.js | 2 +- .../js/dist/externals/featureFlag.js | 2 +- .../js/dist/externals/helpers.js | 24 +- .../wordpress-seo/js/dist/externals/jed.js | 2 +- .../js/dist/externals/propTypes.js | 2 +- .../js/dist/externals/reactHelmet.js | 2 +- .../wordpress-seo/js/dist/externals/redux.js | 2 +- .../js/dist/externals/reduxJsToolkit.js | 2 +- .../externals/replacementVariableEditor.js | 4 +- .../dist/externals/searchMetadataPreviews.js | 19 +- .../js/dist/externals/socialMetadataForms.js | 2 +- .../js/dist/externals/styleGuide.js | 4 +- .../js/dist/externals/styledComponents.js | 2 +- .../js/dist/externals/uiLibrary.js | 2 +- .../js/dist/filter-explanation.js | 2 +- .../js/dist/first-time-configuration.js | 50 +- .../js/dist/frontend-inspector-resources.js | 2 +- .../js/dist/help-scout-beacon.js | 4 +- .../plugins/wordpress-seo/js/dist/import.js | 2 +- .../wordpress-seo/js/dist/indexation.js | 4 +- .../js/dist/installation-success.js | 20 +- .../js/dist/integrations-page.js | 134 +- .../wordpress-seo/js/dist/introductions.js | 31 +- .../wordpress-seo/js/dist/network-admin.js | 2 +- .../wordpress-seo/js/dist/new-settings.js | 323 +- .../wordpress-seo/js/dist/post-edit.js | 45 +- .../js/dist/quick-edit-handler.js | 2 +- .../wordpress-seo/js/dist/react-select.js | 2 +- .../js/dist/redirect-old-features-tab.js | 2 +- .../wordpress-seo/js/dist/reindex-links.js | 2 +- .../plugins/wordpress-seo/js/dist/settings.js | 8 +- .../js/dist/structured-data-blocks.js | 19 +- .../plugins/wordpress-seo/js/dist/support.js | 61 +- .../wordpress-seo/js/dist/term-edit.js | 2 +- .../js/dist/used-keywords-assessment.js | 2 +- .../js/dist/wincher-dashboard-widget.js | 162 +- .../wordpress-seo/js/dist/wordproof-uikit.js | 2 +- .../plugins/wordpress-seo/js/dist/workouts.js | 11 +- .../plugins/wordpress-seo/readme.txt | 48 +- .../wincher/wincher-account-action.php | 26 +- .../wincher/wincher-keyphrases-action.php | 4 +- .../src/integrations/third-party/wincher.php | 100 + .../wordproof-integration-toggle.php | 134 + .../src/generated/assets/externals.php | 2 +- .../src/generated/assets/languages.php | 2 +- .../src/generated/assets/plugin.php | 2 +- .../wordpress-seo/src/generated/container.php | 105 +- .../src/helpers/current-page-helper.php | 8 +- .../woocommerce-beta-editor-watcher.php | 137 + ...s-and-descriptions-introduction-upsell.php | 22 +- .../application/introductions-collector.php | 26 +- .../domain/introduction-interface.php | 10 + .../domain/introduction-item.php | 18 +- .../domain/invalid-user-id-exception.php | 29 + .../introductions-seen-repository.php | 115 + .../wordpress-seo/src/introductions/readme.md | 8 +- .../introductions-integration.php | 2 +- .../introductions-seen-route.php | 146 + .../wistia-embed-permission-route.php | 2 - .../indexable-term-archive-presentation.php | 12 +- .../woocommerce-beta-editor-presenter.php | 60 + .../promotion-manager-interface.php | 2 - .../black-friday-checklist-promotion.php | 2 - .../domain/black-friday-promotion.php | 2 - .../src/routes/wincher-route.php | 5 +- .../user-profiles-additions-ui.php | 43 +- .../plugins/wordpress-seo/vendor/autoload.php | 2 +- .../vendor/composer/autoload_classmap.php | 9 +- .../vendor/composer/autoload_real.php | 8 +- .../vendor/composer/autoload_static.php | 17 +- .../vendor/composer/installed.php | 4 +- .../plugins/wordpress-seo/wp-seo-main.php | 4 +- .../plugins/wordpress-seo/wp-seo.php | 2 +- .../class-bsf-analytics-loader.php | 236 +- .../class-bsf-analytics-stats.php | 516 +- .../bsf-analytics/class-bsf-analytics.php | 1028 +- .../plugins/wp-schema-pro/changelog.txt | 6 + .../class-brainstorm-update-aiosrs-pro.php | 2 +- .../classes/class-bsf-aiosrs-pro-admin.php | 2262 +- ...ss-bsf-aiosrs-pro-custom-fields-markup.php | 2464 +- ...bsf-aiosrs-pro-schema-global-uninstall.php | 184 +- .../class-bsf-aiosrs-pro-schema-template.php | 2002 +- .../class-bsf-aiosrs-pro-schema-wizard.php | 954 +- .../classes/class-bsf-aiosrs-pro-schema.php | 78 +- .../class-bsf-aiosrs-pro-setup-wizard.php | 1340 +- .../lib/class-bsf-custom-post-list-table.php | 1224 +- .../class-bsf-target-rule-fields.php | 3046 +- .../class-bsf-aiosrs-pro-schema-article.php | 14 +- .../class-bsf-aiosrs-pro-schema-book.php | 16 +- .../class-bsf-aiosrs-pro-schema-course.php | 50 +- .../class-bsf-aiosrs-pro-schema-event.php | 50 +- .../class-bsf-aiosrs-pro-schema-faq.php | 94 +- .../class-bsf-aiosrs-pro-schema-how-to.php | 10 +- ...ss-bsf-aiosrs-pro-schema-image-license.php | 2 +- ...lass-bsf-aiosrs-pro-schema-job-posting.php | 60 +- ...s-bsf-aiosrs-pro-schema-local-business.php | 38 +- .../class-bsf-aiosrs-pro-schema-person.php | 36 +- .../class-bsf-aiosrs-pro-schema-product.php | 36 +- .../class-bsf-aiosrs-pro-schema-recipe.php | 44 +- .../class-bsf-aiosrs-pro-schema-review.php | 194 +- .../class-bsf-aiosrs-pro-schema-service.php | 20 +- ...aiosrs-pro-schema-software-application.php | 14 +- ...ass-bsf-aiosrs-pro-schema-video-object.php | 30 +- ...sf-aiosrs-pro-schema-global-breadcrumb.php | 84 +- .../wp-schema-pro/languages/wp-schema-pro.pot | 1495 +- .../lib/astra-notices/class-astra-notices.php | 778 +- .../wp-schema-pro/template/license-form.php | 80 +- .../plugins/wp-schema-pro/uninstall.php | 58 +- .../plugins/wp-schema-pro/wp-schema-pro.php | 4 +- .../classes/class-bsf-sp-admin-helper.php | 336 +- .../classes/class-bsf-sp-block-helper.php | 1096 +- .../classes/class-bsf-sp-block-js.php | 196 +- .../classes/class-bsf-sp-config.php | 676 +- .../classes/class-bsf-sp-helper.php | 1462 +- .../classes/class-bsf-sp-loader.php | 158 +- wp/wp-includes/PHPMailer/PHPMailer.php | 4 +- wp/wp-includes/PHPMailer/SMTP.php | 6 +- wp/wp-includes/Requests/src/Hooks.php | 4 + wp/wp-includes/Requests/src/Iri.php | 14 + wp/wp-includes/Requests/src/Requests.php | 2 +- wp/wp-includes/Requests/src/Session.php | 4 + wp/wp-includes/admin-bar.php | 68 +- .../assets/script-loader-packages.min.php | 2 +- .../assets/script-loader-packages.php | 2 +- ...cript-loader-react-refresh-runtime.min.php | 2 +- .../script-loader-react-refresh-runtime.php | 2 +- wp/wp-includes/block-editor.php | 32 +- wp/wp-includes/block-patterns.php | 208 +- wp/wp-includes/block-supports/align.php | 4 +- wp/wp-includes/block-supports/background.php | 118 + wp/wp-includes/block-supports/border.php | 18 +- wp/wp-includes/block-supports/colors.php | 41 +- .../block-supports/custom-classname.php | 4 +- wp/wp-includes/block-supports/dimensions.php | 13 +- wp/wp-includes/block-supports/elements.php | 202 +- .../block-supports/generated-classname.php | 2 +- wp/wp-includes/block-supports/layout.php | 224 +- wp/wp-includes/block-supports/position.php | 14 +- wp/wp-includes/block-supports/settings.php | 8 +- wp/wp-includes/block-supports/shadow.php | 4 +- wp/wp-includes/block-supports/spacing.php | 21 +- wp/wp-includes/block-supports/typography.php | 91 +- wp/wp-includes/block-supports/utils.php | 2 +- wp/wp-includes/block-template-utils.php | 145 +- wp/wp-includes/block-template.php | 40 +- wp/wp-includes/blocks.php | 588 +- wp/wp-includes/blocks/avatar.php | 4 +- wp/wp-includes/blocks/avatar/block.json | 3 + wp/wp-includes/blocks/block/block.json | 2 +- wp/wp-includes/blocks/blocks-json.php | 208 +- wp/wp-includes/blocks/button/block.json | 13 +- wp/wp-includes/blocks/calendar.php | 4 +- wp/wp-includes/blocks/code/block.json | 3 +- wp/wp-includes/blocks/column/block.json | 3 + wp/wp-includes/blocks/columns/block.json | 2 + wp/wp-includes/blocks/columns/style-rtl.css | 3 + .../blocks/columns/style-rtl.min.css | 2 +- wp/wp-includes/blocks/columns/style.css | 3 + wp/wp-includes/blocks/columns/style.min.css | 2 +- wp/wp-includes/blocks/comment-template.php | 2 +- .../blocks/comments-pagination-next.php | 2 +- .../blocks/comments-pagination-previous.php | 2 +- wp/wp-includes/blocks/comments/block.json | 1 + wp/wp-includes/blocks/cover/block.json | 4 +- wp/wp-includes/blocks/cover/style-rtl.css | 3 + wp/wp-includes/blocks/cover/style-rtl.min.css | 2 +- wp/wp-includes/blocks/cover/style.css | 3 + wp/wp-includes/blocks/cover/style.min.css | 2 +- wp/wp-includes/blocks/details/block.json | 10 +- wp/wp-includes/blocks/details/style-rtl.css | 9 - .../blocks/details/style-rtl.min.css | 2 +- wp/wp-includes/blocks/details/style.css | 9 - wp/wp-includes/blocks/details/style.min.css | 2 +- wp/wp-includes/blocks/file.php | 40 +- wp/wp-includes/blocks/file/block.json | 7 +- wp/wp-includes/blocks/file/style-rtl.css | 3 + wp/wp-includes/blocks/file/style-rtl.min.css | 2 +- wp/wp-includes/blocks/file/style.css | 3 + wp/wp-includes/blocks/file/style.min.css | 2 +- wp/wp-includes/blocks/file/view.asset.php | 2 +- wp/wp-includes/blocks/file/view.js | 73 +- wp/wp-includes/blocks/file/view.min.asset.php | 2 +- wp/wp-includes/blocks/file/view.min.js | 2 +- wp/wp-includes/blocks/footnotes.php | 195 +- wp/wp-includes/blocks/footnotes/block.json | 45 +- wp/wp-includes/blocks/freeform/editor-rtl.css | 16 +- .../blocks/freeform/editor-rtl.min.css | 2 +- wp/wp-includes/blocks/freeform/editor.css | 16 +- wp/wp-includes/blocks/freeform/editor.min.css | 2 +- wp/wp-includes/blocks/gallery.php | 2 +- wp/wp-includes/blocks/gallery/block.json | 4 +- wp/wp-includes/blocks/group/block.json | 7 + wp/wp-includes/blocks/heading/block.json | 1 + wp/wp-includes/blocks/heading/style-rtl.css | 3 + .../blocks/heading/style-rtl.min.css | 2 +- wp/wp-includes/blocks/heading/style.css | 3 + wp/wp-includes/blocks/heading/style.min.css | 2 +- wp/wp-includes/blocks/home-link.php | 17 +- wp/wp-includes/blocks/image.php | 332 +- wp/wp-includes/blocks/image/block.json | 16 +- wp/wp-includes/blocks/image/style-rtl.css | 178 +- wp/wp-includes/blocks/image/style-rtl.min.css | 2 +- wp/wp-includes/blocks/image/style.css | 178 +- wp/wp-includes/blocks/image/style.min.css | 2 +- wp/wp-includes/blocks/image/view.asset.php | 1 + wp/wp-includes/blocks/image/view.js | 533 + .../blocks/image/view.min.asset.php | 1 + wp/wp-includes/blocks/image/view.min.js | 1 + wp/wp-includes/blocks/index.php | 86 +- wp/wp-includes/blocks/latest-posts.php | 27 +- wp/wp-includes/blocks/list/block.json | 1 + wp/wp-includes/blocks/media-text/block.json | 1 + .../blocks/navigation-link/editor-rtl.css | 9 - .../blocks/navigation-link/editor-rtl.min.css | 2 +- .../blocks/navigation-link/editor.css | 9 - .../blocks/navigation-link/editor.min.css | 2 +- .../blocks/navigation-link/style-rtl.css | 1 - .../blocks/navigation-link/style-rtl.min.css | 2 +- .../blocks/navigation-link/style.css | 1 - .../blocks/navigation-link/style.min.css | 2 +- wp/wp-includes/blocks/navigation-submenu.php | 10 - wp/wp-includes/blocks/navigation.php | 211 +- wp/wp-includes/blocks/navigation/block.json | 6 +- .../blocks/navigation/style-rtl.css | 17 +- .../blocks/navigation/style-rtl.min.css | 2 +- wp/wp-includes/blocks/navigation/style.css | 17 +- .../blocks/navigation/style.min.css | 2 +- .../blocks/navigation/view-modal.asset.php | 2 +- .../blocks/navigation/view.asset.php | 2 +- wp/wp-includes/blocks/navigation/view.js | 260 +- .../blocks/navigation/view.min.asset.php | 2 +- wp/wp-includes/blocks/navigation/view.min.js | 2 +- wp/wp-includes/blocks/paragraph/block.json | 3 + .../blocks/paragraph/editor-rtl.css | 4 + .../blocks/paragraph/editor-rtl.min.css | 2 +- wp/wp-includes/blocks/paragraph/editor.css | 4 + .../blocks/paragraph/editor.min.css | 2 +- wp/wp-includes/blocks/paragraph/style-rtl.css | 4 + .../blocks/paragraph/style-rtl.min.css | 2 +- wp/wp-includes/blocks/paragraph/style.css | 4 + wp/wp-includes/blocks/paragraph/style.min.css | 2 +- wp/wp-includes/blocks/pattern.php | 13 +- .../blocks/post-author-biography/block.json | 2 +- .../blocks/post-author-name/block.json | 2 +- wp/wp-includes/blocks/post-author/block.json | 2 +- .../blocks/post-comments-form/block.json | 3 +- wp/wp-includes/blocks/post-content.php | 6 - wp/wp-includes/blocks/post-content/block.json | 13 +- wp/wp-includes/blocks/post-date/block.json | 4 +- wp/wp-includes/blocks/post-excerpt.php | 4 +- wp/wp-includes/blocks/post-featured-image.php | 10 +- .../blocks/post-featured-image/block.json | 2 +- .../blocks/post-featured-image/style-rtl.css | 3 + .../post-featured-image/style-rtl.min.css | 2 +- .../blocks/post-featured-image/style.css | 3 + .../blocks/post-featured-image/style.min.css | 2 +- .../blocks/post-navigation-link.php | 13 +- .../blocks/post-navigation-link/block.json | 1 + .../blocks/post-navigation-link/style-rtl.css | 3 + .../post-navigation-link/style-rtl.min.css | 2 +- .../blocks/post-navigation-link/style.css | 3 + .../blocks/post-navigation-link/style.min.css | 2 +- wp/wp-includes/blocks/post-template.php | 25 +- .../blocks/post-template/block.json | 3 +- .../blocks/post-template/style-rtl.css | 22 + .../blocks/post-template/style-rtl.min.css | 2 +- wp/wp-includes/blocks/post-template/style.css | 22 + .../blocks/post-template/style.min.css | 2 +- wp/wp-includes/blocks/post-terms.php | 7 +- wp/wp-includes/blocks/preformatted/block.json | 4 + .../blocks/preformatted/style-rtl.css | 3 +- .../blocks/preformatted/style-rtl.min.css | 2 +- wp/wp-includes/blocks/preformatted/style.css | 3 +- .../blocks/preformatted/style.min.css | 2 +- wp/wp-includes/blocks/query-no-results.php | 6 +- .../blocks/query-pagination-next.php | 26 +- .../blocks/query-pagination-next/block.json | 8 +- .../blocks/query-pagination-numbers.php | 31 +- .../query-pagination-numbers/block.json | 8 +- .../blocks/query-pagination-previous.php | 24 +- .../query-pagination-previous/block.json | 8 +- .../blocks/query-pagination/style-rtl.css | 6 +- .../blocks/query-pagination/style-rtl.min.css | 2 +- .../blocks/query-pagination/style.css | 6 +- .../blocks/query-pagination/style.min.css | 2 +- wp/wp-includes/blocks/query.php | 200 +- wp/wp-includes/blocks/query/block.json | 11 +- wp/wp-includes/blocks/query/editor-rtl.css | 10 + .../blocks/query/editor-rtl.min.css | 2 +- wp/wp-includes/blocks/query/editor.css | 10 + wp/wp-includes/blocks/query/editor.min.css | 2 +- wp/wp-includes/blocks/query/style-rtl.css | 42 + wp/wp-includes/blocks/query/style-rtl.min.css | 1 + wp/wp-includes/blocks/query/style.css | 42 + wp/wp-includes/blocks/query/style.min.css | 1 + wp/wp-includes/blocks/query/view.asset.php | 1 + wp/wp-includes/blocks/query/view.js | 104 + .../blocks/query/view.min.asset.php | 1 + wp/wp-includes/blocks/query/view.min.js | 1 + wp/wp-includes/blocks/quote/block.json | 2 + wp/wp-includes/blocks/search.php | 53 +- wp/wp-includes/blocks/search/block.json | 1 + wp/wp-includes/blocks/search/style-rtl.css | 2 + .../blocks/search/style-rtl.min.css | 2 +- wp/wp-includes/blocks/search/style.css | 2 + wp/wp-includes/blocks/search/style.min.css | 2 +- wp/wp-includes/blocks/search/view.asset.php | 2 +- wp/wp-includes/blocks/search/view.js | 160 +- .../blocks/search/view.min.asset.php | 2 +- wp/wp-includes/blocks/search/view.min.js | 2 +- wp/wp-includes/blocks/site-logo/style-rtl.css | 1 + .../blocks/site-logo/style-rtl.min.css | 2 +- wp/wp-includes/blocks/site-logo/style.css | 1 + wp/wp-includes/blocks/site-logo/style.min.css | 2 +- wp/wp-includes/blocks/social-link.php | 16 +- .../blocks/social-links/editor-rtl.css | 2 +- .../blocks/social-links/editor-rtl.min.css | 2 +- wp/wp-includes/blocks/social-links/editor.css | 2 +- .../blocks/social-links/editor.min.css | 2 +- .../blocks/social-links/style-rtl.css | 11 +- .../blocks/social-links/style-rtl.min.css | 2 +- wp/wp-includes/blocks/social-links/style.css | 11 +- .../blocks/social-links/style.min.css | 2 +- wp/wp-includes/blocks/template-part.php | 24 +- wp/wp-includes/blocks/video/style-rtl.css | 1 + wp/wp-includes/blocks/video/style-rtl.min.css | 2 +- wp/wp-includes/blocks/video/style.css | 1 + wp/wp-includes/blocks/video/style.min.css | 2 +- wp/wp-includes/canonical.php | 15 +- wp/wp-includes/category-template.php | 4 +- wp/wp-includes/category.php | 2 +- .../class-walker-category-dropdown.php | 3 +- wp/wp-includes/class-walker-category.php | 1 - wp/wp-includes/class-walker-comment.php | 3 +- wp/wp-includes/class-walker-page-dropdown.php | 3 +- wp/wp-includes/class-walker-page.php | 4 +- wp/wp-includes/class-wp-block-list.php | 35 +- wp/wp-includes/class-wp-block-parser.php | 21 +- .../class-wp-block-patterns-registry.php | 52 +- wp/wp-includes/class-wp-block-supports.php | 2 +- .../class-wp-block-type-registry.php | 14 + wp/wp-includes/class-wp-block-type.php | 18 +- wp/wp-includes/class-wp-block.php | 3 +- ...ass-wp-classic-to-block-menu-converter.php | 6 +- wp/wp-includes/class-wp-comment-query.php | 2 +- wp/wp-includes/class-wp-comment.php | 2 +- wp/wp-includes/class-wp-customize-control.php | 1 - wp/wp-includes/class-wp-customize-manager.php | 36 +- .../class-wp-customize-nav-menus.php | 2 +- wp/wp-includes/class-wp-customize-panel.php | 2 +- wp/wp-includes/class-wp-customize-section.php | 2 +- wp/wp-includes/class-wp-customize-setting.php | 2 +- wp/wp-includes/class-wp-customize-widgets.php | 13 +- wp/wp-includes/class-wp-dependencies.php | 1 - wp/wp-includes/class-wp-duotone.php | 12 +- wp/wp-includes/class-wp-feed-cache.php | 2 - wp/wp-includes/class-wp-hook.php | 36 +- wp/wp-includes/class-wp-http-curl.php | 2 + .../class-wp-http-requests-response.php | 2 +- wp/wp-includes/class-wp-http-streams.php | 2 + wp/wp-includes/class-wp-http.php | 13 +- wp/wp-includes/class-wp-image-editor-gd.php | 18 +- .../class-wp-image-editor-imagick.php | 32 +- wp/wp-includes/class-wp-image-editor.php | 12 +- wp/wp-includes/class-wp-list-util.php | 4 +- wp/wp-includes/class-wp-meta-query.php | 2 +- .../class-wp-navigation-fallback.php | 53 +- wp/wp-includes/class-wp-post-type.php | 195 +- wp/wp-includes/class-wp-query.php | 78 +- wp/wp-includes/class-wp-rewrite.php | 36 +- wp/wp-includes/class-wp-role.php | 1 - wp/wp-includes/class-wp-roles.php | 4 +- wp/wp-includes/class-wp-scripts.php | 97 +- wp/wp-includes/class-wp-simplepie-file.php | 2 - .../class-wp-simplepie-sanitize-kses.php | 2 - wp/wp-includes/class-wp-term-query.php | 62 +- .../class-wp-text-diff-renderer-inline.php | 1 - .../class-wp-text-diff-renderer-table.php | 66 +- wp/wp-includes/class-wp-theme-json-data.php | 1 - .../class-wp-theme-json-resolver.php | 2 +- wp/wp-includes/class-wp-theme-json-schema.php | 2 +- wp/wp-includes/class-wp-theme-json.php | 175 +- wp/wp-includes/class-wp-theme.php | 415 +- wp/wp-includes/class-wp-user-query.php | 46 +- wp/wp-includes/class-wp-walker.php | 7 +- wp/wp-includes/class-wp-widget.php | 6 +- wp/wp-includes/class-wp-xmlrpc-server.php | 5 +- wp/wp-includes/class-wp.php | 70 +- wp/wp-includes/class-wpdb.php | 686 +- wp/wp-includes/comment-template.php | 17 +- wp/wp-includes/comment.php | 27 +- wp/wp-includes/compat.php | 2 +- wp/wp-includes/cron.php | 73 +- wp/wp-includes/css/buttons-rtl.css | 4 + wp/wp-includes/css/buttons-rtl.min.css | 2 +- wp/wp-includes/css/buttons.css | 4 + wp/wp-includes/css/buttons.min.css | 2 +- .../css/dist/block-editor/content-rtl.css | 19 +- .../css/dist/block-editor/content-rtl.min.css | 2 +- .../css/dist/block-editor/content.css | 19 +- .../css/dist/block-editor/content.min.css | 2 +- .../css/dist/block-editor/style-rtl.css | 375 +- .../css/dist/block-editor/style-rtl.min.css | 2 +- .../css/dist/block-editor/style.css | 375 +- .../css/dist/block-editor/style.min.css | 2 +- .../css/dist/block-library/editor-rtl.css | 41 +- .../css/dist/block-library/editor-rtl.min.css | 2 +- .../css/dist/block-library/editor.css | 41 +- .../css/dist/block-library/editor.min.css | 2 +- .../css/dist/block-library/reset-rtl.css | 28 +- .../css/dist/block-library/reset-rtl.min.css | 2 +- .../css/dist/block-library/reset.css | 28 +- .../css/dist/block-library/reset.min.css | 2 +- .../css/dist/block-library/style-rtl.css | 273 +- .../css/dist/block-library/style-rtl.min.css | 2 +- .../css/dist/block-library/style.css | 273 +- .../css/dist/block-library/style.min.css | 4 +- .../css/dist/commands/style-rtl.css | 59 +- .../css/dist/commands/style-rtl.min.css | 2 +- wp/wp-includes/css/dist/commands/style.css | 59 +- .../css/dist/commands/style.min.css | 2 +- .../css/dist/components/style-rtl.css | 129 +- .../css/dist/components/style-rtl.min.css | 2 +- wp/wp-includes/css/dist/components/style.css | 129 +- .../css/dist/components/style.min.css | 4 +- .../css/dist/customize-widgets/style-rtl.css | 4 + .../dist/customize-widgets/style-rtl.min.css | 2 +- .../css/dist/customize-widgets/style.css | 4 + .../css/dist/customize-widgets/style.min.css | 2 +- .../css/dist/edit-post/style-rtl.css | 114 +- .../css/dist/edit-post/style-rtl.min.css | 2 +- wp/wp-includes/css/dist/edit-post/style.css | 114 +- .../css/dist/edit-post/style.min.css | 2 +- .../css/dist/edit-site/style-rtl.css | 519 +- .../css/dist/edit-site/style-rtl.min.css | 2 +- wp/wp-includes/css/dist/edit-site/style.css | 519 +- .../css/dist/edit-site/style.min.css | 2 +- .../css/dist/edit-widgets/style-rtl.css | 114 +- .../css/dist/edit-widgets/style-rtl.min.css | 2 +- .../css/dist/edit-widgets/style.css | 114 +- .../css/dist/edit-widgets/style.min.css | 2 +- wp/wp-includes/css/dist/editor/style-rtl.css | 49 +- .../css/dist/editor/style-rtl.min.css | 2 +- wp/wp-includes/css/dist/editor/style.css | 49 +- wp/wp-includes/css/dist/editor/style.min.css | 2 +- .../css/dist/patterns/style-rtl.css | 47 + .../css/dist/patterns/style-rtl.min.css | 1 + wp/wp-includes/css/dist/patterns/style.css | 47 + .../css/dist/patterns/style.min.css | 1 + wp/wp-includes/css/editor-rtl.css | 1 + wp/wp-includes/css/editor-rtl.min.css | 2 +- wp/wp-includes/css/editor.css | 1 + wp/wp-includes/css/editor.min.css | 2 +- wp/wp-includes/css/media-views-rtl.css | 1 + wp/wp-includes/css/media-views-rtl.min.css | 2 +- wp/wp-includes/css/media-views.css | 1 + wp/wp-includes/css/media-views.min.css | 2 +- wp/wp-includes/css/wp-auth-check-rtl.css | 1 + wp/wp-includes/css/wp-auth-check-rtl.min.css | 2 +- wp/wp-includes/css/wp-auth-check.css | 1 + wp/wp-includes/css/wp-auth-check.min.css | 2 +- ...ass-wp-customize-cropped-image-control.php | 1 - ...lass-wp-customize-header-image-control.php | 11 +- ...ass-wp-customize-nav-menu-item-setting.php | 2 - .../class-wp-customize-selective-refresh.php | 2 +- .../class-wp-customize-theme-control.php | 39 +- .../class-wp-customize-themes-section.php | 12 +- wp/wp-includes/default-constants.php | 7 +- wp/wp-includes/default-filters.php | 65 +- wp/wp-includes/deprecated.php | 874 +- wp/wp-includes/embed.php | 24 +- wp/wp-includes/feed-atom-comments.php | 2 +- wp/wp-includes/fonts.php | 53 + .../fonts/class-wp-font-face-resolver.php | 178 + wp/wp-includes/fonts/class-wp-font-face.php | 430 + wp/wp-includes/formatting.php | 130 +- wp/wp-includes/functions.php | 748 +- wp/wp-includes/functions.wp-scripts.php | 28 +- wp/wp-includes/general-template.php | 2 - wp/wp-includes/global-styles-and-settings.php | 48 +- ...ass-wp-html-active-formatting-elements.php | 187 + .../html-api/class-wp-html-open-elements.php | 432 + .../class-wp-html-processor-state.php | 143 + .../html-api/class-wp-html-processor.php | 1443 + .../html-api/class-wp-html-tag-processor.php | 298 +- .../html-api/class-wp-html-token.php | 97 + .../class-wp-html-unsupported-exception.php | 31 + wp/wp-includes/http.php | 2 +- wp/wp-includes/https-detection.php | 48 +- wp/wp-includes/js/backbone.js | 43 +- wp/wp-includes/js/backbone.min.js | 2 +- wp/wp-includes/js/dist/a11y.js | 33 +- wp/wp-includes/js/dist/annotations.js | 171 +- wp/wp-includes/js/dist/annotations.min.js | 2 +- wp/wp-includes/js/dist/api-fetch.js | 213 +- wp/wp-includes/js/dist/autop.js | 273 +- wp/wp-includes/js/dist/blob.js | 24 +- wp/wp-includes/js/dist/block-directory.js | 348 +- wp/wp-includes/js/dist/block-directory.min.js | 2 +- wp/wp-includes/js/dist/block-editor.js | 32895 +++++------ wp/wp-includes/js/dist/block-editor.min.js | 6 +- wp/wp-includes/js/dist/block-library.js | 13446 ++--- wp/wp-includes/js/dist/block-library.min.js | 6 +- .../block-serialization-default-parser.js | 111 +- wp/wp-includes/js/dist/blocks.js | 3124 +- wp/wp-includes/js/dist/blocks.min.js | 6 +- wp/wp-includes/js/dist/commands.js | 417 +- wp/wp-includes/js/dist/commands.min.js | 7 +- wp/wp-includes/js/dist/components.js | 47872 +++++++++------- wp/wp-includes/js/dist/components.min.js | 10 +- wp/wp-includes/js/dist/compose.js | 1107 +- wp/wp-includes/js/dist/compose.min.js | 4 +- wp/wp-includes/js/dist/core-commands.js | 340 +- wp/wp-includes/js/dist/core-commands.min.js | 2 +- wp/wp-includes/js/dist/core-data.js | 2386 +- wp/wp-includes/js/dist/core-data.min.js | 2 +- wp/wp-includes/js/dist/customize-widgets.js | 636 +- .../js/dist/customize-widgets.min.js | 2 +- wp/wp-includes/js/dist/data-controls.js | 25 +- wp/wp-includes/js/dist/data.js | 1049 +- wp/wp-includes/js/dist/data.min.js | 4 +- wp/wp-includes/js/dist/date.js | 176 +- wp/wp-includes/js/dist/date.min.js | 6 +- wp/wp-includes/js/dist/deprecated.js | 14 +- .../dist/development/react-refresh-runtime.js | 2 +- .../development/react-refresh-runtime.min.js | 2 +- wp/wp-includes/js/dist/dom-ready.js | 8 +- wp/wp-includes/js/dist/dom.js | 573 +- wp/wp-includes/js/dist/dom.min.js | 2 +- wp/wp-includes/js/dist/edit-post.js | 2354 +- wp/wp-includes/js/dist/edit-post.min.js | 2 +- wp/wp-includes/js/dist/edit-site.js | 21647 +++++-- wp/wp-includes/js/dist/edit-site.min.js | 8 +- wp/wp-includes/js/dist/edit-widgets.js | 904 +- wp/wp-includes/js/dist/edit-widgets.min.js | 2 +- wp/wp-includes/js/dist/editor.js | 3836 +- wp/wp-includes/js/dist/editor.min.js | 6 +- wp/wp-includes/js/dist/element.js | 301 +- wp/wp-includes/js/dist/escape-html.js | 30 +- wp/wp-includes/js/dist/format-library.js | 504 +- wp/wp-includes/js/dist/format-library.min.js | 2 +- wp/wp-includes/js/dist/hooks.js | 135 +- wp/wp-includes/js/dist/html-entities.js | 16 +- wp/wp-includes/js/dist/i18n.js | 237 +- wp/wp-includes/js/dist/interactivity.js | 2605 + wp/wp-includes/js/dist/interactivity.min.js | 2 + wp/wp-includes/js/dist/is-shallow-equal.js | 20 +- wp/wp-includes/js/dist/keyboard-shortcuts.js | 422 +- .../js/dist/keyboard-shortcuts.min.js | 2 +- wp/wp-includes/js/dist/keycodes.js | 203 +- .../js/dist/list-reusable-blocks.js | 60 +- .../js/dist/list-reusable-blocks.min.js | 2 +- wp/wp-includes/js/dist/media-utils.js | 237 +- wp/wp-includes/js/dist/notices.js | 76 +- wp/wp-includes/js/dist/nux.js | 70 +- wp/wp-includes/js/dist/patterns.js | 762 + wp/wp-includes/js/dist/patterns.min.js | 2 + wp/wp-includes/js/dist/plugins.js | 73 +- wp/wp-includes/js/dist/plugins.min.js | 2 +- .../js/dist/preferences-persistence.js | 222 +- wp/wp-includes/js/dist/preferences.js | 60 +- wp/wp-includes/js/dist/primitives.js | 75 +- wp/wp-includes/js/dist/primitives.min.js | 2 +- wp/wp-includes/js/dist/priority-queue.js | 28 +- wp/wp-includes/js/dist/private-apis.js | 39 +- wp/wp-includes/js/dist/private-apis.min.js | 2 +- wp/wp-includes/js/dist/redux-routine.js | 18 +- wp/wp-includes/js/dist/reusable-blocks.js | 123 +- wp/wp-includes/js/dist/reusable-blocks.min.js | 2 +- wp/wp-includes/js/dist/rich-text.js | 1413 +- wp/wp-includes/js/dist/rich-text.min.js | 2 +- wp/wp-includes/js/dist/router.js | 17 +- wp/wp-includes/js/dist/router.min.js | 2 +- wp/wp-includes/js/dist/server-side-render.js | 56 +- wp/wp-includes/js/dist/shortcode.js | 82 +- wp/wp-includes/js/dist/style-engine.js | 627 +- wp/wp-includes/js/dist/style-engine.min.js | 2 +- wp/wp-includes/js/dist/token-list.js | 59 +- wp/wp-includes/js/dist/undo-manager.js | 263 + wp/wp-includes/js/dist/undo-manager.min.js | 2 + wp/wp-includes/js/dist/url.js | 265 +- wp/wp-includes/js/dist/url.min.js | 2 +- .../js/dist/vendor/regenerator-runtime.js | 5 +- .../js/dist/vendor/regenerator-runtime.min.js | 2 +- .../js/dist/vendor/wp-polyfill-fetch.js | 120 +- .../js/dist/vendor/wp-polyfill-fetch.min.js | 2 +- wp/wp-includes/js/dist/vendor/wp-polyfill.js | 12218 +++- .../js/dist/vendor/wp-polyfill.min.js | 2 +- wp/wp-includes/js/dist/viewport.js | 48 +- wp/wp-includes/js/dist/warning.js | 37 +- wp/wp-includes/js/dist/warning.min.js | 2 +- wp/wp-includes/js/dist/widgets.js | 251 +- wp/wp-includes/js/dist/wordcount.js | 40 +- wp/wp-includes/js/heartbeat.js | 41 +- wp/wp-includes/js/heartbeat.min.js | 2 +- wp/wp-includes/js/imagesloaded.min.js | 11 +- wp/wp-includes/js/jquery/jquery.js | 48 +- wp/wp-includes/js/jquery/jquery.min.js | 4 +- wp/wp-includes/js/mce-view.js | 12 +- wp/wp-includes/js/mce-view.min.js | 2 +- wp/wp-includes/js/media-models.js | 8 +- wp/wp-includes/js/media-models.min.js | 2 +- wp/wp-includes/js/wp-embed.js | 93 +- wp/wp-includes/js/wp-embed.min.js | 2 +- wp/wp-includes/kses.php | 41 +- wp/wp-includes/l10n.php | 2 +- wp/wp-includes/link-template.php | 104 +- wp/wp-includes/load.php | 21 +- wp/wp-includes/media-template.php | 13 +- wp/wp-includes/media.php | 500 +- wp/wp-includes/meta.php | 15 + wp/wp-includes/ms-blogs.php | 16 +- wp/wp-includes/ms-files.php | 36 +- wp/wp-includes/ms-site.php | 26 +- wp/wp-includes/option.php | 388 +- wp/wp-includes/pluggable.php | 93 +- wp/wp-includes/pomo/entry.php | 1 - wp/wp-includes/pomo/mo.php | 2 +- wp/wp-includes/pomo/plural-forms.php | 14 +- wp/wp-includes/pomo/po.php | 8 +- wp/wp-includes/pomo/streams.php | 2 - wp/wp-includes/pomo/translations.php | 2 +- wp/wp-includes/post-template.php | 11 +- wp/wp-includes/post.php | 406 +- wp/wp-includes/query.php | 2 +- wp/wp-includes/rest-api.php | 21 +- .../rest-api/class-wp-rest-server.php | 64 +- .../class-wp-rest-attachments-controller.php | 4 +- .../class-wp-rest-autosaves-controller.php | 64 +- .../class-wp-rest-block-types-controller.php | 33 +- .../class-wp-rest-blocks-controller.php | 32 +- .../class-wp-rest-comments-controller.php | 14 +- .../endpoints/class-wp-rest-controller.php | 2 +- ...class-wp-rest-global-styles-controller.php | 15 +- .../class-wp-rest-menu-items-controller.php | 4 +- ...lass-wp-rest-menu-locations-controller.php | 5 +- .../class-wp-rest-menus-controller.php | 4 +- ...wp-rest-navigation-fallback-controller.php | 2 - ...s-wp-rest-pattern-directory-controller.php | 5 +- .../class-wp-rest-plugins-controller.php | 4 +- ...class-wp-rest-post-statuses-controller.php | 2 +- .../class-wp-rest-post-types-controller.php | 3 +- .../class-wp-rest-posts-controller.php | 9 +- .../class-wp-rest-revisions-controller.php | 19 +- .../class-wp-rest-search-controller.php | 1 + .../class-wp-rest-settings-controller.php | 1 - .../class-wp-rest-sidebars-controller.php | 5 +- .../class-wp-rest-site-health-controller.php | 6 +- .../class-wp-rest-taxonomies-controller.php | 3 +- ...-wp-rest-template-autosaves-controller.php | 276 + ...-wp-rest-template-revisions-controller.php | 297 + .../class-wp-rest-templates-controller.php | 25 +- .../class-wp-rest-terms-controller.php | 4 +- .../class-wp-rest-themes-controller.php | 9 +- .../class-wp-rest-users-controller.php | 8 +- .../class-wp-rest-widget-types-controller.php | 7 +- .../class-wp-rest-widgets-controller.php | 2 +- .../class-wp-rest-post-search-handler.php | 1 - wp/wp-includes/revision.php | 201 +- wp/wp-includes/script-loader.php | 678 +- wp/wp-includes/shortcodes.php | 40 +- .../sitemaps/class-wp-sitemaps-renderer.php | 2 - .../sitemaps/class-wp-sitemaps-stylesheet.php | 4 +- .../class-wp-sitemaps-taxonomies.php | 3 +- .../providers/class-wp-sitemaps-users.php | 3 +- wp/wp-includes/style-engine.php | 4 +- .../class-wp-style-engine-processor.php | 5 +- .../style-engine/class-wp-style-engine.php | 89 +- wp/wp-includes/taxonomy.php | 31 +- wp/wp-includes/template-canvas.php | 2 +- wp/wp-includes/template.php | 17 +- wp/wp-includes/theme-previews.php | 21 +- wp/wp-includes/theme-templates.php | 44 +- wp/wp-includes/theme.json | 8 +- wp/wp-includes/theme.php | 121 +- wp/wp-includes/update.php | 10 +- wp/wp-includes/user.php | 43 +- wp/wp-includes/vars.php | 11 +- wp/wp-includes/version.php | 4 +- .../widgets/class-wp-widget-archives.php | 8 +- .../widgets/class-wp-widget-calendar.php | 2 +- .../widgets/class-wp-widget-categories.php | 8 +- .../widgets/class-wp-widget-media-audio.php | 24 +- .../widgets/class-wp-widget-media-gallery.php | 2 + .../widgets/class-wp-widget-media-image.php | 35 +- .../widgets/class-wp-widget-media-video.php | 36 +- .../widgets/class-wp-widget-media.php | 2 +- .../widgets/class-wp-widget-pages.php | 1 - .../widgets/class-wp-widget-search.php | 1 - .../widgets/class-wp-widget-text.php | 22 +- wp/wp-login.php | 146 +- wp/wp-mail.php | 2 +- wp/wp-settings.php | 15 +- wp/xmlrpc.php | 2 +- 1463 files changed, 142461 insertions(+), 89421 deletions(-) create mode 100644 wp/wp-admin/images/about-header-background.svg create mode 100644 wp/wp-content/plugins/wordfence/css/activity-report-widget.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/diff.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/fullLog.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/iptraf.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/jquery-ui-timepicker-addon.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/jquery-ui.min.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/jquery-ui.structure.min.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/jquery-ui.theme.min.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/license/care-global.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/license/care.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/license/free-global.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/license/free.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/license/premium-global.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/license/premium.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/license/response-global.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/license/response-variables.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/license/response.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/main.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/phpinfo.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/wf-adminbar.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/wf-colorbox.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/wf-font-awesome.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/wf-global.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/wf-ionicons.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/wf-onboarding.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/wf-roboto-font.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/wfselect2.min.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/css/wordfenceBox.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/js/admin.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/admin.ajaxWatcher.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/admin.liveTraffic.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/chart.umd.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/date.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/jquery-ui-timepicker-addon.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/jquery.colorbox-min.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/jquery.colorbox.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/jquery.qrcode.min.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/jquery.tmpl.min.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/knockout-3.5.1.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/wfdashboard.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/wfdropdown.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/wfglobal.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/wfi18n.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/wfonboarding.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/wfpopover.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/js/wfselect2.min.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/admin-global.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/admin.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/colorbox.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/embedded.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/font-awesome.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/ionicons.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/jquery-ui.min.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/jquery-ui.structure.min.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/jquery-ui.theme.min.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/login.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/css/woocommerce-account.1701191857.css create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/js/admin-global.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/js/admin.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/js/chart.umd.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/js/jquery.colorbox.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/js/jquery.colorbox.min.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/js/jquery.qrcode.min.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/js/jquery.tmpl.min.1701191857.js create mode 100644 wp/wp-content/plugins/wordfence/modules/login-security/js/login.1701191857.js create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/academy-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/academy-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/admin-global-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/admin-global-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/adminbar-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/adminbar-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/ai-generator-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/ai-generator-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/alerts-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/alerts-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/black-friday-banner-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/black-friday-banner-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/dashboard-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/dashboard-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/edit-page-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/edit-page-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/elementor-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/elementor-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/featured-image-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/featured-image-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/filter-explanation-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/filter-explanation-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/first-time-configuration-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/first-time-configuration-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/icons-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/icons-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/inside-editor-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/inside-editor-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/introductions-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/introductions-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/metabox-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/metabox-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/metabox-primary-category-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/metabox-primary-category-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/modal-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/modal-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/monorepo-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/monorepo-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/new-settings-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/new-settings-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/notifications-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/notifications-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/score_icon-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/score_icon-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/structured-data-blocks-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/structured-data-blocks-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/support-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/support-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/tailwind-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/tailwind-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/toggle-switch-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/toggle-switch-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/tooltips-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/tooltips-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/workouts-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/workouts-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/wpseo-dismissible-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/wpseo-dismissible-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/yoast-extensions-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/yoast-extensions-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/yst_plugin_tools-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/yst_plugin_tools-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/yst_seo_score-2160-rtl.css create mode 100644 wp/wp-content/plugins/wordpress-seo/css/dist/yst_seo_score-2160.css create mode 100644 wp/wp-content/plugins/wordpress-seo/js/dist/externals/chart.js.js create mode 100644 wp/wp-content/plugins/wordpress-seo/src/deprecated/src/integrations/third-party/wincher.php create mode 100644 wp/wp-content/plugins/wordpress-seo/src/deprecated/src/integrations/third-party/wordproof-integration-toggle.php create mode 100644 wp/wp-content/plugins/wordpress-seo/src/integrations/watchers/woocommerce-beta-editor-watcher.php create mode 100644 wp/wp-content/plugins/wordpress-seo/src/introductions/domain/invalid-user-id-exception.php create mode 100644 wp/wp-content/plugins/wordpress-seo/src/introductions/infrastructure/introductions-seen-repository.php create mode 100644 wp/wp-content/plugins/wordpress-seo/src/introductions/user-interface/introductions-seen-route.php create mode 100644 wp/wp-content/plugins/wordpress-seo/src/presenters/admin/woocommerce-beta-editor-presenter.php create mode 100644 wp/wp-includes/block-supports/background.php create mode 100644 wp/wp-includes/blocks/image/view.asset.php create mode 100644 wp/wp-includes/blocks/image/view.js create mode 100644 wp/wp-includes/blocks/image/view.min.asset.php create mode 100644 wp/wp-includes/blocks/image/view.min.js create mode 100644 wp/wp-includes/blocks/query/style-rtl.css create mode 100644 wp/wp-includes/blocks/query/style-rtl.min.css create mode 100644 wp/wp-includes/blocks/query/style.css create mode 100644 wp/wp-includes/blocks/query/style.min.css create mode 100644 wp/wp-includes/blocks/query/view.asset.php create mode 100644 wp/wp-includes/blocks/query/view.js create mode 100644 wp/wp-includes/blocks/query/view.min.asset.php create mode 100644 wp/wp-includes/blocks/query/view.min.js create mode 100644 wp/wp-includes/css/dist/patterns/style-rtl.css create mode 100644 wp/wp-includes/css/dist/patterns/style-rtl.min.css create mode 100644 wp/wp-includes/css/dist/patterns/style.css create mode 100644 wp/wp-includes/css/dist/patterns/style.min.css create mode 100644 wp/wp-includes/fonts.php create mode 100644 wp/wp-includes/fonts/class-wp-font-face-resolver.php create mode 100644 wp/wp-includes/fonts/class-wp-font-face.php create mode 100644 wp/wp-includes/html-api/class-wp-html-active-formatting-elements.php create mode 100644 wp/wp-includes/html-api/class-wp-html-open-elements.php create mode 100644 wp/wp-includes/html-api/class-wp-html-processor-state.php create mode 100644 wp/wp-includes/html-api/class-wp-html-processor.php create mode 100644 wp/wp-includes/html-api/class-wp-html-token.php create mode 100644 wp/wp-includes/html-api/class-wp-html-unsupported-exception.php create mode 100644 wp/wp-includes/js/dist/interactivity.js create mode 100644 wp/wp-includes/js/dist/interactivity.min.js create mode 100644 wp/wp-includes/js/dist/patterns.js create mode 100644 wp/wp-includes/js/dist/patterns.min.js create mode 100644 wp/wp-includes/js/dist/undo-manager.js create mode 100644 wp/wp-includes/js/dist/undo-manager.min.js create mode 100644 wp/wp-includes/rest-api/endpoints/class-wp-rest-template-autosaves-controller.php create mode 100644 wp/wp-includes/rest-api/endpoints/class-wp-rest-template-revisions-controller.php diff --git a/wp/wp-admin/about.php b/wp/wp-admin/about.php index 4e2779d3..416cd8dd 100644 --- a/wp/wp-admin/about.php +++ b/wp/wp-admin/about.php @@ -42,10 +42,41 @@ require_once ABSPATH . 'wp-admin/admin-header.php'; - -
+ +
-

+

+

+ Version %1$s addressed %2$s bug.', + 'Version %1$s addressed %2$s bugs.', + 10 + ), + '6.4.1', + '4' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '6.4.1' ) + ) + ); + ?> +

+
+
+ +
+
+

- + +

+
+
+ +
+
+

Twenty Twenty-Four' ); ?>

+

+ Twenty Twenty-Four. Built with three distinct use cases in mind, the versatility of the new default theme makes it an ideal choice for almost any type of website. Dive into its collection of templates and patterns and unlock a world of creative possibilities with just a few tweaks.' ), + __( 'https://make.wordpress.org/core/2023/08/24/introducing-twenty-twenty-four/' ) + ); + ?> +

+
+
+
+ +
+
+
+ +
+
+
+ +
+

+

+
+
+
+ +
+

+

+
+
+
+ +
+

+

+ a refreshed design and more commands to find what you\'re looking for, perform tasks efficiently, and save time as you create.' ), + __( 'https://make.wordpress.org/core/2023/09/12/core-editor-improvement-commanding-the-command-palette/' ) + ); + ?> +

+
+
+ +
+
+
+ +
+

+

+
+
+
+ +
+

+

+
+
+
+ +
+

+

+
+
+ +
+
+
+ +
+
+
+

+

+ New enhancements ensure your content creation journey is smooth. Find new keyboard shortcuts in List View, refined list merging, and enhanced control over link settings. A revamped and cohesive toolbar experience for Navigation, List, and Quote blocks lets you efficiently work with the tooling options you need.' ), + __( 'https://make.wordpress.org/core/2023/10/05/core-editor-improvement-ensuring-excellence-in-the-writing-experience/' ) + ); + ?>

-
- -
-
-
-

-

-
-
- -
-
-

-

+

+

- +
@@ -87,153 +202,41 @@ require_once ABSPATH . 'wp-admin/admin-header.php';
- +
-

-

+

+

-
-
-

-

-
-
-
- -
-
-
- -
-
-
- -
-

-

-
-
-
- -
-

-

-
-
-
- -
-

-

-
-
- -
-
-

-

+

+

-

-

+

+

-
- -
-
-
- -
-

-

-
-
-
- -
-

-

-
-
-
- -
-

-

-
-
- -
-
-
- -
-

-

-
-
-
- -
-

-

-
-
-
- -
-

-

-
-
- -
-
- +

@@ -249,7 +252,7 @@ require_once ABSPATH . 'wp-admin/admin-header.php'; Learn WordPress is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, interactive events for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.' ), + __( 'Learn WordPress is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, interactive workshops for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.' ), 'https://learn.wordpress.org/', 'https://learn.wordpress.org/online-workshops/' ); @@ -262,16 +265,17 @@ require_once ABSPATH . 'wp-admin/admin-header.php';

WordPress Field Guide. It is overflowing with detailed developer notes to help you build with WordPress.' ), - __( 'https://make.wordpress.org/core/2023/07/18/wordpress-6-3-field-guide/' ) + __( 'Explore the WordPress %2$s Field Guide. Learn about the changes in this release with detailed developer notes to help you build with WordPress.' ), + __( 'https://make.wordpress.org/core/2023/10/23/wordpress-6-4-field-guide/' ), + '6.4' ); ?>

@@ -279,22 +283,22 @@ require_once ABSPATH . 'wp-admin/admin-header.php';

Read the WordPress %2$s Release Notes for more information on the included enhancements and issues fixed, installation information, developer notes and resources, release contributors, and the list of file changes in this release.' ), + __( 'Read the WordPress %2$s Release Notes for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes.' ), sprintf( /* translators: %s: WordPress version number. */ esc_url( __( 'https://wordpress.org/documentation/wordpress-version/version-%s/' ) ), - '6-3' + '6-4' ), - '6.3' + '6.4' ); ?>

diff --git a/wp/wp-admin/async-upload.php b/wp/wp-admin/async-upload.php index f0f6dd00..864f2be6 100644 --- a/wp/wp-admin/async-upload.php +++ b/wp/wp-admin/async-upload.php @@ -113,8 +113,8 @@ if ( isset( $_REQUEST['post_id'] ) ) { $id = media_handle_upload( 'async-upload', $post_id ); if ( is_wp_error( $id ) ) { - printf( - '
%s %s
%s
', + $message = sprintf( + '%s %s
%s', sprintf( '', __( 'Dismiss' ) @@ -126,6 +126,13 @@ if ( is_wp_error( $id ) ) { ), esc_html( $id->get_error_message() ) ); + wp_admin_notice( + $message, + array( + 'additional_classes' => array( 'error-div', 'error' ), + 'paragraph_wrap' => false, + ) + ); exit; } diff --git a/wp/wp-admin/authorize-application.php b/wp/wp-admin/authorize-application.php index 1eabb963..8d931f46 100644 --- a/wp/wp-admin/authorize-application.php +++ b/wp/wp-admin/authorize-application.php @@ -137,9 +137,16 @@ require_once ABSPATH . 'wp-admin/admin-header.php';

- -

get_error_message(); ?>

- + get_error_message(), + array( + 'type' => 'error', + ) + ); + } + ?>

@@ -194,24 +201,25 @@ require_once ABSPATH . 'wp-admin/admin-header.php'; } ?> - -
-

- - -

-

-
+ + + +

+

' . __( 'Be sure to save this in a safe location. You will not be able to retrieve it.' ) . '

'; + $args = array( + 'type' => 'success', + 'additional_classes' => array( 'notice-alt', 'below-h2' ), + 'paragraph_wrap' => false, + ); + wp_admin_notice( $message, $args ); - -
diff --git a/wp/wp-admin/comment.php b/wp/wp-admin/comment.php index ccb72c09..349a32a4 100644 --- a/wp/wp-admin/comment.php +++ b/wp/wp-admin/comment.php @@ -161,11 +161,23 @@ switch ( $action ) { break; } if ( $message ) { - echo '

' . $message . '

'; + wp_admin_notice( + $message, + array( + 'type' => 'info', + 'id' => 'message', + ) + ); } } + wp_admin_notice( + '' . __( 'Caution:' ) . ' ' . $caution_msg, + array( + 'type' => 'warning', + 'id' => 'message', + ) + ); ?> -

diff --git a/wp/wp-admin/contribute.php b/wp/wp-admin/contribute.php index 2cf73aec..ea7bbd05 100644 --- a/wp/wp-admin/contribute.php +++ b/wp/wp-admin/contribute.php @@ -25,9 +25,7 @@ require_once ABSPATH . 'wp-admin/admin-header.php'; -
- -
+
-
- +
+

-

+

  • @@ -64,43 +62,43 @@ require_once ABSPATH . 'wp-admin/admin-header.php';
  • Translate WordPress into your local language.' ); ?>
  • Create and improve WordPress educational materials.' ); ?>
  • Promote the WordPress project to your community.' ); ?>
  • -
  • Curate submissions or take photos for the WordPress Photos Directory.' ); ?>
  • -
  • Organize or participate in local WordPress Meetups and WordCamps.' ); ?>
  • +
  • Curate submissions or take photos for the Photo Directory.' ); ?>
  • +
  • Organize or participate in local Meetups and WordCamps.' ); ?>
  • Lend your creative imagination to the WordPress UI design.' ); ?>
  • Edit videos and add captions to WordPress.tv.' ); ?>
  • -
  • Explore ways to reduce the environmental impact of millions of websites.' ); ?>
  • +
  • Explore ways to reduce the environmental impact of websites.' ); ?>
- +
- +

  • Find and report bugs in the WordPress core software.' ); ?>
  • -
  • Test new releases and proposed features for the block editor.' ); ?>
  • +
  • Test new releases and proposed features for the Block Editor.' ); ?>
  • Write and submit patches to fix bugs or help build new features.' ); ?>
  • Contribute to the code, improve the UX, and test the WordPress app.' ); ?>

    -
  • -
  • +
  • +
-
+

-

+

diff --git a/wp/wp-admin/credits.php b/wp/wp-admin/credits.php index 74fca334..efd619c6 100644 --- a/wp/wp-admin/credits.php +++ b/wp/wp-admin/credits.php @@ -28,15 +28,7 @@ $credits = wp_credits();
-
- -
+
"; $this->single_row_columns( $comment ); echo "\n"; @@ -685,7 +701,8 @@ class WP_Comments_List_Table extends WP_List_Table { } // Restores the more descriptive, specific name for use within this method. - $comment = $item; + $comment = $item; + $the_comment_status = wp_get_comment_status( $comment ); $output = ''; @@ -895,7 +912,8 @@ class WP_Comments_List_Table extends WP_List_Table { if ( $this->user_can ) { ?> - ' . - ''; + wp_admin_notice( + $incompatible_message, + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'update-message' ), + ) + ); + + echo ''; } /** diff --git a/wp/wp-admin/includes/class-wp-posts-list-table.php b/wp/wp-admin/includes/class-wp-posts-list-table.php index 54bd1944..baf3ef6c 100644 --- a/wp/wp-admin/includes/class-wp-posts-list-table.php +++ b/wp/wp-admin/includes/class-wp-posts-list-table.php @@ -764,7 +764,12 @@ class WP_Posts_List_Table extends WP_List_Table { $post_type = $this->screen->post_type; if ( 'page' === $post_type ) { - $title_orderby_text = isset( $_GET['orderby'] ) ? __( 'Table ordered by Title.' ) : __( 'Table ordered by Hierarchical Menu Order and Title.' ); + if ( isset( $_GET['orderby'] ) ) { + $title_orderby_text = __( 'Table ordered by Title.' ); + } else { + $title_orderby_text = __( 'Table ordered by Hierarchical Menu Order and Title.' ); + } + $sortables = array( 'title' => array( 'title', false, __( 'Title' ), $title_orderby_text, 'asc' ), 'parent' => array( 'parent', false ), @@ -893,7 +898,7 @@ class WP_Posts_List_Table extends WP_List_Table { $to_display[ $page->ID ] = $level; } - $count++; + ++$count; if ( isset( $children_pages ) ) { $this->_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page, $to_display ); @@ -912,7 +917,7 @@ class WP_Posts_List_Table extends WP_List_Table { $to_display[ $op->ID ] = 0; } - $count++; + ++$count; } } } @@ -987,7 +992,7 @@ class WP_Posts_List_Table extends WP_List_Table { while ( $my_parent = array_pop( $my_parents ) ) { $to_display[ $my_parent->ID ] = $level - $num_parents; - $num_parents--; + --$num_parents; } } @@ -995,7 +1000,7 @@ class WP_Posts_List_Table extends WP_List_Table { $to_display[ $page->ID ] = $level; } - $count++; + ++$count; $this->_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page, $to_display ); } @@ -1014,6 +1019,7 @@ class WP_Posts_List_Table extends WP_List_Table { public function column_cb( $item ) { // Restores the more descriptive, specific name for use within this method. $post = $item; + $show = current_user_can( 'edit_post', $post->ID ); /** @@ -1028,7 +1034,8 @@ class WP_Posts_List_Table extends WP_List_Table { */ if ( apply_filters( 'wp_list_table_show_post_checkbox', $show, $post ) ) : ?> -
' . - '

', + '

', esc_attr( $this->get_column_count() ) ); + $incompatible_message = ''; if ( ! $compatible_php && ! $compatible_wp ) { - _e( 'This plugin does not work with your versions of WordPress and PHP.' ); + $incompatible_message .= __( 'This plugin does not work with your versions of WordPress and PHP.' ); if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */ ' ' . __( 'Please update WordPress, and then learn more about updating PHP.' ), self_admin_url( 'update-core.php' ), esc_url( wp_get_update_php_url() ) ); - wp_update_php_annotation( '

', '' ); + $incompatible_message .= wp_update_php_annotation( '

', '', false ); } elseif ( current_user_can( 'update_core' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } elseif ( current_user_can( 'update_php' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); - wp_update_php_annotation( '

', '' ); + $incompatible_message .= wp_update_php_annotation( '

', '', false ); } } elseif ( ! $compatible_wp ) { - _e( 'This plugin does not work with your version of WordPress.' ); + $incompatible_message .= __( 'This plugin does not work with your version of WordPress.' ); if ( current_user_can( 'update_core' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } } elseif ( ! $compatible_php ) { - _e( 'This plugin does not work with your version of PHP.' ); + $incompatible_message .= __( 'This plugin does not work with your version of PHP.' ); if ( current_user_can( 'update_php' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); - wp_update_php_annotation( '

', '' ); + $incompatible_message .= wp_update_php_annotation( '

', '', false ); } } - echo '

diff --git a/wp/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php b/wp/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php index 53d67459..71653516 100644 --- a/wp/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php +++ b/wp/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php @@ -164,5 +164,4 @@ class WP_Privacy_Data_Removal_Requests_List_Table extends WP_Privacy_Requests_Ta break; } } - } diff --git a/wp/wp-admin/includes/class-wp-privacy-policy-content.php b/wp/wp-admin/includes/class-wp-privacy-policy-content.php index 46b10e15..a64d0432 100644 --- a/wp/wp-admin/includes/class-wp-privacy-policy-content.php +++ b/wp/wp-admin/includes/class-wp-privacy-policy-content.php @@ -130,31 +130,28 @@ final class WP_Privacy_Policy_Content { * Outputs a warning when some privacy info has changed. * * @since 4.9.6 - * - * @global WP_Post $post Global post object. */ public static function policy_text_changed_notice() { - global $post; - $screen = get_current_screen()->id; if ( 'privacy' !== $screen ) { return; } - ?> -
-

- review the guide and update your privacy policy.' ), - esc_url( admin_url( 'privacy-policy-guide.php?tab=policyguide' ) ) - ); - ?> -

-
- review the guide and update your privacy policy.' ), + esc_url( admin_url( 'privacy-policy-guide.php?tab=policyguide' ) ) + ); + + wp_admin_notice( + $privacy_message, + array( + 'type' => 'warning', + 'additional_classes' => array( 'policy-text-updated' ), + 'dismissible' => true, + ) + ); } /** @@ -356,22 +353,20 @@ final class WP_Privacy_Policy_Content { 'after' ); } else { - ?> -
-

- %s %s', - $url, - $label, - /* translators: Hidden accessibility text. */ - __( '(opens in a new tab)' ) - ); - ?> -

-
- %s %s', + $url, + $label, + /* translators: Hidden accessibility text. */ + __( '(opens in a new tab)' ) + ); + wp_admin_notice( + $message, + array( + 'type' => 'warning', + 'additional_classes' => array( 'inline', 'wp-pp-notice' ), + ) + ); } } @@ -398,8 +393,14 @@ final class WP_Privacy_Policy_Content { $badge_title = sprintf( __( 'Removed %s.' ), $date ); /* translators: %s: Date of plugin deactivation. */ - $removed = __( 'You deactivated this plugin on %s and may no longer need this policy.' ); - $removed = '

' . sprintf( $removed, $date ) . '

'; + $removed = sprintf( __( 'You deactivated this plugin on %s and may no longer need this policy.' ), $date ); + $removed = wp_get_admin_notice( + $removed, + array( + 'type' => 'info', + 'additional_classes' => array( 'inline' ), + ) + ); } elseif ( ! empty( $section['updated'] ) ) { $badge_class = ' blue'; $date = date_i18n( $date_format, $section['updated'] ); diff --git a/wp/wp-admin/includes/class-wp-privacy-requests-table.php b/wp/wp-admin/includes/class-wp-privacy-requests-table.php index cbc8c018..61a917c3 100644 --- a/wp/wp-admin/includes/class-wp-privacy-requests-table.php +++ b/wp/wp-admin/includes/class-wp-privacy-requests-table.php @@ -239,9 +239,9 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table { $resend = _wp_privacy_resend_request( $request_id ); if ( $resend && ! is_wp_error( $resend ) ) { - $count++; + ++$count; } else { - $failures++; + ++$failures; } } @@ -286,7 +286,7 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table { $result = _wp_privacy_completed_request( $request_id ); if ( $result && ! is_wp_error( $result ) ) { - $count++; + ++$count; } } @@ -309,9 +309,9 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table { case 'delete': foreach ( $request_ids as $request_id ) { if ( wp_delete_post( $request_id, true ) ) { - $count++; + ++$count; } else { - $failures++; + ++$failures; } } @@ -416,8 +416,8 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table { */ public function column_cb( $item ) { return sprintf( - '' . - '', + '' . + '', esc_attr( $item->ID ), /* translators: Hidden accessibility text. %s: Email address. */ sprintf( __( 'Select %s' ), $item->email ) diff --git a/wp/wp-admin/includes/class-wp-site-health-auto-updates.php b/wp/wp-admin/includes/class-wp-site-health-auto-updates.php index d1655eb1..85decaaa 100644 --- a/wp/wp-admin/includes/class-wp-site-health-auto-updates.php +++ b/wp/wp-admin/includes/class-wp-site-health-auto-updates.php @@ -42,7 +42,7 @@ class WP_Site_Health_Auto_Updates { $tests = array_filter( $tests ); $tests = array_map( - static function( $test ) { + static function ( $test ) { $test = (object) $test; if ( empty( $test->severity ) ) { @@ -228,7 +228,7 @@ class WP_Site_Health_Auto_Updates { // Search all directories we've found for evidence of version control. foreach ( $vcs_dirs as $vcs_dir ) { foreach ( $check_dirs as $check_dir ) { - // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition,Squiz.PHP.DisallowMultipleAssignments + // phpcs:ignore Generic.CodeAnalysis.AssignmentInCondition,Squiz.PHP.DisallowMultipleAssignments if ( $checkout = @is_dir( rtrim( $check_dir, '\\/' ) . "/$vcs_dir" ) ) { break 2; } diff --git a/wp/wp-admin/includes/class-wp-site-health.php b/wp/wp-admin/includes/class-wp-site-health.php index eda8bfaa..b73e1e78 100644 --- a/wp/wp-admin/includes/class-wp-site-health.php +++ b/wp/wp-admin/includes/class-wp-site-health.php @@ -381,14 +381,14 @@ class WP_Site_Health { // Loop over the available plugins and check their versions and active state. foreach ( $plugins as $plugin_path => $plugin ) { - $plugins_total++; + ++$plugins_total; if ( is_plugin_active( $plugin_path ) ) { - $plugins_active++; + ++$plugins_active; } if ( array_key_exists( $plugin_path, $plugin_updates ) ) { - $plugins_need_update++; + ++$plugins_need_update; } } @@ -543,21 +543,21 @@ class WP_Site_Health { } foreach ( $all_themes as $theme_slug => $theme ) { - $themes_total++; + ++$themes_total; if ( array_key_exists( $theme_slug, $theme_updates ) ) { - $themes_need_updates++; + ++$themes_need_updates; } } // If this is a child theme, increase the allowed theme count by one, to account for the parent. if ( is_child_theme() ) { - $allowed_theme_count++; + ++$allowed_theme_count; } // If there's a default theme installed and not in use, we count that as allowed as well. if ( $has_default_theme && ! $using_default_theme ) { - $allowed_theme_count++; + ++$allowed_theme_count; } if ( $themes_total > $allowed_theme_count ) { @@ -1356,13 +1356,8 @@ class WP_Site_Health { } } - if ( $wpdb->use_mysqli ) { - // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_info - $mysql_client_version = mysqli_get_client_info(); - } else { - // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info,PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved - $mysql_client_version = mysql_get_client_info(); - } + // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_info + $mysql_client_version = mysqli_get_client_info(); /* * libmysql has supported utf8mb4 since 5.5.3, same as the MySQL server. @@ -1560,10 +1555,9 @@ class WP_Site_Health { */ public function get_test_https_status() { /* - * Enforce fresh HTTPS detection results. This is normally invoked by using cron, - * but for Site Health it should always rely on the latest results. + * Check HTTPS detection results. */ - wp_update_https_detection_errors(); + $errors = wp_get_https_detection_errors(); $default_update_url = wp_get_default_update_https_url(); @@ -1943,10 +1937,6 @@ class WP_Site_Health { public function get_test_available_updates_disk_space() { $available_space = function_exists( 'disk_free_space' ) ? @disk_free_space( WP_CONTENT_DIR . '/upgrade/' ) : false; - $available_space = false !== $available_space - ? (int) $available_space - : 0; - $result = array( 'label' => __( 'Disk space available to safely perform updates' ), 'status' => 'good', @@ -1963,18 +1953,14 @@ class WP_Site_Health { 'test' => 'available_updates_disk_space', ); - if ( $available_space < 100 * MB_IN_BYTES ) { - $result['description'] = __( 'Available disk space is low, less than 100 MB available.' ); + if ( false === $available_space ) { + $result['description'] = __( 'Could not determine available disk space for updates.' ); $result['status'] = 'recommended'; - } - - if ( $available_space < 20 * MB_IN_BYTES ) { + } elseif ( $available_space < 20 * MB_IN_BYTES ) { $result['description'] = __( 'Available disk space is critically low, less than 20 MB available. Proceed with caution, updates may fail.' ); $result['status'] = 'critical'; - } - - if ( ! $available_space ) { - $result['description'] = __( 'Could not determine available disk space for updates.' ); + } elseif ( $available_space < 100 * MB_IN_BYTES ) { + $result['description'] = __( 'Available disk space is low, less than 100 MB available.' ); $result['status'] = 'recommended'; } @@ -3306,11 +3292,11 @@ class WP_Site_Health { foreach ( $results as $result ) { if ( 'critical' === $result['status'] ) { - $site_status['critical']++; + ++$site_status['critical']; } elseif ( 'recommended' === $result['status'] ) { - $site_status['recommended']++; + ++$site_status['recommended']; } else { - $site_status['good']++; + ++$site_status['good']; } } @@ -3646,5 +3632,4 @@ class WP_Site_Health { */ return apply_filters( 'site_status_available_object_cache_services', $services ); } - } diff --git a/wp/wp-admin/includes/class-wp-terms-list-table.php b/wp/wp-admin/includes/class-wp-terms-list-table.php index 3c277d6a..b3d9ec59 100644 --- a/wp/wp-admin/includes/class-wp-terms-list-table.php +++ b/wp/wp-admin/includes/class-wp-terms-list-table.php @@ -63,7 +63,6 @@ class WP_Terms_List_Table extends WP_List_Table { if ( empty( $post_type ) || ! in_array( $post_type, get_post_types( array( 'show_ui' => true ) ), true ) ) { $post_type = 'post'; } - } /** @@ -311,7 +310,7 @@ class WP_Terms_List_Table extends WP_List_Table { while ( $my_parent = array_pop( $my_parents ) ) { echo "\t"; $this->single_row( $my_parent, $level - $num_parents ); - $num_parents--; + --$num_parents; } } @@ -365,8 +364,8 @@ class WP_Terms_List_Table extends WP_List_Table { if ( current_user_can( 'delete_term', $tag->term_id ) ) { return sprintf( - '' . - '', + '' . + '', $tag->term_id, /* translators: Hidden accessibility text. %s: Taxonomy term name. */ sprintf( __( 'Select %s' ), $tag->name ) @@ -426,12 +425,17 @@ class WP_Terms_List_Table extends WP_List_Table { $name ); - $output .= ''; + if ( $quick_edit_enabled ) { + $output .= ''; + } return $output; } @@ -465,32 +469,46 @@ class WP_Terms_List_Table extends WP_List_Table { } // Restores the more descriptive, specific name for use within this method. - $tag = $item; + $tag = $item; + $taxonomy = $this->screen->taxonomy; $uri = wp_doing_ajax() ? wp_get_referer() : $_SERVER['REQUEST_URI']; - $edit_link = add_query_arg( - 'wp_http_referer', - urlencode( wp_unslash( $uri ) ), - get_edit_term_link( $tag, $taxonomy, $this->screen->post_type ) - ); - $actions = array(); if ( current_user_can( 'edit_term', $tag->term_id ) ) { $actions['edit'] = sprintf( '%s', - esc_url( $edit_link ), + esc_url( + add_query_arg( + 'wp_http_referer', + urlencode( wp_unslash( $uri ) ), + get_edit_term_link( $tag, $taxonomy, $this->screen->post_type ) + ) + ), /* translators: %s: Taxonomy term name. */ esc_attr( sprintf( __( 'Edit “%s”' ), $tag->name ) ), __( 'Edit' ) ); - $actions['inline hide-if-no-js'] = sprintf( - '', - /* translators: %s: Taxonomy term name. */ - esc_attr( sprintf( __( 'Quick edit “%s” inline' ), $tag->name ) ), - __( 'Quick Edit' ) - ); + + /** + * Filters whether Quick Edit should be enabled for the given taxonomy. + * + * @since 6.4.0 + * + * @param bool $enable Whether to enable the Quick Edit functionality. Default true. + * @param string $taxonomy Taxonomy name. + */ + $quick_edit_enabled = apply_filters( 'quick_edit_enabled_for_taxonomy', true, $taxonomy ); + + if ( $quick_edit_enabled ) { + $actions['inline hide-if-no-js'] = sprintf( + '', + /* translators: %s: Taxonomy term name. */ + esc_attr( sprintf( __( 'Quick edit “%s” inline' ), $tag->name ) ), + __( 'Quick Edit' ) + ); + } } if ( current_user_can( 'delete_term', $tag->term_id ) ) { @@ -627,6 +645,9 @@ class WP_Terms_List_Table extends WP_List_Table { * @return string */ public function column_default( $item, $column_name ) { + // Restores the more descriptive, specific name for use within this method. + $tag = $item; + /** * Filters the displayed columns in the terms list table. * @@ -644,7 +665,7 @@ class WP_Terms_List_Table extends WP_List_Table { * @param string $column_name Name of the column. * @param int $term_id Term ID. */ - return apply_filters( "manage_{$this->screen->taxonomy}_custom_column", '', $column_name, $item->term_id ); + return apply_filters( "manage_{$this->screen->taxonomy}_custom_column", '', $column_name, $tag->term_id ); } /** @@ -712,9 +733,16 @@ class WP_Terms_List_Table extends WP_List_Table { - +

', + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'hidden' ), + 'paragraph_wrap' => false, + ) + ); + ?>
diff --git a/wp/wp-admin/includes/class-wp-upgrader.php b/wp/wp-admin/includes/class-wp-upgrader.php index a2cea379..1fbfa99e 100644 --- a/wp/wp-admin/includes/class-wp-upgrader.php +++ b/wp/wp-admin/includes/class-wp-upgrader.php @@ -185,10 +185,11 @@ class WP_Upgrader { * @since 2.8.0 */ public function generic_strings() { - $this->strings['bad_request'] = __( 'Invalid data provided.' ); - $this->strings['fs_unavailable'] = __( 'Could not access filesystem.' ); - $this->strings['fs_error'] = __( 'Filesystem error.' ); - $this->strings['fs_no_root_dir'] = __( 'Unable to locate WordPress root directory.' ); + $this->strings['bad_request'] = __( 'Invalid data provided.' ); + $this->strings['fs_unavailable'] = __( 'Could not access filesystem.' ); + $this->strings['fs_error'] = __( 'Filesystem error.' ); + $this->strings['fs_no_root_dir'] = __( 'Unable to locate WordPress root directory.' ); + /* translators: %s: Directory name. */ $this->strings['fs_no_content_dir'] = sprintf( __( 'Unable to locate WordPress content directory (%s).' ), 'wp-content' ); $this->strings['fs_no_plugins_dir'] = __( 'Unable to locate WordPress plugin directory.' ); $this->strings['fs_no_themes_dir'] = __( 'Unable to locate WordPress theme directory.' ); @@ -1206,8 +1207,7 @@ class WP_Upgrader { if ( ! $wp_filesystem->delete( $temp_backup_dir, true ) ) { $errors->add( 'temp_backup_delete_failed', - sprintf( $this->strings['temp_backup_delete_failed'] ), - $args['slug'] + sprintf( $this->strings['temp_backup_delete_failed'], $args['slug'] ) ); continue; } diff --git a/wp/wp-admin/includes/class-wp-users-list-table.php b/wp/wp-admin/includes/class-wp-users-list-table.php index 43abd608..ecb8eb4b 100644 --- a/wp/wp-admin/includes/class-wp-users-list-table.php +++ b/wp/wp-admin/includes/class-wp-users-list-table.php @@ -524,12 +524,12 @@ class WP_Users_List_Table extends WP_List_Table { // Set up the checkbox (because the user is editable, otherwise it's empty). $checkbox = sprintf( - '' . - '', + '' . + '', $user_object->ID, + $role_classes, /* translators: Hidden accessibility text. %s: User login. */ - sprintf( __( 'Select %s' ), $user_object->user_login ), - $role_classes + sprintf( __( 'Select %s' ), $user_object->user_login ) ); } else { @@ -680,5 +680,4 @@ class WP_Users_List_Table extends WP_List_Table { */ return apply_filters( 'get_role_list', $role_list, $user_object ); } - } diff --git a/wp/wp-admin/includes/dashboard.php b/wp/wp-admin/includes/dashboard.php index f0d0da17..5b504239 100644 --- a/wp/wp-admin/includes/dashboard.php +++ b/wp/wp-admin/includes/dashboard.php @@ -284,7 +284,6 @@ function wp_dashboard() { " method="post" id="quick-press" class="initial-form hide-if-no-js"> - -
- + array( 'error' ), + ) + ); + } + ?>
{{ event.title }} + <# if ( event.type ) { + const titleCaseEventType = event.type.replace( + /\w\S*/g, + function ( type ) { return type.charAt(0).toUpperCase() + type.substr(1).toLowerCase(); } + ); + #> + {{ 'wordcamp' === event.type ? 'WordCamp' : titleCaseEventType }} + + <# } #> {{ event.location.location }}
diff --git a/wp/wp-admin/includes/deprecated.php b/wp/wp-admin/includes/deprecated.php index 91d47446..d588ad4f 100644 --- a/wp/wp-admin/includes/deprecated.php +++ b/wp/wp-admin/includes/deprecated.php @@ -493,7 +493,7 @@ class WP_User_Search { * @return WP_User_Search */ function __construct( $search_term = '', $page = '', $role = '' ) { - _deprecated_function( __FUNCTION__, '3.1.0', 'WP_User_Query' ); + _deprecated_class( 'WP_User_Search', '3.1.0', 'WP_User_Query' ); $this->search_term = wp_unslash( $search_term ); $this->raw_page = ( '' == $page ) ? false : (int) $page; @@ -516,6 +516,7 @@ class WP_User_Search { * @return WP_User_Search */ public function WP_User_Search( $search_term = '', $page = '', $role = '' ) { + _deprecated_constructor( 'WP_User_Search', '3.1.0', get_class( $this ) ); self::__construct( $search_term, $page, $role ); } diff --git a/wp/wp-admin/includes/file.php b/wp/wp-admin/includes/file.php index b9f58b32..600ddc27 100644 --- a/wp/wp-admin/includes/file.php +++ b/wp/wp-admin/includes/file.php @@ -777,9 +777,9 @@ function validate_file_to_edit( $file, $allowed_files = array() ) { * An array of override parameters for this file, or boolean false if none are provided. * * @type callable $upload_error_handler Function to call when there is an error during the upload process. - * @see wp_handle_upload_error(). + * See {@see wp_handle_upload_error()}. * @type callable $unique_filename_callback Function to call when determining a unique file name for the file. - * @see wp_unique_filename(). + * See {@see wp_unique_filename()}. * @type string[] $upload_error_strings The strings that describe the error indicated in * `$_FILES[{form field}]['error']`. * @type bool $test_form Whether to test that the `$_POST['action']` parameter is as expected. @@ -845,7 +845,7 @@ function _wp_handle_upload( &$file, $overrides, $time, $action ) { * @since 5.7.0 * * @param array|false $overrides An array of override parameters for this file. Boolean false if none are - * provided. @see _wp_handle_upload(). + * provided. See {@see _wp_handle_upload()}. * @param array $file { * Reference to a single element from `$_FILES`. * @@ -1266,7 +1266,7 @@ function download_url( $url, $timeout = 300, $signature_verification = false ) { $signature_verification = in_array( parse_url( $url, PHP_URL_HOST ), $signed_hostnames, true ); } - // Perform signature valiation if supported. + // Perform signature validation if supported. if ( $signature_verification ) { $signature = wp_remote_retrieve_header( $response, 'X-Content-Signature' ); @@ -1493,7 +1493,7 @@ function verify_file_signature( $filename, $signatures, $filename_for_errors = f // Ensure only valid-length signatures are considered. if ( SODIUM_CRYPTO_SIGN_BYTES !== strlen( $signature_raw ) ) { - $skipped_signature++; + ++$skipped_signature; continue; } @@ -1502,7 +1502,7 @@ function verify_file_signature( $filename, $signatures, $filename_for_errors = f // Only pass valid public keys through. if ( SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES !== strlen( $key_raw ) ) { - $skipped_key++; + ++$skipped_key; continue; } @@ -1672,6 +1672,7 @@ function _unzip_file_ziparchive( $file, $to, $needed_dirs = array() ) { $info = $z->statIndex( $i ); if ( ! $info ) { + $z->close(); return new WP_Error( 'stat_failed_ziparchive', __( 'Could not retrieve file from archive.' ) ); } @@ -1697,6 +1698,9 @@ function _unzip_file_ziparchive( $file, $to, $needed_dirs = array() ) { } } + // Enough space to unzip the file and copy its contents, with a 10% buffer. + $required_space = $uncompressed_size * 2.1; + /* * disk_free_space() could return false. Assume that any falsey value is an error. * A disk that has zero free bytes has bigger problems. @@ -1705,7 +1709,8 @@ function _unzip_file_ziparchive( $file, $to, $needed_dirs = array() ) { if ( wp_doing_cron() ) { $available_space = function_exists( 'disk_free_space' ) ? @disk_free_space( WP_CONTENT_DIR ) : false; - if ( $available_space && ( $uncompressed_size * 2.1 ) > $available_space ) { + if ( $available_space && ( $required_space > $available_space ) ) { + $z->close(); return new WP_Error( 'disk_full_unzip_file', __( 'Could not copy files. You may have run out of disk space.' ), @@ -1743,15 +1748,36 @@ function _unzip_file_ziparchive( $file, $to, $needed_dirs = array() ) { foreach ( $needed_dirs as $_dir ) { // Only check to see if the Dir exists upon creation failure. Less I/O this way. if ( ! $wp_filesystem->mkdir( $_dir, FS_CHMOD_DIR ) && ! $wp_filesystem->is_dir( $_dir ) ) { + $z->close(); return new WP_Error( 'mkdir_failed_ziparchive', __( 'Could not create directory.' ), $_dir ); } } - unset( $needed_dirs ); + + /** + * Filters archive unzipping to override with a custom process. + * + * @since 6.4.0 + * + * @param null|true|WP_Error $result The result of the override. True on success, otherwise WP Error. Default null. + * @param string $file Full path and filename of ZIP archive. + * @param string $to Full path on the filesystem to extract archive to. + * @param string[] $needed_dirs A full list of required folders that need to be created. + * @param float $required_space The space required to unzip the file and copy its contents, with a 10% buffer. + */ + $pre = apply_filters( 'pre_unzip_file', null, $file, $to, $needed_dirs, $required_space ); + + if ( null !== $pre ) { + // Ensure the ZIP file archive has been closed. + $z->close(); + + return $pre; + } for ( $i = 0; $i < $z->numFiles; $i++ ) { $info = $z->statIndex( $i ); if ( ! $info ) { + $z->close(); return new WP_Error( 'stat_failed_ziparchive', __( 'Could not retrieve file from archive.' ) ); } @@ -1771,17 +1797,34 @@ function _unzip_file_ziparchive( $file, $to, $needed_dirs = array() ) { $contents = $z->getFromIndex( $i ); if ( false === $contents ) { + $z->close(); return new WP_Error( 'extract_failed_ziparchive', __( 'Could not extract file from archive.' ), $info['name'] ); } if ( ! $wp_filesystem->put_contents( $to . $info['name'], $contents, FS_CHMOD_FILE ) ) { + $z->close(); return new WP_Error( 'copy_failed_ziparchive', __( 'Could not copy file.' ), $info['name'] ); } } $z->close(); - return true; + /** + * Filters the result of unzipping an archive. + * + * @since 6.4.0 + * + * @param true|WP_Error $result The result of unzipping the archive. True on success, otherwise WP_Error. Default true. + * @param string $file Full path and filename of ZIP archive. + * @param string $to Full path on the filesystem the archive was extracted to. + * @param string[] $needed_dirs A full list of required folders that were created. + * @param float $required_space The space required to unzip the file and copy its contents, with a 10% buffer. + */ + $result = apply_filters( 'unzip_file', true, $file, $to, $needed_dirs, $required_space ); + + unset( $needed_dirs ); + + return $result; } /** @@ -1838,6 +1881,9 @@ function _unzip_file_pclzip( $file, $to, $needed_dirs = array() ) { $needed_dirs[] = $to . untrailingslashit( $file['folder'] ? $file['filename'] : dirname( $file['filename'] ) ); } + // Enough space to unzip the file and copy its contents, with a 10% buffer. + $required_space = $uncompressed_size * 2.1; + /* * disk_free_space() could return false. Assume that any falsey value is an error. * A disk that has zero free bytes has bigger problems. @@ -1846,7 +1892,7 @@ function _unzip_file_pclzip( $file, $to, $needed_dirs = array() ) { if ( wp_doing_cron() ) { $available_space = function_exists( 'disk_free_space' ) ? @disk_free_space( WP_CONTENT_DIR ) : false; - if ( $available_space && ( $uncompressed_size * 2.1 ) > $available_space ) { + if ( $available_space && ( $required_space > $available_space ) ) { return new WP_Error( 'disk_full_unzip_file', __( 'Could not copy files. You may have run out of disk space.' ), @@ -1887,7 +1933,13 @@ function _unzip_file_pclzip( $file, $to, $needed_dirs = array() ) { return new WP_Error( 'mkdir_failed_pclzip', __( 'Could not create directory.' ), $_dir ); } } - unset( $needed_dirs ); + + /** This filter is documented in src/wp-admin/includes/file.php */ + $pre = apply_filters( 'pre_unzip_file', null, $file, $to, $needed_dirs, $required_space ); + + if ( null !== $pre ) { + return $pre; + } // Extract the files from the zip. foreach ( $archive_files as $file ) { @@ -1909,7 +1961,12 @@ function _unzip_file_pclzip( $file, $to, $needed_dirs = array() ) { } } - return true; + /** This action is documented in src/wp-admin/includes/file.php */ + $result = apply_filters( 'unzip_file', true, $file, $to, $needed_dirs, $required_space ); + + unset( $needed_dirs ); + + return $result; } /** @@ -2426,7 +2483,13 @@ function request_filesystem_credentials( $form_post, $type = '', $error = false, if ( is_wp_error( $error ) ) { $error_string = esc_html( $error->get_error_message() ); } - echo '

' . $error_string . '

'; + wp_admin_notice( + $error_string, + array( + 'id' => 'message', + 'additional_classes' => array( 'error' ), + ) + ); } $types = array(); @@ -2701,7 +2764,6 @@ function wp_opcache_invalidate_directory( $dir ) { __( '%s expects a non-empty string.' ), 'wp_opcache_invalidate_directory()' ); - // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error trigger_error( $error_message ); } return; @@ -2726,7 +2788,7 @@ function wp_opcache_invalidate_directory( $dir ) { * with sub-directories represented as nested arrays. * @param string $path Absolute path to the directory. */ - $invalidate_directory = static function( $dirlist, $path ) use ( &$invalidate_directory ) { + $invalidate_directory = static function ( $dirlist, $path ) use ( &$invalidate_directory ) { $path = trailingslashit( $path ); foreach ( $dirlist as $name => $details ) { diff --git a/wp/wp-admin/includes/image-edit.php b/wp/wp-admin/includes/image-edit.php index 72a6d07c..739b09f9 100644 --- a/wp/wp-admin/includes/image-edit.php +++ b/wp/wp-admin/includes/image-edit.php @@ -32,15 +32,16 @@ function wp_image_editor( $post_id, $msg = false ) { $backup_sizes = get_post_meta( $post_id, '_wp_attachment_backup_sizes', true ); $can_restore = false; + if ( ! empty( $backup_sizes ) && isset( $backup_sizes['full-orig'], $meta['file'] ) ) { $can_restore = wp_basename( $meta['file'] ) !== $backup_sizes['full-orig']['file']; } if ( $msg ) { if ( isset( $msg->error ) ) { - $note = ""; + $note = ""; } elseif ( isset( $msg->msg ) ) { - $note = ""; + $note = ""; } } @@ -62,7 +63,7 @@ function wp_image_editor( $post_id, $msg = false ) {
- +
- - - + + + ' . __( 'Image rotation is not supported by your web host.' ) . '

'; @@ -87,8 +88,8 @@ function wp_image_editor( $post_id, $msg = false ) { } ?>
- - + +
@@ -636,15 +637,18 @@ function image_edit_apply_changes( $image, $changes ) { $obj->sel = $obj->c; unset( $obj->c ); } + $changes[ $key ] = $obj; } // Combine operations. if ( count( $changes ) > 1 ) { $filtered = array( $changes[0] ); + for ( $i = 0, $j = 1, $c = count( $changes ); $j < $c; $j++ ) { $combined = false; - if ( $filtered[ $i ]->type == $changes[ $j ]->type ) { + + if ( $filtered[ $i ]->type === $changes[ $j ]->type ) { switch ( $filtered[ $i ]->type ) { case 'rotate': $filtered[ $i ]->angle += $changes[ $j ]->angle; @@ -656,10 +660,12 @@ function image_edit_apply_changes( $image, $changes ) { break; } } + if ( ! $combined ) { $filtered[ ++$i ] = $changes[ $j ]; } } + $changes = $filtered; unset( $filtered ); } @@ -693,7 +699,7 @@ function image_edit_apply_changes( $image, $changes ) { foreach ( $changes as $operation ) { switch ( $operation->type ) { case 'rotate': - if ( 0 != $operation->angle ) { + if ( 0 !== $operation->angle ) { if ( $image instanceof WP_Image_Editor ) { $image->rotate( $operation->angle ); } else { @@ -702,11 +708,11 @@ function image_edit_apply_changes( $image, $changes ) { } break; case 'flip': - if ( 0 != $operation->axis ) { + if ( 0 !== $operation->axis ) { if ( $image instanceof WP_Image_Editor ) { - $image->flip( ( $operation->axis & 1 ) != 0, ( $operation->axis & 2 ) != 0 ); + $image->flip( ( $operation->axis & 1 ) !== 0, ( $operation->axis & 2 ) !== 0 ); } else { - $image = _flip_image_resource( $image, ( $operation->axis & 1 ) != 0, ( $operation->axis & 2 ) != 0 ); + $image = _flip_image_resource( $image, ( $operation->axis & 1 ) !== 0, ( $operation->axis & 2 ) !== 0 ); } } break; @@ -801,9 +807,8 @@ function wp_restore_image( $post_id ) { if ( isset( $backup_sizes['full-orig'] ) && is_array( $backup_sizes['full-orig'] ) ) { $data = $backup_sizes['full-orig']; - if ( $parts['basename'] != $data['file'] ) { + if ( $parts['basename'] !== $data['file'] ) { if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE ) { - // Delete only if it's an edited image. if ( preg_match( '/-e[0-9]{13}\./', $parts['basename'] ) ) { wp_delete_file( $file ); @@ -828,9 +833,9 @@ function wp_restore_image( $post_id ) { foreach ( $default_sizes as $default_size ) { if ( isset( $backup_sizes[ "$default_size-orig" ] ) ) { $data = $backup_sizes[ "$default_size-orig" ]; - if ( isset( $meta['sizes'][ $default_size ] ) && $meta['sizes'][ $default_size ]['file'] != $data['file'] ) { - if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE ) { + if ( isset( $meta['sizes'][ $default_size ] ) && $meta['sizes'][ $default_size ]['file'] !== $data['file'] ) { + if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE ) { // Delete only if it's an edited image. if ( preg_match( '/-e[0-9]{13}-/', $meta['sizes'][ $default_size ]['file'] ) ) { $delete_file = path_join( $parts['dirname'], $meta['sizes'][ $default_size ]['file'] ); @@ -847,9 +852,9 @@ function wp_restore_image( $post_id ) { } } - if ( ! wp_update_attachment_metadata( $post_id, $meta ) || - ( $old_backup_sizes !== $backup_sizes && ! update_post_meta( $post_id, '_wp_attachment_backup_sizes', $backup_sizes ) ) ) { - + if ( ! wp_update_attachment_metadata( $post_id, $meta ) + || ( $old_backup_sizes !== $backup_sizes && ! update_post_meta( $post_id, '_wp_attachment_backup_sizes', $backup_sizes ) ) + ) { $msg->error = __( 'Cannot save image metadata.' ); return $msg; } @@ -858,6 +863,7 @@ function wp_restore_image( $post_id ) { $msg->error = __( 'Image metadata is inconsistent.' ); } else { $msg->msg = __( 'Image restored successfully.' ); + if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE ) { delete_post_meta( $post_id, '_wp_attachment_backup_sizes' ); } @@ -886,35 +892,36 @@ function wp_save_image( $post_id ) { $post = get_post( $post_id ); $img = wp_get_image_editor( _load_image_to_edit_path( $post_id, 'full' ) ); + if ( is_wp_error( $img ) ) { $return->error = esc_js( __( 'Unable to create new image.' ) ); return $return; } - $fwidth = ! empty( $_REQUEST['fwidth'] ) ? (int) $_REQUEST['fwidth'] : 0; - $fheight = ! empty( $_REQUEST['fheight'] ) ? (int) $_REQUEST['fheight'] : 0; - $target = ! empty( $_REQUEST['target'] ) ? preg_replace( '/[^a-z0-9_-]+/i', '', $_REQUEST['target'] ) : ''; - $scale = ! empty( $_REQUEST['do'] ) && 'scale' === $_REQUEST['do']; + $full_width = ! empty( $_REQUEST['fwidth'] ) ? (int) $_REQUEST['fwidth'] : 0; + $full_height = ! empty( $_REQUEST['fheight'] ) ? (int) $_REQUEST['fheight'] : 0; + $target = ! empty( $_REQUEST['target'] ) ? preg_replace( '/[^a-z0-9_-]+/i', '', $_REQUEST['target'] ) : ''; + $scale = ! empty( $_REQUEST['do'] ) && 'scale' === $_REQUEST['do']; /** This filter is documented in wp-admin/includes/image-edit.php */ $edit_thumbnails_separately = (bool) apply_filters( 'image_edit_thumbnails_separately', false ); if ( $scale ) { - $size = $img->get_size(); - $sX = $size['width']; - $sY = $size['height']; + $size = $img->get_size(); + $original_width = $size['width']; + $original_height = $size['height']; - if ( $sX < $fwidth || $sY < $fheight ) { + if ( $full_width > $original_width || $full_height > $original_height ) { $return->error = esc_js( __( 'Images cannot be scaled to a size larger than the original.' ) ); return $return; } - if ( $fwidth > 0 && $fheight > 0 ) { + if ( $full_width > 0 && $full_height > 0 ) { // Check if it has roughly the same w / h ratio. - $diff = round( $sX / $sY, 2 ) - round( $fwidth / $fheight, 2 ); + $diff = round( $original_width / $original_height, 2 ) - round( $full_width / $full_height, 2 ); if ( -0.1 < $diff && $diff < 0.1 ) { // Scale the full size image. - if ( $img->resize( $fwidth, $fheight ) ) { + if ( $img->resize( $full_width, $full_height ) ) { $scaled = true; } } @@ -955,8 +962,9 @@ function wp_save_image( $post_id ) { $filename = pathinfo( $path, PATHINFO_FILENAME ); $suffix = time() . rand( 100, 999 ); - if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE && - isset( $backup_sizes['full-orig'] ) && $backup_sizes['full-orig']['file'] != $basename ) { + if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE + && isset( $backup_sizes['full-orig'] ) && $backup_sizes['full-orig']['file'] !== $basename + ) { if ( $edit_thumbnails_separately && 'thumbnail' === $target ) { $new_path = "{$dirname}/{$filename}-temp.{$ext}"; @@ -969,8 +977,9 @@ function wp_save_image( $post_id ) { $filename .= "-e{$suffix}"; $new_filename = "{$filename}.{$ext}"; $new_path = "{$dirname}/$new_filename"; + if ( file_exists( $new_path ) ) { - $suffix++; + ++$suffix; } else { break; } @@ -985,8 +994,11 @@ function wp_save_image( $post_id ) { if ( 'nothumb' === $target || 'all' === $target || 'full' === $target || $scaled ) { $tag = false; + if ( isset( $backup_sizes['full-orig'] ) ) { - if ( ( ! defined( 'IMAGE_EDIT_OVERWRITE' ) || ! IMAGE_EDIT_OVERWRITE ) && $backup_sizes['full-orig']['file'] !== $basename ) { + if ( ( ! defined( 'IMAGE_EDIT_OVERWRITE' ) || ! IMAGE_EDIT_OVERWRITE ) + && $backup_sizes['full-orig']['file'] !== $basename + ) { $tag = "full-$suffix"; } } else { @@ -1000,6 +1012,7 @@ function wp_save_image( $post_id ) { 'file' => $basename, ); } + $success = ( $path === $new_path ) || update_attached_file( $post_id, $new_path ); $meta['file'] = _wp_relative_upload_path( $new_path ); @@ -1045,9 +1058,12 @@ function wp_save_image( $post_id ) { foreach ( $sizes as $size ) { $tag = false; + if ( isset( $meta['sizes'][ $size ] ) ) { if ( isset( $backup_sizes[ "$size-orig" ] ) ) { - if ( ( ! defined( 'IMAGE_EDIT_OVERWRITE' ) || ! IMAGE_EDIT_OVERWRITE ) && $backup_sizes[ "$size-orig" ]['file'] != $meta['sizes'][ $size ]['file'] ) { + if ( ( ! defined( 'IMAGE_EDIT_OVERWRITE' ) || ! IMAGE_EDIT_OVERWRITE ) + && $backup_sizes[ "$size-orig" ]['file'] !== $meta['sizes'][ $size ]['file'] + ) { $tag = "$size-$suffix"; } } else { @@ -1088,10 +1104,12 @@ function wp_save_image( $post_id ) { if ( 'thumbnail' === $target || 'all' === $target || 'full' === $target ) { // Check if it's an image edit from attachment edit screen. if ( ! empty( $_REQUEST['context'] ) && 'edit-attachment' === $_REQUEST['context'] ) { - $thumb_url = wp_get_attachment_image_src( $post_id, array( 900, 600 ), true ); + $thumb_url = wp_get_attachment_image_src( $post_id, array( 900, 600 ), true ); + $return->thumbnail = $thumb_url[0]; } else { $file_url = wp_get_attachment_url( $post_id ); + if ( ! empty( $meta['sizes']['thumbnail'] ) ) { $thumb = $meta['sizes']['thumbnail']; $return->thumbnail = path_join( dirname( $file_url ), $thumb['file'] ); @@ -1109,5 +1127,6 @@ function wp_save_image( $post_id ) { } $return->msg = esc_js( __( 'Image saved' ) ); + return $return; } diff --git a/wp/wp-admin/includes/image.php b/wp/wp-admin/includes/image.php index fabe9da7..2bdcc505 100644 --- a/wp/wp-admin/includes/image.php +++ b/wp/wp-admin/includes/image.php @@ -700,7 +700,7 @@ function wp_exif_frac2dec( $str ) { } // The denominator must not be zero. - if ( 0 == $denominator ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison -- Deliberate loose comparison. + if ( 0 == $denominator ) { // phpcs:ignore Universal.Operators.StrictComparisons.LooseEqual -- Deliberate loose comparison. return 0; } @@ -782,7 +782,7 @@ function wp_read_image_metadata( $file ) { ) { $iptc = iptcparse( $info['APP13'] ); } else { - // phpcs:ignore WordPress.PHP.NoSilencedErrors -- Silencing notice and warning is intentional. See https://core.trac.wordpress.org/ticket/42480 + // Silencing notice and warning is intentional. See https://core.trac.wordpress.org/ticket/42480 $iptc = @iptcparse( $info['APP13'] ); } @@ -855,7 +855,7 @@ function wp_read_image_metadata( $file ) { ) { $exif = exif_read_data( $file ); } else { - // phpcs:ignore WordPress.PHP.NoSilencedErrors -- Silencing notice and warning is intentional. See https://core.trac.wordpress.org/ticket/42480 + // Silencing notice and warning is intentional. See https://core.trac.wordpress.org/ticket/42480 $exif = @exif_read_data( $file ); } @@ -953,7 +953,6 @@ function wp_read_image_metadata( $file ) { * @param array $exif EXIF data. */ return apply_filters( 'wp_read_image_metadata', $meta, $file, $image_type, $iptc, $exif ); - } /** diff --git a/wp/wp-admin/includes/media.php b/wp/wp-admin/includes/media.php index 0910693f..e7b4c103 100644 --- a/wp/wp-admin/includes/media.php +++ b/wp/wp-admin/includes/media.php @@ -638,7 +638,7 @@ function wp_iframe( $content_func, ...$args ) { */ function media_buttons( $editor_id = 'content' ) { static $instance = 0; - $instance++; + ++$instance; $post = get_post(); @@ -2083,13 +2083,11 @@ function media_upload_header() { * * @global string $type * @global string $tab - * @global bool $is_IE - * @global bool $is_opera * * @param array $errors */ function media_upload_form( $errors = null ) { - global $type, $tab, $is_IE, $is_opera; + global $type, $tab; if ( ! _device_can_upload() ) { echo '

' . sprintf( diff --git a/wp/wp-admin/includes/menu.php b/wp/wp-admin/includes/menu.php index ae8e06be..da1b2ebf 100644 --- a/wp/wp-admin/includes/menu.php +++ b/wp/wp-admin/includes/menu.php @@ -228,7 +228,7 @@ function add_menu_classes( $menu ) { $i = 0; foreach ( $menu as $order => $top ) { - $i++; + ++$i; if ( 0 === $order ) { // Dashboard is always shown/single. $menu[0][4] = add_cssclass( 'menu-top-first', $top[4] ); diff --git a/wp/wp-admin/includes/meta-boxes.php b/wp/wp-admin/includes/meta-boxes.php index 7d0e1def..52280760 100644 --- a/wp/wp-admin/includes/meta-boxes.php +++ b/wp/wp-admin/includes/meta-boxes.php @@ -311,25 +311,24 @@ function post_submit_meta_box( $post, $args = array() ) { endif; if ( 'draft' === $post->post_status && get_post_meta( $post_id, '_customize_changeset_uuid', true ) ) : - ?> -

-

- unpublished customization changes. You can edit, but there is no need to publish now. It will be published automatically with those changes.' ), - esc_url( - add_query_arg( - 'changeset_uuid', - rawurlencode( get_post_meta( $post_id, '_customize_changeset_uuid', true ) ), - admin_url( 'customize.php' ) - ) - ) - ); - ?> -

-
- unpublished customization changes. You can edit, but there is no need to publish now. It will be published automatically with those changes.' ), + esc_url( + add_query_arg( + 'changeset_uuid', + rawurlencode( get_post_meta( $post_id, '_customize_changeset_uuid', true ) ), + admin_url( 'customize.php' ) + ) + ) + ); + wp_admin_notice( + $message, + array( + 'type' => 'info', + 'additional_classes' => array( 'notice-alt', 'inline' ), + ) + ); endif; /** @@ -902,8 +901,8 @@ function post_comment_meta_box( $post ) { $total = get_comments( array( 'post_id' => $post->ID, - 'number' => 1, 'count' => true, + 'orderby' => 'none', ) ); $wp_list_table = _get_list_table( 'WP_Post_Comments_List_Table' ); @@ -1033,7 +1032,7 @@ function page_attributes_meta_box( $post ) { endif; // End empty pages check. endif; // End hierarchical check. - if ( count( get_page_templates( $post ) ) > 0 && get_option( 'page_for_posts' ) != $post->ID ) : + if ( count( get_page_templates( $post ) ) > 0 && (int) get_option( 'page_for_posts' ) !== $post->ID ) : $template = ! empty( $post->page_template ) ? $post->page_template : false; ?>

@@ -1496,7 +1495,7 @@ function link_advanced_meta_box( $link ) { link_rating ) && $link->link_rating == $rating ) { + if ( isset( $link->link_rating ) && $link->link_rating === $rating ) { echo ' selected="selected"'; } echo '>' . $rating . ''; diff --git a/wp/wp-admin/includes/misc.php b/wp/wp-admin/includes/misc.php index 34ced18d..09028206 100644 --- a/wp/wp-admin/includes/misc.php +++ b/wp/wp-admin/includes/misc.php @@ -403,7 +403,7 @@ function wp_print_theme_file_tree( $tree, $level = 2, $size = 1, $index = 1 ) { $size = count( $tree ); foreach ( $tree as $label => $theme_file ) : - $index++; + ++$index; if ( ! is_array( $theme_file ) ) { wp_print_theme_file_tree( $theme_file, $level, $index, $size ); @@ -505,7 +505,7 @@ function wp_print_plugin_file_tree( $tree, $label = '', $level = 2, $size = 1, $ $size = count( $tree ); foreach ( $tree as $label => $plugin_file ) : - $index++; + ++$index; if ( ! is_array( $plugin_file ) ) { wp_print_plugin_file_tree( $plugin_file, $label, $level, $index, $size ); diff --git a/wp/wp-admin/includes/ms.php b/wp/wp-admin/includes/ms.php index c769375b..0d046665 100644 --- a/wp/wp-admin/includes/ms.php +++ b/wp/wp-admin/includes/ms.php @@ -58,14 +58,10 @@ function check_upload_size( $file ) { * @since 3.0.0 * @since 5.1.0 Use wp_delete_site() internally to delete the site row from the database. * - * @global wpdb $wpdb WordPress database abstraction object. - * * @param int $blog_id Site ID. * @param bool $drop True if site's database tables should be dropped. Default false. */ function wpmu_delete_blog( $blog_id, $drop = false ) { - global $wpdb; - $blog_id = (int) $blog_id; $switch = false; @@ -696,11 +692,20 @@ function site_admin_notice() { } if ( (int) get_site_option( 'wpmu_upgrade_site' ) !== $wp_db_version ) { - echo "

" . sprintf( + $upgrade_network_message = sprintf( /* translators: %s: URL to Upgrade Network screen. */ __( 'Thank you for Updating! Please visit the Upgrade Network page to update all your sites.' ), esc_url( network_admin_url( 'upgrade.php' ) ) - ) . '
'; + ); + + wp_admin_notice( + $upgrade_network_message, + array( + 'type' => 'warning', + 'additional_classes' => array( 'update-nag', 'inline' ), + 'paragraph_wrap' => false, + ) + ); } } @@ -738,7 +743,7 @@ function avoid_blog_page_permalink_collision( $data, $postarr ) { while ( $c < 10 && get_id_from_blogname( $post_name ) ) { $post_name .= mt_rand( 1, 10 ); - $c++; + ++$c; } if ( $post_name !== $data['post_name'] ) { diff --git a/wp/wp-admin/includes/nav-menu.php b/wp/wp-admin/includes/nav-menu.php index 1ace5cdd..704f0316 100644 --- a/wp/wp-admin/includes/nav-menu.php +++ b/wp/wp-admin/includes/nav-menu.php @@ -1291,15 +1291,21 @@ function wp_get_nav_menu_to_edit( $menu_id = 0 ) { } if ( $some_pending_menu_items ) { - $result .= '

' - . __( 'Click Save Menu to make pending menu items public.' ) - . '

'; + $message = __( 'Click Save Menu to make pending menu items public.' ); + $notice_args = array( + 'type' => 'info', + 'additional_classes' => array( 'notice-alt', 'inline' ), + ); + $result .= wp_get_admin_notice( $message, $notice_args ); } if ( $some_invalid_menu_items ) { - $result .= '

' - . __( 'There are some invalid menu items. Please check or delete them.' ) - . '

'; + $message = __( 'There are some invalid menu items. Please check or delete them.' ); + $notice_args = array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline' ), + ); + $result .= wp_get_admin_notice( $message, $notice_args ); } $result .= '
'; require_once ABSPATH . 'wp-admin/admin-footer.php'; die(); @@ -125,11 +134,14 @@ function network_step1( $errors = false ) { $active_plugins = get_option( 'active_plugins' ); if ( ! empty( $active_plugins ) ) { - echo '

' . __( 'Warning:' ) . ' ' . sprintf( - /* translators: %s: URL to Plugins screen. */ - __( 'Please deactivate your plugins before enabling the Network feature.' ), - admin_url( 'plugins.php?plugin_status=active' ) - ) . '

'; + wp_admin_notice( + '' . __( 'Warning:' ) . ' ' . sprintf( + /* translators: %s: URL to Plugins screen. */ + __( 'Please deactivate your plugins before enabling the Network feature.' ), + admin_url( 'plugins.php?plugin_status=active' ) + ), + array( 'type' => 'warning' ) + ); echo '

' . __( 'Once the network is created, you may reactivate your plugins.' ) . '

'; echo '

'; require_once ABSPATH . 'wp-admin/admin-footer.php'; @@ -139,7 +151,13 @@ function network_step1( $errors = false ) { $hostname = get_clean_basedomain(); $has_ports = strstr( $hostname, ':' ); if ( ( false !== $has_ports && ! in_array( $has_ports, array( ':80', ':443' ), true ) ) ) { - echo '

' . __( 'Error:' ) . ' ' . __( 'You cannot install a network of sites with your server address.' ) . '

'; + wp_admin_notice( + '' . __( 'Error:' ) . ' ' . __( 'You cannot install a network of sites with your server address.' ), + array( + 'additional_classes' => array( 'error' ), + ) + ); + echo '

' . sprintf( /* translators: %s: Port number. */ __( 'You cannot use port numbers such as %s.' ), @@ -157,11 +175,17 @@ function network_step1( $errors = false ) { $error_codes = array(); if ( is_wp_error( $errors ) ) { - echo '

' . __( 'Error: The network could not be created.' ) . '

'; + $network_created_error_message = '

' . __( 'Error: The network could not be created.' ) . '

'; foreach ( $errors->get_error_messages() as $error ) { - echo "

$error

"; + $network_created_error_message .= "

$error

"; } - echo '
'; + wp_admin_notice( + $network_created_error_message, + array( + 'additional_classes' => array( 'error' ), + 'paragraph_wrap' => false, + ) + ); $error_codes = $errors->get_error_codes(); } @@ -192,33 +216,39 @@ function network_step1( $errors = false ) { $subdomain_install = false; $got_mod_rewrite = got_mod_rewrite(); if ( $got_mod_rewrite ) { // Dangerous assumptions. - echo '

' . __( 'Note:' ) . ' '; - printf( + $message_class = 'updated'; + $message = '

' . __( 'Warning:' ) . ' '; + $message .= '

' . sprintf( /* translators: %s: mod_rewrite */ __( 'Please make sure the Apache %s module is installed as it will be used at the end of this installation.' ), 'mod_rewrite' - ); - echo '

'; + ) . '

'; } elseif ( $is_apache ) { - echo '

' . __( 'Warning:' ) . ' '; - printf( + $message_class = 'error'; + $message = '

' . __( 'Warning:' ) . ' '; + $message .= sprintf( /* translators: %s: mod_rewrite */ __( 'It looks like the Apache %s module is not installed.' ), 'mod_rewrite' - ); - echo '

'; + ) . '

'; } if ( $got_mod_rewrite || $is_apache ) { // Protect against mod_rewrite mimicry (but ! Apache). - echo '

'; - printf( + $message .= '

' . sprintf( /* translators: 1: mod_rewrite, 2: mod_rewrite documentation URL, 3: Google search for mod_rewrite. */ __( 'If %1$s is disabled, ask your administrator to enable that module, or look at the Apache documentation or elsewhere for help setting it up.' ), 'mod_rewrite', 'https://httpd.apache.org/docs/mod/mod_rewrite.html', 'https://www.google.com/search?q=apache+mod_rewrite' + ) . '

'; + + wp_admin_notice( + $message, + array( + 'additional_classes' => array( $message_class, 'inline' ), + 'paragraph_wrap' => false, + ) ); - echo '

'; } } @@ -260,7 +290,14 @@ function network_step1( $errors = false ) { endif; if ( WP_CONTENT_DIR !== ABSPATH . 'wp-content' && ( allow_subdirectory_install() || ! allow_subdomain_install() ) ) { - echo '

' . __( 'Warning:' ) . ' ' . __( 'Subdirectory networks may not be fully compatible with custom wp-content directories.' ) . '

'; + $subdirectory_warning_message = '' . __( 'Warning:' ) . ' '; + $subdirectory_warning_message .= __( 'Subdirectory networks may not be fully compatible with custom wp-content directories.' ); + wp_admin_notice( + $subdirectory_warning_message, + array( + 'additional_classes' => array( 'error', 'inline' ), + ) + ); } $is_www = str_starts_with( $hostname, 'www.' ); @@ -406,7 +443,12 @@ function network_step2( $errors = false ) { // Wildcard DNS message. if ( is_wp_error( $errors ) ) { - echo '
' . $errors->get_error_message() . '
'; + wp_admin_notice( + $errors->get_error_message(), + array( + 'additional_classes' => array( 'error' ), + ) + ); } if ( $_POST ) { @@ -423,8 +465,14 @@ function network_step2( $errors = false ) { get_var( "SELECT meta_value FROM $wpdb->sitemeta WHERE site_id = 1 AND meta_key = 'subdomain_install'" ); + + wp_admin_notice( + '' . __( 'Warning:' ) . ' ' . __( 'An existing WordPress network was detected.' ), + array( + 'additional_classes' => array( 'error' ), + ) + ); ?> -

-

' . __( 'Caution:' ) . ' '; + $notice_args = array( + 'type' => 'warning', + 'additional_classes' => array( 'inline' ), + ); + if ( file_exists( $home_path . '.htaccess' ) ) { - echo '' . __( 'Caution:' ) . ' '; - printf( + $notice_message .= sprintf( /* translators: 1: wp-config.php, 2: .htaccess */ __( 'You should back up your existing %1$s and %2$s files.' ), 'wp-config.php', '.htaccess' ); } elseif ( file_exists( $home_path . 'web.config' ) ) { - echo '' . __( 'Caution:' ) . ' '; - printf( + $notice_message .= sprintf( /* translators: 1: wp-config.php, 2: web.config */ __( 'You should back up your existing %1$s and %2$s files.' ), 'wp-config.php', 'web.config' ); } else { - echo '' . __( 'Caution:' ) . ' '; - printf( + $notice_message .= sprintf( /* translators: %s: wp-config.php */ __( 'You should back up your existing %s file.' ), 'wp-config.php' ); } - ?> -

-
    diff --git a/wp/wp-admin/includes/noop.php b/wp/wp-admin/includes/noop.php index b29f6044..39dc9702 100644 --- a/wp/wp-admin/includes/noop.php +++ b/wp/wp-admin/includes/noop.php @@ -22,6 +22,13 @@ function _x() {} */ function add_filter() {} +/** + * @ignore + */ +function has_filter() { + return false; +} + /** * @ignore */ diff --git a/wp/wp-admin/includes/plugin-install.php b/wp/wp-admin/includes/plugin-install.php index e2c8de32..76620765 100644 --- a/wp/wp-admin/includes/plugin-install.php +++ b/wp/wp-admin/includes/plugin-install.php @@ -316,7 +316,7 @@ function install_dashboard() { */ function install_search_form( $deprecated = true ) { $type = isset( $_REQUEST['type'] ) ? wp_unslash( $_REQUEST['type'] ) : 'term'; - $term = isset( $_REQUEST['s'] ) ? wp_unslash( $_REQUEST['s'] ) : ''; + $term = isset( $_REQUEST['s'] ) ? urldecode( wp_unslash( $_REQUEST['s'] ) ) : ''; ?> @@ -817,37 +817,54 @@ function install_plugin_information() { $tested_wp = ( empty( $api->tested ) || version_compare( get_bloginfo( 'version' ), $api->tested, '<=' ) ); if ( ! $compatible_php ) { - echo '

    '; - _e( 'Error: This plugin requires a newer version of PHP.' ); + $compatible_php_notice_message = '

    '; + $compatible_php_notice_message .= __( 'Error: This plugin requires a newer version of PHP.' ); + if ( current_user_can( 'update_php' ) ) { - printf( + $compatible_php_notice_message .= sprintf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Click here to learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) - ); - - wp_update_php_annotation( '

    ', '' ); + ) . wp_update_php_annotation( '

    ', '', false ); } else { - echo '

    '; + $compatible_php_notice_message .= '

    '; } - echo '
    '; + + wp_admin_notice( + $compatible_php_notice_message, + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt' ), + 'paragraph_wrap' => false, + ) + ); } if ( ! $tested_wp ) { - echo '

    '; - _e( 'Warning: This plugin has not been tested with your current version of WordPress.' ); - echo '

    '; + wp_admin_notice( + __( 'Warning: This plugin has not been tested with your current version of WordPress.' ), + array( + 'type' => 'warning', + 'additional_classes' => array( 'notice-alt' ), + ) + ); } elseif ( ! $compatible_wp ) { - echo '

    '; - _e( 'Error: This plugin requires a newer version of WordPress.' ); + $compatible_wp_notice_message = __( 'Error: This plugin requires a newer version of WordPress.' ); if ( current_user_can( 'update_core' ) ) { - printf( + $compatible_wp_notice_message .= sprintf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Click here to update WordPress.' ), esc_url( self_admin_url( 'update-core.php' ) ) ); } - echo '

    '; + + wp_admin_notice( + $compatible_wp_notice_message, + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt' ), + ) + ); } foreach ( (array) $api->sections as $section_name => $content ) { diff --git a/wp/wp-admin/includes/plugin.php b/wp/wp-admin/includes/plugin.php index 0e488173..f55bbd80 100644 --- a/wp/wp-admin/includes/plugin.php +++ b/wp/wp-admin/includes/plugin.php @@ -854,7 +854,7 @@ function deactivate_plugins( $plugins, $silent = false, $network_wide = null ) { * @param bool $network_wide Whether to enable the plugin for all sites in the network. * Default false. * @param bool $silent Prevent calling activation hooks. Default false. - * @return bool|WP_Error True when finished or WP_Error if there were errors during a plugin activation. + * @return true|WP_Error True when finished or WP_Error if there were errors during a plugin activation. */ function activate_plugins( $plugins, $redirect = '', $network_wide = false, $silent = false ) { if ( ! is_array( $plugins ) ) { @@ -2440,7 +2440,7 @@ function wp_get_plugin_error( $plugin ) { * * @param string $plugin Single plugin to resume. * @param string $redirect Optional. URL to redirect to. Default empty string. - * @return bool|WP_Error True on success, false if `$plugin` was not paused, + * @return true|WP_Error True on success, false if `$plugin` was not paused, * `WP_Error` on failure. */ function resume_plugin( $plugin, $redirect = '' ) { @@ -2497,13 +2497,17 @@ function paused_plugins_notice() { return; } - printf( - '

    %s
    %s

    %s

    ', + $message = sprintf( + '%s
    %s

    %s', __( 'One or more plugins failed to load properly.' ), __( 'You can find more details and make changes on the Plugins screen.' ), esc_url( admin_url( 'plugins.php?plugin_status=paused' ) ), __( 'Go to the Plugins screen' ) ); + wp_admin_notice( + $message, + array( 'type' => 'error' ) + ); } /** @@ -2571,8 +2575,8 @@ function deactivated_plugins_notice() { ); } - printf( - '

    %s
    %s

    %s

    ', + $message = sprintf( + '%s
    %s

    %s', sprintf( /* translators: %s: Name of deactivated plugin. */ __( '%s plugin deactivated during WordPress upgrade.' ), @@ -2582,6 +2586,7 @@ function deactivated_plugins_notice() { esc_url( admin_url( 'plugins.php?plugin_status=inactive' ) ), __( 'Go to the Plugins screen' ) ); + wp_admin_notice( $message, array( 'type' => 'warning' ) ); } // Empty the options. diff --git a/wp/wp-admin/includes/post.php b/wp/wp-admin/includes/post.php index ed73b8ff..b9986d1b 100644 --- a/wp/wp-admin/includes/post.php +++ b/wp/wp-admin/includes/post.php @@ -171,10 +171,6 @@ function _wp_translate_postdata( $update = false, $post_data = null ) { } } - if ( isset( $post_data['edit_date'] ) && 'false' === $post_data['edit_date'] ) { - $post_data['edit_date'] = false; - } - if ( ! empty( $post_data['edit_date'] ) ) { $aa = $post_data['aa']; $mm = $post_data['mm']; @@ -197,7 +193,19 @@ function _wp_translate_postdata( $update = false, $post_data = null ) { return new WP_Error( 'invalid_date', __( 'Invalid date.' ) ); } - $post_data['post_date_gmt'] = get_gmt_from_date( $post_data['post_date'] ); + /* + * Only assign a post date if the user has explicitly set a new value. + * See #59125 and #19907. + */ + $previous_date = $post_id ? get_post_field( 'post_date', $post_id ) : false; + if ( $previous_date && $previous_date !== $post_data['post_date'] ) { + $post_data['edit_date'] = true; + $post_data['post_date_gmt'] = get_gmt_from_date( $post_data['post_date'] ); + } else { + $post_data['edit_date'] = false; + unset( $post_data['post_date'] ); + unset( $post_data['post_date_gmt'] ); + } } if ( isset( $post_data['post_category'] ) ) { @@ -1957,11 +1965,12 @@ function wp_create_post_autosave( $post_data ) { * Fires before an autosave is stored. * * @since 4.1.0 + * @since 6.4.0 The `$is_update` parameter was added to indicate if the autosave is being updated or was newly created. * * @param array $new_autosave Post array - the autosave that is about to be saved. + * @param bool $is_update Whether this is an existing autosave. */ - do_action( 'wp_creating_autosave', $new_autosave ); - + do_action( 'wp_creating_autosave', $new_autosave, true ); return wp_update_post( $new_autosave ); } @@ -1969,7 +1978,68 @@ function wp_create_post_autosave( $post_data ) { $post_data = wp_unslash( $post_data ); // Otherwise create the new autosave as a special post revision. - return _wp_put_post_revision( $post_data, true ); + $revision = _wp_put_post_revision( $post_data, true ); + + if ( ! is_wp_error( $revision ) && 0 !== $revision ) { + + /** This action is documented in wp-admin/includes/post.php */ + do_action( 'wp_creating_autosave', get_post( $revision, ARRAY_A ), false ); + } + + return $revision; +} + +/** + * Autosave the revisioned meta fields. + * + * Iterates through the revisioned meta fields and checks each to see if they are set, + * and have a changed value. If so, the meta value is saved and attached to the autosave. + * + * @since 6.4.0 + * + * @param array $new_autosave The new post data being autosaved. + */ +function wp_autosave_post_revisioned_meta_fields( $new_autosave ) { + /* + * The post data arrives as either $_POST['data']['wp_autosave'] or the $_POST + * itself. This sets $posted_data to the correct variable. + * + * Ignoring sanitization to avoid altering meta. Ignoring the nonce check because + * this is hooked on inner core hooks where a valid nonce was already checked. + */ + $posted_data = isset( $_POST['data']['wp_autosave'] ) ? $_POST['data']['wp_autosave'] : $_POST; + + $post_type = get_post_type( $new_autosave['post_parent'] ); + + /* + * Go thru the revisioned meta keys and save them as part of the autosave, if + * the meta key is part of the posted data, the meta value is not blank and + * the the meta value has changes from the last autosaved value. + */ + foreach ( wp_post_revision_meta_keys( $post_type ) as $meta_key ) { + + if ( + isset( $posted_data[ $meta_key ] ) && + get_post_meta( $new_autosave['ID'], $meta_key, true ) !== wp_unslash( $posted_data[ $meta_key ] ) + ) { + /* + * Use the underlying delete_metadata() and add_metadata() functions + * vs delete_post_meta() and add_post_meta() to make sure we're working + * with the actual revision meta. + */ + delete_metadata( 'post', $new_autosave['ID'], $meta_key ); + + /* + * One last check to ensure meta value not empty(). + */ + if ( ! empty( $posted_data[ $meta_key ] ) ) { + /* + * Add the revisions meta data to the autosave. + */ + add_metadata( 'post', $new_autosave['ID'], $meta_key, $posted_data[ $meta_key ] ); + } + } + } } /** @@ -2207,6 +2277,7 @@ function taxonomy_meta_box_sanitize_cb_input( $taxonomy, $terms ) { * * @since 5.0.0 * @since 6.3.0 Added `selectors` field. + * @since 6.4.0 Added `block_hooks` field. * * @return array An associative array of registered block data. */ @@ -2221,6 +2292,7 @@ function get_block_editor_server_block_settings() { 'attributes' => 'attributes', 'provides_context' => 'providesContext', 'uses_context' => 'usesContext', + 'block_hooks' => 'blockHooks', 'selectors' => 'selectors', 'supports' => 'supports', 'category' => 'category', diff --git a/wp/wp-admin/includes/revision.php b/wp/wp-admin/includes/revision.php index 530e2fde..8ed45fd1 100644 --- a/wp/wp-admin/includes/revision.php +++ b/wp/wp-admin/includes/revision.php @@ -161,7 +161,6 @@ function wp_get_revision_ui_diff( $post, $compare_from, $compare_to ) { * @param WP_Post $compare_to The revision post to compare to. */ return apply_filters( 'wp_get_revision_ui_diff', $return, $compare_from, $compare_to ); - } /** diff --git a/wp/wp-admin/includes/schema.php b/wp/wp-admin/includes/schema.php index db91a628..d339af3b 100644 --- a/wp/wp-admin/includes/schema.php +++ b/wp/wp-admin/includes/schema.php @@ -556,6 +556,9 @@ function populate_options( array $options = array() ) { // 5.8.0 'wp_force_deactivated_plugins' => array(), + + // 6.4.0 + 'wp_attachment_pages_enabled' => 0, ); // 3.3.0 @@ -979,7 +982,7 @@ endif; * @param string $path Optional. The path to append to the network's domain name. Default '/'. * @param bool $subdomain_install Optional. Whether the network is a subdomain installation or a subdirectory installation. * Default false, meaning the network is a subdirectory installation. - * @return bool|WP_Error True on success, or WP_Error on warning (with the installation otherwise successful, + * @return true|WP_Error True on success, or WP_Error on warning (with the installation otherwise successful, * so the error code must be checked) or failure. */ function populate_network( $network_id = 1, $domain = '', $email = '', $site_name = '', $path = '/', $subdomain_install = false ) { diff --git a/wp/wp-admin/includes/template.php b/wp/wp-admin/includes/template.php index 0771b712..1d4a8e8d 100644 --- a/wp/wp-admin/includes/template.php +++ b/wp/wp-admin/includes/template.php @@ -461,7 +461,7 @@ function wp_comment_reply( $position = 1, $checkbox = false, $mode = 'single', $ - +

    @@ -512,9 +512,16 @@ function wp_comment_reply( $position = 1, $checkbox = false, $mode = 'single', $

    - +

    ', + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'hidden' ), + 'paragraph_wrap' => false, + ) + ); + ?>
    @@ -900,7 +907,7 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) { * @since 4.7.0 Added the `$post_type` parameter. * * @param string $default_template Optional. The template file name. Default empty. - * @param string $post_type Optional. Post type to get templates for. Default 'post'. + * @param string $post_type Optional. Post type to get templates for. Default 'page'. */ function page_template_dropdown( $default_template = '', $post_type = 'page' ) { $templates = get_page_templates( null, $post_type ); @@ -1006,10 +1013,15 @@ function wp_import_upload_form( $action ) { $size = size_format( $bytes ); $upload_dir = wp_upload_dir(); if ( ! empty( $upload_dir['error'] ) ) : - ?> -

    -

    - ' . __( 'Before you can upload your import file, you will need to fix the following error:' ) . '

    '; + $upload_directory_error .= '

    ' . $upload_dir['error'] . '

    '; + wp_admin_notice( + $upload_directory_error, + array( + 'additional_classes' => array( 'error' ), + 'paragraph_wrap' => false, + ) + ); else : ?> @@ -1355,7 +1367,7 @@ function do_meta_boxes( $screen, $context, $data_object ) { } } - $i++; + ++$i; // get_hidden_meta_boxes() doesn't apply in the block editor. $hidden_class = ( ! $screen->is_block_editor() && in_array( $box['id'], $hidden, true ) ) ? ' hide-if-js' : ''; echo '
    ' . "\n"; @@ -1427,16 +1439,17 @@ function do_meta_boxes( $screen, $context, $data_object ) { if ( WP_DEBUG && ! $block_compatible && 'edit' === $screen->parent_base && ! $screen->is_block_editor() && ! isset( $_GET['meta-box-loader'] ) ) { $plugin = _get_plugin_from_callback( $box['callback'] ); if ( $plugin ) { - ?> -
    -

    - {$plugin['Name']}" ); - ?> -

    -
    - {$plugin['Name']}" + ); + wp_admin_notice( + $meta_box_not_compatible_message, + array( + 'additional_classes' => array( 'error', 'inline' ), + ) + ); } } @@ -1451,7 +1464,6 @@ function do_meta_boxes( $screen, $context, $data_object ) { echo '
    '; return $i; - } /** @@ -1551,7 +1563,7 @@ function do_accordion_sections( $screen, $context, $data_object ) { continue; } - $i++; + ++$i; $hidden_class = in_array( $box['id'], $hidden, true ) ? 'hide-if-js' : ''; $open_class = ''; @@ -2689,17 +2701,22 @@ function convert_to_screen( $hook_name ) { * @access private */ function _local_storage_notice() { - ?> - - '; + $local_storage_message .= __( 'The backup of this post in your browser is different from the version below.' ); + $local_storage_message .= '

    '; + $local_storage_message .= '

    '; + $local_storage_message .= __( 'This will replace the current editor content with the last backup version. You can use undo and redo in the editor to get the old content back or to return to the restored version.' ); + $local_storage_message .= '

    '; + + wp_admin_notice( + $local_storage_message, + array( + 'id' => 'local-storage-notice', + 'additional_classes' => array( 'hidden' ), + 'dismissible' => true, + 'paragraph_wrap' => false, + ) + ); } /** @@ -2777,9 +2794,12 @@ function wp_star_rating( $args = array() ) { * @since 4.2.0 */ function _wp_posts_page_notice() { - printf( - '

    %s

    ', - __( 'You are currently editing the page that shows your latest posts.' ) + wp_admin_notice( + __( 'You are currently editing the page that shows your latest posts.' ), + array( + 'type' => 'warning', + 'additional_classes' => array( 'inline' ), + ) ); } diff --git a/wp/wp-admin/includes/theme-install.php b/wp/wp-admin/includes/theme-install.php index 94b591ee..949f0d54 100644 --- a/wp/wp-admin/includes/theme-install.php +++ b/wp/wp-admin/includes/theme-install.php @@ -243,7 +243,6 @@ function display_themes() { } $wp_list_table->prepare_items(); $wp_list_table->display(); - } /** diff --git a/wp/wp-admin/includes/theme.php b/wp/wp-admin/includes/theme.php index d98cb5de..f822e57c 100644 --- a/wp/wp-admin/includes/theme.php +++ b/wp/wp-admin/includes/theme.php @@ -81,6 +81,8 @@ function delete_theme( $stylesheet, $redirect = '' ) { */ do_action( 'delete_theme', $stylesheet ); + $theme = wp_get_theme( $stylesheet ); + $themes_dir = trailingslashit( $themes_dir ); $theme_dir = trailingslashit( $themes_dir . $stylesheet ); $deleted = $wp_filesystem->delete( $theme_dir, true ); @@ -125,6 +127,9 @@ function delete_theme( $stylesheet, $redirect = '' ) { WP_Theme::network_disable_theme( $stylesheet ); } + // Clear theme caches. + $theme->cache_delete(); + // Force refresh of theme update information. delete_site_transient( 'update_themes' ); @@ -156,7 +161,7 @@ function get_page_templates( $post = null, $post_type = 'page' ) { * @return string */ function _get_template_edit_filename( $fullpath, $containingfolder ) { - return str_replace( dirname( dirname( $containingfolder ) ), '', $fullpath ); + return str_replace( dirname( $containingfolder, 2 ), '', $fullpath ); } /** @@ -1058,12 +1063,7 @@ function customize_themes_print_templates() { <# if ( data.active ) { #> <# } else if ( 'installed' === data.type ) { #> - - <# if ( data.actions && data.actions['delete'] ) { #> - - <# } #> - - +
    <# if ( data.blockTheme ) { #> <# } #> <# } #> +
    + + <# if ( data.actions && data.actions['delete'] ) { #> + + <# } #> + <# } else { #> <# if ( data.compatibleWP && data.compatiblePHP ) { #> @@ -1166,11 +1172,14 @@ function resume_theme( $theme, $redirect = '' ) { * creating a fatal error. */ if ( ! empty( $redirect ) ) { + $stylesheet_path = get_stylesheet_directory(); + $template_path = get_template_directory(); + $functions_path = ''; - if ( str_contains( STYLESHEETPATH, $extension ) ) { - $functions_path = STYLESHEETPATH . '/functions.php'; - } elseif ( str_contains( TEMPLATEPATH, $extension ) ) { - $functions_path = TEMPLATEPATH . '/functions.php'; + if ( str_contains( $stylesheet_path, $extension ) ) { + $functions_path = $stylesheet_path . '/functions.php'; + } elseif ( str_contains( $template_path, $extension ) ) { + $functions_path = $template_path . '/functions.php'; } if ( ! empty( $functions_path ) ) { @@ -1224,11 +1233,18 @@ function paused_themes_notice() { return; } - printf( - '

    %s
    %s

    %s

    ', + $message = sprintf( + '

    %s
    %s

    %s

    ', __( 'One or more themes failed to load properly.' ), __( 'You can find more details and make changes on the Themes screen.' ), esc_url( admin_url( 'themes.php' ) ), __( 'Go to the Themes screen' ) ); + wp_admin_notice( + $message, + array( + 'type' => 'error', + 'paragraph_wrap' => false, + ) + ); } diff --git a/wp/wp-admin/includes/update-core.php b/wp/wp-admin/includes/update-core.php index 8d672199..c767834f 100644 --- a/wp/wp-admin/includes/update-core.php +++ b/wp/wp-admin/includes/update-core.php @@ -867,6 +867,10 @@ $_old_files = array( 'wp-includes/images/wlw', 'wp-includes/wlwmanifest.xml', 'wp-includes/random_compat', + // 6.4 + 'wp-includes/navigation-fallback.php', + 'wp-includes/blocks/navigation/view-modal.min.js', + 'wp-includes/blocks/navigation/view-modal.js', ); /** @@ -997,6 +1001,7 @@ $_new_bundled_files = array( 'themes/twentytwentyone/' => '5.6', 'themes/twentytwentytwo/' => '5.9', 'themes/twentytwentythree/' => '6.1', + 'themes/twentytwentyfour/' => '6.4', ); /** @@ -1431,9 +1436,13 @@ function update_core( $from, $to ) { } else { $lang_dir = WP_CONTENT_DIR . '/languages'; } - + /* + * Note: str_starts_with() is not used here, as this file is included + * when updating from older WordPress versions, in which case + * the polyfills from wp-includes/compat.php may not be available. + */ // Check if the language directory exists first. - if ( ! @is_dir( $lang_dir ) && str_starts_with( $lang_dir, ABSPATH ) ) { + if ( ! @is_dir( $lang_dir ) && 0 === strpos( $lang_dir, ABSPATH ) ) { // If it's within the ABSPATH we can handle it here, otherwise they're out of luck. $wp_filesystem->mkdir( $to . str_replace( ABSPATH, '', $lang_dir ), FS_CHMOD_DIR ); clearstatcache(); // For FTP, need to clear the stat cache. @@ -1801,7 +1810,7 @@ function _upgrade_422_find_genericons_files_in_folder( $directory ) { $dirs = glob( $directory . '*', GLOB_ONLYDIR ); $dirs = array_filter( $dirs, - static function( $dir ) { + static function ( $dir ) { /* * Skip any node_modules directories. * @@ -1838,13 +1847,14 @@ function _upgrade_440_force_deactivate_incompatible_plugins() { * @since 5.8.0 * @since 5.9.0 The minimum compatible version of Gutenberg is 11.9. * @since 6.1.1 The minimum compatible version of Gutenberg is 14.1. + * @since 6.4.0 The minimum compatible version of Gutenberg is 16.5. */ function _upgrade_core_deactivate_incompatible_plugins() { - if ( defined( 'GUTENBERG_VERSION' ) && version_compare( GUTENBERG_VERSION, '14.1', '<' ) ) { + if ( defined( 'GUTENBERG_VERSION' ) && version_compare( GUTENBERG_VERSION, '16.5', '<' ) ) { $deactivated_gutenberg['gutenberg'] = array( 'plugin_name' => 'Gutenberg', 'version_deactivated' => GUTENBERG_VERSION, - 'version_compatible' => '14.1', + 'version_compatible' => '16.5', ); if ( is_plugin_active_for_network( 'gutenberg/gutenberg.php' ) ) { $deactivated_plugins = get_site_option( 'wp_force_deactivated_plugins', array() ); diff --git a/wp/wp-admin/includes/update.php b/wp/wp-admin/includes/update.php index 78ca061f..7e68440b 100644 --- a/wp/wp-admin/includes/update.php +++ b/wp/wp-admin/includes/update.php @@ -342,7 +342,14 @@ function update_nag() { ); } - echo "
    $msg
    "; + wp_admin_notice( + $msg, + array( + 'type' => 'warning', + 'additional_classes' => array( 'update-nag', 'inline' ), + 'paragraph_wrap' => false, + ) + ); } /** @@ -884,7 +891,14 @@ function maintenance_nag() { $msg = __( 'An automated WordPress update has failed to complete! Please notify the site administrator.' ); } - echo "
    $msg
    "; + wp_admin_notice( + $msg, + array( + 'type' => 'warning', + 'additional_classes' => array( 'update-nag', 'inline' ), + 'paragraph_wrap' => false, + ) + ); } /** @@ -1049,19 +1063,12 @@ function wp_recovery_mode_nag() { $url = add_query_arg( 'action', WP_Recovery_Mode::EXIT_ACTION, $url ); $url = wp_nonce_url( $url, WP_Recovery_Mode::EXIT_ACTION ); - ?> -
    -

    - Exit Recovery Mode' ), - esc_url( $url ) - ); - ?> -

    -
    - Exit Recovery Mode' ), + esc_url( $url ) + ); + wp_admin_notice( $message, array( 'type' => 'info' ) ); } /** diff --git a/wp/wp-admin/includes/upgrade.php b/wp/wp-admin/includes/upgrade.php index d0467505..6929570f 100644 --- a/wp/wp-admin/includes/upgrade.php +++ b/wp/wp-admin/includes/upgrade.php @@ -625,10 +625,9 @@ if ( ! function_exists( 'wp_upgrade' ) ) : * * @global int $wp_current_db_version The old (current) database version. * @global int $wp_db_version The new database version. - * @global wpdb $wpdb WordPress database abstraction object. */ function wp_upgrade() { - global $wp_current_db_version, $wp_db_version, $wpdb; + global $wp_current_db_version, $wp_db_version; $wp_current_db_version = __get_option( 'db_version' ); @@ -840,6 +839,10 @@ function upgrade_all() { upgrade_630(); } + if ( $wp_current_db_version < 56657 ) { + upgrade_640(); + } + maybe_disable_link_manager(); maybe_disable_automattic_widgets(); @@ -996,7 +999,6 @@ function upgrade_110() { $wpdb->query( "UPDATE $wpdb->comments SET comment_date_gmt = DATE_ADD(comment_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)" ); $wpdb->query( "UPDATE $wpdb->users SET user_registered = DATE_ADD(user_registered, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)" ); } - } /** @@ -1294,7 +1296,7 @@ function upgrade_230() { $num = 2; do { $alt_slug = $slug . "-$num"; - $num++; + ++$num; $slug_check = $wpdb->get_var( $wpdb->prepare( "SELECT slug FROM $wpdb->terms WHERE slug = %s", $alt_slug ) ); } while ( $slug_check ); @@ -1546,7 +1548,6 @@ function upgrade_250() { if ( $wp_current_db_version < 6689 ) { populate_roles_250(); } - } /** @@ -1705,7 +1706,6 @@ function upgrade_300() { ) ); } - } /** @@ -2326,6 +2326,29 @@ function upgrade_630() { } } +/** + * Executes changes made in WordPress 6.4.0. + * + * @ignore + * @since 6.4.0 + * + * @global int $wp_current_db_version The old (current) database version. + */ +function upgrade_640() { + global $wp_current_db_version; + + if ( $wp_current_db_version < 56657 ) { + // Enable attachment pages. + update_option( 'wp_attachment_pages_enabled', 1 ); + + // Remove the wp_https_detection cron. Https status is checked directly in an async Site Health check. + $scheduled = wp_get_scheduled_event( 'wp_https_detection' ); + if ( $scheduled ) { + wp_clear_scheduled_hook( 'wp_https_detection' ); + } + } +} + /** * Executes network-level upgrade routines. * @@ -2485,7 +2508,7 @@ function upgrade_network() { /** * Creates a table in the database, if it doesn't already exist. * - * This method checks for an existing database and creates a new one if it's not + * This method checks for an existing database table and creates a new one if it's not * already present. It doesn't rely on MySQL's "IF NOT EXISTS" statement, but chooses * to query all tables first and then run the SQL statement creating the table. * diff --git a/wp/wp-admin/includes/user.php b/wp/wp-admin/includes/user.php index 1d2d9193..423c13ad 100644 --- a/wp/wp-admin/includes/user.php +++ b/wp/wp-admin/includes/user.php @@ -535,28 +535,30 @@ function default_password_nag() { if ( 'profile.php' === $pagenow || ! get_user_option( 'default_password_nag' ) ) { return; } - ?> -
    -

    - - -

    -

    - %2$s | ', - esc_url( get_edit_profile_url() . '#password' ), - __( 'Yes, take me to my profile page' ) - ); - printf( - '%2$s', - '?default_password_nag=0', - __( 'No thanks, do not remind me again' ) - ); - ?> -

    -
    - %1$s %2$s

    ', + __( 'Notice:' ), + __( 'You are using the auto-generated password for your account. Would you like to change it?' ) + ); + $default_password_nag_message .= sprintf( + '

    %2$s | ', + esc_url( get_edit_profile_url() . '#password' ), + __( 'Yes, take me to my profile page' ) + ); + $default_password_nag_message .= sprintf( + '%2$s

    ', + '?default_password_nag=0', + __( 'No thanks, do not remind me again' ) + ); + + wp_admin_notice( + $default_password_nag_message, + array( + 'additional_classes' => array( 'error', 'default-password-nag' ), + 'paragraph_wrap' => false, + ) + ); } /** @@ -636,6 +638,7 @@ Please click the following link to activate your user account: * * @since 5.6.0 * @since 6.2.0 Allow insecure HTTP connections for the local environment. + * @since 6.3.2 Validates the success and reject URLs to prevent javascript pseudo protocol being executed. * * @param array $request { * The array of request data. All arguments are optional and may be empty. @@ -649,27 +652,24 @@ Please click the following link to activate your user account: * @return true|WP_Error True if the request is valid, a WP_Error object contains errors if not. */ function wp_is_authorize_application_password_request_valid( $request, $user ) { - $error = new WP_Error(); - $is_local = 'local' === wp_get_environment_type(); + $error = new WP_Error(); - if ( ! empty( $request['success_url'] ) ) { - $scheme = wp_parse_url( $request['success_url'], PHP_URL_SCHEME ); - - if ( 'http' === $scheme && ! $is_local ) { + if ( isset( $request['success_url'] ) ) { + $validated_success_url = wp_is_authorize_application_redirect_url_valid( $request['success_url'] ); + if ( is_wp_error( $validated_success_url ) ) { $error->add( - 'invalid_redirect_scheme', - __( 'The success URL must be served over a secure connection.' ) + $validated_success_url->get_error_code(), + $validated_success_url->get_error_message() ); } } - if ( ! empty( $request['reject_url'] ) ) { - $scheme = wp_parse_url( $request['reject_url'], PHP_URL_SCHEME ); - - if ( 'http' === $scheme && ! $is_local ) { + if ( isset( $request['reject_url'] ) ) { + $validated_reject_url = wp_is_authorize_application_redirect_url_valid( $request['reject_url'] ); + if ( is_wp_error( $validated_reject_url ) ) { $error->add( - 'invalid_redirect_scheme', - __( 'The rejection URL must be served over a secure connection.' ) + $validated_reject_url->get_error_code(), + $validated_reject_url->get_error_message() ); } } @@ -698,3 +698,59 @@ function wp_is_authorize_application_password_request_valid( $request, $user ) { return true; } + +/** + * Validates the redirect URL protocol scheme. The protocol can be anything except http and javascript. + * + * @since 6.3.2 + * + * @param string $url - The redirect URL to be validated. + * + * @return true|WP_Error True if the redirect URL is valid, a WP_Error object otherwise. + */ +function wp_is_authorize_application_redirect_url_valid( $url ) { + $bad_protocols = array( 'javascript', 'data' ); + if ( empty( $url ) ) { + return true; + } + + // Based on https://www.rfc-editor.org/rfc/rfc2396#section-3.1 + $valid_scheme_regex = '/^[a-zA-Z][a-zA-Z0-9+.-]*:/'; + if ( ! preg_match( $valid_scheme_regex, $url ) ) { + return new WP_Error( + 'invalid_redirect_url_format', + __( 'Invalid URL format.' ) + ); + } + + /** + * Filters the list of invalid protocols used in applications redirect URLs. + * + * @since 6.3.2 + * + * @param string[] $bad_protocols Array of invalid protocols. + * @param string $url The redirect URL to be validated. + */ + $invalid_protocols = array_map( 'strtolower', apply_filters( 'wp_authorize_application_redirect_url_invalid_protocols', $bad_protocols, $url ) ); + + $scheme = wp_parse_url( $url, PHP_URL_SCHEME ); + $host = wp_parse_url( $url, PHP_URL_HOST ); + $is_local = 'local' === wp_get_environment_type(); + + // validates if the proper URI format is applied to the $url + if ( empty( $host ) || empty( $scheme ) || in_array( strtolower( $scheme ), $invalid_protocols, true ) ) { + return new WP_Error( + 'invalid_redirect_url_format', + __( 'Invalid URL format.' ) + ); + } + + if ( 'http' === $scheme && ! $is_local ) { + return new WP_Error( + 'invalid_redirect_scheme', + __( 'The URL must be served over a secure connection.' ) + ); + } + + return true; +} diff --git a/wp/wp-admin/includes/widgets.php b/wp/wp-admin/includes/widgets.php index 93979b6a..682f596d 100644 --- a/wp/wp-admin/includes/widgets.php +++ b/wp/wp-admin/includes/widgets.php @@ -134,7 +134,7 @@ function wp_list_widget_controls( $sidebar, $sidebar_name = '' ) { function wp_list_widget_controls_dynamic_sidebar( $params ) { global $wp_registered_widgets; static $i = 0; - $i++; + ++$i; $widget_id = $params[0]['widget_id']; $id = isset( $params[0]['_temp_id'] ) ? $params[0]['_temp_id'] : $widget_id; @@ -168,7 +168,7 @@ function next_widget_id_number( $id_base ) { $number = max( $number, $matches[1] ); } } - $number++; + ++$number; return $number; } diff --git a/wp/wp-admin/index.php b/wp/wp-admin/index.php index 7278cfbf..de5cc21b 100644 --- a/wp/wp-admin/index.php +++ b/wp/wp-admin/index.php @@ -154,20 +154,21 @@ require_once ABSPATH . 'wp-admin/admin-header.php'; // Only show the dashboard notice if it's been less than a minute since the message was postponed. if ( $time_passed < MINUTE_IN_SECONDS ) : - ?> -
    -

    - -

    -
    - - + $message = sprintf( + /* translators: %s: Human-readable time interval. */ + __( 'The admin email verification page will reappear after %s.' ), + human_time_diff( time() + $remind_interval ) + ); + wp_admin_notice( + $message, + array( + 'type' => 'success', + 'dismissible' => true, + ) + ); + endif; + endif; + ?>
").attr("role","alert").attr("tabindex","-1").addClass("is-dismissible notice notice-"+s).append(o("

").text(e)).append(o("").attr("type","button").addClass("notice-dismiss").append(o("").addClass("screen-reader-text").text(wp.i18n.__("Dismiss this notice."))));return i.after(s),s}function v(){o(".notice",a).remove()}n.on("click",function(e){var s;e.preventDefault(),n.prop("aria-disabled")||(0===(e=t.val()).length?t.trigger("focus"):(v(),n.prop("aria-disabled",!0).addClass("disabled"),s={name:e},s=wp.hooks.applyFilters("wp_application_passwords_new_password_request",s,u),wp.apiRequest({path:"/wp/v2/users/"+u+"/application-passwords?_locale=user",method:"POST",data:s}).always(function(){n.removeProp("aria-disabled").removeClass("disabled")}).done(function(e){t.val(""),n.prop("disabled",!1),i.after(l({name:e.name,password:e.password})),o(".new-application-password-notice").trigger("focus"),r.prepend(c(e)),p.show(),d.remove(),wp.hooks.doAction("wp_application_passwords_created_password",e,s)}).fail(w)))}),r.on("click",".delete",function(e){var s,a;e.preventDefault(),window.confirm(wp.i18n.__("Are you sure you want to revoke this password? This action cannot be undone."))&&(s=o(this),e=(a=s.closest("tr")).data("uuid"),v(),s.prop("disabled",!0),wp.apiRequest({path:"/wp/v2/users/"+u+"/application-passwords/"+e+"?_locale=user",method:"DELETE"}).always(function(){s.prop("disabled",!1)}).done(function(e){e.deleted&&(0===a.siblings().length&&p.hide(),a.remove(),f(wp.i18n.__("Application password revoked."),"success").trigger("focus"))}).fail(w))}),e.on("click",function(e){var s;e.preventDefault(),window.confirm(wp.i18n.__("Are you sure you want to revoke all passwords? This action cannot be undone."))&&(s=o(this),v(),s.prop("disabled",!0),wp.apiRequest({path:"/wp/v2/users/"+u+"/application-passwords?_locale=user",method:"DELETE"}).always(function(){s.prop("disabled",!1)}).done(function(e){e.deleted&&(r.children().remove(),a.children(".new-application-password").remove(),p.hide(),f(wp.i18n.__("All application passwords revoked."),"success").trigger("focus"))}).fail(w))}),a.on("click",".notice-dismiss",function(e){e.preventDefault();var s=o(this).parent();s.removeAttr("role"),s.fadeTo(100,0,function(){s.slideUp(100,function(){s.remove(),t.trigger("focus")})})}),t.on("keypress",function(e){13===e.which&&(e.preventDefault(),n.trigger("click"))}),0===r.children("tr").not(d).length&&p.hide()}(jQuery); \ No newline at end of file +!function(o){var a=o("#application-passwords-section"),i=a.find(".create-application-password"),t=i.find(".input"),n=i.find(".button"),p=a.find(".application-passwords-list-table-wrapper"),r=a.find("tbody"),d=r.find(".no-items"),e=o("#revoke-all-application-passwords"),l=wp.template("new-application-password"),c=wp.template("application-password-row"),u=o("#user_id").val();function w(e,s,a){f(a=e.responseJSON&&e.responseJSON.message?e.responseJSON.message:a,"error")}function f(e,s){s=o("
").attr("role","alert").attr("tabindex","-1").addClass("is-dismissible notice notice-"+s).append(o("

").text(e)).append(o("").attr("type","button").addClass("notice-dismiss").append(o("").addClass("screen-reader-text").text(wp.i18n.__("Dismiss this notice."))));return i.after(s),s}function v(){o(".notice",a).remove()}n.on("click",function(e){var s;e.preventDefault(),n.prop("aria-disabled")||(0===(e=t.val()).length?t.trigger("focus"):(v(),n.prop("aria-disabled",!0).addClass("disabled"),s={name:e},s=wp.hooks.applyFilters("wp_application_passwords_new_password_request",s,u),wp.apiRequest({path:"/wp/v2/users/"+u+"/application-passwords?_locale=user",method:"POST",data:s}).always(function(){n.removeProp("aria-disabled").removeClass("disabled")}).done(function(e){t.val(""),n.prop("disabled",!1),i.after(l({name:e.name,password:e.password})),o(".new-application-password-notice").attr("tabindex","-1").trigger("focus"),r.prepend(c(e)),p.show(),d.remove(),wp.hooks.doAction("wp_application_passwords_created_password",e,s)}).fail(w)))}),r.on("click",".delete",function(e){var s,a;e.preventDefault(),window.confirm(wp.i18n.__("Are you sure you want to revoke this password? This action cannot be undone."))&&(s=o(this),e=(a=s.closest("tr")).data("uuid"),v(),s.prop("disabled",!0),wp.apiRequest({path:"/wp/v2/users/"+u+"/application-passwords/"+e+"?_locale=user",method:"DELETE"}).always(function(){s.prop("disabled",!1)}).done(function(e){e.deleted&&(0===a.siblings().length&&p.hide(),a.remove(),f(wp.i18n.__("Application password revoked."),"success").trigger("focus"))}).fail(w))}),e.on("click",function(e){var s;e.preventDefault(),window.confirm(wp.i18n.__("Are you sure you want to revoke all passwords? This action cannot be undone."))&&(s=o(this),v(),s.prop("disabled",!0),wp.apiRequest({path:"/wp/v2/users/"+u+"/application-passwords?_locale=user",method:"DELETE"}).always(function(){s.prop("disabled",!1)}).done(function(e){e.deleted&&(r.children().remove(),a.children(".new-application-password").remove(),p.hide(),f(wp.i18n.__("All application passwords revoked."),"success").trigger("focus"))}).fail(w))}),a.on("click",".notice-dismiss",function(e){e.preventDefault();var s=o(this).parent();s.removeAttr("role"),s.fadeTo(100,0,function(){s.slideUp(100,function(){s.remove(),t.trigger("focus")})})}),t.on("keypress",function(e){13===e.which&&(e.preventDefault(),n.trigger("click"))}),0===r.children("tr").not(d).length&&p.hide()}(jQuery); \ No newline at end of file diff --git a/wp/wp-admin/js/common.js b/wp/wp-admin/js/common.js index f85a9378..3de94478 100644 --- a/wp/wp-admin/js/common.js +++ b/wp/wp-admin/js/common.js @@ -1702,24 +1702,45 @@ $( function() { } } ); - // Close sidebar when focus moves outside of toggle and sidebar. - $( '#wp-admin-bar-menu-toggle, #adminmenumain' ).on( 'focusout', function() { - var focusIsInToggle, focusIsInSidebar; - + // Close sidebar when target moves outside of toggle and sidebar. + $( document ).on( 'click', function( event ) { if ( ! $wpwrap.hasClass( 'wp-responsive-open' ) || ! document.hasFocus() ) { return; } - // A brief delay is required to allow focus to switch to another element. - setTimeout( function() { - focusIsInToggle = $.contains( $( '#wp-admin-bar-menu-toggle' )[0], $( ':focus' )[0] ); - focusIsInSidebar = $.contains( $( '#adminmenumain' )[0], $( ':focus' )[0] ); - if ( ! focusIsInToggle && ! focusIsInSidebar ) { - $( '#wp-admin-bar-menu-toggle' ).trigger( 'click.wp-responsive' ); - } - }, 10 ); + var focusIsInToggle = $.contains( $( '#wp-admin-bar-menu-toggle' )[0], event.target ); + var focusIsInSidebar = $.contains( $( '#adminmenuwrap' )[0], event.target ); + + if ( ! focusIsInToggle && ! focusIsInSidebar ) { + $( '#wp-admin-bar-menu-toggle' ).trigger( 'click.wp-responsive' ); + } } ); + // Close sidebar when a keypress completes outside of toggle and sidebar. + $( document ).on( 'keyup', function( event ) { + var toggleButton = $( '#wp-admin-bar-menu-toggle' )[0]; + if ( ! $wpwrap.hasClass( 'wp-responsive-open' ) ) { + return; + } + if ( 27 === event.keyCode ) { + $( toggleButton ).trigger( 'click.wp-responsive' ); + $( toggleButton ).find( 'a' ).trigger( 'focus' ); + } else { + if ( 9 === event.keyCode ) { + var sidebar = $( '#adminmenuwrap' )[0]; + var focusedElement = event.relatedTarget || document.activeElement; + // A brief delay is required to allow focus to switch to another element. + setTimeout( function() { + var focusIsInToggle = $.contains( toggleButton, focusedElement ); + var focusIsInSidebar = $.contains( sidebar, focusedElement ); + + if ( ! focusIsInToggle && ! focusIsInSidebar ) { + $( toggleButton ).trigger( 'click.wp-responsive' ); + } + }, 10 ); + } + } + }); // Add menu events. $adminmenu.on( 'click.wp-responsive', 'li.wp-has-submenu > a', function( event ) { @@ -2104,3 +2125,123 @@ $( function( $ ) { })(); }( jQuery, window )); + +/** + * Freeze animated plugin icons when reduced motion is enabled. + * + * When the user has enabled the 'prefers-reduced-motion' setting, this module + * stops animations for all GIFs on the page with the class 'plugin-icon' or + * plugin icon images in the update plugins table. + * + * @since 6.4.0 + */ +(function() { + // Private variables and methods. + var priv = {}, + pub = {}, + mediaQuery; + + // Initialize pauseAll to false; it will be set to true if reduced motion is preferred. + priv.pauseAll = false; + if ( window.matchMedia ) { + mediaQuery = window.matchMedia( '(prefers-reduced-motion: reduce)' ); + if ( ! mediaQuery || mediaQuery.matches ) { + priv.pauseAll = true; + } + } + + // Method to replace animated GIFs with a static frame. + priv.freezeAnimatedPluginIcons = function( img ) { + var coverImage = function() { + var width = img.width; + var height = img.height; + var canvas = document.createElement( 'canvas' ); + + // Set canvas dimensions. + canvas.width = width; + canvas.height = height; + + // Copy classes from the image to the canvas. + canvas.className = img.className; + + // Check if the image is inside a specific table. + var isInsideUpdateTable = img.closest( '#update-plugins-table' ); + + if ( isInsideUpdateTable ) { + // Transfer computed styles from image to canvas. + var computedStyles = window.getComputedStyle( img ), + i, max; + for ( i = 0, max = computedStyles.length; i < max; i++ ) { + var propName = computedStyles[ i ]; + var propValue = computedStyles.getPropertyValue( propName ); + canvas.style[ propName ] = propValue; + } + } + + // Draw the image onto the canvas. + canvas.getContext( '2d' ).drawImage( img, 0, 0, width, height ); + + // Set accessibility attributes on canvas. + canvas.setAttribute( 'aria-hidden', 'true' ); + canvas.setAttribute( 'role', 'presentation' ); + + // Insert canvas before the image and set the image to be near-invisible. + var parent = img.parentNode; + parent.insertBefore( canvas, img ); + img.style.opacity = 0.01; + img.style.width = '0px'; + img.style.height = '0px'; + }; + + // If the image is already loaded, apply the coverImage function. + if ( img.complete ) { + coverImage(); + } else { + // Otherwise, wait for the image to load. + img.addEventListener( 'load', coverImage, true ); + } + }; + + // Public method to freeze all relevant GIFs on the page. + pub.freezeAll = function() { + var images = document.querySelectorAll( '.plugin-icon, #update-plugins-table img' ); + for ( var x = 0; x < images.length; x++ ) { + if ( /\.gif(?:\?|$)/i.test( images[ x ].src ) ) { + priv.freezeAnimatedPluginIcons( images[ x ] ); + } + } + }; + + // Only run the freezeAll method if the user prefers reduced motion. + if ( true === priv.pauseAll ) { + pub.freezeAll(); + } + + // Listen for jQuery AJAX events. + ( function( $ ) { + if ( window.pagenow === 'plugin-install' ) { + // Only listen for ajaxComplete if this is the plugin-install.php page. + $( document ).ajaxComplete( function( event, xhr, settings ) { + + // Check if this is the 'search-install-plugins' request. + if ( settings.data && typeof settings.data === 'string' && settings.data.includes( 'action=search-install-plugins' ) ) { + // Recheck if the user prefers reduced motion. + if ( window.matchMedia ) { + var mediaQuery = window.matchMedia( '(prefers-reduced-motion: reduce)' ); + if ( mediaQuery.matches ) { + pub.freezeAll(); + } + } else { + // Fallback for browsers that don't support matchMedia. + if ( true === priv.pauseAll ) { + pub.freezeAll(); + } + } + } + } ); + } + } )( jQuery ); + + // Expose public methods. + return pub; +})(); diff --git a/wp/wp-admin/js/common.min.js b/wp/wp-admin/js/common.min.js index a0924c61..200bce15 100644 --- a/wp/wp-admin/js/common.min.js +++ b/wp/wp-admin/js/common.min.js @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -!function(W,$){var Q=W(document),H=W($),V=W(document.body),q=wp.i18n.__,i=wp.i18n.sprintf;function r(e,t,n){n=void 0!==n?i(q("%1$s is deprecated since version %2$s! Use %3$s instead."),e,t,n):i(q("%1$s is deprecated since version %2$s with no alternative available."),e,t);$.console.warn(n)}function e(i,o,s){var a={};return Object.keys(o).forEach(function(e){var t=o[e],n=i+"."+e;"object"==typeof t?Object.defineProperty(a,e,{get:function(){return r(n,s,t.alternative),t.func()}}):Object.defineProperty(a,e,{get:function(){return r(n,s,"wp.i18n"),t}})}),a}$.wp.deprecateL10nObject=e,$.commonL10n=$.commonL10n||{warnDelete:"",dismiss:"",collapseMenu:"",expandMenu:""},$.commonL10n=e("commonL10n",$.commonL10n,"5.5.0"),$.wpPointerL10n=$.wpPointerL10n||{dismiss:""},$.wpPointerL10n=e("wpPointerL10n",$.wpPointerL10n,"5.5.0"),$.userProfileL10n=$.userProfileL10n||{warn:"",warnWeak:"",show:"",hide:"",cancel:"",ariaShow:"",ariaHide:""},$.userProfileL10n=e("userProfileL10n",$.userProfileL10n,"5.5.0"),$.privacyToolsL10n=$.privacyToolsL10n||{noDataFound:"",foundAndRemoved:"",noneRemoved:"",someNotRemoved:"",removalError:"",emailSent:"",noExportFile:"",exportError:""},$.privacyToolsL10n=e("privacyToolsL10n",$.privacyToolsL10n,"5.5.0"),$.authcheckL10n={beforeunload:""},$.authcheckL10n=$.authcheckL10n||e("authcheckL10n",$.authcheckL10n,"5.5.0"),$.tagsl10n={noPerm:"",broken:""},$.tagsl10n=$.tagsl10n||e("tagsl10n",$.tagsl10n,"5.5.0"),$.adminCommentsL10n=$.adminCommentsL10n||{hotkeys_highlight_first:{alternative:"window.adminCommentsSettings.hotkeys_highlight_first",func:function(){return $.adminCommentsSettings.hotkeys_highlight_first}},hotkeys_highlight_last:{alternative:"window.adminCommentsSettings.hotkeys_highlight_last",func:function(){return $.adminCommentsSettings.hotkeys_highlight_last}},replyApprove:"",reply:"",warnQuickEdit:"",warnCommentChanges:"",docTitleComments:"",docTitleCommentsCount:""},$.adminCommentsL10n=e("adminCommentsL10n",$.adminCommentsL10n,"5.5.0"),$.tagsSuggestL10n=$.tagsSuggestL10n||{tagDelimiter:"",removeTerm:"",termSelected:"",termAdded:"",termRemoved:""},$.tagsSuggestL10n=e("tagsSuggestL10n",$.tagsSuggestL10n,"5.5.0"),$.wpColorPickerL10n=$.wpColorPickerL10n||{clear:"",clearAriaLabel:"",defaultString:"",defaultAriaLabel:"",pick:"",defaultLabel:""},$.wpColorPickerL10n=e("wpColorPickerL10n",$.wpColorPickerL10n,"5.5.0"),$.attachMediaBoxL10n=$.attachMediaBoxL10n||{error:""},$.attachMediaBoxL10n=e("attachMediaBoxL10n",$.attachMediaBoxL10n,"5.5.0"),$.postL10n=$.postL10n||{ok:"",cancel:"",publishOn:"",publishOnFuture:"",publishOnPast:"",dateFormat:"",showcomm:"",endcomm:"",publish:"",schedule:"",update:"",savePending:"",saveDraft:"",private:"",public:"",publicSticky:"",password:"",privatelyPublished:"",published:"",saveAlert:"",savingText:"",permalinkSaved:""},$.postL10n=e("postL10n",$.postL10n,"5.5.0"),$.inlineEditL10n=$.inlineEditL10n||{error:"",ntdeltitle:"",notitle:"",comma:"",saved:""},$.inlineEditL10n=e("inlineEditL10n",$.inlineEditL10n,"5.5.0"),$.plugininstallL10n=$.plugininstallL10n||{plugin_information:"",plugin_modal_label:"",ays:""},$.plugininstallL10n=e("plugininstallL10n",$.plugininstallL10n,"5.5.0"),$.navMenuL10n=$.navMenuL10n||{noResultsFound:"",warnDeleteMenu:"",saveAlert:"",untitled:""},$.navMenuL10n=e("navMenuL10n",$.navMenuL10n,"5.5.0"),$.commentL10n=$.commentL10n||{submittedOn:"",dateFormat:""},$.commentL10n=e("commentL10n",$.commentL10n,"5.5.0"),$.setPostThumbnailL10n=$.setPostThumbnailL10n||{setThumbnail:"",saving:"",error:"",done:""},$.setPostThumbnailL10n=e("setPostThumbnailL10n",$.setPostThumbnailL10n,"5.5.0"),$.adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}},$.columns={init:function(){var n=this;W(".hide-column-tog","#adv-settings").on("click",function(){var e=W(this),t=e.val();e.prop("checked")?n.checked(t):n.unchecked(t),columns.saveManageColumnsState()})},saveManageColumnsState:function(){var e=this.hidden();W.post(ajaxurl,{action:"hidden-columns",hidden:e,screenoptionnonce:W("#screenoptionnonce").val(),page:pagenow})},checked:function(e){W(".column-"+e).removeClass("hidden"),this.colSpanChange(1)},unchecked:function(e){W(".column-"+e).addClass("hidden"),this.colSpanChange(-1)},hidden:function(){return W(".manage-column[id]").filter(".hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return W(".hide-column-tog").not(":checked").map(function(){var e=this.id;return e.substring(e,e.length-5)}).get().join(",")}},colSpanChange:function(e){var t=W("table").find(".colspanchange");t.length&&(e=parseInt(t.attr("colspan"),10)+e,t.attr("colspan",e.toString()))}},W(function(){columns.init()}),$.validateForm=function(e){return!W(e).find(".form-required").filter(function(){return""===W(":input:visible",this).val()}).addClass("form-invalid").find(":input:visible").on("change",function(){W(this).closest(".form-invalid").removeClass("form-invalid")}).length},$.showNotice={warn:function(){return!!confirm(q("You are about to permanently delete these items from your site.\nThis action cannot be undone.\n'Cancel' to stop, 'OK' to delete."))},note:function(e){alert(e)}},$.screenMeta={element:null,toggles:null,page:null,init:function(){this.element=W("#screen-meta"),this.toggles=W("#screen-meta-links").find(".show-settings"),this.page=W("#wpcontent"),this.toggles.on("click",this.toggleEvent)},toggleEvent:function(){var e=W("#"+W(this).attr("aria-controls"));e.length&&(e.is(":visible")?screenMeta.close(e,W(this)):screenMeta.open(e,W(this)))},open:function(e,t){W("#screen-meta-links").find(".screen-meta-toggle").not(t.parent()).css("visibility","hidden"),e.parent().show(),e.slideDown("fast",function(){e.removeClass("hidden").trigger("focus"),t.addClass("screen-meta-active").attr("aria-expanded",!0)}),Q.trigger("screen:options:open")},close:function(e,t){e.slideUp("fast",function(){t.removeClass("screen-meta-active").attr("aria-expanded",!1),W(".screen-meta-toggle").css("visibility",""),e.parent().hide(),e.addClass("hidden")}),Q.trigger("screen:options:close")}},W(".contextual-help-tabs").on("click","a",function(e){var t=W(this);if(e.preventDefault(),t.is(".active a"))return!1;W(".contextual-help-tabs .active").removeClass("active"),t.parent("li").addClass("active"),e=W(t.attr("href")),W(".help-tab-content").not(e).removeClass("active").hide(),e.addClass("active").show()});var t,s=!1,a=W("#permalink_structure"),n=W(".permalink-structure input:radio"),l=W("#custom_selection"),o=W(".form-table.permalink-structure .available-structure-tags button");function c(e){-1!==a.val().indexOf(e.text().trim())?(e.attr("data-label",e.attr("aria-label")),e.attr("aria-label",e.attr("data-used")),e.attr("aria-pressed",!0),e.addClass("active")):e.attr("data-label")&&(e.attr("aria-label",e.attr("data-label")),e.attr("aria-pressed",!1),e.removeClass("active"))}function d(){Q.trigger("wp-window-resized")}n.on("change",function(){"custom"!==this.value&&(a.val(this.value),o.each(function(){c(W(this))}))}),a.on("click input",function(){l.prop("checked",!0)}),a.on("focus",function(e){s=!0,W(this).off(e)}),o.each(function(){c(W(this))}),a.on("change",function(){o.each(function(){c(W(this))})}),o.on("click",function(){var e=a.val(),t=a[0].selectionStart,n=a[0].selectionEnd,i=W(this).text().trim(),o=W(this).hasClass("active")?W(this).attr("data-removed"):W(this).attr("data-added");-1!==e.indexOf(i)?(e=e.replace(i+"/",""),a.val("/"===e?"":e),W("#custom_selection_updated").text(o),c(W(this))):(s||0!==t||0!==n||(t=n=e.length),l.prop("checked",!0),"/"!==e.substr(0,t).substr(-1)&&(i="/"+i),"/"!==e.substr(n,1)&&(i+="/"),a.val(e.substr(0,t)+i+e.substr(n)),W("#custom_selection_updated").text(o),c(W(this)),s&&a[0].setSelectionRange&&(n=(e.substr(0,t)+i).length,a[0].setSelectionRange(n,n),a.trigger("focus")))}),W(function(){var n,i,o,s,e,t,a,r,l,c,d=!1,u=W("input.current-page"),R=u.val(),p=/iPhone|iPad|iPod/.test(navigator.userAgent),F=-1!==navigator.userAgent.indexOf("Android"),m=W("#adminmenuwrap"),h=W("#wpwrap"),f=W("#adminmenu"),v=W("#wp-responsive-overlay"),g=W("#wp-toolbar"),b=g.find('a[aria-haspopup="true"]'),w=W(".meta-box-sortables"),k=!1,C=W("#wpadminbar"),L=0,y=!1,x=!1,S=0,P=!1,T={window:H.height(),wpwrap:h.height(),adminbar:C.height(),menu:m.height()},_=W(".wp-header-end");function M(){var e=W("a.wp-has-current-submenu");"folded"===a?e.attr("aria-haspopup","true"):e.attr("aria-haspopup","false")}function D(e){var t=e.find(".wp-submenu"),e=e.offset().top,n=H.scrollTop(),i=e-n-30,e=e+t.height()+1,o=60+e-h.height(),n=H.height()+n-50;1<(o=i<(o=n');t.find(".notice-dismiss").length||(e.find(".screen-reader-text").text(q("Dismiss this notice.")),e.on("click.wp-dismiss-notice",function(e){e.preventDefault(),t.fadeTo(100,0,function(){t.slideUp(100,function(){t.remove()})})}),t.append(e))})}function A(e,t,n,i){n.on("change",function(){e.val(W(this).val())}),e.on("change",function(){n.val(W(this).val())}),i.on("click",function(e){e.preventDefault(),e.stopPropagation(),t.trigger("click")})}function U(){r.prop("disabled",""===l.map(function(){return W(this).val()}).get().join(""))}function K(e){var t=H.scrollTop(),e=!e||"scroll"!==e.type;if(!p&&!f.data("wp-responsive"))if(T.menu+T.adminbarT.wpwrap)O();else{if(P=!0,T.menu+T.adminbar>T.window){if(t<0)return void(y||(x=!(y=!0),m.css({position:"fixed",top:"",bottom:""})));if(t+T.window>Q.height()-1)return void(x||(y=!(x=!0),m.css({position:"fixed",top:"",bottom:0})));Lt+T.window&&(S=t),m.css({position:"absolute",top:S,bottom:""})):!y&&m.offset().top>=t+T.adminbar&&(y=!0,m.css({position:"fixed",top:"",bottom:""})):e&&(y=x=!1,0<(S=t+T.window-T.menu-T.adminbar-1)?m.css({position:"absolute",top:S,bottom:""}):O())}L=t}}function N(){T={window:H.height(),wpwrap:h.height(),adminbar:C.height(),menu:m.height()}}function O(){!p&&P&&(y=x=P=!1,m.css({position:"",top:"",bottom:""}))}function j(){N(),f.data("wp-responsive")?(V.removeClass("sticky-menu"),O()):T.menu+T.adminbar>T.window?(K(),V.removeClass("sticky-menu")):(V.addClass("sticky-menu"),O())}function z(){W(".aria-button-if-js").attr("role","button")}function I(){var e=!1;return e=$.innerWidth?Math.max($.innerWidth,document.documentElement.clientWidth):e}function B(){var e=I()||961;a=e<=782?"responsive":V.hasClass("folded")||V.hasClass("auto-fold")&&e<=960&&782 tr > .check-column :checkbox",function(e){if("undefined"!=e.shiftKey){if(e.shiftKey){if(!d)return!0;n=W(d).closest("form").find(":checkbox").filter(":visible:enabled"),i=n.index(d),o=n.index(this),s=W(this).prop("checked"),0 a",function(e){f.data("wp-responsive")&&(W(this).parent("li").toggleClass("selected"),W(this).trigger("focus"),e.preventDefault())}),e.trigger(),Q.on("wp-window-resized.wp-responsive",this.trigger.bind(this)),H.on("load.wp-responsive",this.maybeDisableSortables),Q.on("postbox-toggled",this.maybeDisableSortables),W("#screen-options-wrap input").on("click",this.maybeDisableSortables)},maybeDisableSortables:function(){(-1
').insertAfter("#wpcontent").hide().on("click.wp-responsive",function(){g.find(".menupop.hover").removeClass("hover"),W(this).hide()})),b.on("click.wp-responsive",function(){v.show()})},disableOverlay:function(){b.off("click.wp-responsive"),v.hide()},disableSortables:function(){if(w.length)try{w.sortable("disable"),w.find(".ui-sortable-handle").addClass("is-non-sortable")}catch(e){}},enableSortables:function(){if(w.length)try{w.sortable("enable"),w.find(".ui-sortable-handle").removeClass("is-non-sortable")}catch(e){}}},W(document).on("ajaxComplete",function(){z()}),Q.on("wp-window-resized.set-menu-state",B),Q.on("wp-menu-state-set wp-collapse-menu",function(e,t){var n,i=W("#collapse-button"),t="folded"===t.state?(n="false",q("Expand Main menu")):(n="true",q("Collapse Main menu"));i.attr({"aria-expanded":n,"aria-label":t})}),$.wpResponsive.init(),j(),B(),M(),E(),z(),Q.on("wp-pin-menu wp-window-resized.pin-menu postboxes-columnchange.pin-menu postbox-toggled.pin-menu wp-collapse-menu.pin-menu wp-scroll-start.pin-menu",j),W(".wp-initial-focus").trigger("focus"),V.on("click",".js-update-details-toggle",function(){var e=W(this).closest(".js-update-details"),t=W("#"+e.data("update-details"));t.hasClass("update-details-moved")||t.insertAfter(e).addClass("update-details-moved"),t.toggle(),W(this).attr("aria-expanded",t.is(":visible"))})}),W(function(e){var t,n;V.hasClass("update-php")&&(t=e("a.update-from-upload-overwrite"),n=e(".update-from-upload-expired"),t.length)&&n.length&&$.setTimeout(function(){t.hide(),n.removeClass("hidden"),$.wp&&$.wp.a11y&&$.wp.a11y.speak(n.text())},714e4)}),H.on("resize.wp-fire-once",function(){$.clearTimeout(t),t=$.setTimeout(d,200)}),"-ms-user-select"in document.documentElement.style&&navigator.userAgent.match(/IEMobile\/10\.0/)&&((n=document.createElement("style")).appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")),document.getElementsByTagName("head")[0].appendChild(n))}(jQuery,window); \ No newline at end of file +!function(W,$){var Q=W(document),V=W($),q=W(document.body),H=wp.i18n.__,i=wp.i18n.sprintf;function r(e,t,n){n=void 0!==n?i(H("%1$s is deprecated since version %2$s! Use %3$s instead."),e,t,n):i(H("%1$s is deprecated since version %2$s with no alternative available."),e,t);$.console.warn(n)}function e(i,o,a){var s={};return Object.keys(o).forEach(function(e){var t=o[e],n=i+"."+e;"object"==typeof t?Object.defineProperty(s,e,{get:function(){return r(n,a,t.alternative),t.func()}}):Object.defineProperty(s,e,{get:function(){return r(n,a,"wp.i18n"),t}})}),s}$.wp.deprecateL10nObject=e,$.commonL10n=$.commonL10n||{warnDelete:"",dismiss:"",collapseMenu:"",expandMenu:""},$.commonL10n=e("commonL10n",$.commonL10n,"5.5.0"),$.wpPointerL10n=$.wpPointerL10n||{dismiss:""},$.wpPointerL10n=e("wpPointerL10n",$.wpPointerL10n,"5.5.0"),$.userProfileL10n=$.userProfileL10n||{warn:"",warnWeak:"",show:"",hide:"",cancel:"",ariaShow:"",ariaHide:""},$.userProfileL10n=e("userProfileL10n",$.userProfileL10n,"5.5.0"),$.privacyToolsL10n=$.privacyToolsL10n||{noDataFound:"",foundAndRemoved:"",noneRemoved:"",someNotRemoved:"",removalError:"",emailSent:"",noExportFile:"",exportError:""},$.privacyToolsL10n=e("privacyToolsL10n",$.privacyToolsL10n,"5.5.0"),$.authcheckL10n={beforeunload:""},$.authcheckL10n=$.authcheckL10n||e("authcheckL10n",$.authcheckL10n,"5.5.0"),$.tagsl10n={noPerm:"",broken:""},$.tagsl10n=$.tagsl10n||e("tagsl10n",$.tagsl10n,"5.5.0"),$.adminCommentsL10n=$.adminCommentsL10n||{hotkeys_highlight_first:{alternative:"window.adminCommentsSettings.hotkeys_highlight_first",func:function(){return $.adminCommentsSettings.hotkeys_highlight_first}},hotkeys_highlight_last:{alternative:"window.adminCommentsSettings.hotkeys_highlight_last",func:function(){return $.adminCommentsSettings.hotkeys_highlight_last}},replyApprove:"",reply:"",warnQuickEdit:"",warnCommentChanges:"",docTitleComments:"",docTitleCommentsCount:""},$.adminCommentsL10n=e("adminCommentsL10n",$.adminCommentsL10n,"5.5.0"),$.tagsSuggestL10n=$.tagsSuggestL10n||{tagDelimiter:"",removeTerm:"",termSelected:"",termAdded:"",termRemoved:""},$.tagsSuggestL10n=e("tagsSuggestL10n",$.tagsSuggestL10n,"5.5.0"),$.wpColorPickerL10n=$.wpColorPickerL10n||{clear:"",clearAriaLabel:"",defaultString:"",defaultAriaLabel:"",pick:"",defaultLabel:""},$.wpColorPickerL10n=e("wpColorPickerL10n",$.wpColorPickerL10n,"5.5.0"),$.attachMediaBoxL10n=$.attachMediaBoxL10n||{error:""},$.attachMediaBoxL10n=e("attachMediaBoxL10n",$.attachMediaBoxL10n,"5.5.0"),$.postL10n=$.postL10n||{ok:"",cancel:"",publishOn:"",publishOnFuture:"",publishOnPast:"",dateFormat:"",showcomm:"",endcomm:"",publish:"",schedule:"",update:"",savePending:"",saveDraft:"",private:"",public:"",publicSticky:"",password:"",privatelyPublished:"",published:"",saveAlert:"",savingText:"",permalinkSaved:""},$.postL10n=e("postL10n",$.postL10n,"5.5.0"),$.inlineEditL10n=$.inlineEditL10n||{error:"",ntdeltitle:"",notitle:"",comma:"",saved:""},$.inlineEditL10n=e("inlineEditL10n",$.inlineEditL10n,"5.5.0"),$.plugininstallL10n=$.plugininstallL10n||{plugin_information:"",plugin_modal_label:"",ays:""},$.plugininstallL10n=e("plugininstallL10n",$.plugininstallL10n,"5.5.0"),$.navMenuL10n=$.navMenuL10n||{noResultsFound:"",warnDeleteMenu:"",saveAlert:"",untitled:""},$.navMenuL10n=e("navMenuL10n",$.navMenuL10n,"5.5.0"),$.commentL10n=$.commentL10n||{submittedOn:"",dateFormat:""},$.commentL10n=e("commentL10n",$.commentL10n,"5.5.0"),$.setPostThumbnailL10n=$.setPostThumbnailL10n||{setThumbnail:"",saving:"",error:"",done:""},$.setPostThumbnailL10n=e("setPostThumbnailL10n",$.setPostThumbnailL10n,"5.5.0"),$.adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}},$.columns={init:function(){var n=this;W(".hide-column-tog","#adv-settings").on("click",function(){var e=W(this),t=e.val();e.prop("checked")?n.checked(t):n.unchecked(t),columns.saveManageColumnsState()})},saveManageColumnsState:function(){var e=this.hidden();W.post(ajaxurl,{action:"hidden-columns",hidden:e,screenoptionnonce:W("#screenoptionnonce").val(),page:pagenow})},checked:function(e){W(".column-"+e).removeClass("hidden"),this.colSpanChange(1)},unchecked:function(e){W(".column-"+e).addClass("hidden"),this.colSpanChange(-1)},hidden:function(){return W(".manage-column[id]").filter(".hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return W(".hide-column-tog").not(":checked").map(function(){var e=this.id;return e.substring(e,e.length-5)}).get().join(",")}},colSpanChange:function(e){var t=W("table").find(".colspanchange");t.length&&(e=parseInt(t.attr("colspan"),10)+e,t.attr("colspan",e.toString()))}},W(function(){columns.init()}),$.validateForm=function(e){return!W(e).find(".form-required").filter(function(){return""===W(":input:visible",this).val()}).addClass("form-invalid").find(":input:visible").on("change",function(){W(this).closest(".form-invalid").removeClass("form-invalid")}).length},$.showNotice={warn:function(){return!!confirm(H("You are about to permanently delete these items from your site.\nThis action cannot be undone.\n'Cancel' to stop, 'OK' to delete."))},note:function(e){alert(e)}},$.screenMeta={element:null,toggles:null,page:null,init:function(){this.element=W("#screen-meta"),this.toggles=W("#screen-meta-links").find(".show-settings"),this.page=W("#wpcontent"),this.toggles.on("click",this.toggleEvent)},toggleEvent:function(){var e=W("#"+W(this).attr("aria-controls"));e.length&&(e.is(":visible")?screenMeta.close(e,W(this)):screenMeta.open(e,W(this)))},open:function(e,t){W("#screen-meta-links").find(".screen-meta-toggle").not(t.parent()).css("visibility","hidden"),e.parent().show(),e.slideDown("fast",function(){e.removeClass("hidden").trigger("focus"),t.addClass("screen-meta-active").attr("aria-expanded",!0)}),Q.trigger("screen:options:open")},close:function(e,t){e.slideUp("fast",function(){t.removeClass("screen-meta-active").attr("aria-expanded",!1),W(".screen-meta-toggle").css("visibility",""),e.parent().hide(),e.addClass("hidden")}),Q.trigger("screen:options:close")}},W(".contextual-help-tabs").on("click","a",function(e){var t=W(this);if(e.preventDefault(),t.is(".active a"))return!1;W(".contextual-help-tabs .active").removeClass("active"),t.parent("li").addClass("active"),e=W(t.attr("href")),W(".help-tab-content").not(e).removeClass("active").hide(),e.addClass("active").show()});var t,a=!1,s=W("#permalink_structure"),n=W(".permalink-structure input:radio"),l=W("#custom_selection"),o=W(".form-table.permalink-structure .available-structure-tags button");function c(e){-1!==s.val().indexOf(e.text().trim())?(e.attr("data-label",e.attr("aria-label")),e.attr("aria-label",e.attr("data-used")),e.attr("aria-pressed",!0),e.addClass("active")):e.attr("data-label")&&(e.attr("aria-label",e.attr("data-label")),e.attr("aria-pressed",!1),e.removeClass("active"))}function d(){Q.trigger("wp-window-resized")}n.on("change",function(){"custom"!==this.value&&(s.val(this.value),o.each(function(){c(W(this))}))}),s.on("click input",function(){l.prop("checked",!0)}),s.on("focus",function(e){a=!0,W(this).off(e)}),o.each(function(){c(W(this))}),s.on("change",function(){o.each(function(){c(W(this))})}),o.on("click",function(){var e=s.val(),t=s[0].selectionStart,n=s[0].selectionEnd,i=W(this).text().trim(),o=W(this).hasClass("active")?W(this).attr("data-removed"):W(this).attr("data-added");-1!==e.indexOf(i)?(e=e.replace(i+"/",""),s.val("/"===e?"":e),W("#custom_selection_updated").text(o),c(W(this))):(a||0!==t||0!==n||(t=n=e.length),l.prop("checked",!0),"/"!==e.substr(0,t).substr(-1)&&(i="/"+i),"/"!==e.substr(n,1)&&(i+="/"),s.val(e.substr(0,t)+i+e.substr(n)),W("#custom_selection_updated").text(o),c(W(this)),a&&s[0].setSelectionRange&&(n=(e.substr(0,t)+i).length,s[0].setSelectionRange(n,n),s.trigger("focus")))}),W(function(){var n,i,o,a,e,t,s,r,l,c,d=!1,u=W("input.current-page"),z=u.val(),p=/iPhone|iPad|iPod/.test(navigator.userAgent),N=-1!==navigator.userAgent.indexOf("Android"),m=W("#adminmenuwrap"),h=W("#wpwrap"),f=W("#adminmenu"),g=W("#wp-responsive-overlay"),v=W("#wp-toolbar"),b=v.find('a[aria-haspopup="true"]'),w=W(".meta-box-sortables"),k=!1,C=W("#wpadminbar"),y=0,L=!1,x=!1,S=0,P=!1,T={window:V.height(),wpwrap:h.height(),adminbar:C.height(),menu:m.height()},A=W(".wp-header-end");function M(){var e=W("a.wp-has-current-submenu");"folded"===s?e.attr("aria-haspopup","true"):e.attr("aria-haspopup","false")}function _(e){var t=e.find(".wp-submenu"),e=e.offset().top,n=V.scrollTop(),i=e-n-30,e=e+t.height()+1,o=60+e-h.height(),n=V.height()+n-50;1<(o=i<(o=n');t.find(".notice-dismiss").length||(e.find(".screen-reader-text").text(H("Dismiss this notice.")),e.on("click.wp-dismiss-notice",function(e){e.preventDefault(),t.fadeTo(100,0,function(){t.slideUp(100,function(){t.remove()})})}),t.append(e))})}function E(e,t,n,i){n.on("change",function(){e.val(W(this).val())}),e.on("change",function(){n.val(W(this).val())}),i.on("click",function(e){e.preventDefault(),e.stopPropagation(),t.trigger("click")})}function R(){r.prop("disabled",""===l.map(function(){return W(this).val()}).get().join(""))}function F(e){var t=V.scrollTop(),e=!e||"scroll"!==e.type;if(!p&&!f.data("wp-responsive"))if(T.menu+T.adminbarT.wpwrap)j();else{if(P=!0,T.menu+T.adminbar>T.window){if(t<0)return void(L||(x=!(L=!0),m.css({position:"fixed",top:"",bottom:""})));if(t+T.window>Q.height()-1)return void(x||(L=!(x=!0),m.css({position:"fixed",top:"",bottom:0})));yt+T.window&&(S=t),m.css({position:"absolute",top:S,bottom:""})):!L&&m.offset().top>=t+T.adminbar&&(L=!0,m.css({position:"fixed",top:"",bottom:""})):e&&(L=x=!1,0<(S=t+T.window-T.menu-T.adminbar-1)?m.css({position:"absolute",top:S,bottom:""}):j())}y=t}}function U(){T={window:V.height(),wpwrap:h.height(),adminbar:C.height(),menu:m.height()}}function j(){!p&&P&&(L=x=P=!1,m.css({position:"",top:"",bottom:""}))}function O(){U(),f.data("wp-responsive")?(q.removeClass("sticky-menu"),j()):T.menu+T.adminbar>T.window?(F(),q.removeClass("sticky-menu")):(q.addClass("sticky-menu"),j())}function K(){W(".aria-button-if-js").attr("role","button")}function I(){var e=!1;return e=$.innerWidth?Math.max($.innerWidth,document.documentElement.clientWidth):e}function B(){var e=I()||961;s=e<=782?"responsive":q.hasClass("folded")||q.hasClass("auto-fold")&&e<=960&&782 tr > .check-column :checkbox",function(e){if("undefined"!=e.shiftKey){if(e.shiftKey){if(!d)return!0;n=W(d).closest("form").find(":checkbox").filter(":visible:enabled"),i=n.index(d),o=n.index(this),a=W(this).prop("checked"),0 a",function(e){f.data("wp-responsive")&&(W(this).parent("li").toggleClass("selected"),W(this).trigger("focus"),e.preventDefault())}),e.trigger(),Q.on("wp-window-resized.wp-responsive",this.trigger.bind(this)),V.on("load.wp-responsive",this.maybeDisableSortables),Q.on("postbox-toggled",this.maybeDisableSortables),W("#screen-options-wrap input").on("click",this.maybeDisableSortables)},maybeDisableSortables:function(){(-1
').insertAfter("#wpcontent").hide().on("click.wp-responsive",function(){v.find(".menupop.hover").removeClass("hover"),W(this).hide()})),b.on("click.wp-responsive",function(){g.show()})},disableOverlay:function(){b.off("click.wp-responsive"),g.hide()},disableSortables:function(){if(w.length)try{w.sortable("disable"),w.find(".ui-sortable-handle").addClass("is-non-sortable")}catch(e){}},enableSortables:function(){if(w.length)try{w.sortable("enable"),w.find(".ui-sortable-handle").removeClass("is-non-sortable")}catch(e){}}},W(document).on("ajaxComplete",function(){K()}),Q.on("wp-window-resized.set-menu-state",B),Q.on("wp-menu-state-set wp-collapse-menu",function(e,t){var n,i=W("#collapse-button"),t="folded"===t.state?(n="false",H("Expand Main menu")):(n="true",H("Collapse Main menu"));i.attr({"aria-expanded":n,"aria-label":t})}),$.wpResponsive.init(),O(),B(),M(),D(),K(),Q.on("wp-pin-menu wp-window-resized.pin-menu postboxes-columnchange.pin-menu postbox-toggled.pin-menu wp-collapse-menu.pin-menu wp-scroll-start.pin-menu",O),W(".wp-initial-focus").trigger("focus"),q.on("click",".js-update-details-toggle",function(){var e=W(this).closest(".js-update-details"),t=W("#"+e.data("update-details"));t.hasClass("update-details-moved")||t.insertAfter(e).addClass("update-details-moved"),t.toggle(),W(this).attr("aria-expanded",t.is(":visible"))})}),W(function(e){var t,n;q.hasClass("update-php")&&(t=e("a.update-from-upload-overwrite"),n=e(".update-from-upload-expired"),t.length)&&n.length&&$.setTimeout(function(){t.hide(),n.removeClass("hidden"),$.wp&&$.wp.a11y&&$.wp.a11y.speak(n.text())},714e4)}),V.on("resize.wp-fire-once",function(){$.clearTimeout(t),t=$.setTimeout(d,200)}),"-ms-user-select"in document.documentElement.style&&navigator.userAgent.match(/IEMobile\/10\.0/)&&((n=document.createElement("style")).appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")),document.getElementsByTagName("head")[0].appendChild(n))}(jQuery,window),function(){var e,i={},o={};i.pauseAll=!1,!window.matchMedia||(e=window.matchMedia("(prefers-reduced-motion: reduce)"))&&!e.matches||(i.pauseAll=!0),i.freezeAnimatedPluginIcons=function(l){function e(){var e=l.width,t=l.height,n=document.createElement("canvas");if(n.width=e,n.height=t,n.className=l.className,l.closest("#update-plugins-table"))for(var i=window.getComputedStyle(l),o=0,a=i.length;o*").length&&(e=wpgallery.getWin(),n("#save-all, #gallery-settings").show(),void 0!==e.tinyMCE&&e.tinyMCE.activeEditor&&!e.tinyMCE.activeEditor.isHidden()?(wpgallery.mcemode=!0,wpgallery.init()):n("#insert-gallery").show())}),jQuery(window).on("unload",function(){window.tinymce=window.tinyMCE=window.wpgallery=null}),window.tinymce=null,window.wpgallery={mcemode:!1,editor:{},dom:{},is_update:!1,el:{},I:function(e){return document.getElementById(e)},init:function(){var e,t,i,n,o=this,l=o.getWin();if(o.mcemode){for(e=(""+document.location.search).replace(/^\?/,"").split("&"),t={},i=0;i*").length&&(e=wpgallery.getWin(),n("#save-all, #gallery-settings").show(),void 0!==e.tinyMCE&&e.tinyMCE.activeEditor&&!e.tinyMCE.activeEditor.isHidden()?(wpgallery.mcemode=!0,wpgallery.init()):n("#insert-gallery").show())}),window.tinymce=null,window.wpgallery={mcemode:!1,editor:{},dom:{},is_update:!1,el:{},I:function(e){return document.getElementById(e)},init:function(){var e,t,i,n,o=this,l=o.getWin();if(o.mcemode){for(e=(""+document.location.search).replace(/^\?/,"").split("&"),t={},i=0;ithis.hold.oh||s&&s>this.hold.ow?(t.css("visibility","visible"),n.prop("disabled",!0)):(t.css("visibility","hidden"),n.prop("disabled",!1)))},getSelRatio:function(t){var i=this.hold.w,e=this.hold.h,a=this.intval(c("#imgedit-crop-width-"+t).val()),t=this.intval(c("#imgedit-crop-height-"+t).val());return a&&t?a+":"+t:i&&e?i+":"+e:"1:1"},filterHistory:function(t,i){var e,a,o,s=c("#imgedit-history-"+t).val(),r=[];if(""===s)return"";if(s=JSON.parse(s),0<(e=this.intval(c("#imgedit-undone-"+t).val())))for(;0').on("load",{history:t.history},function(t){var i=c("#imgedit-crop-"+o),e=l,a=(""!==t.data.history&&(t=JSON.parse(t.data.history))[t.length-1].hasOwnProperty("c")&&(e.setDisabled(c("#image-undo-"+o),!0),c("#image-undo-"+o).trigger("focus")),i.empty().append(r),t=Math.max(e.hold.w,e.hold.h),a=Math.max(c(r).width(),c(r).height()),e.hold.sizer=a

'+t+"

"),i.toggleEditor(o,0,!0),wp.a11y.speak(t,"assertive")}).attr("src",ajaxurl+"?"+c.param(t))},action:function(i,t,e){var a,o,s,r,n=this;if(n.notsaved(i))return!1;if(t={action:"image-editor",_ajax_nonce:t,postid:i},"scale"===e){if(a=c("#imgedit-scale-width-"+i),o=c("#imgedit-scale-height-"+i),s=n.intval(a.val()),r=n.intval(o.val()),s<1)return a.trigger("focus"),!1;if(r<1)return o.trigger("focus"),!1;if(s===n.hold.ow||r===n.hold.oh)return!1;t.do="scale",t.fwidth=s,t.fheight=r}else{if("restore"!==e)return!1;t.do="restore"}n.toggleEditor(i,1),c.post(ajaxurl,t,function(t){c("#image-editor-"+i).empty().append(t.data.html),n.toggleEditor(i,0,!0),n._view&&n._view.refresh()}).done(function(t){t&&t.data.message.msg?wp.a11y.speak(t.data.message.msg):t&&t.data.message.error&&wp.a11y.speak(t.data.message.error)})},save:function(i,t){var e=this.getTarget(i),a=this.filterHistory(i,0),o=this;if(""===a)return!1;this.toggleEditor(i,1),t={action:"image-editor",_ajax_nonce:t,postid:i,history:a,target:e,context:c("#image-edit-context").length?c("#image-edit-context").val():null,do:"save"},c.post(ajaxurl,t,function(t){t.data.error?(c("#imgedit-response-"+i).html('"),l.close(i),wp.a11y.speak(t.data.error)):(t.data.fw&&t.data.fh&&c("#media-dims-"+i).html(t.data.fw+" × "+t.data.fh),t.data.thumbnail&&c(".thumbnail","#thumbnail-head-"+i).attr("src",""+t.data.thumbnail),t.data.msg&&(c("#imgedit-response-"+i).html('"),wp.a11y.speak(t.data.msg)),o._view?o._view.save():l.close(i))})},open:function(e,t,i){this._view=i;var a=c("#image-editor-"+e),o=c("#media-head-"+e),s=c("#imgedit-open-btn-"+e),r=s.siblings(".spinner");if(!s.hasClass("button-activated"))return r.addClass("is-active"),c.ajax({url:ajaxurl,type:"post",data:{action:"image-editor",_ajax_nonce:t,postid:e,do:"open"},beforeSend:function(){s.addClass("button-activated")}}).done(function(t){var i;"-1"===t&&(i=n("Could not load the preview image."),a.html('")),t.data&&t.data.html&&a.html(t.data.html),o.fadeOut("fast",function(){a.fadeIn("fast",function(){i&&c(document).trigger("image-editor-ui-ready")}),s.removeClass("button-activated"),r.removeClass("is-active")}),l.init(e)})},imgLoaded:function(t){var i=c("#image-preview-"+t),e=c("#imgedit-crop-"+t);void 0===this.hold.sizer&&this.init(t),this.initCrop(t,i,e),this.setCropSelection(t,{x1:0,y1:0,x2:0,y2:0,width:i.innerWidth(),height:i.innerHeight()}),this.toggleEditor(t,0,!0)},focusManager:function(){setTimeout(function(){var t=c('.notice[role="alert"]');(t=t.length?t:c(".imgedit-wrap").find(":tabbable:first")).trigger("focus")},100)},initCrop:function(a,t,i){var o=this,s=c("#imgedit-sel-width-"+a),r=c("#imgedit-sel-height-"+a),n=c("#imgedit-start-x-"+a),d=c("#imgedit-start-y-"+a),t=c(t);t.data("imgAreaSelect")||(o.iasapi=t.imgAreaSelect({parent:i,instance:!0,handles:!0,keys:!0,minWidth:3,minHeight:3,onInit:function(t){c(t).next().css("position","absolute").nextAll(".imgareaselect-outer").css("position","absolute"),i.children().on("mousedown, touchstart",function(t){var i,e=!1;t.shiftKey&&(t=o.iasapi.getSelection(),i=o.getSelRatio(a),e=t&&t.width&&t.height?t.width+":"+t.height:i),o.iasapi.setOptions({aspectRatio:e})})},onSelectStart:function(){l.setDisabled(c("#imgedit-crop-sel-"+a),1),l.setDisabled(c(".imgedit-crop-clear"),1),l.setDisabled(c(".imgedit-crop-apply"),1)},onSelectEnd:function(t,i){l.setCropSelection(a,i),c("#imgedit-crop > *").is(":visible")||l.toggleControls(c(".imgedit-crop.button"))},onSelectChange:function(t,i){var e=l.hold.sizer;s.val(l.round(i.width/e)),r.val(l.round(i.height/e)),n.val(l.round(i.x1/e)),d.val(l.round(i.y1/e))}}))},setCropSelection:function(t,i){if(!(i=i||0)||i.width<3&&i.height<3)return this.setDisabled(c(".imgedit-crop","#imgedit-panel-"+t),1),this.setDisabled(c("#imgedit-crop-sel-"+t),1),c("#imgedit-sel-width-"+t).val(""),c("#imgedit-sel-height-"+t).val(""),c("#imgedit-start-x-"+t).val("0"),c("#imgedit-start-y-"+t).val("0"),c("#imgedit-selection-"+t).val(""),!1;i={x:i.x1,y:i.y1,w:i.width,h:i.height},this.setDisabled(c(".imgedit-crop","#imgedit-panel-"+t),1),c("#imgedit-selection-"+t).val(JSON.stringify(i))},close:function(t,i){if((i=i||!1)&&this.notsaved(t))return!1;this.iasapi={},this.hold={},this._view?this._view.back():c("#image-editor-"+t).fadeOut("fast",function(){c("#media-head-"+t).fadeIn("fast",function(){c("#imgedit-open-btn-"+t).trigger("focus")}),c(this).empty()})},notsaved:function(t){var i=c("#imgedit-history-"+t).val(),i=""!==i?JSON.parse(i):[];return this.intval(c("#imgedit-undone-"+t).val())

'+o+"

"),wp.a11y.speak(o,"assertive"),c(i?"#imgedit-crop-height-"+t:"#imgedit-crop-width-"+t).val("")):void 0!==(s=c("#imgedit-crop-"+t).find(".notice-error"))&&s.remove(),this.iasapi.setSelection(e.x1,e.y1,e.x2,a),this.iasapi.update())},validateNumeric:function(t){if(!1===this.intval(c(t).val()))return c(t).val(""),!1}}}(jQuery); \ No newline at end of file +!function(c){var n=wp.i18n.__,l=window.imageEdit={iasapi:{},hold:{},postid:"",_view:!1,toggleCropTool:function(t,i,e){var a,o,r,s=c("#image-preview-"+t),n=this.iasapi.getSelection();l.toggleControls(e),"false"==("true"===c(e).attr("aria-expanded")?"true":"false")?(this.iasapi.cancelSelection(),l.setDisabled(c(".imgedit-crop-clear"),0)):(l.setDisabled(c(".imgedit-crop-clear"),1),e=c("#imgedit-start-x-"+t).val()?c("#imgedit-start-x-"+t).val():0,a=c("#imgedit-start-y-"+t).val()?c("#imgedit-start-y-"+t).val():0,o=c("#imgedit-sel-width-"+t).val()?c("#imgedit-sel-width-"+t).val():s.innerWidth(),r=c("#imgedit-sel-height-"+t).val()?c("#imgedit-sel-height-"+t).val():s.innerHeight(),isNaN(n.x1)&&(this.setCropSelection(t,{x1:e,y1:a,x2:o,y2:r,width:o,height:r}),n=this.iasapi.getSelection()),0===n.x1&&0===n.y1&&0===n.x2&&0===n.y2?this.iasapi.setSelection(0,0,s.innerWidth(),s.innerHeight(),!0):this.iasapi.setSelection(e,a,o,r,!0),this.iasapi.setOptions({show:!0}),this.iasapi.update())},handleCropToolClick:function(t,i,e){e.classList.contains("imgedit-crop-clear")?(this.iasapi.cancelSelection(),l.setDisabled(c(".imgedit-crop-apply"),0),c("#imgedit-sel-width-"+t).val(""),c("#imgedit-sel-height-"+t).val(""),c("#imgedit-start-x-"+t).val("0"),c("#imgedit-start-y-"+t).val("0"),c("#imgedit-selection-"+t).val("")):l.crop(t,i,e)},intval:function(t){return 0|t},setDisabled:function(t,i){i?t.removeClass("disabled").prop("disabled",!1):t.addClass("disabled").prop("disabled",!0)},init:function(e){var t=this,i=c("#image-editor-"+t.postid),a=t.intval(c("#imgedit-x-"+e).val()),o=t.intval(c("#imgedit-y-"+e).val());t.postid!==e&&i.length&&t.close(t.postid),t.hold.w=t.hold.ow=a,t.hold.h=t.hold.oh=o,t.hold.xy_ratio=a/o,t.hold.sizer=parseFloat(c("#imgedit-sizer-"+e).val()),t.postid=e,c("#imgedit-response-"+e).empty(),c("#imgedit-panel-"+e).on("keypress",function(t){var i=c("#imgedit-nonce-"+e).val();26===t.which&&t.ctrlKey&&l.undo(e,i),25===t.which&&t.ctrlKey&&l.redo(e,i)}),c("#imgedit-panel-"+e).on("keypress",'input[type="text"]',function(t){var i=t.keyCode;if(36this.hold.oh||r&&r>this.hold.ow?(t.css("visibility","visible"),n.prop("disabled",!0)):(t.css("visibility","hidden"),n.prop("disabled",!1)))},getSelRatio:function(t){var i=this.hold.w,e=this.hold.h,a=this.intval(c("#imgedit-crop-width-"+t).val()),t=this.intval(c("#imgedit-crop-height-"+t).val());return a&&t?a+":"+t:i&&e?i+":"+e:"1:1"},filterHistory:function(t,i){var e,a,o,r=c("#imgedit-history-"+t).val(),s=[];if(""===r)return"";if(r=JSON.parse(r),0<(e=this.intval(c("#imgedit-undone-"+t).val())))for(;0').on("load",{history:t.history},function(t){var i=c("#imgedit-crop-"+o),e=l,a=(""!==t.data.history&&(t=JSON.parse(t.data.history))[t.length-1].hasOwnProperty("c")&&(e.setDisabled(c("#image-undo-"+o),!0),c("#image-undo-"+o).trigger("focus")),i.empty().append(s),t=Math.max(e.hold.w,e.hold.h),a=Math.max(c(s).width(),c(s).height()),e.hold.sizer=a

'+t+"

"),i.toggleEditor(o,0,!0),wp.a11y.speak(t,"assertive")}).attr("src",ajaxurl+"?"+c.param(t))},action:function(i,t,e){var a,o,r,s,n=this;if(n.notsaved(i))return!1;if(t={action:"image-editor",_ajax_nonce:t,postid:i},"scale"===e){if(a=c("#imgedit-scale-width-"+i),o=c("#imgedit-scale-height-"+i),r=n.intval(a.val()),s=n.intval(o.val()),r<1)return a.trigger("focus"),!1;if(s<1)return o.trigger("focus"),!1;if(r===n.hold.ow||s===n.hold.oh)return!1;t.do="scale",t.fwidth=r,t.fheight=s}else{if("restore"!==e)return!1;t.do="restore"}n.toggleEditor(i,1),c.post(ajaxurl,t,function(t){c("#image-editor-"+i).empty().append(t.data.html),n.toggleEditor(i,0,!0),n._view&&n._view.refresh()}).done(function(t){t&&t.data.message.msg?wp.a11y.speak(t.data.message.msg):t&&t.data.message.error&&wp.a11y.speak(t.data.message.error)})},save:function(i,t){var e=this.getTarget(i),a=this.filterHistory(i,0),o=this;if(""===a)return!1;this.toggleEditor(i,1),t={action:"image-editor",_ajax_nonce:t,postid:i,history:a,target:e,context:c("#image-edit-context").length?c("#image-edit-context").val():null,do:"save"},c.post(ajaxurl,t,function(t){t.data.error?(c("#imgedit-response-"+i).html('"),l.close(i),wp.a11y.speak(t.data.error)):(t.data.fw&&t.data.fh&&c("#media-dims-"+i).html(t.data.fw+" × "+t.data.fh),t.data.thumbnail&&c(".thumbnail","#thumbnail-head-"+i).attr("src",""+t.data.thumbnail),t.data.msg&&(c("#imgedit-response-"+i).html('"),wp.a11y.speak(t.data.msg)),o._view?o._view.save():l.close(i))})},open:function(e,t,i){this._view=i;var a=c("#image-editor-"+e),o=c("#media-head-"+e),r=c("#imgedit-open-btn-"+e),s=r.siblings(".spinner");if(!r.hasClass("button-activated"))return s.addClass("is-active"),c.ajax({url:ajaxurl,type:"post",data:{action:"image-editor",_ajax_nonce:t,postid:e,do:"open"},beforeSend:function(){r.addClass("button-activated")}}).done(function(t){var i;"-1"===t&&(i=n("Could not load the preview image."),a.html('")),t.data&&t.data.html&&a.html(t.data.html),o.fadeOut("fast",function(){a.fadeIn("fast",function(){i&&c(document).trigger("image-editor-ui-ready")}),r.removeClass("button-activated"),s.removeClass("is-active")}),l.init(e)})},imgLoaded:function(t){var i=c("#image-preview-"+t),e=c("#imgedit-crop-"+t);void 0===this.hold.sizer&&this.init(t),this.initCrop(t,i,e),this.setCropSelection(t,{x1:0,y1:0,x2:0,y2:0,width:i.innerWidth(),height:i.innerHeight()}),this.toggleEditor(t,0,!0)},focusManager:function(){setTimeout(function(){var t=c('.notice[role="alert"]');(t=t.length?t:c(".imgedit-wrap").find(":tabbable:first")).attr("tabindex","-1").trigger("focus")},100)},initCrop:function(a,t,i){var o=this,r=c("#imgedit-sel-width-"+a),s=c("#imgedit-sel-height-"+a),n=c("#imgedit-start-x-"+a),d=c("#imgedit-start-y-"+a),t=c(t);t.data("imgAreaSelect")||(o.iasapi=t.imgAreaSelect({parent:i,instance:!0,handles:!0,keys:!0,minWidth:3,minHeight:3,onInit:function(t){c(t).next().css("position","absolute").nextAll(".imgareaselect-outer").css("position","absolute"),i.children().on("mousedown, touchstart",function(t){var i,e=!1;t.shiftKey&&(t=o.iasapi.getSelection(),i=o.getSelRatio(a),e=t&&t.width&&t.height?t.width+":"+t.height:i),o.iasapi.setOptions({aspectRatio:e})})},onSelectStart:function(){l.setDisabled(c("#imgedit-crop-sel-"+a),1),l.setDisabled(c(".imgedit-crop-clear"),1),l.setDisabled(c(".imgedit-crop-apply"),1)},onSelectEnd:function(t,i){l.setCropSelection(a,i),c("#imgedit-crop > *").is(":visible")||l.toggleControls(c(".imgedit-crop.button"))},onSelectChange:function(t,i){var e=l.hold.sizer;r.val(l.round(i.width/e)),s.val(l.round(i.height/e)),n.val(l.round(i.x1/e)),d.val(l.round(i.y1/e))}}))},setCropSelection:function(t,i){if(!(i=i||0)||i.width<3&&i.height<3)return this.setDisabled(c(".imgedit-crop","#imgedit-panel-"+t),1),this.setDisabled(c("#imgedit-crop-sel-"+t),1),c("#imgedit-sel-width-"+t).val(""),c("#imgedit-sel-height-"+t).val(""),c("#imgedit-start-x-"+t).val("0"),c("#imgedit-start-y-"+t).val("0"),c("#imgedit-selection-"+t).val(""),!1;i={x:i.x1,y:i.y1,w:i.width,h:i.height},this.setDisabled(c(".imgedit-crop","#imgedit-panel-"+t),1),c("#imgedit-selection-"+t).val(JSON.stringify(i))},close:function(t,i){if((i=i||!1)&&this.notsaved(t))return!1;this.iasapi={},this.hold={},this._view?this._view.back():c("#image-editor-"+t).fadeOut("fast",function(){c("#media-head-"+t).fadeIn("fast",function(){c("#imgedit-open-btn-"+t).trigger("focus")}),c(this).empty()})},notsaved:function(t){var i=c("#imgedit-history-"+t).val(),i=""!==i?JSON.parse(i):[];return this.intval(c("#imgedit-undone-"+t).val())

'+o+"

"),wp.a11y.speak(o,"assertive"),c(i?"#imgedit-crop-height-"+t:"#imgedit-crop-width-"+t).val("")):void 0!==(r=c("#imgedit-crop-"+t).find(".notice-error"))&&r.remove(),this.iasapi.setSelection(e.x1,e.y1,e.x2,a),this.iasapi.update())},validateNumeric:function(t){if(!1===this.intval(c(t).val()))return c(t).val(""),!1}}}(jQuery); \ No newline at end of file diff --git a/wp/wp-admin/js/inline-edit-post.js b/wp/wp-admin/js/inline-edit-post.js index db06072c..e7d4496b 100644 --- a/wp/wp-admin/js/inline-edit-post.js +++ b/wp/wp-admin/js/inline-edit-post.js @@ -449,13 +449,6 @@ window.wp = window.wp || {}; }; fields = $('#edit-'+id).find(':input').serialize(); - - var status = $(':input[name="_status"]').val(); - - if ( [ 'draft', 'pending', 'auto-draft' ].includes( status ) ) { - params.edit_date = 'false'; - } - params = fields + '&' + $.param(params); // Make Ajax request. diff --git a/wp/wp-admin/js/inline-edit-post.min.js b/wp/wp-admin/js/inline-edit-post.min.js index 173d601e..6956f57c 100644 --- a/wp/wp-admin/js/inline-edit-post.min.js +++ b/wp/wp-admin/js/inline-edit-post.min.js @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -window.wp=window.wp||{},function(u,h){window.inlineEditPost={init:function(){var i=this,t=u("#inline-edit"),e=u("#bulk-edit");i.type=u("table.widefat").hasClass("pages")?"page":"post",i.what="#post-",t.on("keyup",function(t){if(27===t.which)return inlineEditPost.revert()}),e.on("keyup",function(t){if(27===t.which)return inlineEditPost.revert()}),u(".cancel",t).on("click",function(){return inlineEditPost.revert()}),u(".save",t).on("click",function(){return inlineEditPost.save(this)}),u("td",t).on("keydown",function(t){if(13===t.which&&!u(t.target).hasClass("cancel"))return inlineEditPost.save(this)}),u(".cancel",e).on("click",function(){return inlineEditPost.revert()}),u('#inline-edit .inline-edit-private input[value="private"]').on("click",function(){var t=u("input.inline-edit-password-input");u(this).prop("checked")?t.val("").prop("disabled",!0):t.prop("disabled",!1)}),u("#the-list").on("click",".editinline",function(){u(this).attr("aria-expanded","true"),inlineEditPost.edit(this)}),u("#bulk-edit").find("fieldset:first").after(u("#inline-edit fieldset.inline-edit-categories").clone()).siblings("fieldset:last").prepend(u("#inline-edit .inline-edit-tags-wrap").clone()),u('select[name="_status"] option[value="future"]',e).remove(),u("#doaction").on("click",function(t){var e;i.whichBulkButtonId=u(this).attr("id"),e=i.whichBulkButtonId.substr(2),"edit"===u('select[name="'+e+'"]').val()?(t.preventDefault(),i.setBulk()):0