=== Nefudaya ===
Contributors: piftoworks
Tags: sale, coupon, notification bar, countdown, affiliate
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Announce a limited-time sale in one place and show it four ways: a notification bar, a CTA box, a sale list page and stamps on featured images.

== Description ==

Running a sale means saying the same thing in several places at once: a banner at the top of the page, a call to action in the article, a page listing everything on offer, and a marker on the thumbnails so readers spot it from the archive.

Nefudaya lets you enter that **once**, as a campaign, and switch on whichever of the four outputs you want.

= The four outputs =

* **Notification bar** — a sticky bar at the top of matching posts. Clicking it scrolls to the CTA on the same page, or opens the sale.
* **CTA box** — sale name, catchphrase, biggest discount, a two-banner slider, coupon cards you tap to copy, and the button. Place it with a shortcode or have it appended to the post body automatically.
* **Sale list** — a page of the products on offer, with section headings, prices and discounts, coupons, stock notes, per-row periods and links to your own review articles.
* **Stamp** — a ribbon, badge or banner laid over the featured image, in post lists and on the post itself.

= One campaign, one period =

A campaign has one start and one end. Everything it feeds appears and disappears together. Times follow your site's timezone setting, and the visibility is re-checked in the browser as well, so the schedule still works on pages served from a cache.

= Choosing where it appears =

By the shortcode, by category, by tag, by a custom taxonomy, by a keyword in the title or body, by specific post IDs, or everywhere.

= Sixteen colour schemes =

Each scheme carries a dark face for the bar and CTA and a light face for the sale list, so the two read as one design without being the same colour. A section heading in the list can switch scheme for the products underneath it.

= The name =

Nefudaya (値札屋) is Japanese for "price-tag shop".

= Notes and disclosures =

* **No external requests.** The plugin does not send anything to, or load code from, outside servers.
* **Product images and stamp images are hotlinked.** Images shown in the sale list, and the image you can use as a stamp, are loaded straight from the URLs you enter; they are not copied into your Media Library. Make sure you are allowed to use and hotlink them. You can also pick an image from your own Media Library instead, in which case it is served from your site like any other upload.
* **Affiliate links.** Links you enter are output with `rel="nofollow sponsored noopener noreferrer"` and open in a new tab.
* **Scheduled content is in the page source.** A sale that has not started yet (or has already ended) is still present in the HTML, hidden with `display:none`, so that JavaScript can reveal it at the right moment even on a cached page. Do not put anything in a scheduled campaign that has to stay secret until it starts.
* **Review article lookup** searches your own site's posts by product name. Nothing is sent anywhere.
* SWELL is a trademark of LOOS, Inc. and is not affiliated with this plugin. Its thumbnail markup is simply among the defaults the stamp looks for, and the list is editable.

== Installation ==

1. Upload the `nefudaya` folder to `/wp-content/plugins/`, or install it from the Plugins screen.
2. Activate it.
3. Open **Nefudaya** in the admin sidebar and add a campaign.
4. Fill in the basics, choose which posts it applies to, and switch on the outputs you want.
5. For the sale list, put `[nefudaya_showcase]` in a post or page. For a CTA placed by hand, put `[nefudaya_cta]` where you want it.

== Frequently Asked Questions ==

= Does this plugin connect to any external service? =

No. It makes no outbound requests and loads no code or assets from other servers. The only external content on your pages is whatever you pointed at yourself — banner images, product images and affiliate links.

= Where do product images come from? =

From the URLs you enter, hotlinked from wherever they live. You can also choose an image from your Media Library, which is then served from your own site.

= Can I run more than one campaign at a time? =

Yes. Every matching campaign contributes its CTA and its list. The bar and the stamp are limited to one per page and one per post, and the campaign nearer the top of the list wins — drag the rows to change that.

= The stamp is not showing on my theme. =

