Skip to content

3BRS/sylius-contact-form-plugin

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 3brs/sylius-contact-form-plugin.

  2. Register \ThreeBRS\SyliusContactFormPlugin\ThreeBRSSyliusContactFormPlugin in your Kernel.

    // config/bundles.php
    ThreeBRS\SyliusContactFormPlugin\ThreeBRSSyliusContactFormPlugin::class => ['all' => true],
  3. Add resource to config/packages/_sylius.yaml

    imports:
         ...
         - { resource: "@ThreeBRSSyliusContactFormPlugin/config/config.yml" }
  4. Add routing to config/routes.yaml

    threebrs_sylius_contact_form_plugin:
        resource: "@ThreeBRSSyliusContactFormPlugin/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

 threebrs_sylius_contact_form_plugin:
     # 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 3BRS
Forked from manGoweb.

About

Advanced contact form with persisting messages and admin interface

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •