c975l/gift-voucher-bundle

此包已被废弃,不再维护。作者建议使用 c975l/giftvoucher-bundle 包。

管理礼品券、其支付和交易捆绑包


README

GiftVoucherBundle 执行以下操作

  • 允许创建礼品券请求表单
  • 通过 c975LPaymentBundle 与 Stripe 进行接口,用于支付
  • 创建礼品券的 PDF 并通过电子邮件发送
  • 使用 QrCodeBundle 创建 QR 码
  • 允许通过 QR 码使用礼品券,并在之后进行验证
  • c975LToolbarBundle 集成
  • PDF 和 QR 码不会存储,而是实时创建
  • 将销售条款作为 PDF 添加到电子邮件中

安全性由一个四位秘密代码提供,包含在 QR 码中,但不在显示的礼品券标识符中

此捆绑包依赖于 c975LPaymentBundleStripe 及其 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.*') }}

GiftVoucherBundle 专用网页.

GiftVoucherBundle API 文档.

捆绑包安装

步骤 1:下载捆绑包

v3.x 与 Symfony 4.x 兼容。使用 v2.x 用于 Symfony 3.x 使用 Composer 安装库

    composer require c975l/giftvoucher-bundle

步骤 2:配置捆绑包

检查依赖项以进行配置

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_availablegift_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.twigfooter.html.twignavbar.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 的值。您通常使用 idobject(默认值)、slugamount

如果这个项目 帮助您减少了开发时间,您可以通过顶部导航栏的“赞助”按钮来赞助我:)