MP_Calculator_Gutenberg
Class MP_Calculator_Gutenberg.
Source Source
File: mortgage-platform/Inc/Calculators/MortgageCalculator/Extensions/MP_Calculator_Gutenberg.php
class MP_Calculator_Gutenberg {
/**
* Enqueue styles and scripts for create and use calculator gutenberg block.
*
* @since 1.0.0
* @access public
*/
public function calculator_block() {
wp_enqueue_script(
MortgagePlatform::$prefix . 'gutenberg-js',
plugin_dir_url( __FILE__ ) . 'assets/mortgage-gutenberg-block.js',
array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-i18n' ),
filemtime( dirname( __FILE__ ) . '/assets/mortgage-gutenberg-block.js' ),
true
);
wp_enqueue_style(
MortgagePlatform::$prefix . 'gutenberg-css',
plugin_dir_url( __FILE__ ) . '../../assets/css/mortgage_platform_calculators.main.min.css',
array( 'wp-edit-blocks' ),
filemtime( dirname( __FILE__ ) . '/../../assets/css/mortgage_platform_calculators.main.min.css' )
);
wp_enqueue_style(
MortgagePlatform::$prefix . 'darktheme-css',
plugin_dir_url( __FILE__ ) . '../../assets/css/darktheme.min.css',
array( 'wp-edit-blocks' ),
filemtime( dirname( __FILE__ ) . '/../../assets/css/darktheme.min.css' )
);
}
/**
* Register Block.
*
* @since 1.0.0
* @access public
*/
public function register_block() {
if ( ! function_exists( 'register_block_type' ) ) {
return;
}
$calculator_setting = get_option( MortgagePlatform::$prefix . 'style' );
$rounded_elements = isset( $calculator_setting['rounded_elements'] ) ? $calculator_setting['rounded_elements'] : 0;
$slider_for_input = isset( $calculator_setting['slider_for_input'] ) ? $calculator_setting['slider_for_input'] : 0;
if (isset($calculator_setting['type_style'])){
register_block_type(
'calculator/mortgage-calculator',
array(
'attributes' => array(
'type_style' => array(
'type' => 'string',
'default' => $calculator_setting['type_style'],
),
'color' => array(
'type' => 'string',
'default' => $calculator_setting['primary_color'],
),
'fonts' => array(
'type' => 'string',
'default' => $calculator_setting['fonts'],
),
'type_inputs' => array(
'type' => 'string',
'default' => $calculator_setting['type_inputs'],
),
'rounded_elements' => array(
'type' => 'boolean',
'default' => $rounded_elements,
),
'slider_for_input' => array(
'type' => 'boolean',
'default' => $slider_for_input,
),
'type_slyder' => array(
'type' => 'string',
'default' => $calculator_setting['type_slyder'],
),
),
'render_callback' => array( $this, 'calculator_gutenberg_block_callback' ),
)
);
}
}
/**
* Callback function to render calculator to frontend.
*
* @since 1.0.0
* @access public
*
* @param mixed|array|string $attr attributes
*
* @return string
*/
public function calculator_gutenberg_block_callback( $attr ) {
extract( $attr );
$shortcode_string = '[' . MortgagePlatform::$shortcode_widget . ' type_style="%s" primary_color="%s" fonts="%s" type_inputs="%s" rounded_elements="%s" slider_for_input="%s" type_slyder="%s"]';
return sprintf( $shortcode_string, $type_style, $color, $fonts, $type_inputs, $rounded_elements, $slider_for_input, $type_slyder );
}
/**
* Add new Gutenberg category.
*
* @since 1.0.0
* @access public
*
* @param array|mixed $categories categories
*
* @return array
*/
public function add_block_categories( $categories ) {
$category_slugs = wp_list_pluck( $categories, 'slug' );
$category_list = in_array( 'mortgage_platform', $category_slugs, true ) ? $categories : array_merge(
$categories,
array(
array(
'slug' => MortgagePlatform::$domain,
'title' => __( 'Mortgage Platform', 'mortgage_platform' ),
'icon' => null,
),
)
);
return $category_list;
}
}
Methods Methods
- add_block_categories — Add new Gutenberg category.
- calculator_block — Enqueue styles and scripts for create and use calculator gutenberg block.
- calculator_gutenberg_block_callback — Callback function to render calculator to frontend.
- register_block — Register Block.
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0 | Introduced. |