escopecz / mautic-form-submit
A library for submitting Mautic form from a 3rd pary PHP app
Installs: 25 348
Dependents: 0
Suggesters: 0
Security: 0
Stars: 57
Watchers: 12
Forks: 14
Open Issues: 3
Requires
- php: >=8.1
- ext-curl: *
Requires (Dev)
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^10.5
- rector/rector: ^1.2
- scrutinizer/ocular: ~1.9
- symplify/easy-coding-standard: ^12.3
This package is auto-updated.
Last update: 2024-11-29 13:35:50 UTC
README
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.
Install
Via Composer
composer require escopecz/mautic-form-submit
Usage
// 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' => 'john@doe.email']);
- 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.
Run project
ddev start
Project url: https://mautic-form-submit.ddev.site/
Testing
composer test
composer cs
composer phpstan
Current status
License
The MIT License (MIT). Please see License File for more information.