Run $ composer require 3brs/sylius-payment-restrictions-plugin
Add plugin class to your config/bundles.php
return [
...
ThreeBRS\SyliusPaymentRestrictionPlugin\ThreeBRSSyliusPaymentRestrictionPlugin::class => ['all' => true],
];
Your Entity PaymentMethod
has to implement \ThreeBRS\SyliusPaymentRestrictionPlugin\Model\PaymentMethodRestrictionInterface
. You can use
Trait ThreeBRS\SyliusPaymentRestrictionPlugin\Model\PaymentMethodRestrictionTrait
<?php
declare(strict_types=1);
namespace App\Entity\Payment;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Sylius\Component\Core\Model\Payment as BasePayment;
use ThreeBRS\SyliusPaymentRestrictionPlugin\Model\PaymentMethodRestrictionInterface;
use ThreeBRS\SyliusPaymentRestrictionPlugin\Model\PaymentMethodRestrictionTrait;
/**
* @ORM\Entity
* @ORM\Table(name="sylius_payment_method")
*/
class PaymentMethod extends BasePayment implements PaymentMethodRestrictionInterface
{
use PaymentMethodRestrictionTrait;
public function __construct()
{
parent::__construct();
$this->shippingMethods = new ArrayCollection();
}
}
Add to @SyliusAdmin/PaymentMethod/_form.html.twig
(you will have to probably copy-paste original as there is no way to extend that section)
{# ... #}
<div class="ui segment">
{# ... #}
<div class="two fields">
{{ form_row(form.zone) }}
{{ form_row(form.shippingMethods) }}
</div>
</div>
{# ... #}
Create and run doctrine database migrations
bin/console doctrine:migrations:diff
bin/console doctrine:migrations:migrate
/src
bin/
dir for useful commandsAfter your changes you must ensure that the tests are still passing.
composer install
bin/console doctrine:database:create --if-not-exists --env=test
bin/console doctrine:schema:update --complete --force --env=test
yarn --cwd tests/Application install
yarn --cwd tests/Application build
bin/behat
bin/phpstan.sh
bin/ecs.sh
vendor/bin/phpspec run
root
user and without sudo
command
curl
first apt-get update && apt-get install curl --yes
(cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load)
(cd tests/Application && APP_ENV=test symfony server:start --dir=public --port=8080)
APP_ENV
to dev
if you need itThis library is under the MIT license.