=== Social Profile Card Studio ===
Contributors: easysocialsharebuttons
Tags: social card, profile card, bio link, vcard, social popup
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.28
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Build a social profile card, a bio page or a popup with your own links, embeds and products, then see who clicks.

== Description ==

Social Profile Card Studio builds a card that looks like it was designed for
you rather than assembled out of settings: a name and a picture, your links,
and buttons in your own colours. Put it on a page with a shortcode, give it its
own address as a standalone bio page, or show it automatically as a popup or
inline under a post.

= Four ways to show a card =

* **Manual** — a shortcode, a block, or an Elementor widget, exactly where you
  put it.
* **Save contact** — a button at the top of the card that hands the visitor a
  contact file they can save to their phone. One set of details fills it, and a
  card can carry more than one if you need to offer a second contact.
* **Bio page** — a page of its own at a slug you choose, with its own title,
  description and share image, and the option to load only its own assets
  rather than everything the site has queued. Leave the slug empty and the
  card's own name is used, so a new card works straight away.
* **Popup** — a modal that can open on arrival, after a delay, or when the
  reader has scrolled a set distance. Shown on the whole site, on posts, on
  WooCommerce products, or only on URLs you list. Capped by view count and
  remembered for as long as you choose.
* **Inline** — inserted at the top or bottom of a post's content, or below the
  price on a product.

= Built-in blocks =

Not only links. A card can carry:

* Buttons, email, and six chat apps — WhatsApp, Telegram, Signal, iMessage, SMS
  and Viber — each of which can open a conversation with a message already
  written in it
* YouTube, Vimeo, Spotify, TikTok, Twitch and Pinterest embeds, each one lazy,
  so a closed video costs nothing to load
* A Calendly scheduler
* A WooCommerce product with its own price, picture and add-to-cart button
* A WooCommerce coupon that readers can copy to the clipboard
* Dividers with a heading, for splitting a long card into sections
* Any shortcode you like

Every block decides for itself whether it is always shown or scheduled. A
scheduled block can be told when to appear and when to disappear, so a seasonal
offer comes and goes while the links around it stay put. Blocks waiting for
their date or past it are marked **Scheduled** on the card's own list, so you
can see which ones are temporary without opening each one.

= Designed, not configured =

Seventy-two colour styles are ready to pick from, and a **Generate my card**
wizard asks five questions — what you do, what the card is for, what colours you
like, whether you want a gradient, whether you want a background image — and
builds a palette to match. Everything it decides stays editable afterwards.

Then the parts it did not decide:

* Vertical or horizontal layout
* Solid, gradient or image backgrounds, on the card, the header and the area
  around the card
* Fonts per section, from your theme's own or from Google Fonts
* Borders, shadows, corner shapes, spacing and icon sizes
* Full control of the colours on every social button individually, or all of
  them following one accent colour
* Your own SVG icons, uploaded and colour-controlled like the built-in ones

= See who clicks =

Optional analytics, off by default, and off means off: no script on the page, no
request made, nothing recorded. Turn it on per card and choose whether to count
views, clicks, or both.

* Which button gets pressed, and how often
* Where each reader came from, grouped into direct, search engines, social
  media, AI answers and other websites
* Campaign parameters, so a link with a `utm_source` in it is credited to the
  campaign rather than to whatever the browser said
* Mobile, tablet or desktop
* Which days and hours your readers are actually there

Readers are counted by a hash of a truncated address and their browser, not by a
cookie. **This plugin sets no cookies and writes nothing to a visitor's device**,
so there is nothing to consent to and nothing to clean up afterwards. Crawlers
and logged-in editors are excluded by default.

== Installation ==

1. Upload the plugin to `wp-content/plugins/social-profile-card-studio`, or
   install it through the Plugins screen.
2. Activate it.
3. Go to **Profile Cards → Generate my card**, or **Add Profile Card** to build
   one by hand.
4. Copy the shortcode from the All Cards list and paste it into any page.

The Analytics screen creates its tables the first time you turn it on, and never
touches your data while it is off.

To remove the plugin without losing your cards, use **Deactivate** on the Plugins
screen. Use **Delete** only when you are finished with it for good, and read
"What happens to my data if I delete the plugin?" in the FAQ below first —
deleting takes every card with it and asks nothing.

== Frequently Asked Questions ==

= Does this set any cookies? =

