87 lines
1.6 KiB
PHP
87 lines
1.6 KiB
PHP
<?php
|
|
|
|
add_action(
|
|
'init',
|
|
'wpcf7_init_block_editor_assets',
|
|
10, 0
|
|
);
|
|
|
|
function wpcf7_init_block_editor_assets() {
|
|
$assets = array();
|
|
|
|
$asset_file = wpcf7_plugin_path(
|
|
'includes/block-editor/index.asset.php'
|
|
);
|
|
|
|
if ( file_exists( $asset_file ) ) {
|
|
$assets = include( $asset_file );
|
|
}
|
|
|
|
$assets = wp_parse_args( $assets, array(
|
|
'dependencies' => array(
|
|
'wp-api-fetch',
|
|
'wp-block-editor',
|
|
'wp-blocks',
|
|
'wp-components',
|
|
'wp-element',
|
|
'wp-i18n',
|
|
'wp-url',
|
|
),
|
|
'version' => WPCF7_VERSION,
|
|
) );
|
|
|
|
wp_register_script(
|
|
'contact-form-7-block-editor',
|
|
wpcf7_plugin_url( 'includes/block-editor/index.js' ),
|
|
$assets['dependencies'],
|
|
$assets['version']
|
|
);
|
|
|
|
wp_set_script_translations(
|
|
'contact-form-7-block-editor',
|
|
'contact-form-7'
|
|
);
|
|
|
|
register_block_type(
|
|
wpcf7_plugin_path( 'includes/block-editor' ),
|
|
array(
|
|
'editor_script' => 'contact-form-7-block-editor',
|
|
)
|
|
);
|
|
}
|
|
|
|
|
|
add_action(
|
|
'enqueue_block_editor_assets',
|
|
'wpcf7_enqueue_block_editor_assets',
|
|
10, 0
|
|
);
|
|
|
|
function wpcf7_enqueue_block_editor_assets() {
|
|
$contact_forms = array_map(
|
|
static function ( $contact_form ) {
|
|
return array(
|
|
'id' => $contact_form->id(),
|
|
'hash' => $contact_form->hash(),
|
|
'slug' => $contact_form->name(),
|
|
'title' => $contact_form->title(),
|
|
'locale' => $contact_form->locale(),
|
|
);
|
|
},
|
|
WPCF7_ContactForm::find( array(
|
|
'posts_per_page' => 20,
|
|
'orderby' => 'modified',
|
|
'order' => 'DESC',
|
|
) )
|
|
);
|
|
|
|
wp_add_inline_script(
|
|
'contact-form-7-block-editor',
|
|
sprintf(
|
|
'window.wpcf7 = {contactForms:%s};',
|
|
wp_json_encode( $contact_forms )
|
|
),
|
|
'before'
|
|
);
|
|
}
|