{"id":280482,"date":"2026-02-21T02:42:47","date_gmt":"2026-02-21T02:42:47","guid":{"rendered":"https:\/\/br.wordpress.org\/plugins\/pap-afiliados-pro\/"},"modified":"2026-04-02T00:33:15","modified_gmt":"2026-04-02T00:33:15","slug":"pap-afiliados-pro","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/pap-afiliados-pro\/","author":23449228,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.1","stable_tag":"2.2.1","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"PAP Afiliados Pro","header_author":"Fernando Pimenta","header_description":"Professional affiliate link management for Brazilian marketplaces (Amazon, Mercado Livre, Shopee, AliExpress, and others).","assets_banners_color":"7392a2","last_updated":"2026-04-02 00:33:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pap-afiliados-pro.com.br","header_author_uri":"https:\/\/fernandopimenta.blog.br","rating":0,"author_block_rating":0,"active_installs":30,"downloads":658,"num_ratings":0,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"fernandopimenta","date":"2026-02-21 02:42:22"},"2.0.1":{"tag":"2.0.1","author":"fernandopimenta","date":"2026-02-24 03:42:00"},"2.0.2":{"tag":"2.0.2","author":"fernandopimenta","date":"2026-02-25 05:31:57"},"2.0.3":{"tag":"2.0.3","author":"fernandopimenta","date":"2026-03-14 07:01:05"},"2.1.0":{"tag":"2.1.0","author":"fernandopimenta","date":"2026-03-22 02:47:33"},"2.1.1":{"tag":"2.1.1","author":"fernandopimenta","date":"2026-03-25 00:08:39"},"2.2.0":{"tag":"2.2.0","author":"fernandopimenta","date":"2026-03-31 00:53:30"},"2.2.1":{"tag":"2.2.1","author":"fernandopimenta","date":"2026-04-02 00:33:15"}},"upgrade_notice":{"2.2.1":"<p>Bugfix release: fixes default presets not appearing after update on some hosting environments, and marketplace detection for existing products with meli.la URLs.<\/p>","2.2.0":"<p>New: 3 themed presets (Shopee, Mercado Livre, Black Friday) added automatically. Empty states guide new users on products and stats pages.<\/p>","2.1.1":"<p>Updated plugin description, added Settings\/Support\/Rate links in plugins list, and fixed minor PHPCS warnings.<\/p>","2.1.0":"<p>New features: shortcode column in presets, filter\/search in shortcode generator, product search by name\/ID, and marketplace stats with doughnut chart.<\/p>","2.0.3":"<p>Fixes marketplace badge display for Mercado Livre and corrects hardcoded Portuguese strings for proper translation support.<\/p>","2.0.2":"<p>Preset UX improvements: ID column, name-based lookup in shortcodes, native table layout.<\/p>","2.0.1":"<p>Bug fixes for preset system, shortcode generator, and click tracking. Block API updated for WordPress 7.0 compatibility.<\/p>","2.0.0":"<p>Complete rewrite! Version 2.0 is not compatible with 1.0.2. Please back up before upgrading.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3466192,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3466192,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3466192,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3466192,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"papafpro\/linker":{"name":"papafpro\/linker","title":"PAP Linker"}},"tagged_versions":["2.0.0","2.0.1","2.0.2","2.0.3","2.1.0","2.1.1","2.2.0","2.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3466192,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3466192,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3466192,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3466192,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3466192,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3466192,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3466192,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3466192,"resolution":"8","location":"assets","locale":""}},"screenshots":{"1":"Main dashboard with real-time statistics","2":"Template Builder - customize your layout with live preview","3":"Product management with filters and search","4":"Product card rendered on the frontend","5":"Statistics page with interactive charts","6":"CSV Import\/Export for bulk management","7":"Gutenberg Block - PAP Linker in the block editor","8":"Help page with documentation and shortcode generator"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[369,209,31799,377,250630],"plugin_category":[35,45],"plugin_contributors":[256299],"plugin_business_model":[],"class_list":["post-280482","plugin","type-plugin","status-publish","hentry","plugin_tags-affiliate","plugin_tags-amazon","plugin_tags-mercado-livre","plugin_tags-monetization","plugin_tags-shopee","plugin_category-advertising","plugin_category-ecommerce","plugin_contributors-fernandopimenta","plugin_committers-fernandopimenta"],"banners":{"banner":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/banner-772x250.png?rev=3466192","banner_2x":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/banner-1544x500.png?rev=3466192","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/icon-128x128.jpg?rev=3466192","icon_2x":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/icon-256x256.jpg?rev=3466192","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/screenshot-1.png?rev=3466192","caption":"Main dashboard with real-time statistics"},{"src":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/screenshot-2.png?rev=3466192","caption":"Template Builder - customize your layout with live preview"},{"src":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/screenshot-3.png?rev=3466192","caption":"Product management with filters and search"},{"src":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/screenshot-4.png?rev=3466192","caption":"Product card rendered on the frontend"},{"src":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/screenshot-5.png?rev=3466192","caption":"Statistics page with interactive charts"},{"src":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/screenshot-6.png?rev=3466192","caption":"CSV Import\/Export for bulk management"},{"src":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/screenshot-7.png?rev=3466192","caption":"Gutenberg Block - PAP Linker in the block editor"},{"src":"https:\/\/ps.w.org\/pap-afiliados-pro\/assets\/screenshot-8.png?rev=3466192","caption":"Help page with documentation and shortcode generator"}],"raw_content":"<!--section=description-->\n<p>Turn your content into revenue with professional product cards. PAP Afiliados Pro lets you showcase affiliate products with customizable visual templates, automatic marketplace detection, and detailed click statistics \u2014 no coding required.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>Product Cards with Visual Templates: Customize layouts with the Template Builder, live preview and saved presets<\/li>\n<li>Automatic Marketplace Detection: Amazon, Mercado Livre, Shopee, AliExpress and more \u2014 detected from the URL<\/li>\n<li>6 Display Shortcodes: Single card, Grid, List, By Category, Recent, and Inline Linker<\/li>\n<li>Click Tracking &amp; Statistics: Monitor performance by product, marketplace and time period<\/li>\n<li>CSV Import\/Export: Manage products in bulk (up to 1,000 rows \/ 5 MB) with automatic encoding detection<\/li>\n<li>Privacy First: LGPD compliant \u2014 zero personal data storage<\/li>\n<li>Gutenberg Block &amp; Format Type: Add product cards and inline links directly in the block editor<\/li>\n<li>Elementor Widget: Native integration with 4 display modes<\/li>\n<li>SEO Protected: 7-layer protection against indexing of internal pages<\/li>\n<\/ul>\n\n<h4>Ideal For<\/h4>\n\n<ul>\n<li>Review and comparison blogs<\/li>\n<li>Coupon and deal websites<\/li>\n<li>Monetized content portals<\/li>\n<li>Professional affiliates<\/li>\n<li>Content creators<\/li>\n<\/ul>\n\n<h4>Security and Privacy<\/h4>\n\n<ul>\n<li>Privacy compliant (LGPD \/ data protection)<\/li>\n<li>Zero personal data tracking (no IP, no User Agent)<\/li>\n<li>Complete input sanitization<\/li>\n<li>Protection against SQL Injection, XSS and CSRF<\/li>\n<\/ul>\n\n<h4>Full Customization<\/h4>\n\n<ul>\n<li>19 customizable CSS variables<\/li>\n<li>Custom badges per marketplace<\/li>\n<li>Adjustable colors, borders and spacing<\/li>\n<li>Saved presets for reuse<\/li>\n<\/ul>\n\n<h4>Smart Statistics<\/h4>\n\n<ul>\n<li>Dashboard with real-time metrics<\/li>\n<li>Interactive charts (local Chart.js)<\/li>\n<li>Top clicked products<\/li>\n<li>Period filters (7\/30\/90 days)<\/li>\n<li>Data clearing with security rate limit<\/li>\n<\/ul>\n\n<h4>Performance<\/h4>\n\n<ul>\n<li>Object cache across 8 critical classes<\/li>\n<li>Conditional loading of scripts and styles<\/li>\n<li>Zero external dependencies (no CDN)<\/li>\n<\/ul>\n\n<h4>Language Support<\/h4>\n\n<ul>\n<li>English interface (default)<\/li>\n<li>Brazilian Portuguese translation included<\/li>\n<li>Translation-ready (full .pot file included)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>pap-afiliados-pro<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to 'PAP Afiliados' in the admin menu<\/li>\n<li>Configure your preferences under 'Settings'<\/li>\n<li>Create your first product under 'Add Product'<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.2 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>MySQL 5.7 or higher<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20marketplaces%20are%20supported%3F\"><h3>Which marketplaces are supported?<\/h3><\/dt>\n<dd><p>Currently detected: Amazon, Mercado Livre, Shopee and AliExpress. The marketplace is automatically identified from the affiliate link URL. You can also use any other affiliate link \u2014 it will work with the \"Other\" marketplace label.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20lgpd%20compliant%3F\"><h3>Is the plugin LGPD compliant?<\/h3><\/dt>\n<dd><p>Yes! PAP Afiliados Pro does not store ANY personal data (IP, User Agent, user ID). We only record the product ID, the page URL (path only) and the click timestamp.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20gutenberg%3F\"><h3>Does it work with Gutenberg?<\/h3><\/dt>\n<dd><p>Yes! We include a custom block \"PAP Linker\" and a Format Type \"PAP Link\" to add affiliate links directly in the block editor, with integrated product search.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%3F\"><h3>Does it work with Elementor?<\/h3><\/dt>\n<dd><p>Yes! If Elementor is active, a PAP widget is automatically made available with 4 display modes (single, grid, recent, category).<\/p><\/dd>\n<dt id=\"can%20i%20import%20products%20in%20bulk%3F\"><h3>Can I import products in bulk?<\/h3><\/dt>\n<dd><p>Yes! Use the CSV Import\/Export feature to manage hundreds of products at once. Each file supports up to 1,000 rows and 5 MB. The plugin automatically detects encoding (UTF-8, Windows-1252, ISO-8859-1) and delimiter (comma or semicolon).<\/p><\/dd>\n<dt id=\"are%20the%20statistics%20accurate%3F\"><h3>Are the statistics accurate?<\/h3><\/dt>\n<dd><p>Yes! We use JavaScript tracking (sendBeacon API) with fetch fallback, plus 3 anti-spam layers (30-min cookie, 5-sec transient, session counter) to ensure clean and accurate data.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20card%20appearance%3F\"><h3>Can I customize the card appearance?<\/h3><\/dt>\n<dd><p>Absolutely! The Template Builder lets you adjust 19 CSS variables, colors, borders, spacing and button styles. You can save presets to reuse across different pages.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>By default, all data is removed (posts, tables, options, transients). If you prefer to keep data for future reinstallation, enable the \"Keep data on uninstall\" option in Settings before uninstalling.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>Fixed: Default presets not appearing on hosted environments after plugin update (upgrade routine now executes correctly on standard WordPress update path without requiring manual plugin reactivation)<\/li>\n<li>Fixed: Products with meli.la URLs remaining labeled as \"other\" marketplace after detection fix \u2014 added versioned marketplace re-scan mechanism that automatically updates all existing products when detection patterns change<\/li>\n<li>Improved: Object cache compatibility \u2014 added nocache_headers() to dynamic AJAX responses and consistent cache invalidation across all preset write operations for environments with persistent object cache (Redis, Memcached, LiteSpeed)<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Added: 3 pre-configured presets installed on activation \u2014 [PAP] Shopee, [PAP] Mercado Livre, [PAP] Black Friday<\/li>\n<li>Added: Empty state with CTA buttons on the product list when no products exist<\/li>\n<li>Added: Empty state with shortcode reference link on the statistics page when no clicks are recorded<\/li>\n<li>Added: Upgrade routine installs default presets for existing users (one-time, skip if name already exists)<\/li>\n<li>Fixed: Marketplace detection now recognizes meli.la shortened URLs for Mercado Livre (from v2.1.2)<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Improved: Plugin description rewritten for clarity \u2014 focus on product cards and visual templates<\/li>\n<li>Added: \"Settings\" action link in plugins list<\/li>\n<li>Added: \"Support\" and \"Rate \u2605\" meta links in plugins list<\/li>\n<li>Fixed: 4 PHPCS warnings for unused $hook parameter in admin_enqueue_scripts callbacks<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added: Shortcode column in presets list with one-click copy<\/li>\n<li>Added: Filter\/search in shortcode generator dropdowns (5+ options)<\/li>\n<li>Added: Product search by name or ID in shortcode generator<\/li>\n<li>Added: Marketplace distribution chart in Statistics page<\/li>\n<li>Added: Marketplace column in detailed clicks table<\/li>\n<li>Improved: Product search endpoint performance (LIKE-based)<\/li>\n<li>Improved: Search request handling with abort on new input<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Fixed: Marketplace badge for \"Mercado Livre\" displayed without space (\"MERCADOLIVRE\")<\/li>\n<li>Fixed: Several UI strings were hardcoded in Portuguese instead of English, causing untranslated labels on translate.wordpress.org<\/li>\n<li>i18n: Regenerated .pot, updated .po\/.mo translation files<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Added: Preset ID column in Template Builder preset list<\/li>\n<li>Added: Shortcodes now accept preset name in addition to numeric ID (e.g., preset_id=\"My Theme\")<\/li>\n<li>Improved: Preset list migrated to native table layout for better alignment<\/li>\n<li>Improved: Zebra striping in preset list for better readability<\/li>\n<li>Fixed: Settings page save not working correctly<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fixed: Preset system now correctly applies individual visual configurations per shortcode<\/li>\n<li>Fixed: Shortcode generator produces correct preset_id parameter<\/li>\n<li>Fixed: Click tracking for PAP Link and PAP Linker block works reliably for all users including logged-in administrators<\/li>\n<li>Improved: Block API updated to version 3 for WordPress 7.0 compatibility<\/li>\n<li>Improved: Template Builder displays visual indicator when editing a preset<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete plugin rewrite (previous version: 1.0.2)<\/li>\n<li>Added: Support for Brazilian marketplaces with automatic detection<\/li>\n<li>Added: Visual Template Builder with live preview and presets<\/li>\n<li>Added: 6 shortcodes (single product, multiple products, category, recent, preset, inline link)<\/li>\n<li>Added: CSV Import\/Export with encoding and delimiter detection<\/li>\n<li>Added: Gutenberg Block (PAP Linker) and Format Type (PAP Link)<\/li>\n<li>Added: Elementor Widget with conditional loading<\/li>\n<li>Added: Statistics with Chart.js (local copy)<\/li>\n<li>Added: Dashboard with real-time metrics<\/li>\n<li>Added: REST API for product autocomplete<\/li>\n<li>Added: 7-layer SEO protection<\/li>\n<li>Added: Full LGPD compliance (zero personal data)<\/li>\n<li>Added: Object cache across 8 critical classes<\/li>\n<li>Added: Anti-spam with 3 layers (cookie, transient, session)<\/li>\n<li>Improved: Architecture with 20 classes (dependency-first)<\/li>\n<li>Improved: Security with 7 mandatory rules across all code<\/li>\n<li>Improved: Unique prefix papafpro (8 characters) on all elements<\/li>\n<li>Improved: Code 100% compliant with WordPress Coding Standards<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Previous version (discontinued)<\/li>\n<li>Basic affiliate features<\/li>\n<\/ul>","raw_excerpt":"Professional affiliate product cards for Amazon, Mercado Livre, Shopee, AliExpress and more. Visual templates, click tracking and stats.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/280482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=280482"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fernandopimenta"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=280482"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=280482"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=280482"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=280482"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=280482"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=280482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}