From d2a459572e055d5b903e62d068ff6a758025d227 Mon Sep 17 00:00:00 2001 From: gziolo Date: Tue, 4 Jun 2024 06:58:15 +0000 Subject: [PATCH] Interactivity API: Some property access does not work well in server directives Ensures property access in PHP works for object properties or associative array values correctly when processing Interactivity API directives. Props narenin, cbravobernal, jonsurrell, gziolo, czapla. Fixes #61039. Built from https://develop.svn.wordpress.org/trunk@58320 git-svn-id: http://core.svn.wordpress.org/trunk@57777 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/interactivity-api/class-wp-interactivity-api.php | 4 +++- wp-includes/version.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/wp-includes/interactivity-api/class-wp-interactivity-api.php b/wp-includes/interactivity-api/class-wp-interactivity-api.php index ac9a48982a..23675a9683 100644 --- a/wp-includes/interactivity-api/class-wp-interactivity-api.php +++ b/wp-includes/interactivity-api/class-wp-interactivity-api.php @@ -423,8 +423,10 @@ final class WP_Interactivity_API { $path_segments = explode( '.', $path ); $current = $store; foreach ( $path_segments as $path_segment ) { - if ( isset( $current[ $path_segment ] ) ) { + if ( ( is_array( $current ) || $current instanceof ArrayAccess ) && isset( $current[ $path_segment ] ) ) { $current = $current[ $path_segment ]; + } elseif ( is_object( $current ) && isset( $current->$path_segment ) ) { + $current = $current->$path_segment; } else { return null; } diff --git a/wp-includes/version.php b/wp-includes/version.php index fede63bf10..07673682a0 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.6-alpha-58319'; +$wp_version = '6.6-alpha-58320'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.