The stamp is placed inside the first element that matches one of the thumbnail selectors under **Nefudaya → Settings**. Add a selector that matches your theme's thumbnail container. The `nefudaya_thumb_selectors` filter does the same thing from code.

= Does the schedule work with a page cache? =

Yes. The period is checked again in the browser against the real time, so a cached page still shows and hides things at the right moment.

= Can I use it with Kukuriya? =

Yes, but it is not required. The two work together in two separate ways:

* With **Kukuriya Pro** active, a campaign here can drive the badges, countdowns and coupons on Kukuriya's product cards.
* With **Kukuriya** (the free plugin, 0.15.0 or later) active, a row in the sale list can take its name, image and link from a Kukuriya product. Only the fields you leave empty are filled, and the link is the same one as the product card's buy button. Prices are never copied from Kukuriya: Kukuriya only shows a store's price for 24 hours after fetching it, and a sale list can sit in a page cache for longer, so enter the sale price yourself.

== Screenshots ==

1. The campaign list, with status, period and which outputs are on.
2. Editing a campaign — basics, period, and a preview of both faces of the colour scheme.
3. The notification bar, and a stamp on the featured image.
4. The CTA box at the end of a post.
5. A sale list page.

== Changelog ==

= 1.2.0 =
* Changed: every name the plugin stores or registers now starts with `nefudaya_` (options, post meta, transients, admin actions, script data). The shortcodes are now `[nefudaya_cta]` and `[nefudaya_showcase]`.
* Removed: the importer for the three earlier in-house plugins, its admin notice, and the `[sale_cta]` / `[sale_showcase]` aliases.

= 1.1.0 =
* Fixed: a sale list row linked to a Kukuriya product now really takes its name, image and link from that product. It read data that Kukuriya does not store, so nothing was filled in. The link is the one Kukuriya's product card uses for its buy button; a plain product URL is never used. Requires Kukuriya 0.15.0 or later.
* Changed: the sale price of a row is no longer copied from Kukuriya. Store prices are only valid for a short time and a sale list can be cached, so enter the sale price yourself.
* Changed: the old hook name for Kukuriya Pro (`bcore/sale/campaigns`) is no longer used. Current versions of Kukuriya Pro read `kukuriya_sale_campaigns`.
* Changed: the plugin's own filters now start with `nefudaya_` instead of `nfy_`: `nefudaya_place_selectors`, `nefudaya_thumb_selectors`, `nefudaya_post_types`, `nefudaya_stamp_places` and `nefudaya_default_stamp_scale`.
* Added: Kukuriya product cards can show seconds in the countdown, a label for it, and start the countdown only in the last days of a campaign.
* Added: the sale list no longer has to belong to a campaign; it can be placed on its own.
* Changed: every on/off setting is now a two-part "Off | On" switch, and a shortcode can be copied with one click.
* Fixed: the ribbon's two lines are no longer dropped because of the ribbon's size, and its text shrinks correctly.

= 1.0.0 =
* First release. Merges Sale Campaign, Sale Showcase and Sale Stamp into a single plugin with one campaign record behind all four outputs.
* Imports settings from all three on activation; `[sale_cta]` and `[sale_showcase]` continue to work.
* Sixteen colour schemes, each with a dark face for the bar and CTA and a light face for the sale list.
* Product images can now be chosen from the Media Library as well as entered as a URL.
* Campaigns can be targeted at specific post IDs.

== Upgrade Notice ==

= 1.2.0 =
Shortcodes are renamed to `[nefudaya_cta]` and `[nefudaya_showcase]`, and stored settings use new names.

= 1.1.0 =
Sale list rows linked to a Kukuriya product are now filled with its name, image and link (Kukuriya 0.15.0 or later). The sale price is no longer copied; enter it yourself.

= 1.0.0 =
First release. If you are running Sale Campaign, Sale Showcase or Sale Stamp, activate Nefudaya first — your settings are imported automatically — then deactivate the old plugins.
