Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recovery Mode: Fix PHP warning when accessing plugin data #8141

Conversation

himanshupathak95
Copy link

@himanshupathak95 himanshupathak95 commented Jan 17, 2025

Trac ticket: 62816

This PR fixes a PHP warning that occurs in the Recovery Mode email service when accessing plugin data that doesn't exist.

Current behavior:

WP_Recovery_Mode_Email_Service::get_plugin() can return false
The code checks for null !== $plugin which passes even when $plugin is false
This leads to a PHP warning when trying to access the array offset on the false value

Fix:

Replace the condition null !== $plugin with is_array( $plugin ) to ensure we only access array properties when we have valid plugin data. This prevents the PHP warning while maintaining the intended functionality

Copy link

Test using WordPress Playground

The 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

  • The Plugin and Theme Directories cannot be accessed within Playground.
  • All changes will be lost when closing a tab with a Playground instance.
  • All changes will be lost when refreshing the page.
  • A fresh instance is created each time the link below is clicked.
  • Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
    it's possible that the most recent build failed, or has not completed. Check the list of workflow runs to be sure.

For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation.

Test this pull request with WordPress Playground.

@himanshupathak95 himanshupathak95 marked this pull request as ready for review January 17, 2025 06:49
Copy link

github-actions bot commented Jan 17, 2025

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 props-bot label.

Core Committers: Use this line as a base for the props when committing in SVN:

Props abcd95, ankitkumarshah.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@Infinite-Null
Copy link

Hi @himanshupathak95,
I’ve tested the PR and here are the results:

Before Applying the Patch:

The following warning was encountered:

Before patch:

image

After Applying the Patch:

  • Checked out to this PR.
  • Outcome: The warnings previously observed are no longer present.

@@ -360,7 +360,7 @@ private function get_debug( $extension ) {
),
);

if ( null !== $plugin ) {
if ( is_array( $plugin ) ) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Open #8143 with slight different approach

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @mukeshpanchal27, Thanks for trying out a different approach.

I tested out the changes and they look good to me. However, I see a failing test around this line which suggests that the term splitting didn't occur as expected.

The failing test seems to be however unrelated to the changes made, but I think a re-run might make things more clear.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes test failing is not because of the file change. I don;t have permission to re-run the job someone will do that.

@mukeshpanchal27
Copy link
Member

Closing as #8143 is better approach. Feel free to reopen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants