=== Bluebrain Wallet Pass for Tickera ===
Contributors: bluebrainmedia
Author link: https://bluebrainmedia.ca
Tags: woocommerce, google wallet, tickets, events, tickera
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.2
Stable tag: 2.1.3
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Add Google Wallet passes to Tickera event tickets sold through WooCommerce, generated and signed on your own server.

== Description ==

Bluebrain Wallet Pass for Tickera turns each Tickera event ticket sold through WooCommerce into a
Google Wallet pass. The attendee gets a "Save to Google Wallet" button on the WooCommerce
Thank You page, on the order-view page, and in the order-confirmation email.

There is no third-party pass-hosting service and no subscription. Passes are built using
your own Google Wallet Issuer account and a service-account key you upload on the plugin's
settings screen. The event's name, date and venue, the ticket code, and the ticket holder's name and seat
(when the ticket has them) are the only data placed on a pass.

This is the free, Google Wallet only edition. A [premium edition](https://bluebrainmedia.ca/tickera-wallet-pass)
adds Apple Wallet passes for iPhone and iPad, plus automatic updates and support, for the
same one Tickera install.

Bluebrain Wallet Pass for Tickera is an independent, third-party plugin built by Blue Brain Media. It
is not affiliated with, endorsed by, or sponsored by Tickera.com.

= Features =

1. Google Wallet pass generation via your own Google Wallet Issuer account
2. "Save to Google Wallet" buttons on the WooCommerce Thank You page, the order-view page, and the confirmation email
3. Pass styling: icon, logo text, background colour, organisation name
4. Cached passes are regenerated automatically when you edit the event, and cleaned up after the event date

= Requirements =

* Tickera (free or premium) with its Bridge for WooCommerce add-on
* WooCommerce
* PHP 8.2+ with the OpenSSL extension
* A Google Cloud project with the Google Wallet API enabled and an Issuer account

== Installation ==

1. Upload the plugin to `wp-content/plugins/` and activate it.
2. Go to Tickera > Settings > Wallet Pass.
3. Enter your Google Wallet Issuer ID and upload your Google Cloud service-account JSON key.
4. Set the pass styling (icon PNG, logo text, background colour, organisation name).
5. Place a test event order from an Android device (or any browser) and save the pass to Google Wallet.
6. **Before going live:** request Google Wallet publishing access for your Issuer account
   (free, one-time, see FAQ below) - until Google approves it, every pass shows a
   "[TEST ONLY]" banner and can only be added by accounts on your own tester list.

== Frequently Asked Questions ==

= Do I need a paid third-party plan? =
No. The plugin runs entirely on your server. You do need a free Google Cloud project and a
Google Wallet Issuer account to obtain the credentials the plugin uses to sign passes.

= Why do my Google Wallet passes show a "[TEST ONLY]" banner? =
Every Google Wallet Issuer account starts in Google's own demo mode, and Google adds this
banner to every pass - and blocks anyone not on your tester list from adding one - until
you request and receive publishing access for that account. This is a one-time approval
from Google, free of charge, and applies to every Google Wallet integration; the plugin
has no setting to skip it. To remove it:

1. Sign in to the [Google Pay & Wallet Console](https://pay.google.com/business/console/)
   with the Google account tied to your Wallet Issuer ID.
2. Under Business profile, complete both the Business identity (payments profile) and
   Business information sections.
3. Place at least one test order through this plugin so you have a pass class on file.
4. Under Google Wallet API, click "Request publishing access" and submit for review.

Approval isn't instant, so do this well before you need real customers to add passes.
Once approved, the banner disappears automatically from all your passes - no plugin
update or setting change is needed.

= Does this include Apple Wallet? =
No. This free edition generates Google Wallet passes only. Apple Wallet passes, for
iPhone and iPad attendees, are available in the
[premium edition](https://bluebrainmedia.ca/tickera-wallet-pass).

= Where are the passes stored? =
Generated pass data is served directly from Google's own save link
(`https://pay.google.com/gp/v/save/...`); nothing is stored on your server long-term.

= Where does the attendee get the pass? =
On the WooCommerce Thank You page after payment, on the order-view page, and in the
order-confirmation email.

= Is any personal data sent anywhere? =
Only to Google, as described under External services below. No data is sent to Blue Brain Media or
any other third party.

== External services ==

This plugin connects to the Google Wallet API to create the pass that a ticket buyer saves to
Google Wallet. Creating the pass has to happen on Google's servers, because Google Wallet only accepts
passes issued through its own API.

* **What it is used for:** authenticating with your Google Cloud service account (https://oauth2.googleapis.com/token), then creating and updating an event class and ticket object (https://walletobjects.googleapis.com/walletobjects/v1). The attendee's "Save to Google Wallet" button opens a link on https://pay.google.com/gp/v/save/.
* **What is sent, and when:** the first time a ticket is issued, and again whenever you edit the event or the ticket is regenerated, the plugin sends the event name, date and venue, your pass styling (icon, logo text, background colour, organisation name), the ticket code and barcode value, and the ticket holder's name and seat if the ticket has them. Your service-account credentials are used to sign the requests and are sent only to Google's OAuth endpoint. Nothing is sent when the plugin is idle.
* **Provider:** Google LLC. [Google Terms of Service](https://policies.google.com/terms), [Google Privacy Policy](https://policies.google.com/privacy) and [Google APIs Terms of Service](https://developers.google.com/terms).

== Screenshots ==

1. Wallet Pass settings: Issuer ID, service-account key upload, and pass styling (icon, logo text, background colour, barcode format).
2. The "Add to Google Wallet" button on the WooCommerce Thank You page, next to the ticket download link.

== Changelog ==

= 2.1.3 =
Free (Google Wallet only) edition, built from the same source as the premium edition 2.1.3, itself forked from CommerceBird - Wallet Pass for Tickera (GPL-3.0); see Credits below. Includes a fix for Google Wallet appearance settings (icon, logo text, background colour) not applying after the class was first created, and documentation of Google Wallet's "[TEST ONLY]" banner and the free, one-time "publishing access" request needed to remove it.

== Upgrade Notice ==

= 2.1.3 =
First WordPress.org release of the free, Google Wallet only edition.

== Credits ==

This plugin is a fork of **CommerceBird - Wallet Pass for Tickera**
(https://github.com/RoadmapStudios/commercebird-wallet-pass), originally written by
Roadmap Studios / CommerceBird and released under GPL-3.0. The CommerceBird SaaS account
layer (subscription check, the app.commercebird.com connection, the remote
pass-generation API, and the CommerceBird application-password requirement) has been
removed; Google Wallet passes are now generated and cryptographically signed directly on
the site's own server, using credentials the site owner supplies on the plugin's own
settings screen. The GPL-3.0 obligations from the upstream project carry forward
unchanged: source is available and the licence text is distributed verbatim in LICENSE.

The Google Wallet JWT (used for the OAuth2 service-account assertion and the "Save to
Google Wallet" link) is RS256-signed with PHP's own OpenSSL extension; this edition does
not bundle any third-party libraries.
