#9010 closed defect (bug) (fixed)
PHP Fatal error: Uncaught TypeError: Illegal offset type in /buddypress/bp-activity/bp-activity-functions.php:798
Reported by: | btwebdesign | Owned by: | imath |
---|---|---|---|
Milestone: | 12.0.0 | Priority: | normal |
Severity: | normal | Version: | 11.3.2 |
Component: | Activity | Keywords: | has-patch has-unit-tests |
Cc: | info@… |
Description
PHP Fatal error: Uncaught TypeError: Illegal offset type in /html/wordpress/wp-content/plugins/buddypress/bp-activity/bp-activity-functions.php:798
Error:
if ( isset( $bp->activity->track[ $activity_type ]->{$arg} ) ) {
return $bp->activity->track[ $activity_type ]->{$arg};
Solution (wrong set ]-brackets):
if ( isset( $bp->activity->track[ $activity_type ->{$arg}] ) ) {
return $bp->activity->track[ $activity_type ->{$arg}];
Buddpress Version 11.3.2 and several older versions
Change History (11)
#2
@
14 months ago
- Keywords reporter-feedback added; changes-requested removed
I can't reproduce using PHP 8.2, could you give me more information, like:
- what's the value of
$activity_type
and$arg
when you get this error ? - what's your PHP version ?
Thanks in advance.
#3
@
14 months ago
Hi,
these are the desired data:
[24-Oct-2023 19:53:43 UTC] function bp_activity_post_type_get_tracking_arg
[24-Oct-2023 19:53:43 UTC] activity_type:
[24-Oct-2023 19:53:43 UTC] Array
(
[0] => activity_comment
[1] => activity_update
[2] => friendship_created
[3] => created_group
[4] => joined_group
[5] => last_activity
[6] => new_avatar
[7] => new_member
[8] => updated_profile
)
[24-Oct-2023 19:53:43 UTC] arg:
[24-Oct-2023 19:53:43 UTC] post_type
PHP Version: 8.0.29
The error looks something like this:
https://buddypress.trac.wordpress.org/ticket/7580
Many thanks and kind regards
#4
@
13 months ago
- Resolution set to fixed
- Status changed from new to closed
Hi @btwebdesign
Thanks for providing these details and the link to the ticket. In BuddyPress Core we're always using bp_activity_post_type_get_tracking_arg()
with the right $activity_type
argument type. I imagine this error is due to a misusage of a BuddyPress filter or of this function. In #7580 we chose to leave this as is for this reason. You can probably debug backtrace the plugin or the custom code which is responsible for this error.
#6
@
13 months ago
- Keywords needs-testing added; reporter-feedback removed
- Milestone set to 11.5.0
- Resolution fixed deleted
- Status changed from closed to reopened
An equivalent issue was raised there https://buddypress.org/support/topic/lets-prepare-the-buddypress-12-0-0-next-major-release/page/3/#post-331871
I'll check again asap.
#7
@
13 months ago
- Keywords needs-patch added; needs-testing removed
After looking more into it. This can only happen when a plugin or some custom code is filtering the bp_has_activities()
action argument and returns an array of activity actions (or types).
Here's an example of such a filter.
function my_custom_bp_activity_types( $args ) { $args['action'] = array( 'new_blog_post', 'new_blog_comment' ); return $args; } add_filter( 'bp_after_has_activities_parse_args', 'my_custom_bp_activity_types', 1 );
Although it cannot be caused by BuddyPress itself and doesn't seem to be on us to fix this at first sight, when we look at the inline comment for the bp_has_activities()
function we wrote:
* @type string|array|bool $action Filters by the `type` column in the database, which is a string * categorizing the activity item (eg, 'new_blog_post', 'created_group'). * Accepts a comma-delimited string or an array of types. Default: false.
Meaning we support passing an array of activity types. So we need to fix it, and we'll do!
#8
@
13 months ago
- Milestone changed from 11.5.0 to 12.0.0
As this was preexisting to branch 11.0, moving this to 12.0 milestone.
This ticket was mentioned in PR #190 on buddypress/buddypress by @imath.
13 months ago
#9
- Keywords has-patch has-unit-tests added; needs-patch removed
Make sure the bp_blogs_new_blog_comment_query_backpat()
doesn't generate an error when an array of activity actions is requested by the activity loop.
Trac ticket: https://buddypress.trac.wordpress.org/ticket/9010
#10
@
13 months ago
- Owner set to imath
- Resolution set to fixed
- Status changed from reopened to closed
In 13642:
Hi @btwebdesign
Thanks for your report, I’ll look at it asap.