=== Content Mask === Contributors: alexdemchak Donate Link: https://www.paypal.me/xhynk/ Tags: Embed, Domain Mask, Mask, Redirect, Link Requires at Least: 4.1 Tested Up To: 5.3 Stable tag: 1.7.2 Requires PHP: 5.4 Author URI: https://xhynk.com/ Plugin URL: https://xhynk.com/content-mask/ License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Embed any external content on a Page, Post, or Custom Post Type without the need to use complicated domain forwarding or domain masks. == Description == [Read More & View Demos Here](https://xhynk.com/content-mask/) = Embed Any Content Into Your WordPress Website = Content Mask allows you to embed any external content onto your own WordPress Pages, Posts, and Custom Post Types. The end result is fairly similar to setting up a [Domain Mask](http://www.networksolutions.com/support/what-is-web-forwarding-and-masking/), but the content is embedded into the front end of your website and is fully contained inside your WordPress permalink ecosystem. > *Example*: If you built a landing page on `landing-page-builder.com/your-landing-page/`, you can simply create a new Page on your website at `your-site.com/landing-page/` and paste in the URL of your landing page. The Content Mask plugin will then download and cache of copy of your landing page directly on your website, so any visitors that come to `your-site.com/landing-page/` will see the landing page you built. This allows you to keep all of your links integrated into your WordPress Website. = Simple 2-Step UI = With a simple 2-Step UI, you can embed any external content into your website without any complicated URL Forwarding, DNS Records, or `.htaccess` rules to mess with. 1. Just enable the Content Mask on any Page, Post, or Custom Post type by clicking on the check mark. 2. Then put in the URL that contains the content you want to embed. It's that simple! = Powerful Embedding and Redirect Options = - Using the Download method (default) will fetch the content from the Content Mask URL, cache it on your website, and replace the current page request with that content. By default, this cache lasts 4 hours - but it can be changed anywhere from "Never Cache" all the way up to "Cache for 4 Weeks". Caching prevents the need for additional requests that slow down your site. - Using the Iframe method will replace the current page request with a full width/height, frameless iframe containing the host URL. This method is ideal if the URL you want to embed won't serve scripts, styles, or images to other URLs or IP Addresses. If you use the Download Method, and links or images look broken, you can try the Iframe method instead. - Using the Redirect (301) method will simply redirect the visitor to the host URL. = Simple Integrated Vistor Tracking = In the Content Mask admin panel, you can enable tracking for Content Masked pages. This will allow you to see how many visitors are viewing these links. This is ideal for when you need to track acquisition, such as on a Landing Page. - [Views] shows how many times that Content Mask page has been viewed by anybody (even logged in users) - [Non-User] shows how many times it's been viewed by visitors that are _not_ logged in to the website. - [Unique] shows how many times it's been viewed by unique IP addresses. Note: IP addresses are one-way hashed and are not identifiable in any way. = Creating a Content Masked Page = https://www.youtube.com/watch?v=_H7IWFwmVfo?rel=0 = Using the Content Mask Admin Panel = https://www.youtube.com/watch?v=5hEBMKSLHxI?rel=0 = Notes: = - Do *NOT* use Content Mask on any content you aren't explicitly authorized to share or use. Please confirm you're allowed to utilize and embed the content before embedding any particular URL. - Content embedded using the Download method is cached using the [WordPress Transients API](https://codex.wordpress.org/Transients_API) for 4 hours by default. If the content on the external URL is updated and you would like a fresh copy, you may just click the "Update" button on the Page, Post, or Custom Post Type to refresh the transient, or click the "Refresh" link in the Content Mask Admin panel. You may also change the cache expiration timer per page anywhere from "Never" to "4 weeks". - You may use the [Transients Manager](https://wordpress.org/plugins/transients-manager/) plugin to manage transients stored with the Download method. All Content Mask related transients contain the prefix "content_mask-" plus a stripped version of the Content Mask URL, such as "content_mask-httpxhynkcom". [Read More About Content Mask](https://xhynk.com/content-mask/) == Installation == 1. Upload the `content-mask` folder to your `/wp-content/plugins/` directory. 2. Activate the "Content Mask" plugin. **How to Use:** 1. Edit (or Add) a Page, Post, or Custom Post Type. 2. Underneath the page editor, find the "Content Mask Settings" metabox. 3. Click the Checkmark on the left to enable Content Mask. 4. Paste a URL in the Content Mask URL field. 5. Choose a method: Download, Iframe, or Redirect (301). 6. Update (or Publish) the Page, Post or Custom Post Type. 7. That's all! When a user visits that Page, Post or Custom Post Type, they will instead see the content from the URL you have put in the Content Mask URL field. == Frequently Asked Questions == = Can I send custom headers with the Download Method = *No*. If this is a feature you would like implemented, please contact me. = Can You Show the Header/Footer on Content Masked Pages? = *No*. This is because of how page requests are processed. Using Content Mask will override the _entire_ page content on the front end. = Can I Embed Multiple URLs on One Page? = *No*. There's not currently a way to embed multiple URLs onto a single page. You can embed one URL on one page. = Will Content Mask Overwrite My Page Content? = *No*. Content Mask does *not* permanently alter anything on your website. The embedded content is only shown on the front-end. When you turn off Content Mask, any page content you had in the editor will still be there. = Something Isn't Loading With the Download Method = Some websites "whitelist" IP addresses or domains for scripts, images, and files to be accessed from. If that's the case, try using the iframe method instead. = Something Isn't Loading with the Iframe Method = Some websites don't allow themselves to be iframed at all. Please reach out to the webmaster for the content you wish to iframe. = Links Aren't Working with the Iframe Method = If your website is secured (with https://), make sure any links on the iframed page are secure as well, as most modern browsers don't allow insecure content (http://) to be loaded into a secure page or iframe. == Screenshots == 1. Enable the Content Mask with the Checkmark - Put in the URL of the content you would like to embed. Done! Optionally, choose a different method (Download, Iframe, or Redirect). If using the download method, you may also change the cache duration from never up to 4 weeks (you may refresh the cache at any point manually). 2. The Content Mask Admin Panel shows a list of all Content Mask pages/posts and their current settings. Quickly enable or disable the Content Mask with a single click on the Method icon. The cache may also be refreshed from this page. You may also enabled/disabled Vistor Tracking that shows how many times each Content Masked page has been viewed. Only pages/posts that the current user can edit are displayed. 3. The regular WordPress page content, without Content Mask on. 4. The same WordPress page with Content Mask enabled and set to https://example.com/. You can see the URL has remained the same but the content has been entirely replaced (on the front end only) by the content from https://example.com/ == Changelog == = 1.7.1 = * Introduced the ability to use custom Header Scripts & Styles instead of just the universal ones * Introduced the ability to use custom Footer Scripts instead of just the universal ones = 1.7.0.11 = * Added transparency fields to masked forms = 1.7.0.10 = * Fixed a bug with the Relative URL find/replace in the Download method for URLs with paths = 1.7.0.9 = * Fixed a bug with the Refresh Transients feature not working in some cases * Added an option to remove the default page title on iframe pages * Fixed some missing SVG Icons in the admin * Increased transparency due to some users embedding unlicensed content * Fixed an issue with relative URLs in Form Actions = 1.7.0.8 = * Fixed a bug with transient versions on the front end * = 1.7.0.6 = * Fixed a bug with SVG functions = 1.7.0.5 = * Fixed a bug causing `tel` and `mailto` to sometimes get caught in the relative URL replacement functions. = 1.7.0.4 = * Fixed issues with WordPress Versions < 4.9.0 in the Admin Panel * Minor Additions to Admin Panel = 1.7.0.3 = * Fixed over/underwritten admin class filter. = 1.7.0.2 = * Fixed class-miss preventing admin CSS from applying on the admin panel in some cases. = 1.7.0.1 = * Updated HTTP Header Version Checker * Added Viewing options to Admin Table Navigation = 1.7 = * Completely Overhauled the Content Mask Admin Panel * Admin Panel now has a brand new, more user friendly design * Admin Panel is now mobile friendly = 1.6.0.3 = * Moving plugin from SVN to GitHub for primary development = 1.6.0.2 = * Added Action Hooks `content_mask_iframe_header` and `content_mask_iframe_footer` to allow more dynamic control of the iframe method = 1.6.0.1 = * Under-The-Hood improvements for Admin Panel Options = 1.6 = * Removed test code from the Iframe Method accidentally introduced in 1.5.2.1 * Reorganized the Admin Panel * Added ability to add custom JavaScript and CSS to Iframe and Download methods. * Updated algorithm to replace relative URLs with the download method * Included `wp_code_editor` in admin for scripts and styles fields. = 1.5.2.1 = * Cleaned Up a few functions in the admin * Added some backwards compatibility for PHP 5.4 = 1.5.1 = * Modified Admin Styles to use my preferred blue instead of green for highlighted/actionable items * Added a new Advanced Option to send a User Agent HTTP Header when using the Download Method to assist with some stubborn authorization issues * Added Feature Request link in the Admin Panel = 1.5 = * Started SCSS Conversion for admin.css file, broken into partials (still needs optimization) * Modified Content Mask Admin Panel to load only 20 Content Masks, and subsequently load 20 more when scrolled to the bottom. * Included Admin Help links above Content Mask Admin Panel * Introduced an Admin Notice when a page is being overwritten with a Content Mask * Introduced a "hacky" Admin Notice when a Gutenberg page is being overwritten with a Content Mask since Admin Notices are just hidden. * Modified plugin structure with an includes file. * Went back and better commented functions in core files to more closely follow best practices in documentation. = 1.4.4.1 = * Included the Site Title in the title tag when using the iframe method. = 1.4.4 = * Added an optional page tracking feature that tracks the number of visitors to each Content Masked page. * Fixed a bug where the