c975l / giftvoucher-bundle
管理礼品券、其支付和交易捆绑包
Requires
- php: ^7
- c975l/config-bundle: ^2
- c975l/email-bundle: ^3
- c975l/includelibrary-bundle: ^1
- c975l/payment-bundle: ^3
- c975l/services-bundle: ^1
- c975l/toolbar-bundle: ^1
- cocur/slugify: ^3
- doctrine/doctrine-bundle: ^2
- doctrine/orm: ^2
- endroid/qr-code: ^3
- h4cc/wkhtmltopdf-amd64: ^0
- knplabs/knp-paginator-bundle: ^4
- knplabs/knp-snappy-bundle: ^1
- knplabs/knp-time-bundle: ^1
- symfony/form: *
- symfony/security: *
- twig/twig: ^2
Requires (Dev)
- phpunit/phpunit: ^7
- rector/rector: ^0
- dev-master
- v3.2.1
- v3.2
- v3.1.4.1
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1
- v3.0.1
- v3.0
- 2.x-dev
- v2.1.1.2
- v2.1.1.1
- v2.1.1
- v2.1
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0
- 1.x-dev
- v1.15.5
- v1.15.4.1
- v1.15.4
- v1.15.3.1
- v1.15.3
- v1.15.2
- v1.15.1
- v1.15
- v1.14.2
- v1.14
- v1.13.2
- v1.13.1
- v1.13
- v1.12.1
- v1.12
- v1.11.2
- v1.11.1
- v1.11
- v1.10
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9
- v1.8
- v1.7
- v1.6.1
- v1.6
- v1.5
- v1.4.1
- v1.4
- v1.3
- v1.2
- v1.1
- v1.0.1
- v1.0
- v0.1
- dev-dev
This package is auto-updated.
Last update: 2024-02-04 21:42:54 UTC
README
GiftVoucherBundle 执行以下操作
- 允许创建礼品券请求表单
- 通过 c975LPaymentBundle 与 Stripe 进行接口,以进行其支付
- 创建礼品券的 PDF 并通过电子邮件发送
- 使用 QrCodeBundle 创建二维码
- 允许通过二维码使用礼品券并进行后续验证
- 与 c975LToolbarBundle 集成
- PDF 和二维码不会存储,而是实时创建
- 将销售条款作为 PDF 添加到电子邮件中
安全性由一个四字母的秘密代码提供,该代码包含在二维码中,但不包含在显示的礼品券标识符中
此包依赖于使用 c975LPaymentBundle、Stripe 及其 PHP 库。**因此您必须拥有 Stripe 账户**。
还建议使用 SSL 证书来确保用户。
由于销售条款必须与礼品券一起发送给用户,您必须提供 PDF 文件的路由或 URL。如果没有此类路由,可以考虑使用 c975LSiteBundle 的预定义模型以及 c975LPageEditBundle 的创建 PDF 功能。
您还可以通过使用 Select2 选择礼品券来提供更好的用户体验。只需将其包含到布局中即可
{# jQuery has to be linked before #} {# In your css block #} {{ inc_lib('select2', 'css', '4.*') }} {# In your javascript block #} {{ inc_lib('select2', 'js', '4.*') }}
包安装
步骤 1:下载包
v3.x 与 Symfony 4.x 兼容。**使用 v2.x 用于 Symfony 3.x** 使用 Composer 安装库
composer require c975l/giftvoucher-bundle
步骤 2:配置包
检查依赖项的配置
- Symfony 邮件发送器
- Doctrine
- KnpPaginatorBundle
- KnpTimeBundle
- QrCodeBundle
- Stripe PHP 库.
- c975LEmailBundle
- c975LPaymentBundle
c975LGiftVoucherBundle 使用 c975L/ConfigBundle 管理配置参数。使用 "/gift-voucher/config" 路由以及适当的用户角色来修改它们。
步骤 3:启用路由
然后,通过将它们添加到项目的 /config/routes.yaml
文件中来启用路由
c975_l_giftvoucher: resource: "@c975LGiftVoucherBundle/Controller/" type: annotation prefix: / #Multilingual website use the following #prefix: /{_locale} #defaults: { _locale: '%locale%' } #requirements: # _locale: en|fr|es
第4步:创建MySQL表
您可以使用php bin/console make:migration
根据Symfony的Doctrine文档创建迁移文件,或者使用/Resources/sql/gift-voucher.sql
来创建表gift_voucher_available
和gift_voucher_purchased
。已注释DROP TABLE
以避免意外删除。
第5步:覆盖模板
强烈建议使用从第三方包覆盖模板的功能以完全与您的网站集成。
为此,只需在您的应用程序中创建以下结构/templates/bundles/c975LGiftVoucherBundle/
,然后复制文件layout.html.twig
到其中,以覆盖现有的Bundle文件。
在layout.html.twig
中,它将主要扩展您的布局并定义特定变量,例如
{% extends 'layout.html.twig' %} {% block content %} {% block giftVoucher_content %} {% endblock %} {% endblock %}```
然后在您的layout.html.twig
及其依赖项,如header.html.twig
、footer.html.twig
、navbar.html.twig
等中,您可以使用条件if display == 'pdf'
或if display == 'html'
来选择要显示给哪种格式,并保持所有数据在一个地方。
请注意,链接必须是绝对路径,或者其内容已包含,才能导出(见下文)。
路由
可用的不同路由(命名自解释)如下:
- giftvoucher_display
- giftvoucher_config
- giftvoucher_create
- giftvoucher_modify
- giftvoucher_duplicate
- giftvoucher_delete
- giftvoucher_dashboard
- giftvoucher_purchased
- giftvoucher_offer
- giftvoucher_offer_all
- giftvoucher_use
- giftvoucher_slug
- giftvoucher_help
- giftvoucher_qrcode
您应使用路由giftvoucher_offer_all
作为礼品券的入口点。
Twig扩展
您可以使用以下Twig扩展在您的网站上显示礼品券。
gv_offer_button()
此扩展的使用有多种方式
{{ gv_offer_button(GIFTVOUCHER_AVAILABLE_ID) }}
将显示具有默认样式的按钮{{ gv_offer_button(GIFTVOUCHER_AVAILABLE_ID, 'btn-primary') }}
将显示具有指定样式的按钮{{ gv_offer_button(GIFTVOUCHER_AVAILABLE_ID, 'WHATEVER_STYLE_YOU_HAVE_DEFINED_IN_CSS') }}
将使用您自己的样式显示按钮
这些代码和其他变体在为管理员用户显示礼品券时被调用。
gv_offer_link()
您将使用此Twig扩展来显示提供礼品券的链接
{{ gv_offer_link(GIFTVOUCHER_AVAILABLE_ID) }}
将显示一个链接
此代码在为管理员用户显示礼品券时被调用。
gv_view_all()
此Twig扩展将创建您的礼品券视图。它在Resources/views/pages/offerAll.html.twig
模板中使用,由路由giftvoucher_offer_all
使用。
{{ gv_view_all() }}
将创建包含所有可用礼品券的视图{{ gv_view_all(NUMBER_OF_GIFTVOUCHERS_TO_DISPLAY) }}
将创建包含指定数量的可用礼品券的视图{{ gv_view_all(NUMBER_OF_GIFTVOUCHERS_TO_DISPLAY, ORDERED_FIELD) }}
将创建包含指定数量的可用礼品券的视图,按指定字段排序。此字段的值是数据库表gift_voucher_available
的值。您通常会使用id
、object
(默认值)、slug
、amount
。
如果这个项目能帮助您缩短开发时间,您可以通过顶部页面的“赞助”按钮来赞助我 :)