From 9b0a489737e2d8a9e838677773239e0b73eec742 Mon Sep 17 00:00:00 2001 From: KJ Roelke Date: Sun, 26 Apr 2026 14:53:13 -0500 Subject: [PATCH 1/3] Add PMPro_Handler for content access control and update changelog --- .vscode/settings.json | 1 + CHANGELOG.md | 4 + composer.json | 4 +- composer.lock | 106 ++++++++++++++++++++++++++- inc/plugins/class-pmpro-handler.php | 109 ++++++++++++++++++++++++++++ inc/theme/class-plugin-handler.php | 14 ++++ 6 files changed, 236 insertions(+), 2 deletions(-) create mode 100644 inc/plugins/class-pmpro-handler.php diff --git a/.vscode/settings.json b/.vscode/settings.json index 9c78e74..cc6822e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -47,6 +47,7 @@ "cpts", "Linktree", "macrosbysara", + "pmpro", "remoteip", "trackbacks", "wght", diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f43e00..06b3f63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.1.0 - [April 12, 2026] + +- Added: PMPro_Handler to lock down CPTs and Queries for Consistency Club posts + ## 3.0.1 - [April 11, 2026] - Fixed: Add plugin handling back into the theme init diff --git a/composer.json b/composer.json index c809347..6425b83 100644 --- a/composer.json +++ b/composer.json @@ -28,6 +28,8 @@ } }, "require-dev": { - "wp-coding-standards/wpcs": "*" + "wp-coding-standards/wpcs": "*", + "php-stubs/wordpress-stubs": "*", + "php-stubs/acf-pro-stubs": "*" } } diff --git a/composer.lock b/composer.lock index 8338c2d..67f246c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1433a1186788e5a6a8c82f782ef20c58", + "content-hash": "802d2be9f9739fa1c64149ae21374b41", "packages": [], "packages-dev": [ { @@ -103,6 +103,110 @@ ], "time": "2025-11-11T04:32:07+00:00" }, + { + "name": "php-stubs/acf-pro-stubs", + "version": "v6.5.0", + "source": { + "type": "git", + "url": "https://github.com/php-stubs/acf-pro-stubs.git", + "reference": "e54ba80a945fd1f6c9ebe761e3f19992fbaedb39" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-stubs/acf-pro-stubs/zipball/e54ba80a945fd1f6c9ebe761e3f19992fbaedb39", + "reference": "e54ba80a945fd1f6c9ebe761e3f19992fbaedb39", + "shasum": "" + }, + "require": { + "php-stubs/wordpress-stubs": "^4.7 || ^5.0 || ^6.0" + }, + "require-dev": { + "php": "~7.1 || ^8.0", + "php-stubs/generator": "^0.8", + "phpdocumentor/reflection-docblock": "^5.3" + }, + "suggest": { + "symfony/polyfill-php73": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "szepeviktor/phpstan-wordpress": "WordPress extensions for PHPStan" + }, + "type": "library", + "extra": { + "installer-paths": { + "source/{$name}/": [ + "type:wordpress-plugin" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Advanced Custom Fields PRO stubs for static analysis.", + "homepage": "https://github.com/php-stubs/acf-pro-stubs", + "keywords": [ + "PHPStan", + "acf", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/php-stubs/acf-pro-stubs/issues", + "source": "https://github.com/php-stubs/acf-pro-stubs/tree/v6.5.0" + }, + "time": "2025-09-05T00:47:01+00:00" + }, + { + "name": "php-stubs/wordpress-stubs", + "version": "v6.9.1", + "source": { + "type": "git", + "url": "https://github.com/php-stubs/wordpress-stubs.git", + "reference": "f12220f303e0d7c0844c0e5e957b0c3cee48d2f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/f12220f303e0d7c0844c0e5e957b0c3cee48d2f7", + "reference": "f12220f303e0d7c0844c0e5e957b0c3cee48d2f7", + "shasum": "" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "5.6.1" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "nikic/php-parser": "^5.5", + "php": "^7.4 || ^8.0", + "php-stubs/generator": "^0.8.3", + "phpdocumentor/reflection-docblock": "^6.0", + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^9.5", + "symfony/polyfill-php80": "*", + "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.1.1", + "wp-coding-standards/wpcs": "3.1.0 as 2.3.0" + }, + "suggest": { + "paragonie/sodium_compat": "Pure PHP implementation of libsodium", + "symfony/polyfill-php80": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "szepeviktor/phpstan-wordpress": "WordPress extensions for PHPStan" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "WordPress function and class declaration stubs for static analysis.", + "homepage": "https://github.com/php-stubs/wordpress-stubs", + "keywords": [ + "PHPStan", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/php-stubs/wordpress-stubs/issues", + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.9.1" + }, + "time": "2026-02-03T19:29:21+00:00" + }, { "name": "phpcsstandards/phpcsextra", "version": "1.5.0", diff --git a/inc/plugins/class-pmpro-handler.php b/inc/plugins/class-pmpro-handler.php new file mode 100644 index 0000000..f8fc112 --- /dev/null +++ b/inc/plugins/class-pmpro-handler.php @@ -0,0 +1,109 @@ +consistency_club_levels = array_map( 'strval', $consistency_club_levels ); + $this->cc_post_type_slug = $cc_post_type_slug; + } + + /** + * Check if the current user has a valid membership level. + * + * @param ?int $user_id [Optional] The ID of the user to check. Defaults to the current user. + * @return bool True if the user has a valid membership level, false otherwise. + */ + private function user_has_valid_level( ?int $user_id = null ): bool { + if ( current_user_can( 'manage_options' ) ) { + return true; + } + return pmpro_hasMembershipLevel( $this->consistency_club_levels, $user_id ); + } + + /** + * Check if a post is marked as a freebie. + * + * @param ?int $post_id [Optional] The ID of the post to check. Defaults to the current post in the loop. + * @return bool True if the post is a freebie, false otherwise. + */ + private function post_is_freebie( ?int $post_id = null ): bool { + if ( is_null( $post_id ) ) { + $post_id = get_the_ID(); + } + return has_term( 'freebie', 'cc-tag', $post_id ); + } + + /** + * Lock down CPT. + */ + public function lock_down_cpt() { + add_filter( 'the_content', array( $this, 'lock_down_single_content' ) ); + add_action( 'pre_get_posts', array( $this, 'lock_down_queries' ) ); + } + + /** + * Lock down the content of single CPT pages. + * + * @param string $content The original content. + * @return string The modified content if access is denied, otherwise the original content. + */ + public function lock_down_single_content( $content ): string { + if ( is_singular( $this->cc_post_type_slug ) ) { + if ( ! $this->user_has_valid_level() && ! $this->post_is_freebie() ) { + return '

