* @param array $attr Attributes passed by WPForms Gutenberg block.
private function output_custom_css( array $attr ): void {
if ( wpforms_get_render_engine() === 'classic' ) {
$custom_css = trim( $attr['customCss'] ?? '' );
if ( empty( $custom_css ) ) {
$style_id = "#wpforms-custom-css-{$attr['formId']}-block-{$attr['clientId']}";
sanitize_key( $style_id ),
wp_strip_all_tags( $custom_css ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
* Disable loading media for the richtext editor for edit action to prevent script conflicts.
* @param bool|mixed $media_enabled Whether to enable media.
* @param array $field Field data.
* @noinspection PhpUnusedParameterInspection
public function disable_richtext_media( $media_enabled, array $field ): bool {
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
if ( ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] === 'edit' && is_admin() ) {
return (bool) $media_enabled;
* Get block API version based on WP core version.
* @return int Block API version.
private function get_block_api_version(): int {
if ( $this->is_legacy_block() ) {
return version_compare( $GLOBALS['wp_version'], '6.3', '<' ) ? 2 : 3;