No. Analytics identifies a reader by a one-way hash of a truncated IP address
and their browser string, computed on the server and discarded. Nothing is
written to the visitor's device, there is no tracking script to block, and
there is no cookie to consent to or to delete later. Turning analytics off
stops the script being loaded at all.

= What happens to my data if I delete the plugin? =

**Everything the plugin made is deleted as soon as you click Delete on the
Plugins screen:** every card and all of its settings, any icons you uploaded,
and the plugin's own settings. There is no second confirmation and no chance to
undo it — WordPress asks its own generic question about deleting the plugin,
and that is the last you are told.

So if you are only deactivating, or trying another plugin, **use Deactivate, not
Delete.** Deactivating hides the cards but keeps all of them, and clicking
Activate again brings the whole studio back exactly as it was. That is the
difference between a reversible decision and an irreversible one, and the
Plugins screen does not make it obvious.

The one exception is analytics. Your **analytics tables are kept** even on
Delete, because they hold the record of who visited which card and deleting a
plugin to try something else should not cost you that. If you would rather they
went, open the Analytics screen and use "Turn analytics off and delete its
tables" first, and they will be removed on uninstall too. The two actions read
the same setting, so you never have to think about which one came first.

Deleting a single card from inside the plugin does ask first, so this is the
only place the question is not asked twice.

= Do I need WooCommerce for the product and coupon blocks? =

No. Those two blocks need WooCommerce; everything else works without it. If
WooCommerce is not active they are not offered, and a card that already had one
keeps working and keeps its settings if WooCommerce is switched off later — the
button stays, with a note saying the shop can no longer honour it.

= Can I use a card on my bio page as well as in a post? =

Yes. Each card is one of the four display types, so one card is one thing in one
place. Create a second card if you want the same person in two places, and clone
to save yourself the typing.

= Is there a badge or branding? =

No, unless you ask for one. There is a small optional credit under the buttons
which you can switch on per card from the editor, and it is off by default.

= Does it work with page builders? =

There is a block for the block editor and a widget for Elementor. Both offer the
cards that are set to Manual, because those are the ones meant to be placed by
hand. The other three display types place themselves.

= Will it slow my site down? =

The plugin's CSS and JavaScript are only loaded on a page that actually has a
card on it. A site that has the plugin active but has not put a card anywhere
yet loads nothing from it. The bio page can go further and load only its own
assets, leaving the rest of the theme's out.

= Can I use my own icons? =

Yes. Upload an SVG and it appears in the icon picker alongside the built-in
ones, follows the button's colour like the others, and can be reused across
every card. Uploaded SVGs are sanitised before they are stored.

= What are the shortcodes? =

`[spcad_card id="123"]` for a card set to Manual.

== Screenshots ==

1. The card editor, with the live preview beside the settings.
2. A finished card, with social links and a custom button.
3. The Generate my card wizard, which builds a palette from five questions.
4. The Analytics screen, showing which buttons get pressed and where the
   readers came from.

== Changelog ==

= 1.28 =
* Automatic updates for the free version. The free plugin now checks our update
  server and offers new versions the way a plugin from the WordPress directory
  does, including WordPress's own background updates. A paying site's updates come
  from its licence instead, so nothing is asked of it and nothing about it changes.
* Added a Documentation link to the All Cards screen, beside the Generate my card
  button; to the card editor, at the end of its tab row, styled as one of the
  tabs but opening the docs in a new tab rather than changing panel; and to the
  Analytics screen, just before the All Cards button. All three open the same
  documentation, in a new tab, and say so to screen readers.

= 1.27.0 =
* Freemius. Licensing, the upgrade checkout and the account page are now handled
  by Freemius. The plugin is one download rather than two: everything is here,
  and what Pro adds is switched on by a licence rather than by installing
  something else.
* A free version and a Pro one. The free version builds and publishes a finished
  card: every layout, all seventy-two colour presets and the style generator, any
  number of button, email, embed and divider blocks, a link in bio page with its
  own address, and a popup across the whole site. Pro adds more of the parts
  that scale and measure: unlimited cards and links, analytics, precise popup
  targeting, the contact card, the six messaging buttons, the Shortcode block,
  the two WooCommerce blocks, your own SVG icons, and choosing your own colours,
  backgrounds, borders and fonts.
* Locked controls are shown, not hidden. Every Pro control is on screen, dimmed,
  badged, and links to the upgrade page. Nothing is ever removed from a card
  because a subscription lapsed: already-configured Pro settings keep their
  values, keep rendering, and are refused only if you try to change them.
