定制 mangoweb-sylius/sylius-payment-restrictions-plugin 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mangoweb-sylius/sylius-payment-restrictions-plugin

最新稳定版本:v1.0.0

Composer 安装命令:

composer require mangoweb-sylius/sylius-payment-restrictions-plugin

包简介

Payment restriction plugin for Sylius

README 文档

README

38423357?s=200&v=4

Payment Restrictions Plugin
68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d616e676f7765622d73796c6975732f73796c6975732d7061796d656e742d7265737472696374696f6e732d706c7567696e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d616e676f7765622d73796c6975732f73796c6975732d7061796d656e742d7265737472696374696f6e732d706c7567696e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6d616e676f7765622d73796c6975732f53796c6975735061796d656e745265737472696374696f6e73506c7567696e2f6d61737465722e737667

Features

  • Restrict payment method by zone. This enables to limit selected payment methods to specific zones or areas from the delivery address.
  • Restrict payment method by shipping method - this means that it can disable specific shipment-payment combinations.

admin.png

Installation

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

  2. Add plugin class to your config/bundles.php:

    return [
       ...
       MangoSylius\PaymentRestrictionPlugin\MangoSyliusPaymentRestrictionPlugin::class => ['all' => true],
    ];
  3. Your Entity PaymentMethod has to implement \MangoSylius\PaymentRestrictionPlugin\Model\PaymentMethodRestrictionInterface. You can use Trait 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. Change @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. Create and run doctrine database migrations.

For guide to use your own entity see Sylius docs - Customizing Models

Development

Usage

  • 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
$ bin/phpstan.sh
$ bin/ecs.sh

License

This library is under the MIT license.

Credits

Developed by manGoweb.

统计信息

  • 总下载量: 16.82k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 4
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-11-25