__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
namespace EssentialBlocks\Blocks;
use EssentialBlocks\Core\Block;
use EssentialBlocks\Utils\Helper;
class Form extends Block
{
protected $frontend_scripts = [ 'essential-blocks-form-frontend' ];
protected $frontend_styles = [ 'essential-blocks-fontawesome' ];
/**
* Default attributes
*
* @var array
*/
protected $default_attributes;
public function __construct()
{
$this->default_attributes = [
'btnAddIcon' => false,
'iconPosition' => 'right',
'buttonText' => __( 'Submit', 'essential-blocks' ),
'icon' => 'fas fa-chevron-right',
'formLayout' => 'block',
'formStyle' => 'form-style-classic',
'enableMultistepForm' => false,
'stepIndecator' => true,
'stepNavigationStyle' => 'progress-bar',
'enableStepCount' => false,
'enableStepIcon' => true,
'enableStepSubtitle' => false,
'nextBtnText' => 'Next',
'prevBtnText' => 'Previous',
];
}
/**
* Unique name of the block.
* @return string
*/
public function get_name()
{
return 'form';
}
/**
* Initialize the InnerBlocks for Accordion
* @return array<Block>
*/
public function inner_blocks()
{
return [
FormTextField::get_instance()
];
}
/**
* Register all other scripts
* @return void
*/
public function register_scripts()
{
$this->assets_manager->register(
'form-frontend',
$this->path() . '/frontend.js',
[ 'essential-blocks-babel-bundle' ]
);
}
/**
* Render callback
*/
public function render_callback( $attributes, $content )
{
if ( is_admin() ) {
return;
}
//Modify wp_kses rules for Form Block kses
add_filter( 'wp_kses_allowed_html', [ new Helper, 'eb_allowed_html' ], 99, 2 );
$_essential_attributes = [
'formType' => 'contact_form',
'preset' => 'contact_form_1',
'confirmationType' => 'message',
'successMessage' => __( 'Your form has been submitted Successfully!', 'essential-blocks' ),
'errorMessage' => __( 'Your form couldn\'t been submitted! Please try again', 'essential-blocks' )
];
foreach ( $_essential_attributes as $key => $value ) {
if ( isset( $attributes[ $key ] ) && is_bool( $attributes[ $key ] ) ) {
$_essential_attributes[ $key ] = $attributes[ $key ];
} elseif ( ! empty( $attributes[ $key ] ) ) {
$_essential_attributes[ $key ] = $attributes[ $key ];
} else {
$_essential_attributes[ $key ] = $value;
}
}
$attributes = wp_parse_args( $attributes, $this->default_attributes );
if ( empty( $attributes[ 'formType' ] ) ) {
return '';
}
if ( empty( $content ) ) {
return '';
}
$classHook = isset( $attributes[ 'classHook' ] ) ? $attributes[ 'classHook' ] : '';
$submit_btn_attr = apply_filters( 'eb_form_submit_btn_attr', [
'data-id' => $attributes[ 'blockId' ],
'data-form-id' => $attributes[ 'formId' ]
] );
$submit_btn_classes = apply_filters( 'eb_form_submit_btn_classes', 'btn btn-primary eb-form-submit-button' );
$submit_button_icon = sprintf(
'%1$s',
Helper::eb_render_icon( Helper::eb_get_icon_type( $attributes[ 'icon' ] ), 'eb-button-icon', $attributes[ 'icon' ] )
);
$submit_button_html = sprintf(
'<button type="submit" class="%1$s" %2$s>
%4$s%3$s%5$s
<img class="eb-form-submit-loader" src="%6$sassets/images/loading.svg" />
</button>',
$submit_btn_classes,
http_build_query( $submit_btn_attr, '', ' ' ),
$attributes[ 'buttonText' ],
$attributes[ 'btnAddIcon' ] && $attributes[ 'iconPosition' ] === 'left' ? $submit_button_icon : '',
$attributes[ 'btnAddIcon' ] && $attributes[ 'iconPosition' ] === 'right' ? $submit_button_icon : '',
ESSENTIAL_BLOCKS_URL
);
$confirmation_div_attr = apply_filters( 'eb_form_confirmation_div_attr', [
'data-confirmation-type' => esc_attr( $_essential_attributes[ 'confirmationType' ] ),
'data-success' => esc_html( $_essential_attributes[ 'successMessage' ] ),
'data-error' => esc_html( $_essential_attributes[ 'errorMessage' ] )
], $attributes );
$attributes_html = '';
foreach ( $confirmation_div_attr as $key => $value ) {
$attributes_html .= sprintf( '%s="%s" ', esc_attr( $key ), esc_attr( $value ) );
}
$confirmation_div_html = sprintf(
'<div class="eb_form_submit_response" %1$s></div>',
trim( $attributes_html )
);
// $confirmation_div_html = sprintf(
// '<div class="eb_form_submit_response" %1$s></div>',
// http_build_query( $confirmation_div_attr, '', ' ' )
// );
ob_start();
Helper::views( 'form-block', array_merge( $attributes, [
'essentialAttr' => $_essential_attributes,
'classHook' => $classHook,
'submit_button_html' => $submit_button_html,
'confirmation_div_html' => $confirmation_div_html,
'content' => $content,
'nonce' => wp_create_nonce( $attributes[ 'blockId' ] . '-nonce' )
] ) );
return ob_get_clean();
}
}| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Accordion.php | File | 1.03 KB | 0640 |
|
| AccordionItem.php | File | 335 B | 0640 |
|
| AddToCart.php | File | 3.43 KB | 0640 |
|
| AdvancedHeading.php | File | 5.73 KB | 0640 |
|
| AdvancedImage.php | File | 2.77 KB | 0640 |
|
| AdvancedNavigation.php | File | 703 B | 0640 |
|
| AdvancedTabs.php | File | 886 B | 0640 |
|
| AdvancedVideo.php | File | 1021 B | 0640 |
|
| Breadcrumbs.php | File | 11.37 KB | 0640 |
|
| Button.php | File | 3.82 KB | 0640 |
|
| CallToAction.php | File | 365 B | 0640 |
|
| Column.php | File | 220 B | 0640 |
|
| CountDown.php | File | 605 B | 0640 |
|
| DualButton.php | File | 666 B | 0640 |
|
| FeatureList.php | File | 332 B | 0640 |
|
| FlexContainer.php | File | 371 B | 0640 |
|
| FlipBox.php | File | 648 B | 0640 |
|
| FluentForms.php | File | 3.77 KB | 0640 |
|
| Form.php | File | 5.72 KB | 0640 |
|
| FormTextField.php | File | 246 B | 0640 |
|
| GoogleMap.php | File | 2.55 KB | 0640 |
|
| Icon.php | File | 323 B | 0640 |
|
| ImageComparison.php | File | 620 B | 0640 |
|
| ImageGallery.php | File | 2.26 KB | 0640 |
|
| InfoBox.php | File | 761 B | 0640 |
|
| InstagramFeed.php | File | 5.89 KB | 0640 |
|
| InteractivePromo.php | File | 321 B | 0640 |
|
| LottieAnimation.php | File | 608 B | 0640 |
|
| NftGallery.php | File | 649 B | 0640 |
|
| Notice.php | File | 580 B | 0640 |
|
| NumberCounter.php | File | 598 B | 0640 |
|
| Openverse.php | File | 480 B | 0640 |
|
| ParallaxSlider.php | File | 664 B | 0640 |
|
| PopUp.php | File | 625 B | 0640 |
|
| PostBlock.php | File | 1.57 KB | 0640 |
|
| PostCarousel.php | File | 4.62 KB | 0640 |
|
| PostGrid.php | File | 5.79 KB | 0640 |
|
| PostMeta.php | File | 7.24 KB | 0640 |
|
| PricingTable.php | File | 333 B | 0640 |
|
| ProductDetails.php | File | 3.51 KB | 0640 |
|
| ProductImages.php | File | 2.83 KB | 0640 |
|
| ProductPrice.php | File | 4.75 KB | 0640 |
|
| ProductRating.php | File | 2.97 KB | 0640 |
|
| ProgressBar.php | File | 604 B | 0640 |
|
| Row.php | File | 455 B | 0640 |
|
| ShapeDivider.php | File | 602 B | 0640 |
|
| Slider.php | File | 1.09 KB | 0640 |
|
| Social.php | File | 352 B | 0640 |
|
| SocialShare.php | File | 3.89 KB | 0640 |
|
| Tab.php | File | 214 B | 0640 |
|
| TableOfContents.php | File | 17.38 KB | 0640 |
|
| Taxonomy.php | File | 4.92 KB | 0640 |
|
| TeamMember.php | File | 361 B | 0640 |
|
| Testimonial.php | File | 373 B | 0640 |
|
| Text.php | File | 5.17 KB | 0640 |
|
| ToggleContent.php | File | 613 B | 0640 |
|
| TypingText.php | File | 594 B | 0640 |
|
| WPForms.php | File | 2.92 KB | 0640 |
|
| WooProductGrid.php | File | 8.39 KB | 0640 |
|
| Wrapper.php | File | 359 B | 0640 |
|
| price.php | File | 239 B | 0640 |
|