mangoweb-sylius/sylius-payment-restrictions-plugin

此软件包已被废弃,不再维护。作者建议使用3brs/sylius-payment-restrictions-plugin软件包。

Sylius的支付限制插件


README

38423357?s=200&v=4

支付限制插件
68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d616e676f7765622d73796c6975732f73796c6975732d7061796d656e742d7265737472696374696f6e732d706c7567696e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d616e676f7765622d73796c6975732f73796c6975732d7061796d656e742d7265737472696374696f6e732d706c7567696e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6d616e676f7765622d73796c6975732f53796c6975735061796d656e745265737472696374696f6e73506c7567696e2f6d61737465722e737667

功能

  • 根据区域限制支付方式。这可以限制选择的支付方式仅适用于特定区域或送货地址。
  • 根据配送方式限制支付方式 - 这意味着可以禁用特定的配送-支付组合。

admin.png

安装

  1. 运行 $ composer require mangoweb-sylius/sylius-payment-restrictions-plugin

  2. 将插件类添加到您的 config/bundles.php

    return [
       ...
       MangoSylius\PaymentRestrictionPlugin\MangoSyliusPaymentRestrictionPlugin::class => ['all' => true],
    ];
  3. 您的实体 PaymentMethod 必须实现 \MangoSylius\PaymentRestrictionPlugin\Model\PaymentMethodRestrictionInterface。您可以使用特性 MangoSylius\PaymentRestrictionPlugin\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 MangoSylius\PaymentRestrictionPlugin\Model\PaymentMethodRestrictionInterface;
    use MangoSylius\PaymentRestrictionPlugin\Model\PaymentMethodRestrictionTrait;
    
    /**
     * @ORM\Entity
     * @ORM\Table(name="sylius_payment")
     */
    class PaymentMethod extends BasePayment implements PaymentMethodRestrictionInterface
    {
        use PaymentMethodRestrictionTrait;
    
        public function __construct()
        {
            parent::__construct();
        
            $this->shippingMethods = new ArrayCollection();
        }
    }
  4. 修改 @SyliusAdmin/PaymentMethod/_form.html.twig

    ...
    <div class="ui segment">
        <h4 class="ui dividing header">{{ 'sylius.ui.details'|trans }}</h4>
        {{ form_errors(form) }}
    
        <div class="three fields">
            {{ form_row(form.code) }}
            {{ form_row(form.zone) }}
            {{ form_row(form.position) }}
        </div>
        {{ form_row(form.enabled) }}
        <div class="two fields">
            {{ form_row(form.channels) }}
            {{ form_row(form.shippingMethods) }}
        </div>
    </div>
    ...
  5. 创建并运行Doctrine数据库迁移。

有关使用自定义实体的指南,请参阅Sylius文档 - 自定义模型

开发

使用

  • /src 中开发您的插件
  • 查看 bin/ 以获取有用的命令

测试

在您的更改之后,您必须确保测试仍然通过。

$ composer install
$ bin/console doctrine:schema:create -e test
$ bin/behat
$ bin/phpstan.sh
$ bin/ecs.sh

许可

此库在MIT许可下。

致谢

manGoweb开发。