Connectors: Add is_active callback support to plugin registration#11565
Connectors: Add is_active callback support to plugin registration#11565Adi-ty wants to merge 5 commits intoWordPress:trunkfrom
Conversation
Test using WordPress PlaygroundThe changes in this pull request can previewed and tested using a WordPress Playground instance. WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser. Some things to be aware of
For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation. |
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
6377fdc to
341e216
Compare
|
Can you add an unit test that covers this new option? This would be similar to: wordpress-develop/tests/phpunit/tests/connectors/wpConnectorRegistry.php Lines 292 to 303 in 8270db8 In particular it would be useful to cover the path when Otherwise, this looks to go and should be included in WordPress 7.0 release. |
| $is_installed = file_exists( wp_normalize_path( WP_PLUGIN_DIR . '/' . $file ) ); | ||
| $is_activated = $is_installed && is_plugin_active( $file ); | ||
| $is_activated = (bool) call_user_func( $connector_data['plugin']['is_active'] ); | ||
| $is_installed = $is_activated || file_exists( WP_PLUGIN_DIR . '/' . $file ); |
There was a problem hiding this comment.
Two notes:
- the default
is_activecall is__return_truewhich always returns true, so when not defined, it will always assume the plugin is installed file_existsno longer normalizes the path
|
Some additional feedback to evaluate. The rest looks good to me. I would appreciate confirmation from @jorgefilipecosta, too. |
…s for plugin registration
598847d to
31eb00b
Compare
|
Hi @gziolo I pushed a commit addressing your feedback and passing an is_active callback for the ai providers. |
| } | ||
| } | ||
|
|
||
| if ( ! isset( $args['plugin']['is_active'] ) ) { |
Adds an optional `is_active` callable to the `plugin` definition accepted by `WP_Connector_Registry::register()`. The callback receives no arguments, must return a boolean, and is used by the Connectors screen to decide whether a connector's backing plugin is currently active. When omitted, it defaults to `__return_true`; when provided but not callable, registration fails with a `_doing_it_wrong()` notice. Developed in: #11565 Props iamadisingh, jorgefilipecosta, mukesh27, gziolo. Fixes #65020. git-svn-id: https://develop.svn.wordpress.org/trunk@62288 602fd350-edb4-49c9-b593-d223f7449a82
Adds an optional `is_active` callable to the `plugin` definition accepted by `WP_Connector_Registry::register()`. The callback receives no arguments, must return a boolean, and is used by the Connectors screen to decide whether a connector's backing plugin is currently active. When omitted, it defaults to `__return_true`; when provided but not callable, registration fails with a `_doing_it_wrong()` notice. Developed in: WordPress/wordpress-develop#11565 Props iamadisingh, jorgefilipecosta, mukesh27, gziolo. Fixes #65020. Built from https://develop.svn.wordpress.org/trunk@62288 git-svn-id: http://core.svn.wordpress.org/trunk@61568 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Backport of WordPress/gutenberg#76994. Adds an optional
is_activecallable to theplugindefinition whenregistering a connector via
WP_Connector_Registry::register().The Connectors screen previously resolved a connector's active/installed status by checking
is_plugin_active()andfile_exists()againstWP_PLUGIN_DIRonly. Plugins installed as must-use plugins — or loaded from non-standard paths could not be detected this way, causing their connectors to disappear from the screen even though the plugin was in use.Trac ticket: https://core.trac.wordpress.org/ticket/65020
This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.