3brs / sylius-contact-form-plugin
Contact form plugin for Sylius.
Installs: 38
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 2
Open Issues: 0
Type:sylius-plugin
Requires
- php: ^8.0
- google/recaptcha: ^1.2
- sylius/sylius: 1.12.*|1.13.*
Requires (Dev)
- behat/behat: ^3.9.0
- behat/mink-selenium2-driver: ^1.4
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- doctrine/annotations: ^2.0
- friends-of-behat/mink: ^1.10
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.1
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- php-http/message-factory: ^1.0.0
- phpstan/phpstan: ^1.8.1
- phpstan/phpstan-doctrine: ^1.3.37
- phpstan/phpstan-strict-rules: ^1.3.0
- phpstan/phpstan-symfony: ^1.3
- phpstan/phpstan-webmozart-assert: ^1.2.0
- phpunit/phpunit: ^9.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- rector/rector: ^0.18.12
- sylius-labs/coding-standard: ^4.2
- symfony/browser-kit: ^6.0
- symfony/debug-bundle: ^6.0
- symfony/dotenv: ^6.0
- symfony/flex: ^2.2.2
- symfony/framework-bundle: ^6.0
- symfony/http-foundation: ^6.0
- symfony/http-kernel: ^6.0
- symfony/intl: ^6.0
- symfony/web-profiler-bundle: ^6.0
Conflicts
- babdev/pagerfanta-bundle: <3.6.1
- doctrine/collections: <1.7.0
- doctrine/dbal: <2.13.3
- doctrine/doctrine-bundle: <2.4.2
- friendsofsymfony/rest-bundle: <3.1.0
- jms/serializer-bundle: <4.2.0
- knplabs/knp-menu: <3.3.0
- lexik/jwt-authentication-bundle: <2.12
- masterminds/html5: <2.7.5
- polishsymfonycommunity/symfony-mocker-container: <1.0.6
- sylius/resource-bundle: <1.10.0
- symfony/css-selector: <4.4.24
- symfony/framework-bundle: >=5.4.0 <=5.4.20|>=6.0.0 <=6.0.16|>=6.1.0 <=6.1.8|>=6.2.0 <=6.2.2|6.2.8
- symfony/mime: <5.4.0
- symfony/web-link: <5.3.0
- symplify/easy-coding-standard: <10.2.0
- twig/twig: <2.14.7
- webmozart/assert: <1.11.0
- willdurand/negotiation: <3.0
This package is auto-updated.
Last update: 2025-02-05 16:21:09 UTC
README
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
-
Run
$ composer require 3brs/sylius-contact-form-plugin
. -
Register
\ThreeBRS\SyliusContactFormPlugin\ThreeBRSSyliusContactFormPlugin
in your Kernel.// config/bundles.php ThreeBRS\SyliusContactFormPlugin\ThreeBRSSyliusContactFormPlugin::class => ['all' => true],
-
Add resource to
config/packages/_sylius.yaml
imports: ... - { resource: "@ThreeBRSSyliusContactFormPlugin/Resources/config/config.yml" }
-
Add routing to
config/routes.yaml
threebrs_sylius_contact_form_plugin: resource: "@ThreeBRSSyliusContactFormPlugin/Resources/config/routing.yml"
-
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=
-
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 theconfiguration
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.