/sylius-contact-form-plugin

Advanced contact form with persisting messages and admin interface

Primary LanguagePHPMIT LicenseMIT

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.

  3. Add resource to config/packages/_sylius.yaml

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

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

 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.