Skip to main content

Campaign Gutenberg editor: "Classic" (freeform) block edit popup is an unusable thin strip on hard refresh β€” TinyMCE not initialized in the iframed editor

> Follow-up to my earlier report ["v3 email editor cannot open legacy v2 Classic/HTML templates"](https://community.wpmanageninja.com/portal/space/fluent-crm/post/v3-email-editor-cannot-open-legacy-v2-c). In 3.1.6 the legacy `_edit_type=html` template now opens (good - thank you!), but editing the resulting Classic / freeform block inside the campaign Gutenberg editor is broken on a cold load.

## Environment
- FluentCRM: 3.1.6
- FluentCRM Pro / FluentCampaign: 3.1.6
- WordPress: 7.0
- WooCommerce: 10.8.1
- PHP: 8.3
- Database: MariaDB 11.4
- Theme: Astra child
- Browser: Firefox (reproduced consistently)

## Summary

When editing a campaign in the Default (Gutenberg) editor that contains a Classic / freeform block (e.g. a legacy `_edit_type=html` newsletter), clicking the block's "Edit" opens the WordPress core `block-editor-freeform-modal` β€” but the editing textarea is a ~58px / 2-row thin strip (the modal frame itself is ~582px). The visual TinyMCE editor is not attached, so the block is effectively unusable for non-technical users.

It is load-order / timing dependent: on a warm/soft navigation TinyMCE sometimes attaches and the editor works; after a hard refresh (Ctrl+F5) it reliably breaks into the thin strip. This intermittency = a race condition.

## Root cause (diagnosed in-browser)

The FluentCRM block editor runs the content canvas inside an iframe. We instrumented the iframe's `window`:

- `window.tinymce` β†’ loaded (TinyMCE v4 present), `window.wp.oldEditor` / `window.wp.editor` β†’ present.

- BUT `tinymce.editors.length === 0` and `tinymce.get(\) === undefined` β†’ no editor instance was ever created for the freeform block's textarea.

So the capability is fully loaded in the iframe, but the freeform block's `wp.oldEditor.initialize(...)` either does not run or runs before its dependencies are ready on a cold load β†’ the bare `\` fallback remains (the "thin strip").

This is essentially the WP 6.x iframed block editor + Classic (core/freeform) block integration problem, surfacing in FluentCRM's iframed campaign editor.

## Reproduction

  1. Have a campaign whose body is a Classic / freeform block (e.g. import a legacy `_edit_type=html` template), in Default (Gutenberg) editor mode.

  2. Open the campaign editor.

  3. Click the Classic block β†’ Edit.

  4. Ctrl+F5 (hard refresh), reopen Edit.

  5. Observe: the "Classic Editor" modal opens but the textarea is a ~58px thin strip; the visual TinyMCE toolbar/content does not render. Editing is impractical.

## Impact

Non-technical newsletter editors cannot reliably edit a Classic-block campaign in the Gutenberg editor; the broken state appears unpredictably (after refresh). This was a major part of why we delayed the 3.x upgrade.

## Workaround we use

We switch such campaigns/templates to the dedicated "Classic Editor" (`raw_classic`) mode, which does not use the iframed freeform modal and works reliably. (See separate report on `raw_classic` mode not persisting on switch.)

## Expected

On a cold/hard load, the freeform block's "Edit" modal should initialize TinyMCE reliably (await `wp.oldEditor`/`tinymce` readiness in the iframe before initialize), or render a full-height fallback textarea instead of a 2-row strip.

## Attachments

- Screenshot: the "Klasszikus szerkesztΕ‘" (Classic Editor) modal with the ~58px thin-strip textarea after hard refresh.

- Browser console probe output (tinymce present, 0 instances on the textarea).

[Bug] Campaign Gutenberg editor: "Classic" (freeform) block edit popup is an unusable thin strip on hard refresh

Right now the FluentCRM MCP server has no way to work with custom field definitions β€” you can't list them, edit them, or create new ones via MCP.

It would be great to have a tool for this (similar to the existing ones for tags and lists), so custom fields can be fully managed through the MCP integration instead of only in the admin UI.

Thank you for the "month" as unit in automation !!!

Hello everyone!

I wanted to share a custom integration I recently developed for a project involving Teams for WooCommerce Memberships and FluentCRM Companies.

The project required each WooCommerce Team to be represented by a corresponding record in FluentCRM’s Companies module, together with relevant membership and organizational information.

From what I found, WooCommerce can already be connected to FluentCRM Contacts through the existing integration, tags, and third-party automation tools. However, I could not find a direct or built-in solution for synchronizing WooCommerce Teams with FluentCRM Companies.

Before developing the integration, I reviewed the available options and documentation for AutomatorWP, OttoKit, WP Fusion, and Bit Integrations. These provide many useful actions involving FluentCRM Contacts, but I was unable to find an existing option that covered the Team-to-Company workflow required by the project.

The custom solution I developed can:

  • Create or update the appropriate FluentCRM Company from a WooCommerce Team
  • Synchronize relevant Team, membership, and organization information
  • Maintain total, active, and inactive member counts
  • Connect the Team owner and related members with the correct Company
  • Handle matching carefully so records are not associated with the wrong organization

The result gives the project a clearer organizational view inside FluentCRM, where Companies represent WooCommerce Teams and the related Contacts represent their owners and members.

This was a fairly specialized requirement, but I thought it might be useful to share information about this type of integration in case anyone else is working with a similar WooCommerce Teams and FluentCRM setup, as I may be able to help with comparable custom integration requirements.

Has anyone else worked on similar FluentCRM customizations or needed to connect organizational and membership data with FluentCRM Companies?

If a website let's say sends marketing emails and news emails, how can a user manage what email he wants to receive?
Is the only way forward to have separate lists for Marketing and News so the user can unsubscribe from any list he wants?

anyone an idea how to connect Facebook lead ads with FluentCRM? It's not in the list πŸ˜”

1.00

hi, I have a new project. The customer needs a CRM system, and FluentCRM with FluentBoards fits good.
However, they want one CRM for 4 different brands.

I know I can work with FluentSMTP to add different mailaddresses, and mailtemplates to add the branding, but is this the right way to handle this?

And how about SMS? There is only one SMS provider account

I have users who can see the full email campaign on some devices and not others. It's not an OpenDNS issue, as that's been tried both on and off. It may be specific to Hotmail and Outlook.

Is anyone else experiencing this? Is there a solution?

Thanks!

Update: Fixed - but under the 3 dots is an odd place to have the Visual layout since the others are in the side bar. Anyways, πŸ˜† I'm all set.

I have Pro and it's updated to most recent version. I am not seeing the Visual Builder option for creating email templates. I don't see it on my own website nor do I see it on a client site. I've looked all around when the template is open but don't see any visual builder. I am building from scratch to start. Is there not a visual builder in the same way there was before? Maybe the block builder IS the visual builder? I can still use the visual builder in the templates that I have already created so I'm a bit confused.

1.00

Shahjahan JewelΒ now we have SMS integration, but will we get a whatsapp integration soon?