Builder
Widgets Bundle > Form Building> Builder
The builder field is an entire SiteOrigin Page Builder instance. As such, SiteOrigin Page Builder is required for this field to work in all instances (settings and output).
Example
$form_options = array(
'page_builder' => array(
'type' => 'builder',
'label' => __( 'Page Builder', 'widget-form-fields-text-domain'),
)
);Rendering the field
siteorigin_panels_render will handle rendering the field value itself, but it does require some information to be able to proceed. siteorigin_panels_render has three relevant parameters for outputting this field:
- post_id:
int,string, `bool - $post_id The Post ID or 'home'. - enqueue_css:
boolShould we also enqueue the layout CSS. This, for all intents and purposes, should rarely not be set to true.
- panels_data:
array$panels_data This is where we pass the contents of $instance['page_builder']
For information on siteorigin_panels_render, please refer to the full source code here.
if( function_exists( 'siteorigin_panels_render' ) ) {
$content_builder_id = substr( md5( json_encode( $content ) ), 0, 8 );
echo siteorigin_panels_render( 'w'.$content_builder_id, true, $instance['page_builder'] );
}
else {
echo __( 'This widget requires Page Builder.', 'so-widgets-bundle' );
}$content_builder_id doesn't need to be complex, but we recommend using a complex id to prevent any potential mismatches.