Submitting a form can get handy if you want to process the data with your app, but you want to send them to Mautic too. Mautic can then run automated tasks triggered by the form submission. Read more about it in the original post.
Since the new Mautic versions prefer cookie tracking over IP tracking which makes more tedious to submit the form as the tracked contact, this library will take care of the cookie sending via CURL. It will also listen the cookie from the response and updates the contact cookie with the values from the submit response. This way if the contact ID changes because of contact merge, the contact will continue browsing under the new contact ID.
The automatic cookie handling requires that your form will be on a page tracked by the Mautic JS tracking which provides the Mautic contact cookie in the first place.
composer require escopecz/mautic-form-submit
// Require Composer autoloader
require __DIR__.'/vendor/autoload.php';
// Define the namespace of the Mautic object
use Escopecz\MauticFormSubmit\Mautic;
// Define the namespace of the Mautic configuration object
use Escopecz\MauticFormSubmit\Mautic\Config;
// It's optional to declare the configuration object to change some default values.
// For example to disable Curl verbose logging.
$config = new Config;
$config->setCurlVerbose(true);
// Instantiate the Mautic object with the base URL where the Mautic runs
$mautic = new Mautic('https://mymautic.com');
// Create a new instance of the Form object with the form ID 342
$form = $mautic->getForm(342);
// Submit provided data array to the form 342
$result = $form->submit(['f_email' => '[email protected]']);
- The integer passed to the
getForm()
method must be ID of the Mautic form. - The array passed to the
submit()
method must be associative array of['mautic_field_alias' => 'the_value']
.
For working example see the examples
dir.
ddev start
Project url: https://mautic-form-submit.ddev.site/
composer test
composer cs
composer phpstan
The MIT License (MIT). Please see License File for more information.