Skip to content

Advanced contact form with persisting messages and admin interface

Notifications You must be signed in to change notification settings

mangoweb-sylius/SyliusContactFormPlugin

Repository files navigation

Contact Form Plugin

Features

  • Extend contact form
  • Add a ReCaptcha Verification to the contact form (only supports invisible ReCaptcha V2)
  • Add Message administrative panel
    • conversation history
    • Possibility to respond instantly

Installation

  1. Run $ composer require mangoweb-sylius/sylius-contact-form-plugin.

  2. Add plugin classes to your config/bundles.php:

    return [
       ...
       MangoSylius\SyliusContactFormPlugin\MangoSyliusContactFormPlugin::class => ['all' => true],
    ];
  3. Add resource to config/packages/_sylius.yaml

    imports:
         ...
         - { resource: "@MangoSyliusContactFormPlugin/Resources/config/config.yml" }
  4. Add routing to config/_routes.yaml

    mango_sylius_contact_form:
        resource: "@MangoSyliusContactFormPlugin/Resources/config/routing.yml"
  5. Define parameters in .env file

    # Recaptcha public key setter for contact form
    GOOGLE_RECAPTCHA_SITE_KEY=
    # Recaptcha secret key setter for contact form
    GOOGLE_RECAPTCHA_SECRET=
    
  6. Create and run doctrine database migrations.

For the guide how to use your own entity see Sylius docs - Customizing Models

Usage

  • Parameters can be left empty if you want to run the plugin without recaptcha verification.
  • The plugin is made to work with invisible V2 recaptcha,it is essential to select this version during their creation.
  • The plugin defines the contact email of the channel (configurable in the Channels tab of the configuration section in the administration panel) as the manager's email address.

Configuration

 mango_sylius_contact_form:
     # Define if an email should be send to the manager when contact form is send
       send_manager_mail: true/false
     # Define if an email should be send to the customer when contact form is send (copy)
       send_customer_mail: true/false
     # Define 'name' field requirement in contact form
       name_required: true/false
     # Define 'phone' field requirement in contact form
       phone_required: true/false

Usage

  • Log into admin panel as administrator or account panel as registered customer
  • Go into Messages section
  • Select the conversation you want to answer to
  • Write your reply message
  • Click Send button below

Development

Usage

  • Create symlink from .env.dist to .env or create your own .env file
  • Develop your plugin in /src
  • See bin/ for useful commands

Testing

After your changes you must ensure that the tests are still passing.

$ composer install
$ bin/console doctrine:schema:create -e test
$ bin/behat.sh
$ bin/phpstan.sh
$ bin/ecs.sh

License

This library is under the MIT license.

Credits

Developed by manGoweb.

About

Advanced contact form with persisting messages and admin interface

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages