=== ProductFrame – Curated products from affiliate feeds ===
Contributors: koen12344
Donate link: https://koenreus.com
Tags: tradetracker, adtraction, affiliate, feed, products
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 8.0
Stable tag: 0.5.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A beautiful way to display products from affiliate network product feeds on your website. Currently supports Daisycon, TradeTracker and AdTraction.

== Description ==

With the **ProductFrame** plugin for WordPress you can create beautiful in-content sections showing relevant products from product feeds of various affiliate networks.

Networks currently supported:

* AdTraction
* TradeTracker
* Daisycon

**Features:**

* **Automatic product feed import**: Product feeds are updated daily for up-to-date pricing and product availability
* **Cloaked links**: Affiliate links are redirected through your own website URL
* **Fast & efficient**: Product data is stored locally, product images are sideloaded and optimized
* **Flexible shortcode**: Show random products, specific products, search by (partial) product name

See the plugin in action [here](https://projectplatenspelers.nl/).

== Frequently Asked Questions ==

== Installation ==

1. Download [the latest version](https://github.com/koen12344/productframe/releases/latest)
1. Upload the plugin through 'Plugins' > 'Add New' > 'Upload plugin' in your WordPress Dashboard, or upload manually through FTP
1. Add one or more affiliate product feeds through 'ProductFrame' > 'Feeds'
1. Place the [productframe] shortcode wherever you want to display your affiliate products using attributes below

### [productframe] shortcode

Displays a selection of products based on the supplied attributes

#### Supported shortcode attributes

* `selection`: An ID of a selection of products generated through 'ProductFrame' > 'Selections'
* `limit`: The amount of products that should be displayed (default: 6)
* `product_ids`: Display specific product IDs. Separated by a comma, e.g. 123,323,312
* `search`: Show only products containing this word or sentence in their title
* `random`: Randomize the results

#### Examples

* `[productframe selection=107]`: Show products from the selection with ID 107
* `[productframe selection=107 limit=1 random=1]`: Show a single random product from the selection with ID 107
* `[productframe product_ids="2304,2306,2307,665"]`: Show products with specific IDs

### [prfr-link] shortcode

Generates an anchor link to a specific product

#### Supported shortcode attributes

* `product_id`: The ID of the product that should be linked

#### Examples

* `[prfr-link product_id=67]`: Generate a link to product ID 67, anchor text will be the product title
* `[prfr-link product_id=67]Custom anchor[/prfr-link]`: Generate a link to product ID 67, anchor text will be `Custom anchor`

### Styling

The plugin comes with minimal styling that can be easily adjusted with some custom CSS.

* `prfr-products-multiple` (div): Wrapper class around all products (if the `limit` parameter is higher than 1)
* `prfr-product` (div): Product wrapper class
* `prfr-product-image` (div): Product image wrapper (contains a > img)
* `prfr-product-description` (div)
* `prfr-product-price` (div)
* `prfr-button-link` (a): The call-to-action button

Colors can be adjusted by overriding the default CSS variables:

* `--prfr-button-text-color`: Button text color (default: #fff)
* `--prfr-button-background-color`: Button background color (default: #611431)
* `--prfr-button-hover-color`: Button hover color (default: #363636)
* `--prfr-product-border-color`: Color for the border around the individual products

== Frequently Asked Questions ==

== Screenshots ==

1. Plugin in action on the frontend
2. Display relevant affiliate products within content
3. Make selections of products

== Changelog ==

= 0.5.1 =
* Fix: MySQL error when search query returns no results

= 0.5.0 =
* Change: Renamed plugin to "ProductFrame"
* Improved: Link shortcode returns product name when no anchor text is supplied

= 0.4.5 =
* Added: Allow filtering by whether products are on sale
* Improved: [#28] Display discounted price in selection creator
* Improved: Show 404 error page when redirecting to product that doesn't exist
* Fix: Incorrect cache key causing wrong selection to be displayed
* Fix: [#30] Selection creator fields getting duplicated when changing order

= 0.4.4 =
* Added: Dutch translations
* Fix: Translations not loaded on product selection metabox

= 0.4.3 =
* Improved: Various improvements to pass WP Plugin Check
* Fix: [#29] Products with ASCII characters in slug not properly redirected
* Fix: Images not loading for some feeds in the selection creator

= 0.4.2 =
* Fix: [#25] GitHub updater not working

= 0.4.1 =
* Fix: Duplicated products when images URLs in feed are changed

= 0.4.0 =
* Added: [#16] Function to clear product thumbnail cache
* Added: [#7] Allow filtering product selections by feed
* Improved: [#5] Retain selection view settings in user memory
* Improved: [#4] Make "Selections" primary menu item
* Improved: [#21] Allow searching products by EAN/SKU in selection creator
* Improved: [#8] Do not show products that are no longer available in dynamic shortcodes
* Fix: [#13] Incorrect thumbnail cropping on non-square product images
* Fix: [#19] Descriptions showing html characters in selection creator
* Fix: [#18] Selection showing all products when filtering by Selected = Yes, despite none being selected
* Fix: [#12] Fatal error when a selection with no products is referenced
* Fix: [#10] Not all products being imported from TradeTracker feeds

= 0.2.0 =
* Added: Uninstall function
* Added: Daisycon support
* Added: Shortcode for direct links to products
* Improved: SQL logic

= 0.1.1 =
* Added: Product ID and Feed in selection section
* Added: AdTraction sale price
* Fix: product_ids parameter
* Fix: selection logic
* Fix: AdTraction prices above 999

= 0.1.0 =
* Initial public alpha release

== Upgrade Notice ==
