\<%= blockClassModel %>; include_once __DIR__ . "/helpers/<%= blockClassModel %>_Defaults.php"; include_once __DIR__ . "/helpers/<%= blockClassModel %>_API.php"; class <%= blockClassModel %>_Component extends \Core\Component { public function get_content( $args = [] ): string { $args = array_merge( Helpers\<%= blockClassModel %>_Defaults::default_args(), $args ); $args = Helpers\<%= blockClassModel %>_API::prepare_args( $args ); $output = ( include( __DIR__ . '/templates/<%= blockFilename %>.template.php' ) )( array_merge( [], $args ), self::class ); return apply_filters( 'the_content', $output ); } <% if (!include_acf_block && !include_native_gutenberg_block) { %>function register_assets(): void { $version = get_plugin_data( __DIR__ . "/../../scytale-custom-blocks.php" )['Version']; // In Plugins // $version = \Core\Global_Functions::get_current_version_number(); // In Theme // $base_path = get_template_directory_uri() . '/components/partials/<%= blockFilename %>/'; wp_enqueue_style( '<%= blockFilename %>', plugins_url( 'templates/styles/<%= blockFilename %>.min.css', __FILE__ ), ['assets-style'], get_blocks_version() );<% if (include_script) { %> wp_enqueue_script( '<%= blockFilename %>', plugins_url( 'templates/scripts/<%= blockFilename %>.min.js', __FILE__ ), ['assets-script'], get_blocks_version(), true );<% } %> wp_enqueue_script( 'script-<%= blockFilename %>' ); }<% } %> <% if (include_elementor_widget) { %>function register_custom_logic(): void { add_action( 'elementor/widgets/widgets_registered', [ $this, 'register_elementor_widget' ] ); } <% } %><% if (include_elementor_widget) { %> function register_elementor_widget( $widgets_manager ) { $widgets_manager->register_widget_type( new Helpers\<%= blockClassModel %>_Elementor_Widget() ); } <% } %><% if (include_acf_block) { %> function register_acf_block() { $this->register_block( __DIR__ . "/<%= blockFilename %>.block.json", [ 'enqueue_assets' => function () { wp_enqueue_style( '<%= blockFilename %>', plugins_url( 'templates/styles/<%= blockFilename %>.min.css', __FILE__ ), ['assets-style'], get_blocks_version() );<% if (include_script) { %> wp_enqueue_script( '<%= blockFilename %>', plugins_url( 'templates/scripts/<%= blockFilename %>.min.js', __FILE__ ), ['assets-script'], get_blocks_version(), true );<% } %> }, 'default' => Helpers\<%= blockClassModel %>_Defaults::default_args(), 'supports' => [ //'jsx' => true, 'color' => [ 'background' => true, 'text' => true, ], 'spacing' => [ 'margin' => [ 'top', 'bottom' ], 'padding' => [ 'top', 'bottom' ] ], ] ] ); } <% } %><% if (include_native_gutenberg_block) { %> function register_native_gutenberg_block() { register_block_type( __DIR__ . '/templates/gutenberg-block/block.json' );<% if (include_script) { %> add_action( 'wp_enqueue_scripts', function () { $asset_file_front = include( plugin_dir_path( __FILE__ ) . '/templates/gutenberg-block/build/front.asset.php' ); wp_enqueue_script( 'gutenberg-<%= blockFilename %>-scripts-front', plugins_url( 'templates/gutenberg-block/build/front.js', __FILE__ ), $asset_file_front['dependencies'], $asset_file_front['version'], true ); } );<% } %> }<% } %> } <%= blockClassModel %>_Component::get_instance();