> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinedigital.co/llms.txt
> Use this file to discover all available pages before exploring further.

# WordPress Enhancer

> A WordPress plugin providing enhancements to the overall WordPress admin experience.

## Requirements

* [WordPress](https://wordpress.org/)
* [FluentCRM](https://fluentcrm.com/?ref=1360) (Free) is optional but is required if you use the newsletter block from PreLaunch Kit to capture emails and want to integrate with this service.
* [Mailchimp](https://mailchimp.com/) (Free) is optional but is required if you use the newsletter block from PreLaunch Kit to capture emails and want to integrate with this service.

## Installation

1. Install **WordPress**.
2. Download the latest **WordPress Enhancer** version from [**your Pine Digital account**](https://pinedigital.co/account/downloads).
3. **WordPress Dashboard → Plugins → Add New → Upload Plugin →** WordPress Enhancer
4. Activate **WordPress Enhancer**

## Features

### Command Palette Links

By default, the [WordPress Command Palette](https://wordpress.com/support/site-editor/command-palette/) shows results that you can only open in the same browser window. Our plugin turns those results into more powerful links with right-click capabilities.

### Duplicate Posts

WordPress doesn’t provide a way to duplicate post types, so you either need a code snippet or a plugin. **WordPress Enhancer allows you to duplicate any post type (Posts, Pages, Products, etc.).**

### Link Management

Set how external links work across your site, and build ready-to-use links, including coupon links when you use [WooCommerce Enhancer](https://docs.pinedigital.co/woocommerce-enhancer.md).

#### **Link Rules**

Set how external links behave across your whole site from one place. Turn on defaults for opening links in a new tab and telling search engines which links you endorse, then add exceptions for partners and pages that should stay different.

You get consistent visitor experience and SEO without editing posts one by one, and you can treat trusted or revenue links on their own terms while everything else follows your rules.

* **Nofollow External Links:** Links that leave your site are marked so search engines do not treat them as endorsements.
* **Open External Links in New Tab:** Keep visitors on your site while external pages open in a separate browser tab.
* **External Link Exceptions:** Keep partner and trusted URLs under their own rules, while the rest of your site follows your defaults.

> [!NOTE]
>
> This is a one-off cleanup or migration tool, not part of everyday use.

**Frequently Asked Questions (Link Rules)**

> [accordion] How do we get started?
>
> Once **Link Management** is enabled on the WordPress Enhancer dashboard, open **Settings** on that module and go to **Link Rules**.
>
> 1. Turn on only the options you want (everything is **off** by default):
>    * **Nofollow External Links**
>    * **Open External Links In New Tab**
> 2. Add partner or trusted URLs under **External Link Exceptions** if some external links should not follow those defaults.
> 3. Click **Save Changes**.
> 4. Open **Advanced** only if you need an exception list from a file, **Update Database** for a one-off site-wide fix, or **Developer Filters** for custom code. \_Enable only what your site needs. Most sites use the two toggles and optional exceptions; Advanced is optional.

> [accordion] What should I put on the Exceptions list?
>
> Add external links or domains you want **exempt from your Link Rules defaults** (new tab and do-not-endorse). Common examples include affiliate or sponsor links you treat differently, trusted partner sites, or another domain you own.
>
> You can enter full URLs, domains, or partial paths (one per line).

> [accordion] Will this change links while I'm editing in WordPress?
>
> No. Link Rules change how links appear when your content is **shown to visitors**, not while you edit posts and pages in the dashboard. What you save in the editor stays as you wrote it.
>
> The front-end preview may look like the live site. The **Update Database** option in Advanced is separate; it permanently changes the saved content in your database.

> [accordion] Do I need to go back and edit old posts?
>
> No. Link Rules apply to existing posts and pages when visitors view your site, so you do not need to re-save old content for new tab or do-not-endorse settings to take effect.
>
> Use **Update Database** in Advanced only if you need to permanently update saved content for one specific URL across your site. That is uncommon and separate from everyday Link Rules.

> [accordion] What is Update Database for?
>
> **Update Database** is a one-off tool for permanently fixing links in **saved** posts and page content. Enter a specific URL, and the tool finds posts that contain that URL and marks those links as "do not endorse" for search engines in the stored HTML.
>
> It works in batches. On larger sites, run it again until no more matching posts remain. This process is separate from everyday Link Rules, which apply when visitors view your site without changing what you saved in the editor.

> [accordion] How can I tell if it is working?
>
> Enable **Link Management**, turn on the Link Rules you want, and then open a **published** post, page, or listing on the **live site** (not in the editor).
>
> Click an external link to see if it opens in a new tab when that option is on. If **Nofollow External Links** is on, check a few external links on the page and confirm they are marked "do not endorse" the way you expect.
>
> If you added **External Link Exceptions**, test a matching link too. It should not follow your default rules.

> [accordion] Advanced Settings
>
> * **Exception list from a file:** Store trusted partner URLs in a simple file instead of a long list in settings. Those URLs work alongside anything you enter on screen. Pick a file in **JSON Preset File Path**, or add `exception-urls.json` to your child theme if you use one.
>
> * **Developer filters:** Turn this feature on only if your developer extends the trusted URL list through custom code on the site.
>
> * **Update database:** Finds a specific link across your posts and pages and updates the saved content to mark it as “do not endorse” for search engines. This change is permanent and separate from your normal link rules, so use it carefully.
>
> > [!NOTE]
> >
> > Update Database is a one-off cleanup or migration tool for fixing links across your site, not something you use for everyday link rules.

#### Link Generator

Build links in WordPress Enhancer without hand-coding HTML. Pick a destination, set your options, and copy the **URL** or **HTML** when the live preview looks right.

Use the **Hyperlink** options for everyday links to pages, products, or custom addresses. Use the **Coupon** options for WooCommerce discount links that send shoppers to the right page with the code in the URL.

**Highlights**

* **Live preview** as you build the link
* **Quick destinations** such as Home, Shop, Cart, and Checkout, plus pages and products from dropdowns
* **Coupon links** with a chosen coupon and destination (including add-to-cart style links for products on the Coupon tab)
* **Copy URL or HTML** with new tab and “do not endorse” options already applied when you select them
* **Optional tracking** classes and data attributes on HTML output
* Works with [WooCommerce Enhancer](https://docs.pinedigital.co/woo-commerce-enhancer) **Smart Coupon Links** so discount links apply to your live store (enable that setting there; WooCommerce is required)

> [accordion] Base URL
>
> Choose where the link sends people, from common store pages to any page, product, or custom address.
>
> <table>
>   <colgroup>
>     <col width="100" />
>
>     <col width="498" />
>   </colgroup>
>
>   <thead>
>     <tr>
>       <th>**Option**</th>
>       <th>**What it does**</th>
>     </tr>
>   </thead>
>
>   <tbody>
>     <tr>
>       <td>**Custom**</td>
>       <td>Paste any full URL (your site or another site).</td>
>     </tr>
>
>     <tr>
>       <td>**Home**</td>
>       <td>Your site homepage.</td>
>     </tr>
>
>     <tr>
>       <td>**Shop**</td>
>       <td>Your WooCommerce shop page (if WooCommerce is active).</td>
>     </tr>
>
>     <tr>
>       <td>**Cart**</td>
>       <td>Your cart page.</td>
>     </tr>
>
>     <tr>
>       <td>**Checkout**</td>
>       <td>Your checkout page.</td>
>     </tr>
>
>     <tr>
>       <td>**Pages**</td>
>       <td>Any published page on your site (shown in a nested list).</td>
>     </tr>
>
>     <tr>
>       <td>**Products**</td>
>       <td>Any published product (links to the product page).</td>
>     </tr>
>   </tbody>
> </table>

> [accordion] Link Text
>
> What visitors see as the clickable words. It shows in the preview and in the HTML you copy.
>
> If you leave it blank on the **Hyperlink** tab, the URL is used as the visible text. If you leave it blank on the **Coupon** tab, the coupon code is used instead. Add **Link Text** whenever you want custom wording.

> [accordion] Target
>
> Where the link opens when someone clicks it.
>
> <table>
>   <colgroup>
>     <col width="133" />
>
>     <col width="483" />
>   </colgroup>
>
>   <thead>
>     <tr>
>       <th>**Option**</th>
>       <th>**Plain English**</th>
>     </tr>
>   </thead>
>
>   <tbody>
>     <tr>
>       <td>**Same Window**</td>
>       <td>Opens in the current tab (most common).</td>
>     </tr>
>
>     <tr>
>       <td>**New Window**</td>
>       <td>Opens in a new browser tab.</td>
>     </tr>
>
>     <tr>
>       <td>**Parent Frame**</td>
>       <td>This is for sites that use frames (rare).</td>
>     </tr>
>
>     <tr>
>       <td>**Top Frame**</td>
>       <td>This option is for sites that use frames (rare).</td>
>     </tr>
>   </tbody>
> </table>

> [accordion] Link Options
>
> Optional settings that adjust the link before you copy it. They apply to the preview and HTML Code output.
>
> <table>
>   <colgroup>
>     <col width="298" />
>
>     <col width="416" />
>   </colgroup>
>
>   <thead>
>     <tr>
>       <th>**Option**</th>
>       <th>**What it does**</th>
>     </tr>
>   </thead>
>
>   <tbody>
>     <tr>
>       <td>**Download Link**</td>
>       <td>Tells the browser to download the file instead of opening it (best for file links).</td>
>     </tr>
>
>     <tr>
>       <td>**Do Not Endorse (nofollow)**</td>
>       <td>Adds `nofollow` so search engines do not pass ranking credit through this link.</td>
>     </tr>
>
>     <tr>
>       <td>**Do Not Send Referrer (noreferrer)**</td>
>       <td>Hides which page the visitor came from.</td>
>     </tr>
>
>     <tr>
>       <td>**External Link**</td>
>       <td>Opens in a new tab and adds security-related attributes for links to other websites.</td>
>     </tr>
>
>     <tr>
>       <td>**Help Link**</td>
>       <td>Marks the link as a help link for browsers and assistive technologies.</td>
>     </tr>
>   </tbody>
> </table>

> [accordion] Tracking
>
> Add CSS classes and data attributes to the copied HTML for analytics or styling; they are not added to the URL field.
>
> <table>
>   <colgroup>
>     <col width="168" />
>
>     <col width="539" />
>   </colgroup>
>
>   <thead>
>     <tr>
>       <th>**Field**</th>
>       <th>**What it does**</th>
>     </tr>
>   </thead>
>
>   <tbody>
>     <tr>
>       <td>**HTML Class**</td>
>       <td>Add one or more CSS class names (separated by spaces). Useful for styling or analytics scripts. Example: `promo-link spring-sale`</td>
>     </tr>
>
>     <tr>
>       <td>**Data Attributes**</td>
>       <td>Add extra `data-*` attributes to the HTML link. Example: `data-campaign="spring-email"`</td>
>     </tr>
>   </tbody>
> </table>

> [accordion] HTML Code
>
> A ready-to-paste link with your text, address, and options already filled in. Click the field to select everything, or use Copy, then paste into:
>
> * Email templates
> * WordPress custom HTML blocks
> * Page builders that accept HTML
> * Theme template files

> [accordion] URL
>
> The web address only, without HTML. Use for:
>
> * Social media posts
> * SMS messages
> * QR codes
> * Any place that only accepts a plain link

> [accordion] Hyperlinks
>
> Build standard links for your site and the web, without a discount code in the URL. Ideal for menus, blog posts, buttons, file downloads, and external partners.

**Coupons**

These links are for URLs that include a WooCommerce discount code. Use these links for promotions, email campaigns, and special offers.

When you enable the [Smart Coupon Links](https://docs.pinedigital.co/woocommerce-enhancer.md#smart-coupon-links) feature in our [WooCommerce Enhancer](https://docs.pinedigital.co/woocommerce-enhancer.md) plugin⁣, coupon links apply discounts on your site. If it is off, the generator still builds the link, but visitors will not receive an automatic discount until you turn that setting on.

> [accordion] How do we build a normal link?
>
> Once the module is enabled, it’s super easy to configure the available options.
>
> 1. Open **Link Management** and find **Link Generator**.
> 2. Stay on the **Hyperlink** tab.
> 3. Choose a **Base URL** (for example a page or product).
> 4. Enter **Link Text** (for example "View our plans").
> 5. Copy **URL** or **HTML Code**.
> 6. Paste where you need it.

> [accordion] How do we build a coupon link?
>
> 1. Enable **Smart Coupon Links** within our [WooCommerce Enhancer](https://docs.pinedigital.co/woocommerce-enhancer.md) plugin (one-time setup).
> 2. Open **Link Management → Link Generator → Coupon** tab.
> 3. Choose a **Base URL** (Shop is a good default).
> 4. Select a **Coupon**.
> 5. Optionally change **Link Text** or open **Tracking** for campaign tags.
> 6. Copy **URL** or **HTML Code** and share it.
> 7. Test in a private browser window: click the link and confirm the discount appears in the cart.

> [accordion] Do you have any best practices?
>
> * **Use Shop for broad promotions:** A shop link works well when you want people to browse and apply a site-wide or general coupon.
> * **Use Add to Cart for a specific product offer:** When the promotion is for one item, pick the product under **Add to Cart** so the item and coupon are both handled in one click.
> * **Use HTML Code for emails:** Email tools often need a full link tag. The generator sets `href`, `target`, and `rel` for you.
> * **Use URL for social and SMS:** Platforms usually want a plain address, not HTML.
> * **Use Tracking for campaigns:** Add a class like `email-cta` or a data attribute like `data-campaign="june-sale"` so your scripts or analytics can tell which link was clicked.
> * **Test coupon links in a private window:** An existing cart session can make testing confusing. A fresh private window provides a cleaner result.

> [accordion] Do you have any troubleshooting tips?
>
> * **The generator shows "Enter a URL" or an empty output:** Choose a Base URL or enter a custom URL. On the Coupon tab, you must also select a coupon.
> * **Coupon list says "No coupons found":** Create and publish a coupon in **WooCommerce → Marketing → Coupons** (or **Products → Coupons**, depending on your WooCommerce version).
> * **The coupon link does not apply a discount on the site:** Confirm **Smart Coupon Links** is enabled in the WooCommerce module. Confirm the coupon is valid (not expired, within usage limits, and allowed for the cart).
> * **The Add to Cart list is missing a product: only** simple, purchasable, in-stock products appear. Variable or out-of-stock products are not listed.
> * **Pages or products are slow to appear in the dropdown:** The list loads from your site after the page opens. Wait a moment for loading **pages and products…** or loading **products…** to finish.
> * **Tracking fields do not show in the URL field:** That is expected. Classes and data attributes are only added to **HTML Code** and **Preview**, not the plain URL.
> * **I edited Data Attributes on the Coupon tab, and values stopped updating:** Once you type in that box, auto-fill turns off so your edits are kept. Clear the box if you want automatic values again (you may need to refresh the page).

> [accordion] What does Link Generator not do for us?
>
> * It does not create WooCommerce coupons (use WooCommerce for that).
> * It does not turn on Smart Coupon Links for you (requires our [WooCommerce Enhancer](https://docs.pinedigital.co/woocommerce-enhancer.md) plugin).
> * It does not change site-wide link rules (those are in **Link Rules** above the generator).
> * It does not save a library of links; copy each link when you build it.
> * It does not guarantee a coupon will work if WooCommerce rules reject it (product restrictions, minimum spend, user limits, and so on).

### PreLaunch Kit

Coming Soon and Maintenance Mode with opt-in form blocks for FluentCRM and Mailchimp

**Coming Soon / Maintenance Mode**

* **Coming Soon:** Show visitors a “launching soon” page (and optionally collect emails) while telling search engines the site is still open for business.
* **Maintenance Mode:** Show visitors an “under maintenance” page (and optionally collect emails) while telling search engines the site is temporarily closed.
* Show visitors a custom landing page instead of the rest of your site
* Let certain user roles (like Administrator) keep full access
* Allow specific IP addresses (handy for your team or office)
* Share a private bypass URL so anyone who visits it can browse the real site for a while (like a shared preview link, not a login)

**Capture Emails Before Launch**

You can use any solution of your choosing for building your landing page and for capturing emails. For those who use WordPress blocks (Gutenberg), PreLaunch Kit includes a newsletter block that's ready for you to drop in your desired settings.

* Add newsletter signup blocks with FluentCRM and Mailchimp integration
* Customize button text, layout, and success messages
* Built-in honeypot SPAM protection

> [accordion] How do we get started with PreLaunch Kit?
>
> 1. Go to **Pine Digital → WordPress Enhancer** and enable the **PreLaunch Kit** module.
> 2. Open **Settings** on the PreLaunch Kit card.
> 3. Turn on **Activate Coming Soon / Maintenance**.
> 4. Under **Response Mode**, choose **Coming Soon** or **Maintenance Mode**.
> 5. *(Optional)* Under **Exclusions**, set **Exclude User Roles**, **Exclude IP Addresses**, and/or **Bypass URL** if your team needs access while the site is gated.
> 6. Click **Save Changes**.
> 7. Create your landing page in the block editor.
> 8. Add the **Newsletter Form** block (search for “newsletter” in the block inserter).
> 9. In the block sidebar, choose your email platform:
>    * **Mailchimp:** Enter your API key and audience/list ID.
>    * **FluentCRM:** Choose a **FluentCRM Tag** and **FluentCRM List**, or leave them empty. If FluentCRM is not active, you can enter tag/list slugs manually.
> 10. Adjust layout, messages, and colors as needed, then **publish** the page.
> 11. Return to **PreLaunch Kit → Settings**, set **Landing Page** to that page, and click **Save Changes** again.
> 12. Submit a test signup on the live page (use a private window if you are logged in as an admin).
>
> *Visitors will not see the coming soon or maintenance screen until a landing page is selected and saved.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.