mangoweb-sylius/sylius-contact-form-plugin

Contact form plugin for Sylius.


README

38423357?s=200&v=4

Contact Form Plugin
68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d616e676f7765622d73796c6975732f73796c6975732d636f6e746163742d666f726d2d706c7567696e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d616e676f7765622d73796c6975732f73796c6975732d636f6e746163742d666f726d2d706c7567696e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6d616e676f7765622d73796c6975732f53796c697573436f6e74616374466f726d506c7567696e2f6d61737465722e737667

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

contact_form.PNG

messages_management_admin_menu.PNG

messages_management_admin_answer_menu.PNG

messages_management_account_menu.PNG

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.