# WPsigner Customization Pack

> Whitelabeling, email templates, and languages.

Generated for AI assistants from the official WPsigner docs.
HTML guide: https://docs.wpsigner.com/support/use-with-ai/
Pages in this pack: 5

## Suggested prompt

```text
You are helping me configure and use WPsigner, a self-hosted electronic-signature plugin for WordPress.
Use ONLY the documentation below as your source of truth.
Each page header includes edition: lite, pro, or both. Never invent Pro-only features for Lite.
If something is not covered, say so clearly and ask for the missing detail.
Prefer exact admin menu paths, shortcodes, endpoints, and settings names from the docs.
```

## Contents

1. [Customization](https://docs.wpsigner.com/md/customization.md) — https://docs.wpsigner.com/customization/
2. [Appearance](https://docs.wpsigner.com/md/customization/appearance.md) — https://docs.wpsigner.com/customization/appearance/
3. [Email Templates](https://docs.wpsigner.com/md/customization/email-templates.md) — https://docs.wpsigner.com/customization/email-templates/
4. [Languages & Translations](https://docs.wpsigner.com/md/customization/languages.md) — https://docs.wpsigner.com/customization/languages/
5. [Whitelabeling & Branding](https://docs.wpsigner.com/md/customization/whitelabeling.md) — https://docs.wpsigner.com/customization/whitelabeling/

---

# Customization

> Brand WPsigner with Appearance (logo, signing buttons, portal), white-label, email templates, languages, and Signed PDF fonts.

edition: both
Edition: Lite + Pro
AI note: This page applies to Lite and Pro. Call out Lite limits (PDF only, max 2 signers, email OTP, local timestamp) when they apply. Do not invent Pro-only features.
HTML: https://docs.wpsigner.com/customization/
Markdown: https://docs.wpsigner.com/md/customization.md

WPsigner is designed to disappear behind your brand. From the signing page your clients see to the emails they receive, every touchpoint can be customized to match your company's identity.

---

## Guides

| Guide | Description |
|-------|-------------|
| [Appearance](/customization/appearance/) | Brand, Signing Page buttons, and Client Portal on one admin page (Pro) |
| [Whitelabeling](/customization/whitelabeling/) | Replace WPsigner branding with your own logo, colors, and company name across the signing experience |
| [Email Templates](/customization/email-templates/) | Customize the content, layout, and design of every email WPsigner sends to signers |
| [Languages & Translations](/customization/languages/) | Language packs for the admin UI, plus Signed PDF fonts (Vietnamese and other scripts) |

---

## What You Can Customize

### Signing Experience

| Element | Customizable | Where |
|---------|-------------|-------|
| **Company logo** | Logo displayed on the signing page | Appearance → Brand |
| **Brand colors** | Primary color for buttons, links, and accents | Appearance → Brand |
| **Signing buttons** | Color, size, corners, style, light/dark theme | Appearance → Signing Page |
| **Company name** | Shown in headers and email "From" name | Appearance → Brand |
| **Client portal look** | Portal logo, colors, welcome text | Appearance → Client Portal |

### Emails

| Element | Customizable | Where |
|---------|-------------|-------|
| **From name** | Sender name shown in inbox | Email Templates |
| **From address** | Reply-to email address | Email Templates |
| **Subject line** | Per-event subject with dynamic variables | Email Templates |
| **Body content** | Full HTML email body with placeholders | Email Templates |
| **Logo in emails** | Header image in email template | Email Templates |

---

## Quick Start

1. **[Open Appearance](/customization/appearance/)** first — upload your logo, set your brand color, and style signing buttons. This is **WPsigner → Appearance**.
2. **[Whitelabeling](/customization/whitelabeling/)** if you need to rename the product or hide WPsigner branding.
3. **[Customize email templates](/customization/email-templates/)** — subject lines, body text, and design for signing requests, reminders, and completion notifications.
4. **[Choose a language](/customization/languages/)** — install a language pack from **WPsigner → Languages**, or add a custom locale with Loco Translate / Poedit. For Vietnamese or other non-Latin-1 text on the **signed PDF**, open **Signed PDF fonts** on that same page and install **Accented Latin**.

> **tip**
If you're an agency managing multiple clients, whitelabeling is especially useful. Your clients see your brand throughout the entire signing process — they never know WPsigner is running behind the scenes.

---

# Appearance

> Brand, signing-page buttons, and the client portal on one WPsigner page — logo, colors, button size, theme, and portal look.

edition: pro
Edition: Pro
AI note: This page requires WPsigner Pro. Do not tell Lite users they already have this feature.
HTML: https://docs.wpsigner.com/customization/appearance/
Markdown: https://docs.wpsigner.com/md/customization/appearance.md

Appearance is the single place to style what clients see: your **brand**, the **signing page buttons**, and the **client portal**. Open **WPsigner → Appearance** (also **More → Appearance**).

> **Requires WPsigner Pro**
The Appearance hub is a **Pro** feature. You also need a WordPress **Administrator** (`manage_options`) to save these settings. [Upgrade to Pro](https://wpsigner.com/pricing/?utm_source=docs&utm_medium=upgrade&utm_campaign=appearance) · [Lite vs Pro](/getting-started/lite-vs-pro/)

> **What stays on other pages**
**Email HTML** stays in [Email Templates](/customization/email-templates/). **Finish / Decline wording** stays in **WPsigner → Custom Texts**. **Full white-label renaming** is documented in [Whitelabeling](/customization/whitelabeling/).

---

## The three tabs

| Tab | What it controls |
|-----|------------------|
| **Brand** | Company name, logo, primary color, white-label name and “powered by” |
| **Signing Page** | Button look (color, size, corners, style) and default light/dark theme |
| **Client Portal** | Enable the portal, login mode, portal colors, welcome text, optional CSS |

Old URLs for **Signing Appearance** and **Client Personalization** redirect to the matching tab. You do not need to update bookmarks.

---

## Brand

1. Open **WPsigner → Appearance → Brand**
2. Set **Company Name** (emails and signing pages)
3. Upload a **Company Logo** (PNG, JPG, or sanitized SVG)
4. Set **Primary Color** — used as a brand accent. Signing buttons use this color until you save a separate button color on the Signing Page tab
5. Optional: **Brand Name**, **Powered By** text, and hide-plugin branding
6. Click **Save**

Stock plugin blue/indigo does not change until you save a custom color.

For agencies and full rename-everywhere settings, see [Whitelabeling](/customization/whitelabeling/).

---

## Signing Page

This tab styles the buttons signers tap: **Finish**, **Apply**, OTP, KYC, the public start-signing button, and campaign embeds. **Decline** stays red on purpose.

1. Open **Appearance → Signing Page**
2. Choose the default **theme**: Auto, Light, or Dark (signers can still toggle)
3. Pick a **style**: solid, outline, or soft
4. Set **button color**, **text color**, and **hover color**
5. Use **S / M / L** as shortcuts, then fine-tune pixels:

| Control | What it does |
|---------|----------------|
| Font size | Text inside the button |
| Padding Y / X | Height and width of the tap area |
| Corner radius | How round the corners are |
| Border width | Outline thickness |
| Pill corners | Fully rounded ends |

The live preview updates as you edit. A contrast warning appears if the text is hard to read.

> **tip**
If you only set a primary color on Brand and leave button color empty, signing buttons inherit the brand color. Labels such as Finish and Decline are still edited in Custom Texts.

---

## Client Portal

Use this tab when you want front-end dashboards for your team or signers.

1. Open **Appearance → Client Portal**
2. Enable **Client Portal**
3. Choose login mode (WordPress login or a branded custom login page)
4. Set portal logo, colors, welcome text, and optional CSS
5. Save, then place the shortcodes on WordPress pages

Full setup, shortcodes, and roles: [Client Portal](/core-features/client-portal/).

---

## First-paint styles

Brand colors, theme, and fonts apply on the first paint of signing pages and the admin UI. Signers should not see a flash of default blue before your settings load.

If a cache plugin still shows old colors, purge its cache and hard-refresh the signing page.

---

## Troubleshooting

| Symptom | What to check |
|---------|----------------|
| Logo missing | File uploaded, public URL, then hard refresh |
| Buttons still default blue | Save Brand and/or Signing Page; purge cache |
| Wrong tab after an old bookmark | You are on Appearance — use the tabs at the top |
| Empty Appearance page | You need `manage_options` (WordPress Administrator) |
| Button words did not change | Edit [Custom Texts](/customization/languages/), not Appearance |

---

## Next Steps

- [Whitelabeling](/customization/whitelabeling/) — Rename the product and hide WPsigner branding
- [Email Templates](/customization/email-templates/) — Email HTML and subjects
- [Client Portal](/core-features/client-portal/) — Shortcodes and login
- [Bulk Send](/core-features/bulk-send/) — Invite many people from a CSV

---

# Email Templates

> Complete guide to customizing all email notifications sent by WPsigner for signing requests, reminders, and more.

edition: both
Edition: Lite + Pro
AI note: This page applies to Lite and Pro. Call out Lite limits (PDF only, max 2 signers, email OTP, local timestamp) when they apply. Do not invent Pro-only features.
HTML: https://docs.wpsigner.com/customization/email-templates/
Markdown: https://docs.wpsigner.com/md/customization/email-templates.md

WPsigner sends automated emails throughout the document signing workflow. This page covers how to customize these emails to match your brand voice and provide a professional experience.

## Email Types

WPsigner sends five types of automated emails:

| Email | Purpose | When Sent |
|-------|---------|-----------|
| **Signing Request** | Invite signer to sign | When document is sent |
| **Reminder** | Follow-up for pending signatures | Automatically or manually |
| **Completed** | Notify all parties of completion | When all signers finish |
| **Declined** | Alert when signer refuses | When signer declines |
| **OTP Verification** | Identity verification code | When OTP is enabled |

---

## Why Customize Emails?

### Brand Consistency

| Default Emails | Customized Emails |
|----------------|------------------|
| Generic messaging | Your brand voice |
| Standard templates | On-brand design |
| WPsigner branding | Your company branding |
| Basic information | Tailored messaging |

### Better Results

Custom emails improve:
- **Open rates** - Familiar sender name and branding
- **Completion rates** - Clear, personalized instructions
- **Trust** - Professional, consistent experience
- **Engagement** - Brand-appropriate tone and messaging

---

## Accessing Email Templates

Navigate to:
1. **WPsigner** in the admin sidebar
2. Click **More** dropdown in the top navigation
3. Select **Email Templates**

Or go directly to: `WPsigner → More → Email Templates`

---

## Template Editor Interface

### Template Tabs

At the top, you'll see tabs for each email type:
- 📧 **Signing Request** - Invitation to sign
- 🔔 **Reminder** - Follow-up reminder
- ✅ **Completed** - Completion notification
- ❌ **Declined** - Decline notification
- 🔐 **OTP Verification** - Verification code

Click any tab to edit that template.

### Visual Editor

The editor provides:
- **Rich text editing** - Format text, add links, images
- **HTML mode** - Direct HTML editing for advanced users
- **Media library** - Insert images and files
- **Full toolbar** - All formatting options

### Variables Sidebar

On the right, you'll see available variables:
- Click any variable to insert it at cursor
- Variables are replaced with real data when sent
- Hover for descriptions

### Action Buttons

| Button | Function |
|--------|----------|
| **Preview** | See how email will look |
| **Send Test** | Send test email to yourself |
| **Save Template** | Save your changes |
| **Reset to Default** | Restore original template |

---

## Available Variables

Variables are placeholders that get replaced with real data. Use the `{{variable_name}}` syntax.

### Common Variables (All Templates)

| Variable | Description | Example Output |
|----------|-------------|----------------|
| `{{company_name}}` | Your company name | "Acme Corporation" |
| `{{company_logo}}` | Company logo URL | https://... |
| `{{signer_name}}` | Recipient's name | "John Smith" |
| `{{signer_email}}` | Recipient's email | "john@example.com" |
| `{{document_title}}` | Document name | "Service Agreement" |
| `{{sender_name}}` | Who sent the document | "Jane Doe" |

### Signing Request Variables

| Variable | Description |
|----------|-------------|
| `{{signing_url}}` | Unique signing link |
| `{{document_filename}}` | Original file name |
| `{{expires_at}}` | Expiration date |
| `{{custom_message}}` | Optional sender message |
| `{{require_wp_login}}` | Set when that signer must log in with a matching WordPress account. Use `{{#if require_wp_login}}` to show the extra sentence |

### Reminder Variables

| Variable | Description |
|----------|-------------|
| `{{signing_url}}` | Signing link |
| `{{days_pending}}` | Days since sent |
| `{{expires_at}}` | Expiration date |
| `{{require_wp_login}}` | Same flag as the signing-request template — use `{{#if require_wp_login}}` |

### Completed Variables

| Variable | Description |
|----------|-------------|
| `{{completed_at}}` | Completion timestamp |
| `{{download_url}}` | Link to download signed PDF |
| `{{total_signers}}` | Number of signers |

### Declined Variables

| Variable | Description |
|----------|-------------|
| `{{declined_by}}` | Who declined |
| `{{declined_at}}` | When they declined |
| `{{decline_reason}}` | Reason provided |

### OTP Variables

| Variable | Description |
|----------|-------------|
| `{{otp_code}}` | Verification code |
| `{{otp_expires}}` | Code expiration time |

---

## Customizing Each Template

### Signing Request Email

This is the most important email—it initiates the signing process.

**Best Practices:**
- Clear subject line: "Document awaiting your signature"
- Personalize with signer name
- Explain what the document is
- Prominent call-to-action button
- Include expiration if applicable
- Offer alternative link for button issues

**Example Structure:**
```html
<p>Hello {{signer_name}},</p>

<p>{{sender_name}} has sent you a document that requires your signature:</p>

<p><strong>{{document_title}}</strong></p>

{{#if custom_message}}
<blockquote>{{custom_message}}</blockquote>
{{/if}}

<a href="{{signing_url}}">Review & Sign Document</a>

{{#if expires_at}}
<p>This document expires on {{expires_at}}</p>
{{/if}}
```

### Reminder Email

Remind signers who haven't completed signing.

**Best Practices:**
- Friendly, non-aggressive tone
- Explain why it's important
- Include urgency if deadline approaching
- Re-state what the document is
- Easy access to signing link

**Example:**
```html
<p>Hi {{signer_name}},</p>

<p>Just a friendly reminder that you have a document waiting for your signature.</p>

<p><strong>{{document_title}}</strong></p>

<a href="{{signing_url}}">Sign Now</a>

<p>This only takes a few minutes. If you have questions, contact {{sender_name}}.</p>
```

### Completed Email

Notify all parties that the document is finished.

**Best Practices:**
- Confirmation subject: "Document Completed"
- Celebrate the completion
- Provide download link
- Include completion timestamp
- Summarize who signed

**Example:**
```html
<p>Great news!</p>

<p>The document <strong>{{document_title}}</strong> has been signed by all parties.</p>

<p>Completed on: {{completed_at}}</p>

<a href="{{download_url}}">Download Signed Document</a>

<p>A copy has been sent to all signers for their records.</p>
```

### Declined Email

Alert the document owner when someone declines.

**Best Practices:**
- Clear subject: "Document Declined"
- Identify who declined
- Include their reason
- Suggest next steps

**Example:**
```html
<p>Unfortunately, {{declined_by}} has declined to sign the document:</p>

<p><strong>{{document_title}}</strong></p>

{{#if decline_reason}}
<p>Reason: "{{decline_reason}}"</p>
{{/if}}

<p>You may want to contact them to discuss their concerns or create a new document with modifications.</p>
```

### OTP Verification Email

Send verification codes for identity confirmation.

**Best Practices:**
- Clear subject: "Your verification code"
- Large, readable code
- State expiration time
- Security reminder not to share

**Example:**
```html
<p>Hello {{signer_name}},</p>

<p>Your verification code is:</p>

<h1 style="text-align: center; font-size: 32px;">{{otp_code}}</h1>

<p>This code expires in {{otp_expires}}.</p>

<p>If you didn't request this code, please ignore this email.</p>
```

---

## Preview and Testing

### Preview Feature

1. Click the **Preview** button
2. View how the email will appear
3. Switch between Desktop, Tablet, and Mobile views
4. Verify formatting and layout

### Send Test Email

1. Click **Send Test**
2. Enter your email address
3. Click **Send Test Email**
4. Check your inbox for the sample

The test email uses sample data so you can see real output.

---

## Design Best Practices

### Email Design Principles

| Principle | Implementation |
|-----------|---------------|
| **Mobile-first** | Most emails read on mobile |
| **Clear CTA** | Large, prominent button |
| **Minimal text** | Concise, scannable content |
| **Brand colors** | Match your brand |
| **White space** | Easy to read |

### Technical Considerations

| Consideration | Recommendation |
|---------------|----------------|
| **Image hosting** | Use absolute URLs |
| **CSS** | Inline styles only |
| **Width** | Max 600px for mobile |
| **Fonts** | System fonts for compatibility |
| **Alt text** | Always include for images |

### Accessibility

- Use sufficient color contrast
- Include alt text for images
- Don't rely on color alone for meaning
- Keep font sizes readable (14px+)

---

## Template HTML Structure

WPsigner emails use a responsive HTML structure:

```html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Email Title</title>
</head>
<body style="margin: 0; padding: 0; font-family: 'Segoe UI', sans-serif; background-color: #f5f5f5;">
    <table role="presentation" width="100%" style="background-color: #f5f5f5;">
        <tr>
            <td style="padding: 40px 20px;">
                <table width="600" style="margin: 0 auto; background-color: #ffffff; border-radius: 16px;">
                    
                    <!-- Header -->
                    <tr>
                        <td style="background: linear-gradient(135deg, #3b82f6, #2563eb); padding: 30px; text-align: center;">
                            {{#if company_logo}}
                            <img src="{{company_logo}}" alt="{{company_name}}" style="max-height: 50px;">
                            {{/if}}
                            <h1 style="color: #ffffff;">{{company_name}}</h1>
                        </td>
                    </tr>
                    
                    <!-- Content -->
                    <tr>
                        <td style="padding: 40px 30px;">
                            <!-- Your content here -->
                        </td>
                    </tr>
                    
                    <!-- Footer -->
                    <tr>
                        <td style="background: #f8fafc; padding: 20px 30px; text-align: center;">
                            <p style="color: #999; font-size: 12px;">
                                This email was sent by {{company_name}}.
                            </p>
                        </td>
                    </tr>
                    
                </table>
            </td>
        </tr>
    </table>
</body>
</html>
```

---

## Conditional Content

Use Handlebars-style conditionals for dynamic content:

### If/Then Blocks

```handlebars
{{#if custom_message}}
<div class="message-box">
    <p>Message from {{sender_name}}:</p>
    <p>{{custom_message}}</p>
</div>
{{/if}}

{{#if require_wp_login}}
<p>You must sign in with the WordPress account that uses this email. The signing link alone is not enough.</p>
{{/if}}
```

### With Else

```handlebars
{{#if company_logo}}
    <img src="{{company_logo}}" alt="Logo">
{{else}}
    <h1>{{company_name}}</h1>
{{/if}}
```

---

## Resetting Templates

To restore a template to its default:

1. Open the template you want to reset
2. Click **Reset to Default**
3. Confirm the reset
4. Template reverts to original

> **caution**
Resetting a template permanently removes your customizations. Save a backup before resetting.

---

## Email Deliverability

### SMTP Configuration

For reliable email delivery, configure SMTP:

1. Install an SMTP plugin (WP Mail SMTP, FluentSMTP)
2. Configure with your email provider
3. Test delivery with WPsigner test email feature

### Best Practices

| Practice | Why |
|----------|-----|
| **Use your domain** | Better deliverability |
| **Configure SPF/DKIM** | Authentication |
| **Monitor bounces** | Maintain sender reputation |
| **Avoid spam triggers** | Stay out of spam folder |

---

## Common Issues

### Emails not sending

1. Verify SMTP is configured
2. Check email address validity
3. Review server error logs
4. Test with WPsigner's Send Test feature

### Variables not replacing

- Check variable spelling exactly
- Ensure double curly braces: `{{variable}}`
- Preview to verify replacements

### HTML not rendering correctly

- Use inline CSS styles
- Avoid complex layouts
- Test in multiple email clients
- Use the Preview feature

---

## Next Steps

- [Whitelabeling](/customization/whitelabeling/) - Full branding options
- [Settings Overview](/getting-started/installation/) - All settings explained
- [Signer Workflows](/core-features/signer-workflows/) - Workflow options

---

# Languages & Translations

> Install WPsigner language packs and Signed PDF fonts so the admin UI and flattened signed PDFs support Vietnamese and other languages.

edition: both
Edition: Lite + Pro
AI note: This page applies to Lite and Pro. Call out Lite limits (PDF only, max 2 signers, email OTP, local timestamp) when they apply. Do not invent Pro-only features.
HTML: https://docs.wpsigner.com/customization/languages/
Markdown: https://docs.wpsigner.com/md/customization/languages.md

WPsigner ships in **English** by default. Additional languages are delivered as **language packs** you install from **WPsigner → Languages** (requires an active license). Packs are not bundled inside the public plugin ZIP.

> **note**
WPsigner uses its own language pack system (License Manager catalog). It is **not** translated via translate.wordpress.org.

---

## Available languages

Official packs currently cover these locales (core + matching addon strings when included in the pack):

| Language | Locale codes |
|----------|----------------|
| English (default) | `en` / `en_US` (source strings — no pack required) |
| Español | `es`, `es_ES`, plus regional variants such as `es_MX`, `es_AR`, `es_CL`, `es_CO`, `es_CR`, `es_GT`, `es_HN`, `es_PE`, `es_US`, `es_VE` |
| Français | `fr`, `fr_FR` |
| Deutsch | `de`, `de_DE` |
| Italiano | `it`, `it_IT` |
| Português | `pt`, `pt_BR` (Brasil), `pt_PT` (Portugal) |

The exact list shown on your site comes from the **live catalog** at **WPsigner → Languages**. If a locale is missing from the catalog, it is not published yet — see [Add a missing language](#add-a-missing-language).

### What language packs cover

| Component | Text domain | Included in packs |
|-----------|-------------|-------------------|
| WPsigner core | `insigner` | Required |
| Smart Signing Forms | `insigner-smart-forms` | Optional (when present) |
| Document Builder | `insigner-document-builder` | Optional |
| WPSigner for MainWP | `insigner-mainwp` | Optional |
| ApproveMe Importer | `wpsigner-approveme-importer` | Optional |

> **tip**
Installing a language pack translates the **WordPress admin UI** and plugin strings for that locale. Document PDF content created by users is not auto-translated — only interface strings. Names and typed text in flattened signed PDFs need a **Signed PDF fonts** pack if they use characters beyond basic Latin.

---

## Signed PDF fonts

Language packs do **not** change the font used when WPsigner flattens a signed PDF. Core still uses Helvetica (Latin-1) until you install a PDF font pack (**Pro 3.2.0+**).

This is what you need for **Vietnamese** names and typed text (ă, â, ê, ô, ơ, ư, đ, and tone marks) on the completed PDF. It does **not** translate the WPsigner screens.

1. Go to **WPsigner → Languages**
2. Open the **Signed PDF fonts** section
3. For Vietnamese and other Latin languages with accents, install **Accented Latin**
4. Click **Use for signed PDFs** if it is not already active
5. Send a test document and download the completed PDF

The site needs internet only during install. After that, flattening uses the font stored on your server.

Each pack downloads a [Noto](https://fonts.google.com/noto) font (SIL Open Font License) after install and stores it in `wp-content/uploads/wps-pdf-fonts/{pack}/`. Packs are not bundled in the plugin ZIP.

| Pack | Works for |
|------|-----------|
| Accented Latin | Vietnamese, Turkish, Polish, Czech, Slovak, Romanian, Hungarian, Croatian, Slovenian, Baltic languages, Finnish, Icelandic, Maltese, Welsh, Basque, Catalan, plus French / German / Spanish / Portuguese / Italian / Nordic accents |
| Japanese | Japanese (kanji, hiragana, katakana) |
| Chinese (Simplified) | Simplified Chinese (mainland China, Singapore) |
| Chinese (Traditional) | Traditional Chinese (Taiwan, Hong Kong, Macau) |
| Korean | Korean (Hangul) |
| Arabic | Arabic; Persian and Urdu that use the Arabic script |
| Hebrew | Hebrew |
| Thai | Thai |

Install only the pack you need. You can keep several on disk; **one** pack is used for new signed PDFs at a time.

PDF font packs do **not** translate the WPsigner screens. For a translated UI, install a language pack (or a custom `.mo`) separately.

Arabic and Hebrew embed the characters. Right-to-left line layout in certificates is limited.

---

## Install and activate a language

1. Activate your WPsigner license (**WPsigner → Settings / License**)
2. Go to **WPsigner → Languages**
3. Find the language in the catalog
4. Click **Install** (downloads the pack ZIP)
5. Click **Activate**

WPsigner stores installed `.mo` files under WordPress’s languages directory:

```text
wp-content/languages/plugins/
  insigner-{locale}.mo
  insigner-smart-forms-{locale}.mo
  …
```

You can leave the WordPress site language as-is; WPsigner’s **active pack** controls which translation the plugin loads.

---

## Where translation files live

### On your WordPress site (runtime)

| Location | Purpose |
|----------|---------|
| `wp-content/languages/plugins/` | Installed language packs (`.mo`) used in production |
| Plugin `languages/` folders | Only present in development / source trees — **not** required on customer sites |

### In the product source (developers / translators)

| Path | Contents |
|------|----------|
| `insigner/languages/` | Core template `insigner.pot` + `insigner-{locale}.po` / `.mo` |
| `insigner-smart-forms/languages/` | Addon POT/PO/MO |
| `insigner-document-builder/languages/` | Addon POT/PO/MO |
| `insigner-mainwp/languages/` | Addon POT/MO |
| `wpsigner-approveme-importer/languages/` | Addon POT/PO/MO |

File naming pattern:

```text
{text-domain}-{locale}.po   ← editable translation source
{text-domain}-{locale}.mo   ← compiled file WordPress loads
{text-domain}.pot           ← template of all translatable strings
```

Examples:

```text
insigner-es_ES.po
insigner-es_ES.mo
insigner-fr_FR.mo
insigner-smart-forms-de_DE.mo
```

---

## Add a missing language

Use this when your locale is not in **WPsigner → Languages**, or you need a custom/override translation.

### Option A — Loco Translate (recommended for site admins)

1. Install [Loco Translate](https://wordpress.org/plugins/loco-translate/)
2. Open **Loco Translate → Plugins → WPsigner** (domain `insigner`)
3. Click **New language** → choose your locale (for example `nl_NL`)
4. Translate strings in the editor
5. Save — Loco writes `.po` / `.mo` under `wp-content/languages/plugins/` (or the plugin `languages/` folder, depending on your Loco settings)
6. Repeat for active addons (`insigner-smart-forms`, etc.) if needed
7. In **WPsigner → Languages**, keep English or another pack inactive if it conflicts; prefer loading your custom `.mo` for that locale

Loco is listed as compatible with WPsigner’s standard WordPress i18n APIs.

### Option B — Poedit (recommended for professional translators)

1. Download [Poedit](https://poedit.net/)
2. Open the template: `insigner.pot` (from the core `languages/` folder, or request it from support)
3. **Create new translation** → select your language / locale code (e.g. `nl_NL`, `ja`, `pl_PL`)
4. Translate strings and save as:
   ```text
   insigner-{locale}.po
   ```
   Poedit generates the matching `.mo` automatically
5. Optional: create matching files for each addon domain you use
6. Upload the `.mo` files to:
   ```text
   wp-content/languages/plugins/
   ```
7. Set WordPress / WPsigner to that locale so the files load

### Option C — WP-CLI (developers)

From the plugin root (development environment):

```bash
# Refresh the template from source
wp i18n make-pot . languages/insigner.pot --domain=insigner

# Create a new PO from the template
wp i18n make-po languages/insigner.pot languages/insigner-nl_NL.po

# Compile MO after translating the PO
wp i18n make-mo languages/
```

Copy the compiled `insigner-nl_NL.mo` to `wp-content/languages/plugins/` on the site.

---

## Contribute an official language pack

If you want the language published in the **WPsigner → Languages** catalog for all customers:

1. Complete `.po` / `.mo` files for core (`insigner`) and ideally the addons you care about
2. Package a ZIP with **forward-slash** paths and this layout:

```text
wpsigner-lang-{locale}-{version}.zip
├── insigner-{locale}.mo                          (required)
├── insigner-smart-forms-{locale}.mo              (optional)
├── insigner-document-builder-{locale}.mo         (optional)
├── insigner-mainwp-{locale}.mo                   (optional)
└── wpsigner-approveme-importer-{locale}.mo       (optional)
```

3. Send the ZIP to WPsigner support / your account manager, **or** (partners with License Manager access) upload it under **License Manager → Language Packs**
4. After publication, customers can install it from **WPsigner → Languages**

> **important**
Do not rely on translate.wordpress.org for WPsigner. Packs must go through the WPsigner language pack catalog.

---

## Troubleshooting

| Symptom | Fix |
|---------|-----|
| Languages page empty / cannot install | Activate a valid WPsigner license |
| Pack installed but UI still English | Click **Activate** on the pack; confirm the `.mo` exists under `wp-content/languages/plugins/` |
| Only some screens translated | Translate / include the matching addon domain `.mo` |
| Custom PO ignored | Check file name `{domain}-{locale}.mo`; clear caches; avoid conflicting active pack |
| Need a new locale ASAP | Use Loco or Poedit locally while waiting for an official pack |
| Vietnamese / accented names missing or boxes on the signed PDF | Install **Accented Latin** under **Signed PDF fonts**, then **Use for signed PDFs**. Re-complete a test document — already flattened PDFs are not rewritten |
| Chinese / Japanese / Korean / Arabic / Thai / Hebrew look wrong | Install that language’s PDF font pack (not Accented Latin) and make it the active pack |
| Font install fails | The site must reach the Noto download URL once. Check outbound HTTPS, then retry |
| Two packs installed, wrong script in new PDFs | Only one pack is active. Click **Use for signed PDFs** on the pack you need |

---

## Next Steps

- [Creating Documents](/core-features/creating-documents/) — Add signers and send a test PDF after installing a font pack
- [Whitelabeling](/customization/whitelabeling/) — Brand the signing experience
- [Email Templates](/customization/email-templates/) — Customize notification copy (per language workflow as needed)
- [Account Portal](/addons/account-portal/) — License and downloads
- [Support](/support/) — Contact WPsigner if you need a pack published

---

# Whitelabeling & Branding

> Complete guide to customizing WPsigner with your company branding for a professional, seamless client experience.

edition: pro
Edition: Pro
AI note: This page requires WPsigner Pro. Do not tell Lite users they already have this feature.
HTML: https://docs.wpsigner.com/customization/whitelabeling/
Markdown: https://docs.wpsigner.com/md/customization/whitelabeling.md

Whitelabeling allows you to completely customize WPsigner's appearance to match your brand. From logos and colors to complete removal of WPsigner branding, this page covers all customization options.

> **Requires WPsigner Pro**
Full white-label renaming is a **Pro** feature. Lite can edit email/on-screen texts and optionally show a credit line, but cannot replace the product name everywhere. [Upgrade to Pro](https://wpsigner.com/pricing/?utm_source=docs&utm_medium=upgrade&utm_campaign=whitelabel) · [Lite vs Pro](/getting-started/lite-vs-pro/)

## Why Whitelabeling Matters

### Professional Image

Consistent branding across all client touchpoints:

| Without Branding | With Your Branding |
|------------------|-------------------|
| Generic "WPsigner" logo | Your company logo |
| Default blue colors | Your brand colors |
| "Powered by WPsigner" | Your company name |
| Generic experience | Seamless branded experience |

### Client Trust

Branded signing experiences increase:

- **Completion rates** - Clients trust familiar branding
- **Professional perception** - Polished, integrated experience
- **Brand consistency** - Matches your other communications
- **Credibility** - Appears as your own platform

### Use Cases

| Scenario | Benefit |
|----------|---------|
| **Agencies** | Offer e-signatures as your service |
| **Law firms** | Professional client-facing documents |
| **HR departments** | Consistent employee experience |
| **SaaS companies** | Integrated user experience |
| **Freelancers** | Professional contract process |

---

## Branding Settings Overview

WPsigner offers two levels of branding customization:

### Appearance → Brand (Basic Branding)

| Setting | Purpose |
|---------|---------|
| Company Name | Your organization name |
| Company Logo | Logo in emails and signing pages |
| Primary Color | Accent color for buttons and highlights |

### White Label Settings (Complete Customization)

| Setting | Purpose |
|---------|---------|
| Brand Name | Replace "WPsigner" everywhere |
| Brand Initials | Custom logo icon (1-3 characters) |
| Powered By Text | Custom footer text |
| Hide All Branding | Complete white label mode |

---

## Configuring brand settings

Access these at **WPsigner → Appearance → Brand**.

### Company Name

Your company name appears in:
- Email sender name (if not overridden)
- Document Certificate of Completion
- Signing page header

**Configuration:**
1. Navigate to **General Settings** section
2. Enter your **Company Name**
3. Click **Save Settings**

### Company Logo

Your logo replaces the default WPsigner logo in:
- Email headers
- Signing page header
- Document Certificate of Completion
- Admin dashboard (optional)

**Best Practices:**
| Recommendation | Details |
|----------------|---------|
| Format | PNG with transparent background |
| Size | 200-400px wide, under 100KB |
| Aspect ratio | Horizontal (16:9 to 4:1) |
| Contrast | Works on both light and dark backgrounds |

**Configuration:**
1. Click **Upload Logo** button
2. Select your logo from the Media Library (or upload new)
3. Verify the preview looks correct
4. Click **Save Settings**

### Primary Color

The primary accent color affects:
- Buttons (Sign, Submit, Continue)
- Links and interactive elements
- Progress indicators
- Field highlights

**Configuration:**
1. Click the color picker or enter a hex code
2. Preview how it looks in the interface
3. Click **Save Settings**

**Color Tips:**
- Choose a color from your brand guidelines
- Ensure sufficient contrast for accessibility
- Test on both light and dark backgrounds
- Avoid colors that are too light (poor visibility)

---

## White Label Branding

Access at **WPsigner → Appearance → Brand**.

### Brand Name

Replace "WPsigner" with your own brand name throughout the plugin:

| Before | After (Example) |
|--------|-----------------|
| "WPsigner" in menus | "DocuSign Pro" |
| "WPsigner" in emails | "DocuSign Pro" |
| "WPsigner" notifications | "DocuSign Pro" |

**Configuration:**
1. Enter your **Brand Name** (e.g., "Acme Signatures")
2. This replaces "WPsigner" text in the interface
3. Click **Save Settings**

### Brand Initials

The brand initials appear in the logo icon badge throughout the admin interface:

| Default | Custom Example |
|---------|----------------|
| "eS" | "AS" (for Acme Signatures) |
| "eS" | "D" (for single letter) |
| "eS" | "DSP" (for DocuSign Pro) |

**Configuration:**
1. Enter 1-3 characters for your **Brand Initials**
2. Keep it short and recognizable
3. Click **Save Settings**

### Powered By Text

Customize or remove the footer attribution:

| Option | Result |
|--------|--------|
| Custom text | "Powered by Acme Corp" |
| Empty | No footer text (hidden completely) |

**Configuration:**
1. Enter custom **Powered By Text** (or leave empty to hide)
2. Click **Save Settings**

### Complete White Label Mode

Enable "Hide all plugin branding" for complete white label:

**What Gets Hidden:**
- All "WPsigner" text references
- Default logo icon
- Footer attributions
- External links to wpsigner.com

**What Remains:**
- Your custom branding
- Your company logo
- Your brand colors

**Configuration:**
1. Check **Hide all plugin branding (complete white label)**
2. Click **Save Settings**

---

## Document Settings

Configure default document behavior at **WPsigner → Settings → Document Settings**.

### Document Expiry

Set default expiration period for signing links:

| Setting | Description |
|---------|-------------|
| Value | Number of days (0 = never expires) |
| Default | 30 days |
| Recommended | 7-30 days for most documents |

**Best Practices:**
- Short expiry (7 days) for urgent documents
- Medium expiry (30 days) for standard contracts
- Long/no expiry for evergreen documents

### Default Signing Order

Set the default workflow for new documents:

| Option | Behavior | Best For |
|--------|----------|----------|
| **Parallel** | All signers receive email at once | Co-signers, fast completion |
| **Sequential** | One-by-one in order | Approval chains |

This is the default—you can override per-document.

### Allow Decline

Enable/disable the decline option for signers:

| Enabled | Disabled |
|---------|----------|
| Signers can refuse to sign | Sign or do nothing |
| Decline reason captured | No explicit refusal option |
| Real-time notification | No decline notifications |

### Require PIN

Enable PIN protection for document access:

| Enabled | Disabled |
|---------|----------|
| Signers must enter PIN | Direct link access |
| Extra security layer | Faster signer experience |
| You share PIN separately | No extra step |

---

## Email Settings

Configure email behavior at **WPsigner → Settings → Email Settings**.

### From Name

The sender name that appears in recipients' inboxes:

| Default | Recommended |
|---------|-------------|
| Site name | Your company name |

Example: "Acme Corporation" or "John Smith - Acme Corp"

### From Email

The email address emails are sent from:

| Consideration | Recommendation |
|---------------|----------------|
| Deliverability | Use domain email (not @gmail) |
| Replies | Use monitored inbox |
| Branding | Match your domain |

Example: `contracts@acmecorp.com` or `noreply@acmecorp.com`

> **important**
For reliable deliverability, configure and test SMTP using a plugin such as WP Mail SMTP or FluentSMTP.

### Automatic Reminders

Enable automatic reminder emails for pending signatures:

| Enabled | Disabled |
|---------|----------|
| Auto-send reminders | No automatic follow-up |
| Configurable schedule | Manual reminders only |
| Better completion rates | You control all emails |

### Completion Notification

Send email when a document is fully signed:

| Recipient | Email Content |
|-----------|---------------|
| Document owner | "Document XYZ has been completed" |
| All signers | Copy of the signed document |

---

## Legal & Privacy Settings

Configure compliance options at **WPsigner → Settings → Legal & Privacy**.

### Privacy Policy URL

Link to your privacy policy, displayed to signers:

**Where It Appears:**
- Signing page footer
- Before signature consent
- Legal disclosure section

**Configuration:**
1. Enter the full URL to your privacy policy
2. Signers will be required to acknowledge it
3. Click **Save Settings**

### Terms of Service URL

Optional link to your terms of service:

**Where It Appears:**
- Signing page footer
- Alongside privacy policy

### OTP Verification (eIDAS Advanced)

Enable email OTP verification for enhanced identity assurance:

**How It Works:**
1. Signer clicks signing link
2. OTP code is sent to their email
3. Signer enters the code
4. Access granted to document

**Benefits:**
- eIDAS Advanced Signature compliance
- Stronger identity verification
- Additional security layer

### Certified Timestamping (TSA)

Enable RFC 3161 timestamps for long-term validity:

**Benefits:**
- Proves exact signing time
- Long-term validation
- Legal compliance

See [Timestamping](/digital-identity/timestamping/) for full details.

---

## Where Branding Appears

### Signing Page

| Element | Customizable |
|---------|-------------|
| Header logo | ✅ Company Logo |
| Header text | ✅ Company Name |
| Button colors | ✅ Primary Color |
| Footer text | ✅ Powered By Text |

### Emails

| Element | Customizable |
|---------|-------------|
| From name | ✅ From Name |
| From email | ✅ From Email |
| Logo in header | ✅ Company Logo |
| Button colors | ✅ Primary Color |
| Footer text | ✅ Powered By Text |

### Certificate of Completion

| Element | Customizable |
|---------|-------------|
| Company name | ✅ Company Name |
| Logo | ✅ Company Logo |
| Footer | ✅ Powered By Text |

### Admin Dashboard

| Element | Customizable |
|---------|-------------|
| Logo icon | ✅ Brand Initials |
| Menu label | ✅ Brand Name |
| About section | ✅ Hides with White Label |

---

## Best Practices

### Brand Consistency

| Area | Recommendation |
|------|----------------|
| Logo | Same as your website |
| Colors | Match your brand guidelines |
| Names | Consistent across all materials |
| Tone | Professional, aligned with your voice |

### Testing Your Branding

1. **Send a test document** to yourself
2. **Review the email** - Check logo, colors, text
3. **Complete the signing** - Verify signing page branding
4. **Download the PDF** - Check Certificate of Completion
5. **Iterate** - Adjust settings as needed

### For Agencies

If you're offering e-signature services to clients:

1. Enable **Complete White Label Mode**
2. Upload a **neutral/generic logo** or client-specific logo
3. Use client-appropriate **color scheme**
4. Set **Powered By** to your agency name or hide
5. Consider separate WP installations per client for complete isolation

---

## Troubleshooting

### Logo not appearing

- Verify the image uploaded successfully
- Check file format (PNG/JPG recommended)
- Ensure URL is accessible (check privacy settings)
- Clear browser cache

### Colors not updating

- Hard refresh the page (Ctrl+Shift+R / Cmd+Shift+R)
- Clear any caching plugins
- Verify you clicked "Save Settings"

### Emails showing wrong sender

- Verify SMTP plugin is configured correctly
- Check that "From Email" is a valid address
- Some hosts override sender information

---

## Next Steps

- [Appearance](/customization/appearance/) - Brand, signing buttons, and portal tabs
- [Email Templates](/customization/email-templates/) - Customize email content
- [Digital ID](/digital-identity/digital-id/) - Configure signing certificates
- [Security Settings](/digital-identity/audit-trails/) - Compliance options