* Analytics collects nothing at all in the free version, so there is nothing to
  disclose. If you do have collected data and want it gone, the Delete collected
  data panel stays available whatever your plan.
* The colour presets and the style generator now ask the server for their
  palette rather than writing colour values into the form from the browser. Same
  result on screen, and a colour you typed by hand cannot get past the lock.

= 1.26.3 =
* Added a Share button. A card published as a link in bio page can now hand the
  visitor their own share sheet, already carrying that page's address, its SEO
  title and its SEO description. It is a round button with a share icon in the top
  right corner of the card, filled with your accent colour, and it is one switch
  with nothing else to fill in: on a phone it opens the share sheet, and
  everywhere else it copies the address and says so. Cards that are not published
  as their own page do not get one, because there is nothing of their own to
  share.

= 1.26.2 =
* The Save contact button is now a round button with a person icon and no text,
  and it is filled with the card's own accent colour so it matches the buttons
  below it. Its name is still read out to screen readers and shown on hover, and
  is now set from a field called "Button name".
* Fixed the Save contact button's own text not having a default value, which
  could leave it undefined on a card saved before that field existed.

= 1.26.1 =
* The Save contact button now sits in the top left corner of the card instead of
  above the buttons, and moves the avatar out of its way on the two header
  styles that would otherwise sit underneath it. It has its own solid background
  so it stays readable over a cover photograph and at every button design.

= 1.26.0 =
* Added a Save contact button. Any card can hand the visitor a contact
  file they can save to their phone, from a panel of details or from a
  block placed anywhere on the card.
* Added the required plugin headers, a readme and a licence file.
* Added translation loading, so the plugin's own translations are used.
* Any block can now be told when to appear and when to disappear, so a seasonal
  offer comes and goes while the links around it stay put. Blocks waiting for
  their date, or past it, are marked Scheduled on the card's list.
* The optional plugin credit is now off unless it is switched on.
* Removed four networks whose services have closed: Mixer, Periscope,
  Foursquare and iTunes. Cards still using them keep working and show a letter
  badge instead of the icon.
* Deleting the plugin now clears its cards, uploaded icons, options and
  scheduled job. Your analytics tables are kept unless you have already used
  "Turn analytics off and delete its tables" on the Analytics screen. The FAQ
  now spells out what Delete takes with it, and recommends Deactivate instead
  for anything reversible.
* A new bio card no longer needs its address typed out. Leave the slug empty
  and the card's own name is used instead; change it whenever you like.

= 1.25.0 =
* WooCommerce product and coupon blocks.
* AI answer referrers broken out as their own group in the analytics report.

== Upgrade Notice ==

= 1.27.0 =
This release adds a Pro version. Nothing changes for a free user: every card you
have already built keeps working exactly as it does, and every card you build
from here is a complete card you can publish today.

Pro adds more cards and more links, card analytics, precise popup targeting, the
contact card, the six messaging buttons, the Shortcode block, the two
WooCommerce blocks, your own SVG icons, and choosing your own colours,
backgrounds, borders and fonts.

If you had Pro before and your licence is still with you, activate it from the
link at the top of the Analytics screen. If it is not, nothing is taken away:
your cards keep every Pro setting they already have, those settings keep
rendering on your site, and they come back the moment the licence is back.

= 1.26.3 =
Cards published as a link in bio page can now offer a share button: a round
button with a share icon in the top right corner, filled with your accent colour.
It is off until you turn it on, under Display where the page slug is, and there
is nothing else to fill in — the address, the title and the words it sends all
come from the page itself. On a phone it opens the visitor's own share sheet;
everywhere else it copies the address and says so.

= 1.26.2 =
The Save contact button now shows no text: it is a round button with a person
icon, filled with your accent colour. Its name is still announced to screen
readers and shown on hover, and the field that sets it is now called
"Button name". The button has moved to the top left corner of the card — no
setting is involved, and it applies to every card that already has one.

= 1.26.1 =
The Save contact button now sits in the top left corner of the card instead of
above the buttons. It applies to every card that already has one — no setting is
involved. It is drawn on the card's own background so it stays readable over a
cover photo, and the avatar is moved clear of it on the card styles that would
otherwise sit underneath.

= 1.26.0 =
The optional credit under the buttons is now off by default. Any card you have
already set to show it keeps showing it.

