LLMS_Blocks_Reusable::mod_wp_block_query( arrays $args, WP_REST_Request $request )
Modify the rest request query used to list reusable blocks within the block editor
Description Description
Ensures that reusable blocks containing LifterLMS Form Fields can only be inserted/viewed in the context that we allow them to be used within.
- When viewing a
wp_blockpost, all reusable blocks should be displayed. - When viewing an
llms_formpost, only blocks that specifyis_llms_fieldas ‘yes’ can be displayed. - When viewing any other post, any post with
is_llms_fieldof ‘yes’ is excluded.
See also See also
Parameters Parameters
- $args
-
(arrays) (Required) WP_Query arguments.
- $request
-
(WP_REST_Request) (Required) Request object.
Return Return
(array)
Source Source
File: libraries/lifterlms-blocks/includes/class-llms-blocks-reusable.php
public function mod_wp_block_query( $args, $request ) {
$referer = $request->get_header( 'referer' );
$screen = empty( $referer ) ? false : $this->get_screen_from_referer( $referer );
// We don't care about the screen or it's a reusable block screen.
if ( empty( $screen ) || 'wp_block' === $screen ) {
return $args;
}
// Add a meta query if it doesn't already exist.
if ( empty( $args['meta_query'] ) ) {
$args['meta_query'] = array(
'relation' => 'AND',
);
}
// Forms should show only blocks with forms and everything else should exclude blocks with forms.
$include_fields = 'llms_form' === $screen;
$args['meta_query'][] = $this->get_meta_query( $include_fields );
return $args;
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 2.0.0 | Introduced. |