You must be a member to view this content.

'; + } + } + return $content; + } + + /** + * Lock down queries for the CPT archive and single pages. + * + * @param WP_Query $query The current query object. + */ + public function lock_down_queries( WP_Query $query ): void { + if ( is_admin() || ! $query->is_main_query() ) { + return; + } + + $restricted_post_types = array( $this->cc_post_type_slug ); + + if ( is_post_type_archive( $restricted_post_types ) || is_singular( $restricted_post_types ) ) { + if ( ! $this->user_has_valid_level() && ! $this->post_is_freebie() ) { + wp_safe_redirect( '/consistency-club' ); + exit; + } + } + } +} diff --git a/inc/theme/class-plugin-handler.php b/inc/theme/class-plugin-handler.php index 6f67913..a961b02 100644 --- a/inc/theme/class-plugin-handler.php +++ b/inc/theme/class-plugin-handler.php @@ -8,6 +8,7 @@ namespace MacrosBySara\Theme; use MacrosBySara\Plugins\ACF_Handler; +use MacrosBySara\Plugins\PMPro_Handler; /** * Class: Plugin Handler @@ -18,6 +19,7 @@ class Plugin_Handler { */ public function handle_plugins() { $this->handle_acf(); + $this->handle_pmpro(); } /** @@ -31,4 +33,16 @@ private function handle_acf() { $acf_handler->init_save_filters(); add_filter( 'acf/settings/load_json', array( $acf_handler, 'load_json_paths' ) ); } + + /** + * Handle PMPro + */ + private function handle_pmpro() { + if ( ! is_plugin_active( 'paid-memberships-pro/paid-memberships-pro.php' ) ) { + return; + } + $consistency_club_levels = array( 2, 3, 4, 5 ); // Define your PMPro membership levels here + $pmpro_handler = new PMPro_Handler( $consistency_club_levels, 'cc-post' ); + $pmpro_handler->lock_down_cpt(); + } } From 14bc29ed50e2bf9818443eb95c3b8ab6dc184564 Mon Sep 17 00:00:00 2001 From: KJ Roelke Date: Wed, 29 Apr 2026 19:52:01 -0500 Subject: [PATCH 2/3] add custom cancel message Co-authored-by: Copilot --- .vscode/settings.json | 4 +- functions.php | 2 +- inc/plugins/class-pmpro-handler.php | 34 +- inc/theme/class-plugin-handler.php | 3 +- inc/theme/navwalkers/class-navwalker.php | 2 +- package-lock.json | 1081 ++++------------------ 6 files changed, 242 insertions(+), 884 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cc6822e..56bbdb4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -45,13 +45,15 @@ "choctawnationofoklahoma", "classmap", "cpts", + "kses", "Linktree", "macrosbysara", "pmpro", "remoteip", "trackbacks", "wght", - "wpcf" + "wpcf", + "wpdb" ], "css.format.spaceAroundSelectorSeparator": true, "editor.codeActionsOnSave": { diff --git a/functions.php b/functions.php index e4104be..92f799c 100644 --- a/functions.php +++ b/functions.php @@ -14,4 +14,4 @@ wp_die( 'Autoloader not found. Please run composer install.' ); } $theme = new Theme_Init(); -add_action( 'after_setup_theme', array( $theme, 'bootstrap_theme' ) ); \ No newline at end of file +add_action( 'after_setup_theme', array( $theme, 'bootstrap_theme' ) ); diff --git a/inc/plugins/class-pmpro-handler.php b/inc/plugins/class-pmpro-handler.php index f8fc112..1032040 100644 --- a/inc/plugins/class-pmpro-handler.php +++ b/inc/plugins/class-pmpro-handler.php @@ -7,6 +7,7 @@ namespace MacrosBySara\Plugins; +use stdClass; use WP_Query; /** @@ -30,12 +31,12 @@ class PMPro_Handler { /** * Constructor * - * @param int[] $consistency_club_levels An array of PMPro membership levels that grant access to the content. * @param string $cc_post_type_slug The slug of the custom post type to lock + * @param int[] $consistency_club_levels An array of PMPro membership levels that grant access to the content. */ - public function __construct( array $consistency_club_levels = array(), string $cc_post_type_slug ) { - $this->consistency_club_levels = array_map( 'strval', $consistency_club_levels ); + public function __construct( string $cc_post_type_slug, array $consistency_club_levels = array() ) { $this->cc_post_type_slug = $cc_post_type_slug; + $this->consistency_club_levels = array_map( 'strval', $consistency_club_levels ); } /** @@ -106,4 +107,31 @@ public function lock_down_queries( WP_Query $query ): void { } } } + + /** + * Edit visible member action links to prevent cancellation for certain levels. + * + * @param array $links The original action links. + * @param string $level The membership level ID. + */ + public function edit_membership_action_links( array $links, $level ): array { + $one_time_payment_levels = array( '3', '5' ); + if ( in_array( $level, $one_time_payment_levels, true ) ) { + if ( isset( $links['renew'] ) ) { + unset( $links['renew'] ); + } + } + $user_id = get_current_user_id(); + if ( empty( $user_id ) ) { + return $links; + } + // if ( mbs_user_can_cancel( $user_id ) ) { + // return $links; + // } + $links['commitment'] = 'You signed a 3-month contract. If you need to cancel, you can discuss this with us directly.'; + if ( isset( $links['cancel'] ) ) { + unset( $links['cancel'] ); + } + return $links; + } } diff --git a/inc/theme/class-plugin-handler.php b/inc/theme/class-plugin-handler.php index a961b02..e09fe35 100644 --- a/inc/theme/class-plugin-handler.php +++ b/inc/theme/class-plugin-handler.php @@ -42,7 +42,8 @@ private function handle_pmpro() { return; } $consistency_club_levels = array( 2, 3, 4, 5 ); // Define your PMPro membership levels here - $pmpro_handler = new PMPro_Handler( $consistency_club_levels, 'cc-post' ); + $pmpro_handler = new PMPro_Handler( 'cc-post', $consistency_club_levels ); $pmpro_handler->lock_down_cpt(); + add_filter( 'pmpro_member_action_links', array( $pmpro_handler, 'edit_membership_action_links' ), 10, 2 ); } } diff --git a/inc/theme/navwalkers/class-navwalker.php b/inc/theme/navwalkers/class-navwalker.php index 9d3dff2..6b2f504 100644 --- a/inc/theme/navwalkers/class-navwalker.php +++ b/inc/theme/navwalkers/class-navwalker.php @@ -242,4 +242,4 @@ protected function get_the_attributes(): string { $attributes['class'] .= ' nav-link'; return $this->build_atts( $attributes ); } -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index 0121355..9020edf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "macros-by-sara-wp-theme", - "version": "2.0.2", + "version": "2.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "macros-by-sara-wp-theme", - "version": "2.0.2", + "version": "2.1.0", "license": "GPL-2.0-or-later", "dependencies": { "bootstrap": "^5.3.8" @@ -7899,29 +7899,6 @@ } } }, - "node_modules/@wordpress/eslint-plugin/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "extraneous": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, "node_modules/@wordpress/eslint-plugin/node_modules/@typescript-eslint/eslint-plugin": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", @@ -8078,20 +8055,6 @@ "node": ">=8" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "extraneous": true, - "license": "MIT" - }, - "node_modules/@wordpress/eslint-plugin/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "extraneous": true, - "license": "MIT" - }, "node_modules/@wordpress/eslint-plugin/node_modules/eslint-config-prettier": { "version": "8.10.2", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", @@ -8278,56 +8241,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/file-entry-cache": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz", - "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^6.1.20" - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/flat-cache": { - "version": "6.1.22", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.22.tgz", - "integrity": "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "cacheable": "^2.3.4", - "flatted": "^3.4.2", - "hookified": "^1.15.0" - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@wordpress/eslint-plugin/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -8365,540 +8278,306 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "extraneous": true, - "license": "MIT", + "node_modules/@wordpress/eslint-plugin/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "extraneous": true, - "license": "MIT", + "node_modules/@wordpress/global-styles-engine": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/global-styles-engine/-/global-styles-engine-1.10.0.tgz", + "integrity": "sha512-vlvboNnpCZwA5rWC5ptGqY/IzkQ8Hm3xpKtpdKsOXrIhVyXMpQudtW8H6cB7zIK4eTX84pq6yfhGyo6lJUdUSQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/blocks": "^15.16.0", + "@wordpress/data": "^10.43.0", + "@wordpress/i18n": "^6.16.0", + "@wordpress/style-engine": "^2.43.0", + "colord": "^2.9.2", + "deepmerge": "^4.3.0", + "fast-deep-equal": "^3.1.3", + "is-plain-object": "^5.0.0", + "memize": "^2.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "extraneous": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/@wordpress/hooks": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.43.0.tgz", + "integrity": "sha512-BY7GPjEwhOlgkavVak40E3RtA8Z9ehydqTZckRoesMRjXYfxKSzr1C1FT4wAPS5uXM1pNlWivfofMaJjVNQu5w==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "extraneous": true, - "license": "MIT", + "node_modules/@wordpress/html-entities": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.43.0.tgz", + "integrity": "sha512-z7C782VfH3E5dWYO4VOtN8EEhzfID2kiJmGTINiVPD8kywxp5BsBU2KJSSPvkUjqOCMNJ2XhkYPgADKi9O1U7A==", + "dev": true, + "license": "GPL-2.0-or-later", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", - "extraneous": true, - "license": "MIT", + "node_modules/@wordpress/i18n": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.16.0.tgz", + "integrity": "sha512-D8yiDLzOrs9Aa4Cc1nm7m2OMilZeG9Qd7zHauMIDQujwHOe9xrOyH9ppDDko6AAWb+GeUYsf5zf2Efu5saLq0w==", + "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "@tannin/sprintf": "^1.3.2", + "@wordpress/hooks": "^4.43.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" }, "engines": { - "node": ">=4" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "node_modules/@wordpress/icons": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-12.1.0.tgz", + "integrity": "sha512-JOEVd94kZQsGYyLhjq1edfaMOTPON/7qUDuzT74uSwSCJ6OiHf3yJHfxMlLOMoh12dQshWPciLVLagkYLCldag==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/element": "^6.43.0", + "@wordpress/primitives": "^4.43.0", + "change-case": "4.1.2" }, "engines": { - "node": ">=10" + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "extraneous": true, - "license": "ISC", + "node_modules/@wordpress/image-cropper": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@wordpress/image-cropper/-/image-cropper-1.7.0.tgz", + "integrity": "sha512-yVY8+V39Jv15HDIAFOLP7wjUeacX5Ws6Tu7bIijak92i0nYfi190u93PS1bIjBWqwLZMh+jwdNu0qS0LHwylBQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/components": "^32.5.0", + "@wordpress/element": "^6.43.0", + "@wordpress/i18n": "^6.16.0", + "clsx": "^2.1.1", + "dequal": "^2.0.3", + "react-easy-crop": "^5.4.2" + }, "engines": { - "node": ">=14" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "extraneous": true, - "license": "MIT", + "node_modules/@wordpress/interactivity": { + "version": "6.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/interactivity/-/interactivity-6.43.0.tgz", + "integrity": "sha512-v+7isar/S6XECBF3NbRr3+PW8lSGo+c8nt80NHqb+LIPQmG6/0xZ7GourL7OZLkY1cRSSqvSokV6zwQ2kfmRhg==", + "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@preact/signals": "^1.3.0", + "preact": "^10.24.2" }, "engines": { - "node": ">=8" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/stylelint": { - "version": "16.26.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz", - "integrity": "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==", - "extraneous": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-syntax-patches-for-csstree": "^1.0.19", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3", - "@csstools/selector-specificity": "^5.0.0", - "@dual-bundle/import-meta-resolve": "^4.2.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.3", - "css-tree": "^3.1.0", - "debug": "^4.4.3", - "fast-glob": "^3.3.3", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^11.1.1", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "ignore": "^7.0.5", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mathml-tag-names": "^2.1.3", - "meow": "^13.2.0", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.5.6", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.0", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "supports-hyperlinks": "^3.2.0", - "svg-tags": "^1.0.0", - "table": "^6.9.0", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.mjs" - }, + "node_modules/@wordpress/is-shallow-equal": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.43.0.tgz", + "integrity": "sha512-KHm4AXUXz+a30RR/bb7gQjwUU7XL5m068BAo3MC2idQXPmYVvq4zooaiVogRvX95R/kOd7m+Au+HLftXPxu77w==", + "dev": true, + "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/stylelint/node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", - "extraneous": true, - "license": "MIT", + "node_modules/@wordpress/jest-console": { + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.43.0.tgz", + "integrity": "sha512-cKkbZGXAwRc9GkQ6U0QQs3aa6N/dV/F6QZdMdcObb3cg+jXSw1N6k86Q5ZFSlpzYXrBgqNl3I59xq1cRifAA4Q==", + "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" + "jest-matcher-utils": "^29.6.2", + "jest-mock": "^29.6.2" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" + "node": ">=18.12.0", + "npm": ">=8.19.2" }, "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/stylelint/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "extraneous": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/supports-hyperlinks": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", - "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=14.18" - }, - "funding": { - "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + "jest": ">=29" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@wordpress/jest-preset-default": { + "version": "12.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.43.0.tgz", + "integrity": "sha512-PY5HoTa5oQ+oIzxh6f4J9h0P1mqNDC0MoJuLGaw4/Yu+zBSvQuW67B9D29pQcSuLsLMtaR6R1Um/HmU+M//3rw==", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "extraneous": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/@wordpress/eslint-plugin/node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "extraneous": true, - "license": "ISC", + "license": "GPL-2.0-or-later", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" + "@wordpress/jest-console": "^8.43.0", + "babel-jest": "29.7.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@babel/core": ">=7", + "jest": ">=29" } }, - "node_modules/@wordpress/global-styles-engine": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/global-styles-engine/-/global-styles-engine-1.10.0.tgz", - "integrity": "sha512-vlvboNnpCZwA5rWC5ptGqY/IzkQ8Hm3xpKtpdKsOXrIhVyXMpQudtW8H6cB7zIK4eTX84pq6yfhGyo6lJUdUSQ==", + "node_modules/@wordpress/keyboard-shortcuts": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-5.43.0.tgz", + "integrity": "sha512-JJThUTTiJZgzzOIYHgK5CHPHwD6plK1O45e/0RpsOEe4vLCuLH0RoVAWoy/9Z4jIxXLGbwE5WdJIQkTStf+KMQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/blocks": "^15.16.0", "@wordpress/data": "^10.43.0", - "@wordpress/i18n": "^6.16.0", - "@wordpress/style-engine": "^2.43.0", - "colord": "^2.9.2", - "deepmerge": "^4.3.0", - "fast-deep-equal": "^3.1.3", - "is-plain-object": "^5.0.0", - "memize": "^2.1.0" + "@wordpress/element": "^6.43.0", + "@wordpress/keycodes": "^4.43.0" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" } }, - "node_modules/@wordpress/hooks": { + "node_modules/@wordpress/keycodes": { "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.43.0.tgz", - "integrity": "sha512-BY7GPjEwhOlgkavVak40E3RtA8Z9ehydqTZckRoesMRjXYfxKSzr1C1FT4wAPS5uXM1pNlWivfofMaJjVNQu5w==", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.43.0.tgz", + "integrity": "sha512-1F0BS9qGwYFGgMgzXFSSoBdVGqpU1mCA9UVQ1wJxi/qTMIH+sQcvD8KGoSMJLvTDjbiFc4axLilYOL7DJ0EG/A==", "dev": true, "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/i18n": "^6.16.0" + }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" } }, - "node_modules/@wordpress/html-entities": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.43.0.tgz", - "integrity": "sha512-z7C782VfH3E5dWYO4VOtN8EEhzfID2kiJmGTINiVPD8kywxp5BsBU2KJSSPvkUjqOCMNJ2XhkYPgADKi9O1U7A==", + "node_modules/@wordpress/notices": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.43.0.tgz", + "integrity": "sha512-EvYerIJQ9wc5tT/ibfKhqP3Ja75JJpcSUc11zaQECdTpG3leXGIsUBgl9GDFbd70GpDj1ZCU7NmVcTYl+y0b7w==", "dev": true, "license": "GPL-2.0-or-later", + "dependencies": { + "@wordpress/a11y": "^4.43.0", + "@wordpress/components": "^32.5.0", + "@wordpress/data": "^10.43.0", + "clsx": "^2.1.1" + }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0" } }, - "node_modules/@wordpress/i18n": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.16.0.tgz", - "integrity": "sha512-D8yiDLzOrs9Aa4Cc1nm7m2OMilZeG9Qd7zHauMIDQujwHOe9xrOyH9ppDDko6AAWb+GeUYsf5zf2Efu5saLq0w==", + "node_modules/@wordpress/npm-package-json-lint-config": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.43.0.tgz", + "integrity": "sha512-W98SP/WpGaQ9VziO1Ez88J5Lhr7l63d44RWtANueHvAndCMm2E6PgVSQTMEKUzimWI+RqQlY8AcHBx1DPyacxA==", "dev": true, "license": "GPL-2.0-or-later", - "dependencies": { - "@tannin/sprintf": "^1.3.2", - "@wordpress/hooks": "^4.43.0", - "gettext-parser": "^1.3.1", - "memize": "^2.1.0", - "tannin": "^1.2.0" - }, - "bin": { - "pot-to-php": "tools/pot-to-php.js" - }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" + }, + "peerDependencies": { + "npm-package-json-lint": ">=6.0.0" } }, - "node_modules/@wordpress/icons": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-12.1.0.tgz", - "integrity": "sha512-JOEVd94kZQsGYyLhjq1edfaMOTPON/7qUDuzT74uSwSCJ6OiHf3yJHfxMlLOMoh12dQshWPciLVLagkYLCldag==", + "node_modules/@wordpress/postcss-plugins-preset": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.43.0.tgz", + "integrity": "sha512-BlyQK1nb5TK0wLqnBiHpaz1ENngpZR8vf6gv3g2KCLstXJPl9WkM2g6GvKaDBOjodzVnGM2xs6tqlBlvfjKYxw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/element": "^6.43.0", - "@wordpress/primitives": "^4.43.0", - "change-case": "4.1.2" + "@wordpress/base-styles": "^6.19.0", + "autoprefixer": "^10.4.20", + "postcss-import": "^16.1.1" }, "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" }, "peerDependencies": { - "react": "^18.0.0" + "postcss": "^8.0.0" } }, - "node_modules/@wordpress/image-cropper": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@wordpress/image-cropper/-/image-cropper-1.7.0.tgz", - "integrity": "sha512-yVY8+V39Jv15HDIAFOLP7wjUeacX5Ws6Tu7bIijak92i0nYfi190u93PS1bIjBWqwLZMh+jwdNu0qS0LHwylBQ==", + "node_modules/@wordpress/preferences": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-4.43.0.tgz", + "integrity": "sha512-di93xiAo2IT0lnAzV6J+3d+HB1vkOKs3eAfo500STGx10akGN1NgOqSmu6O+tdzlViLzz8q1mkIZ0j3KraKkPA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { + "@wordpress/a11y": "^4.43.0", + "@wordpress/base-styles": "^6.19.0", "@wordpress/components": "^32.5.0", + "@wordpress/compose": "^7.43.0", + "@wordpress/data": "^10.43.0", + "@wordpress/deprecated": "^4.43.0", "@wordpress/element": "^6.43.0", "@wordpress/i18n": "^6.16.0", - "clsx": "^2.1.1", - "dequal": "^2.0.3", - "react-easy-crop": "^5.4.2" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@wordpress/interactivity": { - "version": "6.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/interactivity/-/interactivity-6.43.0.tgz", - "integrity": "sha512-v+7isar/S6XECBF3NbRr3+PW8lSGo+c8nt80NHqb+LIPQmG6/0xZ7GourL7OZLkY1cRSSqvSokV6zwQ2kfmRhg==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@preact/signals": "^1.3.0", - "preact": "^10.24.2" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/is-shallow-equal": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.43.0.tgz", - "integrity": "sha512-KHm4AXUXz+a30RR/bb7gQjwUU7XL5m068BAo3MC2idQXPmYVvq4zooaiVogRvX95R/kOd7m+Au+HLftXPxu77w==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/jest-console": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.43.0.tgz", - "integrity": "sha512-cKkbZGXAwRc9GkQ6U0QQs3aa6N/dV/F6QZdMdcObb3cg+jXSw1N6k86Q5ZFSlpzYXrBgqNl3I59xq1cRifAA4Q==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "jest-matcher-utils": "^29.6.2", - "jest-mock": "^29.6.2" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "jest": ">=29" - } - }, - "node_modules/@wordpress/jest-preset-default": { - "version": "12.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.43.0.tgz", - "integrity": "sha512-PY5HoTa5oQ+oIzxh6f4J9h0P1mqNDC0MoJuLGaw4/Yu+zBSvQuW67B9D29pQcSuLsLMtaR6R1Um/HmU+M//3rw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/jest-console": "^8.43.0", - "babel-jest": "29.7.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "@babel/core": ">=7", - "jest": ">=29" - } - }, - "node_modules/@wordpress/keyboard-shortcuts": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-5.43.0.tgz", - "integrity": "sha512-JJThUTTiJZgzzOIYHgK5CHPHwD6plK1O45e/0RpsOEe4vLCuLH0RoVAWoy/9Z4jIxXLGbwE5WdJIQkTStf+KMQ==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/data": "^10.43.0", - "@wordpress/element": "^6.43.0", - "@wordpress/keycodes": "^4.43.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "react": "^18.0.0" - } - }, - "node_modules/@wordpress/keycodes": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.43.0.tgz", - "integrity": "sha512-1F0BS9qGwYFGgMgzXFSSoBdVGqpU1mCA9UVQ1wJxi/qTMIH+sQcvD8KGoSMJLvTDjbiFc4axLilYOL7DJ0EG/A==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/i18n": "^6.16.0" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - } - }, - "node_modules/@wordpress/notices": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.43.0.tgz", - "integrity": "sha512-EvYerIJQ9wc5tT/ibfKhqP3Ja75JJpcSUc11zaQECdTpG3leXGIsUBgl9GDFbd70GpDj1ZCU7NmVcTYl+y0b7w==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/a11y": "^4.43.0", - "@wordpress/components": "^32.5.0", - "@wordpress/data": "^10.43.0", - "clsx": "^2.1.1" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "react": "^18.0.0" - } - }, - "node_modules/@wordpress/npm-package-json-lint-config": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.43.0.tgz", - "integrity": "sha512-W98SP/WpGaQ9VziO1Ez88J5Lhr7l63d44RWtANueHvAndCMm2E6PgVSQTMEKUzimWI+RqQlY8AcHBx1DPyacxA==", - "dev": true, - "license": "GPL-2.0-or-later", - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "npm-package-json-lint": ">=6.0.0" - } - }, - "node_modules/@wordpress/postcss-plugins-preset": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.43.0.tgz", - "integrity": "sha512-BlyQK1nb5TK0wLqnBiHpaz1ENngpZR8vf6gv3g2KCLstXJPl9WkM2g6GvKaDBOjodzVnGM2xs6tqlBlvfjKYxw==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/base-styles": "^6.19.0", - "autoprefixer": "^10.4.20", - "postcss-import": "^16.1.1" - }, - "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/@wordpress/preferences": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-4.43.0.tgz", - "integrity": "sha512-di93xiAo2IT0lnAzV6J+3d+HB1vkOKs3eAfo500STGx10akGN1NgOqSmu6O+tdzlViLzz8q1mkIZ0j3KraKkPA==", - "dev": true, - "license": "GPL-2.0-or-later", - "dependencies": { - "@wordpress/a11y": "^4.43.0", - "@wordpress/base-styles": "^6.19.0", - "@wordpress/components": "^32.5.0", - "@wordpress/compose": "^7.43.0", - "@wordpress/data": "^10.43.0", - "@wordpress/deprecated": "^4.43.0", - "@wordpress/element": "^6.43.0", - "@wordpress/i18n": "^6.16.0", - "@wordpress/icons": "^12.1.0", - "@wordpress/private-apis": "^1.43.0", - "clsx": "^2.1.1" + "@wordpress/icons": "^12.1.0", + "@wordpress/private-apis": "^1.43.0", + "clsx": "^2.1.1" }, "engines": { "node": ">=18.12.0", @@ -10004,29 +9683,6 @@ "react-dom": "^18.0.0" } }, - "node_modules/@wordpress/ui/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "extraneous": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, "node_modules/@wordpress/ui/node_modules/@wordpress/theme": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.10.0.tgz", @@ -10054,335 +9710,6 @@ } } }, - "node_modules/@wordpress/ui/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "extraneous": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@wordpress/ui/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "extraneous": true, - "license": "MIT" - }, - "node_modules/@wordpress/ui/node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@wordpress/ui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "extraneous": true, - "license": "MIT" - }, - "node_modules/@wordpress/ui/node_modules/file-entry-cache": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz", - "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^6.1.20" - } - }, - "node_modules/@wordpress/ui/node_modules/flat-cache": { - "version": "6.1.22", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.22.tgz", - "integrity": "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "cacheable": "^2.3.4", - "flatted": "^3.4.2", - "hookified": "^1.15.0" - } - }, - "node_modules/@wordpress/ui/node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@wordpress/ui/node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@wordpress/ui/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@wordpress/ui/node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "extraneous": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@wordpress/ui/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "extraneous": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@wordpress/ui/node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "extraneous": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/@wordpress/ui/node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "extraneous": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@wordpress/ui/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@wordpress/ui/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "extraneous": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@wordpress/ui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wordpress/ui/node_modules/stylelint": { - "version": "16.26.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz", - "integrity": "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==", - "extraneous": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-syntax-patches-for-csstree": "^1.0.19", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3", - "@csstools/selector-specificity": "^5.0.0", - "@dual-bundle/import-meta-resolve": "^4.2.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.3", - "css-tree": "^3.1.0", - "debug": "^4.4.3", - "fast-glob": "^3.3.3", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^11.1.1", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "ignore": "^7.0.5", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mathml-tag-names": "^2.1.3", - "meow": "^13.2.0", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.5.6", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.0", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "supports-hyperlinks": "^3.2.0", - "svg-tags": "^1.0.0", - "table": "^6.9.0", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.mjs" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@wordpress/ui/node_modules/stylelint/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "extraneous": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@wordpress/ui/node_modules/supports-hyperlinks": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", - "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=14.18" - }, - "funding": { - "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" - } - }, - "node_modules/@wordpress/ui/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "extraneous": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/@wordpress/ui/node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "extraneous": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@wordpress/undo-manager": { "version": "1.43.0", "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.43.0.tgz", From 6481f7a6c64c6028b9eaab056720bf340bb1cfed Mon Sep 17 00:00:00 2001 From: KJ Roelke Date: Mon, 4 May 2026 23:18:48 -0500 Subject: [PATCH 3/3] fix theme and remove unused code --- CHANGELOG.md | 1 + inc/plugins/class-pmpro-handler.php | 28 --------------------------- inc/theme/class-gutenberg-handler.php | 10 ---------- inc/theme/class-plugin-handler.php | 1 - inc/theme/class-theme-init.php | 11 +++++++++++ style.css | 2 +- 6 files changed, 13 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06b3f63..09e4466 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 3.1.0 - [April 12, 2026] - Added: PMPro_Handler to lock down CPTs and Queries for Consistency Club posts +- Fixed: Added Gutenberg handling back into the theme ## 3.0.1 - [April 11, 2026] diff --git a/inc/plugins/class-pmpro-handler.php b/inc/plugins/class-pmpro-handler.php index 1032040..cead458 100644 --- a/inc/plugins/class-pmpro-handler.php +++ b/inc/plugins/class-pmpro-handler.php @@ -7,7 +7,6 @@ namespace MacrosBySara\Plugins; -use stdClass; use WP_Query; /** @@ -107,31 +106,4 @@ public function lock_down_queries( WP_Query $query ): void { } } } - - /** - * Edit visible member action links to prevent cancellation for certain levels. - * - * @param array $links The original action links. - * @param string $level The membership level ID. - */ - public function edit_membership_action_links( array $links, $level ): array { - $one_time_payment_levels = array( '3', '5' ); - if ( in_array( $level, $one_time_payment_levels, true ) ) { - if ( isset( $links['renew'] ) ) { - unset( $links['renew'] ); - } - } - $user_id = get_current_user_id(); - if ( empty( $user_id ) ) { - return $links; - } - // if ( mbs_user_can_cancel( $user_id ) ) { - // return $links; - // } - $links['commitment'] = 'You signed a 3-month contract. If you need to cancel, you can discuss this with us directly.'; - if ( isset( $links['cancel'] ) ) { - unset( $links['cancel'] ); - } - return $links; - } } diff --git a/inc/theme/class-gutenberg-handler.php b/inc/theme/class-gutenberg-handler.php index f87f144..a296670 100644 --- a/inc/theme/class-gutenberg-handler.php +++ b/inc/theme/class-gutenberg-handler.php @@ -13,16 +13,6 @@ * Gutenberg Handler */ class Gutenberg_Handler { - - /** - * Constructor - */ - public function __construct() { - add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_assets' ) ); - add_action( 'after_setup_theme', array( $this, 'theme_supports' ) ); - add_action( 'init', array( $this, 'register_theme_blocks' ) ); - } - /** * Enqueue the block editor assets that control the layout of the Block Editor. */ diff --git a/inc/theme/class-plugin-handler.php b/inc/theme/class-plugin-handler.php index e09fe35..782b9be 100644 --- a/inc/theme/class-plugin-handler.php +++ b/inc/theme/class-plugin-handler.php @@ -44,6 +44,5 @@ private function handle_pmpro() { $consistency_club_levels = array( 2, 3, 4, 5 ); // Define your PMPro membership levels here $pmpro_handler = new PMPro_Handler( 'cc-post', $consistency_club_levels ); $pmpro_handler->lock_down_cpt(); - add_filter( 'pmpro_member_action_links', array( $pmpro_handler, 'edit_membership_action_links' ), 10, 2 ); } } diff --git a/inc/theme/class-theme-init.php b/inc/theme/class-theme-init.php index 80275f1..c6f3e2b 100644 --- a/inc/theme/class-theme-init.php +++ b/inc/theme/class-theme-init.php @@ -19,6 +19,7 @@ class Theme_Init { public function bootstrap_theme() { $this->disable_discussion(); $this->configure_theme_support(); + $this->configure_gutenberg_support(); $plugin_handler = new Plugin_Handler(); $plugin_handler->handle_plugins(); add_action( 'init', array( $this, 'alter_post_types' ) ); @@ -67,6 +68,16 @@ public function configure_theme_support() { ); } + /** + * Configure Gutenberg support by enqueuing block editor assets and adding theme supports for Gutenberg features. + */ + public function configure_gutenberg_support() { + $gutenberg_handler = new Gutenberg_Handler(); + $gutenberg_handler->theme_supports(); + add_action( 'enqueue_block_editor_assets', array( $gutenberg_handler, 'enqueue_block_assets' ) ); + add_action( 'init', array( $gutenberg_handler, 'register_theme_blocks' ) ); + } + /** Alter Post Types. */ public function alter_post_types() { add_post_type_support( 'page', 'excerpt' ); diff --git a/style.css b/style.css index bf8e7dd..11f7e3d 100644 --- a/style.css +++ b/style.css @@ -4,7 +4,7 @@ Theme URI: https://github.com/macrosbysara/wordpress-theme Author: KJ Roelke Author URI: https://kjroelke.online Description: A WordPress Theme built for Macros By Sara site -Version: 3.0.0 +Version: 3.1.0 Requires at least: 6.7.0 Tested up to: 6.9.4 Requires PHP: 8.2