Plugin Directory

Changeset 3406987


Ignore:
Timestamp:
12/01/2025 03:55:47 PM (4 months ago)
Author:
pross
Message:

Add 2.9.4.1 && Updated to 6.9

Location:
beaver-builder-lite-version/trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • beaver-builder-lite-version/trunk/changelog.txt

    r3373870 r3406987  
     1<h4>2.9.4.1 - 11/25/2025</h4>
     2<strong>There is a companion BB Themer release for this version. Please update to Themer 1.5.2.1.</strong>
     3<p><strong>Bug Fixes</strong></p>
     4<ul>
     5    <li>Security: Added better capability checking to ensure only proper users can view attachment data for media attached to posts that are private, draft, or password-protected (#4604)</li>
     6    <li>Security: Added better capability checking for disable layout action (#4623)</li>
     7    <li>Security: Only Administrator and Editor roles will be checked by default for Builder Access and Unrestricted Editing in User Access settings</li>
     8    <li>Security: Ensure users have Builder Access and Unrestricted editing capabilities to allow them to add or delete color picker presets</li>
     9    <li>Rank Math: Fixed integration to ensure Focus Keyword feature still works on posts/pages where BB is used (#4599)</li>
     10    <li>Button Group Module: Fixed PHP warnings (#4489)</li>
     11    <li>Loop Module: Fixed PHP warnings if post has no taxonomy (#4642)</li>
     12    <li>Loop Module: Fixed field connection logic for post grid loop (#4646)</li>
     13    <li>Global Settings: Fixed Row default max width not being responsive (#4634)</li> 
     14</ul>
     15
    116<h4>2.9.4 - 09/24/2025</h4>
    217<p><strong>Enhancements</strong></p>
  • beaver-builder-lite-version/trunk/classes/class-fl-builder-admin-advanced.php

    r3350565 r3406987  
    3636        $settings = array(
    3737            'iframe_ui'              => array(
    38                 'label'       => __( 'Responsive iFrame UI', 'fl-builder' ),
     38                'label'       => self::__( 'Responsive iFrame UI', 'fl-builder' ),
    3939                'default'     => 1,
    4040                'callback'    => array( __CLASS__, 'disable_iframe_ui' ),
    4141                'group'       => 'ui',
    42                 'description' => __( 'The iFrame UI provides accurate responsive editing. Disable it if you are having issues with third-party or legacy add-ons.', 'fl-builder' ),
     42                'description' => self::__( 'The iFrame UI provides accurate responsive editing. Disable it if you are having issues with third-party or legacy add-ons.', 'fl-builder' ),
    4343            ),
    4444            'outline_enabled'        => array(
    45                 'label'    => __( 'Outline Panel', 'fl-builder' ),
     45                'label'    => self::__( 'Outline Panel', 'fl-builder' ),
    4646                'default'  => 1,
    4747                'callback' => array( __CLASS__, 'disable_outline' ),
     
    5050            ),
    5151            'inline_editing_enabled' => array(
    52                 'label'    => __( 'Inline Editing', 'fl-builder' ),
     52                'label'    => self::__( 'Inline Editing', 'fl-builder' ),
    5353                'default'  => 1,
    5454                'callback' => array( __CLASS__, 'disable_inline_edit' ),
     
    5757            ),
    5858            'notifications_enabled'  => array(
    59                 'label'       => __( "What's New", 'fl-builder' ),
     59                'label'       => self::__( "What's New", 'fl-builder' ),
    6060                'default'     => 1,
    6161                'callback'    => array( __CLASS__, 'disable_notifications' ),
    6262                'group'       => 'ui',
    63                 'description' => __( 'When disabled, alerts will not be received for new posts on the blog in the UI', 'fl-builder' ),
     63                'description' => self::__( 'When disabled, alerts will not be received for new posts on the blog in the UI', 'fl-builder' ),
    6464            ),
    6565            'lasttab_enabled'        => array(
    66                 'label'       => __( 'Remember last used tab', 'fl-builder' ),
     66                'label'       => self::__( 'Remember last used tab', 'fl-builder' ),
    6767                'default'     => 1,
    6868                'callback'    => array( __CLASS__, 'disable_lastused' ),
    6969                'group'       => 'ui',
    70                 'description' => __( 'When disabled, the Builder will not remember the last tab used in the row/column/module settings.', 'fl-builder' ),
     70                'description' => self::__( 'When disabled, the Builder will not remember the last tab used in the row/column/module settings.', 'fl-builder' ),
    7171            ),
    7272            'rowshapes_enabled'      => array(
    73                 'label'       => __( 'Custom Row Shapes', 'fl-builder' ),
     73                'label'       => self::__( 'Custom Row Shapes', 'fl-builder' ),
    7474                'default'     => 1,
    7575                'callback'    => array( __CLASS__, 'disable_rowshapes' ),
    7676                'group'       => 'ui',
    77                 'description' => __( 'When enabled, a custom row shapes tab will be added to the Global Settings.', 'fl-builder' ),
     77                'description' => self::__( 'When enabled, a custom row shapes tab will be added to the Global Settings.', 'fl-builder' ),
    7878            ),
    7979            'node_code'              => array(
    80                 'label'       => __( 'Enable Code Settings', 'fl-builder' ),
     80                'label'       => self::__( 'Enable Code Settings', 'fl-builder' ),
    8181                'default'     => 1,
    8282                'callback'    => array( __CLASS__, 'disable_node_code' ),
    8383                'group'       => 'ui',
    84                 'description' => __( 'When enabled, CSS and JS settings will be available for rows, columns, and modules.', 'fl-builder' ),
     84                'action'      => 'plugins_loaded',
     85                'priority'    => 9,
     86                'description' => self::__( 'When enabled, CSS and JS settings will be available for rows, columns, and modules.', 'fl-builder' ),
    8587            ),
    8688            'limitrevisions_enabled' => array(
    87                 'label'       => __( 'Limit WP revisions for layouts', 'fl-builder' ),
    88                 'default'     => 0,
     89                'label'       => self::__( 'Limit WP revisions for layouts', 'fl-builder' ),
     90                'default'     => 1,
    8991                'callback'    => array( __CLASS__, 'limit_revisions' ),
    9092                'group'       => 'ui',
    9193                'hasdepend'   => true,
    92                 'description' => __( 'WP by default does not limit the amount of revisions.', 'fl-builder' ),
     94                'description' => self::__( 'WP by default does not limit the amount of revisions.', 'fl-builder' ),
    9395            ),
    9496            'limitrevisions_num'     => array(
    95                 'label'       => __( 'Revisions Limit', 'fl-builder' ),
     97                'label'       => self::__( 'Revisions Limit', 'fl-builder' ),
    9698                'default'     => 10,
    9799                'type'        => 'text',
    98100                'depends'     => 'limitrevisions_enabled',
    99101                'group'       => 'ui',
    100                 'description' => __( 'Set to 0 to completely disable revisions for layouts/pages controlled by the Builder', 'fl-builder' ),
     102                'description' => self::__( 'Set to 0 to completely disable revisions for layouts/pages controlled by the Builder', 'fl-builder' ),
    101103            ),
    102104            'limithistory_enabled'   => array(
    103                 'label'       => __( 'Limit the amount of undo/redo history in Builder UI', 'fl-builder' ),
     105                'label'       => self::__( 'Limit the amount of undo/redo history in Builder UI', 'fl-builder' ),
    104106                'default'     => 0,
    105107                'callback'    => array( __CLASS__, 'limithistory_enabled' ),
    106108                'group'       => 'ui',
    107109                'hasdepend'   => true,
    108                 'description' => __( 'History is limited to 20 by default in the Builder undo/redo UI', 'fl-builder' ),
     110                'description' => self::__( 'History is limited to 20 by default in the Builder undo/redo UI', 'fl-builder' ),
    109111            ),
    110112            'limithistory_num'       => array(
    111                 'label'       => __( 'History Limit', 'fl-builder' ),
     113                'label'       => self::__( 'History Limit', 'fl-builder' ),
    112114                'default'     => 5,
    113115                'type'        => 'text',
    114116                'depends'     => 'limithistory_enabled',
    115117                'group'       => 'ui',
    116                 'description' => __( 'Set to 0 to completely disable undo/redo history', 'fl-builder' ),
     118                'description' => self::__( 'Set to 0 to completely disable undo/redo history', 'fl-builder' ),
    117119            ),
    118120            'modsec_enabled'         => array(
    119                 'label'    => __( 'Mod Security fix', 'fl-builder' ),
     121                'label'    => self::__( 'Mod Security fix', 'fl-builder' ),
    120122                'default'  => 0,
    121123                'callback' => array( __CLASS__, 'enable_modsec' ),
     
    124126            ),
    125127            'sort_enabled'           => array(
    126                 'label'       => __( 'Add Filtering Option ', 'fl-builder' ),
     128                'label'       => self::__( 'Add Filtering Option ', 'fl-builder' ),
    127129                'default'     => 1,
    128130                'callback'    => array( __CLASS__, 'disable_sorting' ),
    129131                'group'       => 'admin',
    130                 'description' => __( 'When enabled, a filter option is added for Builder enabled posts/pages in the post/page list', 'fl-builder' ),
     132                'description' => self::__( 'When enabled, a filter option is added for Builder enabled posts/pages in the post/page list', 'fl-builder' ),
    131133            ),
    132134            'duplicate_enabled'      => array(
    133                 'label'    => __( 'Show duplicate action links in post/page list view', 'fl-builder' ),
     135                'label'    => self::__( 'Show duplicate action links in post/page list view', 'fl-builder' ),
    134136                'default'  => 1,
    135137                'callback' => array( __CLASS__, 'disable_duplicate' ),
     
    137139            ),
    138140            'duplicatemenu_enabled'  => array(
    139                 'label'    => __( 'Show duplicate action link in WP Admin Bar', 'fl-builder' ),
     141                'label'    => self::__( 'Show duplicate action link in WP Admin Bar', 'fl-builder' ),
    140142                'default'  => 0,
    141143                'callback' => array( __CLASS__, 'disable_duplicate_menu' ),
     
    144146            'google_enabled'         => array(
    145147                'label'       => 'Google Fonts',
    146                 'description' => __( 'When disabled, no Google Fonts will be enqueued or available in style options.', 'fl-builder' ),
     148                'description' => self::__( 'When disabled, no Google Fonts will be enqueued or available in style options.', 'fl-builder' ),
    147149                'default'     => 1,
    148150                'callback'    => array( __CLASS__, 'disable_google' ),
     
    151153            'google_auto'            => array(
    152154                'label'       => 'Google Fonts Auto Update',
    153                 'description' => __( 'System will automatically update the available fonts', 'fl-builder' ),
     155                'description' => self::__( 'System will automatically update the available fonts', 'fl-builder' ),
    154156                'default'     => 1,
    155157                'callback'    => array( __CLASS__, 'google_auto' ),
     
    157159            ),
    158160            'awesome_enabled'        => array(
    159                 'label'       => __( 'Font Awesome', 'fl-builder' ),
    160                 'description' => __( 'When disabled, Font Awesome will not be enqueued, even if modules require it.', 'fl-builder' ),
     161                'label'       => self::__( 'Font Awesome', 'fl-builder' ),
     162                'description' => self::__( 'When disabled, Font Awesome will not be enqueued, even if modules require it.', 'fl-builder' ),
    161163                'default'     => 1,
    162164                'callback'    => array( __CLASS__, 'disable_awesome' ),
     
    164166            ),
    165167            'gd_crop_enabled'        => array(
    166                 'label'    => __( 'Prefer GD for image cropping', 'fl-builder' ),
     168                'label'    => self::__( 'Prefer GD for image cropping', 'fl-builder' ),
    167169                'default'  => 0,
    168170                'callback' => array( __CLASS__, 'enable_gd_crop' ),
     
    174176                'callback'    => array( __CLASS__, 'render_inline' ),
    175177                'group'       => 'frontend',
    176                 'description' => __( 'Instead of loading Builder CSS and JavaScript as an asset file, assets will render inline', 'fl-builder' ),
     178                'description' => self::__( 'Instead of loading Builder CSS and JavaScript as an asset file, assets will render inline', 'fl-builder' ),
    177179                'link'        => 'https://docs.wpbeaverbuilder.com/beaver-builder/developer/how-to-tips/load-css-and-javascript-inline/',
    178180            ),
    179181            'modules_enabled'        => array(
    180                 'label'       => __( 'Show advanced module usage', 'fl-builder' ),
    181                 'default'     => 0,
     182                'label'       => self::__( 'Show advanced module usage', 'fl-builder' ),
     183                'default'     => 0,
     184                'action'      => 'plugins_loaded',
    182185                'callback'    => array( __CLASS__, 'modules_enabled' ),
    183186                'group'       => 'admin',
    184                 'description' => __( 'Show detailed module usage on modules tab. Any disabled modules will be fully disabled and no longer render unless it is a dependency for another module.', 'fl-builder' ),
     187                'description' => self::__( 'Show detailed module usage on modules tab. Any disabled modules will be fully disabled and no longer render unless it is a dependency for another module.', 'fl-builder' ),
    185188                'link'        => 'https://docs.wpbeaverbuilder.com/beaver-builder/developer/tutorials-guides/common-beaver-builder-plugin-filter-examples/#show-which-modules-are-in-use-in-a-website',
    186189            ),
    187190
    188191            'small_data_enabled'     => array(
    189                 'label'       => __( 'Small Data Mode', 'fl-builder' ),
     192                'label'       => self::__( 'Small Data Mode', 'fl-builder' ),
    190193                'default'     => 0,
    191194                'callback'    => array( __CLASS__, 'small_data_enabled' ),
    192195                'group'       => 'ui',
    193                 'description' => __( 'When enabled, fields that are empty/blank will not be saved to the database.', 'fl-builder' ),
     196                'description' => self::__( 'When enabled, fields that are empty/blank will not be saved to the database.', 'fl-builder' ),
    194197            ),
    195198            'node_labels_enabled'    => array(
    196                 'label'       => __( 'Node Labels', 'fl-builder' ),
     199                'label'       => self::__( 'Node Labels', 'fl-builder' ),
    197200                'default'     => 1,
    198201                'callback'    => array( __CLASS__, 'node_labels_enabled' ),
    199202                'group'       => 'ui',
    200                 'description' => __( 'Show custom labels for Nodes.', 'fl-builder' ),
     203                'description' => self::__( 'Show custom labels for Nodes.', 'fl-builder' ),
    201204            ),
    202205            'shortcodes_enabled'     => array(
    203                 'label'    => __( 'Render shortcodes in CSS/JS', 'fl-builder' ),
     206                'label'    => self::__( 'Render shortcodes in CSS/JS', 'fl-builder' ),
    204207                'default'  => 0,
    205208                'callback' => array( __CLASS__, 'shortcodes_enabled' ),
     
    208211            ),
    209212            'acf_blocks_enabled'     => array(
    210                 'label'       => __( 'ACF Blocks', 'fl-builder' ),
     213                'label'       => self::__( 'ACF Blocks', 'fl-builder' ),
    211214                'default'     => 1,
    212215                'callback'    => array( __CLASS__, 'disable_acf_blocks' ),
    213216                'group'       => 'ui',
    214                 'description' => __( 'When enabled, this allows blocks built with ACF to be used in the builder.', 'fl-builder' ),
     217                'description' => self::__( 'When enabled, this allows blocks built with ACF to be used in the builder.', 'fl-builder' ),
    215218            ),
    216219            'collapse_default'       => array(
    217                 'label'       => __( 'Collapse All Settings', 'fl-builder' ),
     220                'label'       => self::__( 'Collapse All Settings', 'fl-builder' ),
    218221                'default'     => 0,
    219222                'callback'    => array( __CLASS__, 'collapse_default' ),
    220223                'group'       => 'ui',
    221                 'description' => __( 'When enabled, settings window sections will be collapsed.', 'fl-builder' ),
     224                'description' => self::__( 'When enabled, settings window sections will be collapsed.', 'fl-builder' ),
    222225            ),
    223226            'theme_colors'           => array(
    224                 'label'       => __( 'Load Theme Colors', 'fl-builder' ),
    225                 'default'     => 0,
    226                 'group'       => 'ui',
    227                 'description' => __( 'When enabled, Theme colors will be shown in color pickers.', 'fl-builder' ),
     227                'label'       => self::__( 'Load Theme Colors', 'fl-builder' ),
     228                'default'     => 0,
     229                'group'       => 'ui',
     230                'description' => self::__( 'When enabled, Theme colors will be shown in color pickers.', 'fl-builder' ),
    228231            ),
    229232            'core_colors'            => array(
    230                 'label'       => __( 'Load WordPress Colors', 'fl-builder' ),
    231                 'default'     => 0,
    232                 'group'       => 'ui',
    233                 'description' => __( 'When enabled, WordPress Core colors will be shown in color pickers.', 'fl-builder' ),
     233                'label'       => self::__( 'Load WordPress Colors', 'fl-builder' ),
     234                'default'     => 0,
     235                'group'       => 'ui',
     236                'description' => self::__( 'When enabled, WordPress Core colors will be shown in color pickers.', 'fl-builder' ),
    234237            ),
    235238            'module_wrappers'        => array(
    236                 'label'       => __( 'Force Module Wrapper Divs', 'fl-builder' ),
     239                'label'       => self::__( 'Force Module Wrapper Divs', 'fl-builder' ),
    237240                'default'     => 0,
    238241                'callback'    => array( __CLASS__, 'module_wrappers' ),
    239242                'group'       => 'frontend',
    240                 'description' => __( 'Forces modules to render their wrapper divs, even if they have been removed in a recent update.', 'fl-builder' ),
     243                'description' => self::__( 'Forces modules to render their wrapper divs, even if they have been removed in a recent update.', 'fl-builder' ),
    241244            ),
    242245        );
    243         if ( FLBuilderModel::is_white_labeled() ) {
     246        if ( ! self::is_plugins_loaded_action() && FLBuilderModel::is_white_labeled() ) {
    244247            unset( $settings['notifications_enabled'] );
    245248        }
    246249        return $settings;
     250    }
     251
     252    static private function __( $text, $domain ) {
     253        if ( self::is_plugins_loaded_action() ) {
     254            return $text;
     255        }
     256        return __( $text, $domain ); //phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText, WordPress.WP.I18n.NonSingularStringLiteralDomain
     257    }
     258
     259    static private function is_plugins_loaded_action() {
     260        return 'plugins_loaded' === current_action();
    247261    }
    248262
     
    368382        add_action( 'after_setup_theme', __CLASS__ . '::register_user_access_settings' );
    369383        add_action( 'wp_ajax_fl_advanced_submit', array( __CLASS__, 'advanced_submit' ) );
    370         add_action( 'init', array( __CLASS__, 'init_hooks' ), 11 );
     384        add_action( 'plugins_loaded', array( __CLASS__, 'init_hooks' ), 5 );
    371385        self::global_styles();
    372386    }
     387
    373388
    374389    /**
     
    428443            }
    429444            if ( $option != $setting['default'] && isset( $setting['callback'] ) ) {
    430                 call_user_func( $setting['callback'] );
     445                $action   = isset( $setting['action'] ) ? $setting['action'] : 'init';
     446                $priority = isset( $setting['priority'] ) ? $setting['priority'] : 11;
     447                add_action( $action, function () use ( $setting ) {
     448                    call_user_func( $setting['callback'] );
     449                }, $priority );
    431450            }
    432451        }
  • beaver-builder-lite-version/trunk/classes/class-fl-builder-loader.php

    r3373870 r3406987  
    4949         */
    5050        static private function define_constants() {
    51             define( 'FL_BUILDER_VERSION', '2.9.4' );
     51            define( 'FL_BUILDER_VERSION', '2.9.4.1' );
    5252            define( 'FL_BUILDER_FILE', trailingslashit( dirname( __DIR__, 1 ) ) . 'fl-builder.php' );
    5353            define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
  • beaver-builder-lite-version/trunk/classes/class-fl-builder-loop.php

    r3373870 r3406987  
    13291329    static public function get_term_options( $taxonomy = '' ) {
    13301330
     1331        $result = array( 0 => __( 'None', 'fl-builder' ) );
     1332
    13311333        if ( ! $taxonomy ) {
    13321334            $post_data = FLBuilderModel::get_post_data();
    1333             $taxonomy  = $post_data['taxonomy'];
     1335
     1336            if ( ! isset( $post_data['taxonomy'] ) ) {
     1337                return $result;
     1338            }
     1339            $taxonomy = $post_data['taxonomy'];
    13341340        }
    13351341
     
    13391345            'parent'     => 0,
    13401346        ) );
    1341 
    1342         $result = array( 0 => __( 'None', 'fl-builder' ) );
    13431347
    13441348        foreach ( $terms as $slug => $data ) {
  • beaver-builder-lite-version/trunk/classes/class-fl-builder-model.php

    r3373870 r3406987  
    824824    static public function disable() {
    825825        if ( isset( $_POST['_wpnonce'] ) && wp_verify_nonce( $_POST['_wpnonce'], 'fl-enable-editor' ) ) {
    826             update_post_meta( self::get_post_id(), '_fl_builder_enabled', false );
     826            $post_id = self::get_post_id();
     827            $user_id = get_current_user_id();
     828            $post    = get_post( $post_id );
     829            if ( current_user_can( 'edit_others_posts' ) || ( $post->post_author === $user_id ) ) {
     830                update_post_meta( $post_id, '_fl_builder_enabled', false );
     831            }
    827832        }
    828833        exit;
     
    12071212        if ( is_object( $node_id ) ) {
    12081213            $node = $node_id;
    1209         } else {
     1214        } else if ( null !== $node_id ) {
    12101215            $data = self::get_layout_data( $status );
    12111216            $node = isset( $data[ $node_id ] ) ? $data[ $node_id ] : null;
     1217        } else {
     1218            $node = false;
    12121219        }
    12131220
     
    14721479     */
    14731480    static public function get_categorized_nodes() {
    1474         if ( self::is_post_user_template( 'module' ) ) {
    1475             $root_module                            = self::get_node_template_root( 'module' );
    1476             $nodes                                  = self::get_categorized_child_nodes( $root_module );
    1477             $nodes['modules'][ $root_module->node ] = self::get_module( $root_module );
    1478         } elseif ( self::is_post_user_template( 'column' ) ) {
     1481        if ( self::is_post_user_template( 'column' ) ) {
    14791482            $root_col                            = self::get_node_template_root( 'column' );
    14801483            $nodes                               = self::get_categorized_child_nodes( $root_col );
     
    58215824            $type = ( is_wp_error( $terms ) || 0 === count( $terms ) ) ? 'layout' : $terms[0]->slug;
    58225825
    5823             self::$node_template_types[ $template_id ] = $type;
     5826            if ( null !== $template_id ) {
     5827                self::$node_template_types[ $template_id ] = $type;
     5828            }
    58245829
    58255830            return $type;
  • beaver-builder-lite-version/trunk/classes/class-fl-builder-user-access.php

    r3301699 r3406987  
    279279    public static function register_default_settings() {
    280280        self::register_setting( 'builder_access', array(
    281             'default'     => 'all',
     281            'default'     => [ 'administrator', 'editor' ],
    282282            'group'       => __( 'Frontend', 'fl-builder' ),
    283283            'label'       => __( 'Builder Access', 'fl-builder' ),
     
    287287
    288288        self::register_setting( 'unrestricted_editing', array(
    289             'default'     => 'all',
     289            'default'     => [ 'administrator', 'editor' ],
    290290            'group'       => __( 'Frontend', 'fl-builder' ),
    291291            'label'       => __( 'Unrestricted Editing', 'fl-builder' ),
  • beaver-builder-lite-version/trunk/classes/class-fl-builder-utils.php

    r3337387 r3406987  
    372372     */
    373373    public static function formatbytes( $size, $precision = 2 ) {
     374        if ( 0 === $size ) {
     375            return 0;
     376        }
    374377        $base     = log( $size, 1024 );
    375378        $suffixes = array( '', 'K', 'M', 'G', 'T' );
  • beaver-builder-lite-version/trunk/classes/class-fl-builder.php

    r3337387 r3406987  
    37693769
    37703770        // Global node css.
    3771         FLBuilderCSS::rule( array(
    3772             'selector' => '.fl-row-fixed-width',
    3773             'props'    => array(
    3774                 'max-width' => $global_settings->row_width . $global_settings->row_width_unit,
    3775             ),
     3771        FLBuilderCSS::responsive_rule( array(
     3772            'settings'     => $global_settings,
     3773            'setting_name' => 'row_width',
     3774            'selector'     => '.fl-row-fixed-width',
     3775            'prop'         => 'max-width',
    37763776        ) );
    37773777
  • beaver-builder-lite-version/trunk/classes/class-fl-controls.php

    r3337387 r3406987  
    5454            'methods'             => WP_REST_Server::CREATABLE,
    5555            'callback'            => __CLASS__ . '::set_color_presets',
    56             'permission_callback' => __CLASS__ . '::check_permission',
     56            'permission_callback' => __CLASS__ . '::check_write_permission',
    5757        ) );
    5858
     
    6060            'methods'             => WP_REST_Server::DELETABLE,
    6161            'callback'            => __CLASS__ . '::delete_color_presets',
    62             'permission_callback' => __CLASS__ . '::check_permission',
     62            'permission_callback' => __CLASS__ . '::check_write_permission',
    6363        ) );
    6464
     
    6666            'methods'             => WP_REST_Server::CREATABLE,
    6767            'callback'            => __CLASS__ . '::set_background_presets',
    68             'permission_callback' => __CLASS__ . '::check_permission',
     68            'permission_callback' => __CLASS__ . '::check_write_permission',
    6969        ) );
    7070
     
    221221        $sizes    = [];
    222222
     223        if ( ! current_user_can( 'read_private_posts' ) ) {
     224            $post    = get_post( $id );
     225            $user_id = get_current_user_id();
     226            if ( $post->post_author !== $user_id ) {
     227                return new WP_REST_Response( null, 403, [] );
     228            }
     229        }
     230
    223231        if ( $meta ) {
    224232            $sizes    = $meta['sizes'];
     
    246254
    247255    /**
    248      * Checks permission.
     256     * Checks permission for read access.
    249257     *
    250258     * @return boolean
     
    253261        return FLBuilderUserAccess::current_user_can( 'builder_access' );
    254262    }
     263
     264    /**
     265     * Checks permission for write access.
     266     *
     267     * @return boolean
     268     */
     269    static public function check_write_permission() {
     270        return ( FLBuilderUserAccess::current_user_can( 'unrestricted_editing' ) && FLBuilderUserAccess::current_user_can( 'builder_access' ) );
     271    }
    255272}
    256273
  • beaver-builder-lite-version/trunk/extensions/fl-builder-seo-plugins/classes/class-fl-builder-seo-plugins.php

    r3301699 r3406987  
    1010
    1111        add_action( 'admin_init', array( $this, 'init' ) );
     12        add_action( 'rank_math/admin/editor_scripts', array( $this, 'init_rank_math_editor' ) );
    1213        add_action( 'admin_head', array( $this, 'remove_yoast_meta_box_on_edit' ), 999 );
    1314
     
    3738        if ( defined( 'WPSEO_VERSION' ) ) {
    3839            $this->enqueue_script( 'yoast' );
    39         } elseif ( class_exists( 'RankMath' ) ) {
    40             $this->enqueue_script( 'rankmath' );
    41         }
     40        }
     41    }
     42
     43    public function init_rank_math_editor() {
     44        global $pagenow;
     45        if ( FLBuilderAJAX::doing_ajax() || 'post.php' !== $pagenow ) {
     46            return;
     47        }
     48
     49        $this->enqueue_script( 'rankmath' );
    4250    }
    4351
  • beaver-builder-lite-version/trunk/fl-builder.php

    r3373870 r3406987  
    44 * Plugin URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-uri
    55 * Description: A drag and drop frontend WordPress page builder plugin that works with almost any theme!
    6  * Version: 2.9.4
     6 * Version: 2.9.4.1
    77 * Author: The Beaver Builder Team
    88 * Author URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-author
     
    1212 * Text Domain: fl-builder
    1313 * Requires at least: 5.2
    14  * Tested up to: 6.8
     14 * Tested up to: 6.9
    1515 * Requires PHP: 7.0
    1616 */
  • beaver-builder-lite-version/trunk/includes/updater-config.php

    r3373870 r3406987  
    44    FLUpdater::add_product(array(
    55        'name'    => 'Beaver Builder Plugin (Lite Version)',
    6         'version' => '2.9.4',
     6        'version' => '2.9.4.1',
    77        'slug'    => 'bb-plugin',
    88        'type'    => 'plugin',
  • beaver-builder-lite-version/trunk/modules/button-group/includes/frontend.css.php

    r3301699 r3406987  
    503503    if ( ! empty( $settings->items[ $i ]->button_item_border->style ) ) {
    504504        if ( empty( $settings->items[ $i ]->button_item_border->width->top ) ) {
    505             $settings->items[ $i ]->button_item_border->width->top = $settings->border['width']['top'];
     505            $settings->items[ $i ]->button_item_border->width->top = $settings->border['width']['top'] ?? null;
    506506        }
    507507        if ( empty( $settings->items[ $i ]->button_item_border->width->bottom ) ) {
    508             $settings->items[ $i ]->button_item_border->width->bottom = $settings->border['width']['bottom'];
     508            $settings->items[ $i ]->button_item_border->width->bottom = $settings->border['width']['bottom'] ?? null;
    509509        }
    510510        if ( empty( $settings->items[ $i ]->button_item_border->width->left ) ) {
    511             $settings->items[ $i ]->button_item_border->width->left = $settings->border['width']['left'];
     511            $settings->items[ $i ]->button_item_border->width->left = $settings->border['width']['left'] ?? null;
    512512        }
    513513        if ( empty( $settings->items[ $i ]->button_item_border->width->right ) ) {
    514             $settings->items[ $i ]->button_item_border->width->right = $settings->border['width']['right'];
     514            $settings->items[ $i ]->button_item_border->width->right = $settings->border['width']['right'] ?? null;
    515515        }
    516516        FLBuilderCSS::border_field_rule( array(
  • beaver-builder-lite-version/trunk/readme.txt

    r3403608 r3406987  
    33Tags: page builder, beaver builder, landing page, front-end builder, drag and drop editor
    44Requires at least: 5.2
    5 Tested up to: 6.8
     5Tested up to: 6.9
    66Requires PHP: 7.0
    7 Stable tag: 2.9.4
     7Stable tag: 2.9.4.1
    88License: GPL2+
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
Note: See TracChangeset for help on using the changeset viewer.