Skip to:
Content

BuddyPress.org

Ticket #8571: 8571.2.patch

File 8571.2.patch, 21.4 KB (added by imath, 2 years ago)
  • .github/workflows/unit-tests.yml

    diff --git .github/workflows/unit-tests.yml .github/workflows/unit-tests.yml
    index 420dea24b..bb3cd9d41 100644
    jobs: 
    1818            wp_version: '5.8'
    1919          - php: '7.4'
    2020            wp_version: '5.8'
     21          - php: '7.4'
     22            wp_version: '5.4'
    2123    env:
    2224      WP_ENV_PHP_VERSION: ${{ matrix.php }}
    2325      WP_VERSION: ${{ matrix.wp_version }}
  • src/bp-blogs/bp-blogs-functions.php

    diff --git src/bp-blogs/bp-blogs-functions.php src/bp-blogs/bp-blogs-functions.php
    index c64e88ab7..09cc5f1f1 100644
    add_action( 'update_option_site_icon', 'bp_blogs_update_option_site_icon', 10, 2 
    574574 * Deletes the 'url' blogmeta for a site.
    575575 *
    576576 * Fires when a site's details are updated, which generally happens when
    577  * editing a site under "Network Admin > Sites". Prior to WP 4.9, the
    578  * correct hook was 'refresh_blog_details'; afterward, 'clean_site_cache'.
     577 * editing a site under "Network Admin > Sites".
    579578 *
    580579 * @since 2.3.0
    581580 *
    add_action( 'update_option_site_icon', 'bp_blogs_update_option_site_icon', 10, 2 
    584583function bp_blogs_delete_url_blogmeta( $site_id = 0 ) {
    585584        bp_blogs_delete_blogmeta( (int) $site_id, 'url' );
    586585}
    587 
    588 if ( bp_is_running_wp( '4.9.0' ) ) {
    589         add_action( 'clean_site_cache', 'bp_blogs_delete_url_blogmeta' );
    590 } else {
    591         add_action( 'refresh_blog_details', 'bp_blogs_delete_url_blogmeta' );
    592 }
     586add_action( 'clean_site_cache', 'bp_blogs_delete_url_blogmeta' );
    593587
    594588/**
    595589 * Record activity metadata about a published blog post.
  • src/bp-core/admin/js/hello.js

    diff --git src/bp-core/admin/js/hello.js src/bp-core/admin/js/hello.js
    index 8324e6cc2..47c996579 100644
     
    44 *
    55 * @since 3.0.0
    66 */
    7 (function( $, bp ) {
     7(function( $, wp ) {
    88        // Bail if not set
    99        if ( typeof bpHelloStrings === 'undefined' ) {
    1010                return;
     
    7979
    8080                        $( '#TB_window' ).addClass( 'thickbox-loading' );
    8181
    82                         bp.apiRequest( {
     82                        wp.apiRequest( {
    8383                                url: anchor.data( 'endpoint' ),
    8484                                type: 'GET',
    8585                                beforeSend: function( xhr, settings ) {
     
    118118        } );
    119119
    120120        // Init modal after the screen's loaded.
    121         $( document ).ready( function() {
     121        $( function() {
    122122                bpHelloOpenModal();
    123123        } );
    124124
    125 }( jQuery, window.bp || {} ) );
     125}( jQuery, window.wp || {} ) );
  • src/bp-core/bp-core-blocks.php

    diff --git src/bp-core/bp-core-blocks.php src/bp-core/bp-core-blocks.php
    index cc5d93c12..1ce5c1f18 100644
     
    1111defined( 'ABSPATH' ) || exit;
    1212
    1313/**
    14  * BuddyPress blocks require WordPress >= 5.0.0 & the BP REST API.
     14 * BuddyPress blocks require the BP REST API.
    1515 *
    1616 * @since 6.0.0
    1717 *
    defined( 'ABSPATH' ) || exit; 
    1919 *              False otherwise.
    2020 */
    2121function bp_support_blocks() {
    22         return bp_is_running_wp( '5.0.0' ) && bp_rest_api_is_available();
     22        /**
     23         * Filter here, returning `false`, to completely disable BuddyPress blocks.
     24         *
     25         * @since 10.0.0
     26         *
     27         * @param bool $value True if the BP REST API is available. False otherwise.
     28         */
     29        return apply_filters( 'bp_support_blocks', bp_rest_api_is_available() );
    2330}
    2431
    2532/**
  • src/bp-core/bp-core-functions.php

    diff --git src/bp-core/bp-core-functions.php src/bp-core/bp-core-functions.php
    index 3dbc32f11..8b2653276 100644
    function bp_register_type_meta( $type_tax, $meta_key, array $args ) { 
    32703270                return false;
    32713271        }
    32723272
    3273         // register_term_meta() was introduced in WP 4.9.8.
    3274         if ( ! bp_is_running_wp( '4.9.8' ) ) {
    3275                 $args['object_subtype'] = $type_tax;
    3276 
    3277                 return register_meta( 'term', $meta_key, $args );
    3278         }
    3279 
    32803273        return register_term_meta( $type_tax, $meta_key, $args );
    32813274}
    32823275
    function bp_email_get_appearance_settings() { 
    36843677                )
    36853678        );
    36863679
    3687         if ( bp_is_running_wp( '4.9.6' ) ) {
    3688                 $privacy_policy_url = get_privacy_policy_url();
    3689                 if ( $privacy_policy_url ) {
    3690                         $footer_text[] = sprintf(
    3691                                 '<a href="%s">%s</a>',
    3692                                 esc_url( $privacy_policy_url ),
    3693                                 esc_html__( 'Privacy Policy', 'buddypress' )
    3694                         );
    3695                 }
     3680        $privacy_policy_url = get_privacy_policy_url();
     3681        if ( $privacy_policy_url ) {
     3682                $footer_text[] = sprintf(
     3683                        '<a href="%s">%s</a>',
     3684                        esc_url( $privacy_policy_url ),
     3685                        esc_html__( 'Privacy Policy', 'buddypress' )
     3686                );
    36963687        }
    36973688
    36983689        $default_args = array(
  • src/bp-core/bp-core-rest-api.php

    diff --git src/bp-core/bp-core-rest-api.php src/bp-core/bp-core-rest-api.php
    index a0a719b56..0f61d0463 100644
    function bp_rest_api_is_available() { 
    5050        /**
    5151         * Filter here to disable the BP REST API.
    5252         *
    53          * The BP REST API requires at least WordPress 4.7.0
     53         * The BP REST API requires at least WordPress 4.7.0.
    5454         *
    5555         * @since 5.0.0
    5656         *
    5757         * @param boolean $value True if the BP REST API is available. False otherwise.
    5858         */
    59         return apply_filters( 'bp_rest_api_is_available', bp_is_running_wp( '4.7.0' ) && bp_rest_in_buddypress() ) || bp_rest_is_plugin_active();
     59        return apply_filters( 'bp_rest_api_is_available', bp_rest_in_buddypress() ) || bp_rest_is_plugin_active();
    6060}
    6161
    6262/**
    6363 * Register the jQuery.ajax wrapper for BP REST API requests.
    6464 *
    6565 * @since 5.0.0
     66 * @deprecated 10.0.0
    6667 */
    6768function bp_rest_api_register_request_script() {
    6869        if ( ! bp_rest_api_is_available() ) {
    6970                return;
    7071        }
    7172
    72         $dependencies = array( 'jquery' );
    73 
    74         // The wrapper for WP REST API requests was introduced in WordPress 4.9.0.
    75         if ( wp_script_is( 'wp-api-request', 'registered' ) ) {
    76                 $dependencies = array( 'wp-api-request' );
    77         }
    78 
    7973        wp_register_script(
    8074                'bp-api-request',
    8175                sprintf( '%1$sbp-core/js/bp-api-request%2$s.js', buddypress()->plugin_url, bp_core_get_minified_asset_suffix() ),
    82                 $dependencies,
     76                array( 'jquery', 'wp-api-request' ),
    8377                bp_get_version(),
    8478                true
    8579        );
    function bp_rest_api_register_request_script() { 
    8882                'bp-api-request',
    8983                'bpApiSettings',
    9084                array(
    91                         'root'            => esc_url_raw( get_rest_url() ),
    92                         'nonce'           => wp_create_nonce( 'wp_rest' ),
    93                         'unexpectedError' => __( 'An unexpected error occured. Please try again.', 'buddypress' ),
     85                        'unexpectedError'   => __( 'An unexpected error occured. Please try again.', 'buddypress' ),
     86                        'deprecatedWarning' => __( 'The bp.apiRequest function is deprecated since BuddyPress 10.0.0, please use wp.apiRequest instead.', 'buddypress' ),
    9487                )
    9588        );
    9689}
  • src/bp-core/bp-core-template.php

    diff --git src/bp-core/bp-core-template.php src/bp-core/bp-core-template.php
    index efb251957..a88cd6800 100644
    function bp_is_widget_block_active( $block_name = '', $widget_id_base = '' ) { 
    38843884                'block'  => false,
    38853885        );
    38863886
    3887         if ( $block_name && bp_is_running_wp( '5.0.0', '>=' ) ) {
     3887        if ( $block_name && bp_is_running_wp( '5.8.0', '>=' ) ) {
    38883888                $widget_blocks = get_option( 'widget_block', array() );
    38893889                $sidebars      = wp_get_sidebars_widgets();
    38903890
  • src/bp-core/bp-core-wpabstraction.php

    diff --git src/bp-core/bp-core-wpabstraction.php src/bp-core/bp-core-wpabstraction.php
    index ebeb1fbc3..8f7e524bf 100644
    if ( !function_exists( 'mb_strrpos' ) ) { 
    308308        }
    309309}
    310310
    311 /**
    312  * Returns the name of the hook to use once a WordPress Site is inserted into the Database.
    313  *
    314  * WordPress 5.1.0 deprecated the `wpmu_new_blog` action. As BuddyPress is supporting WordPress back
    315  * to 4.9.0, this function makes sure we are using the new hook `wp_initialize_site` when the current
    316  * WordPress version is upper or equal to 5.1.0 and that we keep on using `wpmu_new_blog` for earlier
    317  * versions of WordPress.
    318  *
    319  * @since 6.0.0
    320  *
    321  * @return string The name of the hook to use.
    322  */
    323 function bp_insert_site_hook() {
    324         $wp_hook = 'wpmu_new_blog';
    325 
    326         if ( function_exists( 'wp_insert_site' ) ) {
    327                 $wp_hook = 'wp_initialize_site';
    328         }
    329 
    330         return $wp_hook;
    331 }
    332 
    333311/**
    334312 * Catch the new site data for a later use.
    335313 *
    function bp_insert_site( $site, $args_or_user_id = null, $domain = '', $path = ' 
    399377         */
    400378        do_action( 'bp_insert_site', $site_id, $user_id, $domain, $path, $network_id, $meta );
    401379}
    402 add_action( bp_insert_site_hook(), 'bp_insert_site' );
    403 
    404 /**
    405  * Returns the name of the hook to use once a WordPress Site is deleted.
    406  *
    407  * WordPress 5.1.0 deprecated the `delete_blog` action. As BuddyPress is supporting WordPress back
    408  * to 4.9.0, this function makes sure we are using the new hook `wp_validate_site_deletion` when the
    409  * current WordPress version is upper or equal to 5.1.0 and that we keep on using `delete_blog` for
    410  * earlier versions of WordPress.
    411  *
    412  * @since 6.0.0
    413  *
    414  * @return string The name of the hook to use.
    415  */
    416 function bp_delete_site_hook() {
    417         $wp_hook = 'delete_blog';
    418 
    419         if ( function_exists( 'wp_delete_site' ) ) {
    420                 $wp_hook = 'wp_validate_site_deletion';
    421         }
    422 
    423         return $wp_hook;
    424 }
     380add_action( 'wp_initialize_site', 'bp_insert_site' );
    425381
    426382/**
    427383 * Makes sure the `bp_delete_site` hook is fired if site's deletion
    function bp_delete_site( $site_id_or_error, $drop_or_site = false ) { 
    471427         */
    472428        do_action( 'bp_delete_site', $site_id, $drop );
    473429}
    474 add_action( bp_delete_site_hook(), 'bp_delete_site', 10, 2 );
    475 
    476 if ( ! function_exists( 'wp_parse_list' ) ) {
    477         /**
    478          * Cleans up an array, comma- or space-separated list of scalar values.
    479          *
    480          * As BuddyPress supports older WordPress versions than 5.1 (4.9 & 5.0),
    481          * the BP REST API needs this function to be available.
    482          *
    483          * @since 7.0.0
    484          *
    485          * @param array|string $list List of values.
    486          * @return array Sanitized array of values.
    487          */
    488         function wp_parse_list( $list ) {
    489                 if ( ! is_array( $list ) ) {
    490                         return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
    491                 }
    492 
    493                 return $list;
    494         }
    495 }
     430add_action( 'wp_validate_site_deletion', 'bp_delete_site', 10, 2 );
  • src/bp-core/classes/class-bp-admin.php

    diff --git src/bp-core/classes/class-bp-admin.php src/bp-core/classes/class-bp-admin.php
    index ee80328cc..97b9ea449 100644
    class BP_Admin { 
    573573         * @since 4.0.0
    574574         */
    575575        public function add_privacy_policy_content() {
    576                 // Nothing to do if we're running < WP 4.9.6.
    577                 if ( bp_is_running_wp( '4.9.6', '<' ) ) {
    578                         return;
    579                 }
    580 
    581576                $suggested_text = '<strong class="privacy-policy-tutorial">' . esc_html__( 'Suggested text:', 'buddypress' ) . ' </strong>';
    582577                $content = '';
    583578
    class BP_Admin { 
    12131208                        // 3.0
    12141209                        'bp-hello-js' => array(
    12151210                                'file'         => "{$url}hello{$min}.js",
    1216                                 'dependencies' => array( 'thickbox', 'bp-api-request' ),
     1211                                'dependencies' => array( 'thickbox', 'wp-api-request' ),
    12171212                                'footer'       => true,
    12181213                        ),
    12191214                ) );
  • new file src/bp-core/deprecated/10.0.php

    diff --git src/bp-core/deprecated/10.0.php src/bp-core/deprecated/10.0.php
    new file mode 100644
    index 000000000..7ff78b259
    - +  
     1<?php
     2/**
     3 * Deprecated functions.
     4 *
     5 * @package BuddyPress
     6 * @deprecated 10.0.0
     7 */
     8
     9// Exit if accessed directly.
     10if ( ! defined( 'ABSPATH' ) ) {
     11        exit;
     12}
     13
     14/**
     15 * Returns the name of the hook to use once a WordPress Site is inserted into the Database.
     16 *
     17 * WordPress 5.1.0 deprecated the `wpmu_new_blog` action. As BuddyPress is supporting WordPress back
     18 * to 4.9.0, this function makes sure we are using the new hook `wp_initialize_site` when the current
     19 * WordPress version is upper or equal to 5.1.0 and that we keep on using `wpmu_new_blog` for earlier
     20 * versions of WordPress.
     21 *
     22 * @since 6.0.0
     23 * @deprecated 10.0.0
     24 *
     25 * @return string The name of the hook to use.
     26 */
     27function bp_insert_site_hook() {
     28        _deprecated_function( __FUNCTION__, '10.0.0' );
     29
     30        $wp_hook = 'wpmu_new_blog';
     31
     32        if ( function_exists( 'wp_insert_site' ) ) {
     33                $wp_hook = 'wp_initialize_site';
     34        }
     35
     36        return $wp_hook;
     37}
     38
     39/**
     40 * Returns the name of the hook to use once a WordPress Site is deleted.
     41 *
     42 * WordPress 5.1.0 deprecated the `delete_blog` action. As BuddyPress is supporting WordPress back
     43 * to 4.9.0, this function makes sure we are using the new hook `wp_validate_site_deletion` when the
     44 * current WordPress version is upper or equal to 5.1.0 and that we keep on using `delete_blog` for
     45 * earlier versions of WordPress.
     46 *
     47 * @since 6.0.0
     48 * @deprecated 10.0.0
     49 *
     50 * @return string The name of the hook to use.
     51 */
     52function bp_delete_site_hook() {
     53        _deprecated_function( __FUNCTION__, '10.0.0' );
     54
     55        $wp_hook = 'delete_blog';
     56
     57        if ( function_exists( 'wp_delete_site' ) ) {
     58                $wp_hook = 'wp_validate_site_deletion';
     59        }
     60
     61        return $wp_hook;
     62}
  • src/bp-core/js/bp-api-request.js

    diff --git src/bp-core/js/bp-api-request.js src/bp-core/js/bp-api-request.js
    index 339b1c1a9..cb450f8ed 100644
     
    22 * jQuery.ajax wrapper for BP REST API requests.
    33 *
    44 * @since  5.0.0
     5 * @deprecated 10.0.0
    56 * @output bp-core/js/bp-api-request.js
    67 */
    78/* global bpApiSettings */
    89window.bp = window.bp || {};
    910
    10 ( function( wp, bp, $ ) {
     11( function( wp, bp ) {
    1112    // Bail if not set.
    1213    if ( typeof bpApiSettings === 'undefined' ) {
    1314        return;
    window.bp = window.bp || {}; 
    1516
    1617    bp.isRestEnabled = true;
    1718
    18     // Polyfill wp.apiRequest if WordPress < 4.9.
     19    // Polyfill wp.apiRequest.
    1920    bp.apiRequest = function( options ) {
     21                window.console.log( bpApiSettings.deprecatedWarning );
     22
    2023        var bpRequest;
    2124
    2225        if ( ! options.dataType ) {
    2326            options.dataType = 'json';
    2427        }
    2528
    26         // WordPress is >= 4.9.0.
    27         if ( wp.apiRequest ) {
    28             bpRequest = wp.apiRequest( options );
    29 
    30         // WordPress is < 4.9.0.
    31         } else {
    32             var url = bpApiSettings.root;
    33 
    34             if ( options.path ) {
    35                 url = url + options.path.replace( /^\//, '' );
    36             }
    37 
    38             if ( ! options.url ) {
    39                 options.url = url;
    40             }
    41 
    42             // Add The nonce only when needed.
    43             if ( -1 !== options.url.indexOf( url ) ) {
    44                 options.beforeSend = function( xhr ) {
    45                     xhr.setRequestHeader( 'X-WP-Nonce', bpApiSettings.nonce );
    46                 };
    47             }
    48 
    49             bpRequest = $.ajax( options );
    50         }
     29        bpRequest = wp.apiRequest( options );
    5130
    5231        return bpRequest.then( null, function( result ) {
    5332            var errorObject = {
    window.bp = window.bp || {}; 
    6645        } );
    6746    };
    6847
    69 } )( window.wp || {}, window.bp, jQuery );
     48} )( window.wp || {}, window.bp );
  • src/bp-friends/bp-friends-blocks.php

    diff --git src/bp-friends/bp-friends-blocks.php src/bp-friends/bp-friends-blocks.php
    index cd0d23abc..3a2eaafc5 100644
    function bp_friends_render_friends_block( $attributes = array() ) { 
    207207                        $path
    208208                );
    209209
    210                 $preloaded_friends = array();
    211                 if ( bp_is_running_wp( '5.0.0' ) ) {
    212                         $preloaded_friends = rest_preload_api_request( '', $default_path );
    213                 }
     210                $preloaded_friends = rest_preload_api_request( '', $default_path );
    214211
    215212                buddypress()->friends->block_globals['bp/friends']->items[ $widget_id ] = (object) array(
    216213                        'selector'   => $widget_id,
  • src/bp-groups/bp-groups-blocks.php

    diff --git src/bp-groups/bp-groups-blocks.php src/bp-groups/bp-groups-blocks.php
    index 42bda3cd7..f0e032dfc 100644
    function bp_groups_render_dynamic_groups_block( $attributes = array() ) { 
    483483                        $path
    484484                );
    485485
    486                 $preloaded_groups = array();
    487                 if ( bp_is_running_wp( '5.0.0' ) ) {
    488                         $preloaded_groups = rest_preload_api_request( '', $default_path );
    489                 }
     486                $preloaded_groups = rest_preload_api_request( '', $default_path );
    490487
    491488                buddypress()->groups->block_globals['bp/dynamic-groups']->items[ $widget_id ] = (object) array(
    492489                        'selector'   => $widget_id,
  • src/bp-groups/bp-groups-cssjs.php

    diff --git src/bp-groups/bp-groups-cssjs.php src/bp-groups/bp-groups-cssjs.php
    index 99aab5bb6..3f5ec3804 100644
    function bp_groups_register_scripts() { 
    1919    wp_register_script(
    2020        'bp-group-manage-members',
    2121        sprintf( '%1$sbp-groups/js/manage-members%2$s.js', buddypress()->plugin_url, bp_core_get_minified_asset_suffix() ),
    22         array( 'json2', 'wp-backbone', 'bp-api-request' ),
     22        array( 'json2', 'wp-backbone', 'wp-api-request' ),
    2323        bp_get_version(),
    2424        true
    2525    );
    function bp_groups_get_group_manage_members_script_data( $group_id = 0 ) { 
    4949                $group_id
    5050        );
    5151
    52         $preloaded_members = array();
    53         if ( bp_is_running_wp( '5.0.0' ) ) {
    54                 $preloaded_members = rest_preload_api_request( '', $path );
    55         }
     52        $preloaded_members = rest_preload_api_request( '', $path );
    5653
    5754        return array(
    5855                'path'      => remove_query_arg( 'exclude_admins', $path ),
  • src/bp-groups/js/manage-members.js

    diff --git src/bp-groups/js/manage-members.js src/bp-groups/js/manage-members.js
    index 34ef7dccb..69358a431 100644
     
    44( function( wp, bp, $ ) {
    55
    66        // Bail if not set
    7         if ( typeof bpGroupManageMembersSettings === 'undefined' || ! bp.isRestEnabled ) {
     7        if ( typeof bpGroupManageMembersSettings === 'undefined' ) {
    88                return;
    99        }
    1010
     
    6262                                        options.headers = { 'X-HTTP-Method-Override': 'PUT' };
    6363                                }
    6464
    65                                 return bp.apiRequest( options );
     65                                return wp.apiRequest( options );
    6666                        }
    6767                },
    6868
     
    117117                                        }
    118118                                };
    119119
    120                                 return bp.apiRequest( options );
     120                                return wp.apiRequest( options );
    121121                        }
    122122                }
    123123        } );
  • src/bp-members/bp-members-blocks.php

    diff --git src/bp-members/bp-members-blocks.php src/bp-members/bp-members-blocks.php
    index cd39942ac..3734cdffa 100644
    function bp_members_render_dynamic_members_block( $attributes = array() ) { 
    500500                        $path
    501501                );
    502502
    503                 $preloaded_members = array();
    504                 if ( bp_is_running_wp( '5.0.0' ) ) {
    505                         $preloaded_members = rest_preload_api_request( '', $default_path );
    506                 }
     503                $preloaded_members = rest_preload_api_request( '', $default_path );
    507504
    508505                buddypress()->members->block_globals['bp/dynamic-members']->items[ $widget_id ] = (object) array(
    509506                        'selector'   => $widget_id,
  • src/bp-members/bp-members-template.php

    diff --git src/bp-members/bp-members-template.php src/bp-members/bp-members-template.php
    index 39cfd6e65..10e6ef071 100644
    function bp_signup_avatar_dir_value() { 
    27452745 * @return bool
    27462746 */
    27472747function bp_signup_requires_privacy_policy_acceptance() {
    2748         // Bail if we're running a version of WP that doesn't have the Privacy Policy feature.
    2749         if ( bp_is_running_wp( '4.9.6', '<' ) ) {
    2750                 return false;
    2751         }
    27522748
    27532749        // Default to true when a published Privacy Policy page exists.
    27542750        $privacy_policy_url = get_privacy_policy_url();
  • src/bp-settings/bp-settings-functions.php

    diff --git src/bp-settings/bp-settings-functions.php src/bp-settings/bp-settings-functions.php
    index 12acd24f9..399966914 100644
    function bp_settings_get_personal_data_request( $user_id = 0 ) { 
    248248        ) );
    249249
    250250        if ( ! empty( $query->post ) ) {
    251                 // WP 5.4 changed the user request function name to wp_get_user_request()
    252                 $user_request = bp_is_running_wp( '4.9.6' ) ? 'wp_get_user_request' : 'wp_get_user_request_data';
    253                 return $user_request( $query->post->ID );
     251                return wp_get_user_request( $query->post->ID );
    254252        } else {
    255253                return false;
    256254        }
  • src/bp-settings/classes/class-bp-settings-component.php

    diff --git src/bp-settings/classes/class-bp-settings-component.php src/bp-settings/classes/class-bp-settings-component.php
    index c39bff37e..eb7f0acb0 100644
    class BP_Settings_Component extends BP_Component { 
    198198                 */
    199199                $show_data_page = apply_filters( 'bp_settings_show_user_data_page', true );
    200200
    201                 // Export Data - only available for WP 4.9.6+.
    202                 if ( true === $show_data_page && bp_is_running_wp( '4.9.6' ) ) {
     201                // Export Data.
     202                if ( true === $show_data_page ) {
    203203                        $sub_nav[] = array(
    204204                                'name'            => __( 'Export Data', 'buddypress' ),
    205205                                'slug'            => 'data',
    class BP_Settings_Component extends BP_Component { 
    278278                        $show_data_page = apply_filters( 'bp_settings_show_user_data_page', true );
    279279
    280280                        // Export Data.
    281                         if ( true === $show_data_page && bp_is_running_wp( '4.9.6' ) ) {
     281                        if ( true === $show_data_page ) {
    282282                                $wp_admin_nav[] = array(
    283283                                        'parent'   => 'my-account-' . $this->id,
    284284                                        'id'       => 'my-account-' . $this->id . '-data',
  • src/class-buddypress.php

    diff --git src/class-buddypress.php src/class-buddypress.php
    index e8f2a9797..981ae06a1 100644
    class BuddyPress { 
    558558                        require $this->plugin_dir . 'bp-core/deprecated/7.0.php';
    559559                        require $this->plugin_dir . 'bp-core/deprecated/8.0.php';
    560560                        require $this->plugin_dir . 'bp-core/deprecated/9.0.php';
     561                        require $this->plugin_dir . 'bp-core/deprecated/10.0.php';
    561562                }
    562563
    563564                // Load wp-cli module if PHP 5.6+.
  • src/readme.txt

    diff --git src/readme.txt src/readme.txt
    index 5e7eb3bfc..1a5e9b358 100644
    Contributors: johnjamesjacoby, DJPaul, boonebgorges, r-a-y, imath, mercime, tw21 
    33Tags: user profiles, activity streams, messaging, friends, user groups, notifications, community, social networking, intranet
    44License: GPLv2 or later
    55License URI: https://www.gnu.org/licenses/gpl-2.0.html
    6 Requires at least: 4.9
     6Requires at least: 5.4
    77Requires PHP: 5.6
    88Tested up to: 5.8
    99Stable tag: 9.1.1