How to Create Membership Card PDFs for WooCommerce

Gyms, clubs, co-working spaces, libraries and loyalty programmes sell memberships through WooCommerce as simple (virtual) products or subscriptions. What the new member wants in return is a membership card: their name, the plan, a member number, the validity and a code the front desk can scan. With PDF Invoice for WooCommerce + Drag and Drop Template Builder (plugin slug pdf-for-woocommerce, by add-ons.org) the card is an A7 landscape PDF (105 × 74 mm, a bit larger than a credit card) generated when the membership order is completed, emailed to the member and always available in My Account, so a lost card is a download away. This guide builds it from a blank template; the member number and the expiry date come from two order meta fields. The event ticket guide and the booking confirmation guide cover the other QR-code documents.

Video tutorial

1. What the Card Contains

BlockContentMerge tags
BandStore name and “MEMBER CARD” on a dark stripYee Add-ons in a one-row table with the band class
MemberMember name (large), plan, member number, member since, valid untilPIERLUIGI CIPRIANI, Dynamic Field for Elementor Forms Pro, , August 28, 2026,
QR codeThe member number, scanned at reception inside the Qrcode element
FooterHolder-only noticestatic text

The member number and the expiry date are order meta fields. A membership or subscription plugin usually writes such fields to the order; if yours does not, add them yourself with the Custom Fields box on the order screen (keys membership_number and membership_valid_until in this guide), or print the user ID with [yeepdf_woo_user_id] and the order date with a fixed “valid 12 months” text instead.

2. Build the Card Template

Builder note: a new element is inserted just above the element you drop it on. Create the footer first and drop every other block onto it in reading order.

Step 1: New template, A7 landscape

Go to PDF Templates → New Template and name it Membership Card. Click Settings PDF, set Orientation to Landscape and Paper Size to A7, and paste this under Custom CSS (the band class styles the dark strip):

p { margin: 0 0 2px; }
.band { background: #0b1220; color: #ffffff; padding: 4px 8px; }
A new empty PDF template named Membership Card
A blank template.
The Settings PDF panel with Orientation Landscape, Paper Size A7 and the Custom CSS
Settings PDF → Landscape, A7 (105 × 74 mm) and the band rule.

Step 2: Footer

Drag a Text/HTML element into the row and type, in 7 px: Named holder only · not transferable · show this card at reception. Everything on a card this small is 7 to 16 px.

The footer Text element selected with the holder-only notice
The footer, 7 px.

Step 3: Band

Drop a Text/HTML element onto the footer and, in the editor’s Code view, paste a one-row table with the band class:

<table class="band" width="100%"><tr>
<td><span style="font-size: 9px; letter-spacing: 2px;">Yee Add-ons</span></td>
<td align="right"><span style="font-size: 12px;"><strong>MEMBER CARD</strong></span></td>
</tr></table>
The band Text element selected: a dark strip with the store name on the left and MEMBER CARD on the right
The dark band.

Step 4: Member block

Drop another Text/HTML element onto the footer:

PIERLUIGI CIPRIANI                                                   ← 16 px bold
Dynamic Field for Elementor Forms Pro                                                       ← 10 px bold
No:  · Member since: August 28, 2026 · Valid until:    ← 9 px

On the canvas the sample order prints “Order meta membership_number” because it has no such field; a real membership order fills it in.

The member Text element selected with the name, plan, member number, member-since and valid-until merge tags
Name, plan, number and validity.

Step 5: QR code

Drop the Qrcode element onto the footer, set its Content to and the Width to 60 px. The reception scans the card and gets the member number; use [yeepdf_woo_user_id] or the member’s email as content if your check-in app looks members up that way. Click Save.

The Qrcode element selected with the member number merge tag as its content and a width of 60
Qrcode element: content = member number, width 60 px.
The finished Membership Card template in the builder: band, member block, QR code and footer
The finished template with the sample order.

3. Generate the Card When the Membership Starts

Go to WooCommerce → Settings → PDF → Add new PDF:

The PDF setting for the membership card: label Membership card, template Membership Card, file name member-card-8448, status Completed, attached to the completed order email and order details, My Account download for completed orders
The membership card setting.
FieldValueWhy
Enable this PDFticked
LabelMembership cardButton label in the admin and in My Account.
PDF TemplateMembership CardThe template from section 2.
PDF Namemember-card-8448e.g. member-card-1816.pdf
Enable when order statusCompletedMark the order complete when the membership is activated (and the meta fields are filled).
Attachment toCompleted order, Order detailsThe card travels with the “order complete” email; re-send it from the order screen any time.
Allow My Account invoice downloadOnly for specific order statuses → CompletedA lost card is a download away.
The PDF settings list with the Membership card row
The card next to the other documents.

4. What the Member Receives

When you complete the membership order, the card is generated and attached to the Your order is now complete email. The member also finds a Membership card button in My Account → Orders and on the order page.

My Account Orders list with a Membership card button next to the completed membership order
My Account → Orders: the Membership card button.
The My Account order page with the Membership card download link
The order page lists the card.
The generated A7 landscape membership card for order 1816: dark band with the store name and MEMBER CARD, Anna Lee, Gold Membership 12 months, number GOLD-0042, member since 28 October 2026, valid until 28 October 2027, a QR code and the holder-only notice
The generated card for order #1816. The white margin is the page margin; cut along the band for a card-sized print.

In the admin, the order screen lists the card in the PDF box with Download, Preview and Regenerate.

The PDF box on the order screen with the Membership card entry
Order screen → PDF box → Membership card.

5. Tips

  • Filling the meta fields: on the order screen open Custom Fields (Screen Options → Custom Fields if hidden), add membership_number and membership_valid_until, update the order and then set it to Completed, so the card is generated with the values.
  • Subscriptions: with WooCommerce Subscriptions the renewal order is a new order; keep the card on the parent order, or tick Processing as well so each renewal issues a fresh card with the new date.
  • Photo: the card has no photo field; add an Image element with a placeholder, or print the card at reception and stick a photo on.
  • Wallet-friendly: A7 landscape prints on a sheet with margins; for true credit-card size (85 × 54 mm) print at scale and cut, or laminate the A7 card.
  • Expired members: the card keeps its printed expiry date; the QR code still points at the member number, so the desk checks the date in WooCommerce, not on the card.
  • Regenerate: after editing the template or the meta fields, click Regenerate on the order; emails attach the stored file.

6. Frequently Asked Questions (FAQ)

Why does the card show “Order meta membership_number” in the builder?

The sample order has no such field. Preview the card for a real membership order, or change the sample order in the toolbar.

Can the number be generated automatically?

Use [yeepdf_woo_user_id] (the WordPress user ID) or MEM-8448 instead of a meta field if you do not need a custom numbering scheme.

Can I print the card front and back?

Add a Page Break element and build the back (rules, contact) on page 2; print duplex.

Does the QR code work offline?

Yes. It is rendered into the PDF as an image; scanning returns the text you put in the Content field.

Can members get the card before the order is completed?

Tick Processing under Enable when order status and Processing order under Attachment to; the meta fields must then be filled before payment, e.g. by a checkout-fields plugin.