Version Description
Download this release
Release Info
Developer | embedplus |
Plugin | YouTube |
Version | 14.1.1 |
Comparing to | |
See all releases |
Code changes from version 14.1 to 14.1.1
- readme.txt +9 -1
- styles/ytprefs-onboarding.css +16 -0
- styles/ytprefs-onboarding.min.css +1 -1
- styles/ytprefs.css +5 -0
- styles/ytprefs.min.css +1 -1
- uninstall.php +28 -0
- youtube.php +83 -35
readme.txt
CHANGED
@@ -4,13 +4,15 @@ Plugin Name: Embed Plus Plugin for YouTube, with YouTube Gallery, Channel, Playl
|
|
4 |
Tags: youtube gallery, youtube wordpress plugin, channel gallery, playlist gallery, defer css javascript, youtube channel, youtube live, lazy load, facade
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 6.0
|
7 |
-
Stable tag: 14.1
|
8 |
License: GPLv3 or later
|
9 |
|
10 |
YouTube Embed WordPress Plugin. Embed a responsive video, YouTube channel gallery, playlist gallery, YouTube livestream. Defer JavaScript
|
11 |
|
12 |
== Description ==
|
13 |
|
|
|
|
|
14 |
**YouTube WordPress Plugin** to embed and customize a YouTube gallery (channel or playlist), YouTube livestream (and premiere), YouTube short, or standard YouTube video. This YouTube WordPress plugin can be customized in a wide variety of ways. The plugin also focuses on performance with the ability to lazy load with a facade and defer JavaScript while serving minified CSS and JavaScript. Here are a few recently added features to all versions (free and Pro) of this WordPress plugin:
|
15 |
|
16 |
* YouTube gallery embeds and standard videos now support Facade Mode which improves plugin performance by loading a lighter version of the player, until it is clicked. The plugin then loads the real YouTube embed after clicking (note: for live streams, the real player is always loaded). We have tested this feature in multiple cases with a mix of other WordPress plugins, and we found it to successfully improve your Lighthouse performance score by addressing the following recommendation: "Some third-party resources can be lazy loaded with a facade - 1 facade alternative available." You can demo this facade feature on our [YouTube Plugin WordPress](https://youtube-wordpress-plugin.embedplus.com/) test site.
|
@@ -187,6 +189,12 @@ Assuming you already have the EmbedPlus plugin active, you can embed a YouTube s
|
|
187 |
|
188 |
== Changelog ==
|
189 |
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
= Embed Plus for YouTube WordPress Plugin 14.1 =
|
191 |
* Adds the live stream fallback feature to channel-based live stream embeds
|
192 |
|
4 |
Tags: youtube gallery, youtube wordpress plugin, channel gallery, playlist gallery, defer css javascript, youtube channel, youtube live, lazy load, facade
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 6.0
|
7 |
+
Stable tag: 14.1.1
|
8 |
License: GPLv3 or later
|
9 |
|
10 |
YouTube Embed WordPress Plugin. Embed a responsive video, YouTube channel gallery, playlist gallery, YouTube livestream. Defer JavaScript
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
+
https://www.youtube.com/watch?v=QDdvXBqfrzM
|
15 |
+
|
16 |
**YouTube WordPress Plugin** to embed and customize a YouTube gallery (channel or playlist), YouTube livestream (and premiere), YouTube short, or standard YouTube video. This YouTube WordPress plugin can be customized in a wide variety of ways. The plugin also focuses on performance with the ability to lazy load with a facade and defer JavaScript while serving minified CSS and JavaScript. Here are a few recently added features to all versions (free and Pro) of this WordPress plugin:
|
17 |
|
18 |
* YouTube gallery embeds and standard videos now support Facade Mode which improves plugin performance by loading a lighter version of the player, until it is clicked. The plugin then loads the real YouTube embed after clicking (note: for live streams, the real player is always loaded). We have tested this feature in multiple cases with a mix of other WordPress plugins, and we found it to successfully improve your Lighthouse performance score by addressing the following recommendation: "Some third-party resources can be lazy loaded with a facade - 1 facade alternative available." You can demo this facade feature on our [YouTube Plugin WordPress](https://youtube-wordpress-plugin.embedplus.com/) test site.
|
189 |
|
190 |
== Changelog ==
|
191 |
|
192 |
+
= Embed Plus for YouTube WordPress Plugin 14.1.1 =
|
193 |
+
* Better compatability with WordPress 6.0
|
194 |
+
* Easier channel live stream wizard
|
195 |
+
* Cleaner uninstalls
|
196 |
+
* Add intro helper video
|
197 |
+
|
198 |
= Embed Plus for YouTube WordPress Plugin 14.1 =
|
199 |
* Adds the live stream fallback feature to channel-based live stream embeds
|
200 |
|
styles/ytprefs-onboarding.css
CHANGED
@@ -88,6 +88,22 @@ input.ui-widget[type=text] {
|
|
88 |
position: relative;
|
89 |
}
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
/* STEPS ************/
|
92 |
|
93 |
.wrap-ytprefs-onboarding h1
|
88 |
position: relative;
|
89 |
}
|
90 |
|
91 |
+
.epyt-fitvid {
|
92 |
+
width: 100%;
|
93 |
+
padding-top: 56.25%;
|
94 |
+
position: relative;
|
95 |
+
}
|
96 |
+
|
97 |
+
.epyt-fitvid iframe {
|
98 |
+
position: absolute;
|
99 |
+
top: 0;
|
100 |
+
left:0;
|
101 |
+
right: 0;
|
102 |
+
bottom: 0;
|
103 |
+
width: 100%;
|
104 |
+
height: 100%;
|
105 |
+
}
|
106 |
+
|
107 |
/* STEPS ************/
|
108 |
|
109 |
.wrap-ytprefs-onboarding h1
|
styles/ytprefs-onboarding.min.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
|
2 |
-
#wphead{display:none}#wpbody{margin-left:0}#adminmenuback{display:none}#adminmenu,adminmenuwrap{display:none}#wpcontent,.auto-fold #wpcontent{margin-left:0}#wpadminbar{display:none}html.wp-toolbar{padding:0}#footer,#wpfooter,.auto-fold #wpfooter{display:none}#screen-meta-links{display:none}#wpfooter{clear:both}.clearboth{clear:both}.pad20{padding:20px}.center{text-align:center}.bold{font-weight:bold}.orange{color:#f85d00}.smallnote{font-size:small;font-style:italic}.indent-option{margin-left:25px}.ui-widget,.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:inherit}.ui-accordion .ui-accordion-header{margin-top:15px;font-weight:bold}.ui-accordion .ui-accordion-content.header-go-content{display:none!important;height:0!important}.ui-widget-content a{color:#0073aa}input.ui-widget[type=text]{margin:0;padding:.4em 1em;width:450px}.txt-button-align input.ui-widget[type=text],.txt-button-align button{vertical-align:top}#epyt_wiz_wrap .ui-button{font-weight:bold}.ui-button .ui-icon{transform:scale(1.35,1.35)}.copycode{background-color:#eef;border:2px solid #c7d6e4;display:inline-block;font-size:.9em;overflow-x:hidden;vertical-align:middle;white-space:nowrap;width:400px;padding-left:15px;padding-right:15px}.pointer{cursor:pointer}.relative{position:relative}.wrap-ytprefs-onboarding h1{line-height:40px}.wrap-ytprefs-onboarding h2{line-height:2em}.wrap-ytprefs-onboarding .box-vi-not-interested{display:none}.ytprefs-ob-step{position:absolute;visibility:hidden;opacity:0;transition:opacity 300ms,visibility 300ms;width:100%;height:0;top:-200000px}.ytprefs-ob-step.active-step{visibility:visible;opacity:1;height:auto;top:0}.ytprefs-ob-title{font-size:2em;line-height:2em;text-align:center}.ytprefs-ob-subtitle{font-size:1.4em;line-height:2em}.ytprefs-ob-content{max-width:800px;margin:0 auto}.ytprefs-ob-nav{text-align:center;margin-top:20px;padding-top:20px;border-top:2px solid #ddd;clear:both;margin-bottom:50px}.ytprefs-ob-nav .ytprefs-ob-nav-hide{display:none}.ytprefs-ob-nav button.button-secondary,.ytprefs-ob-nav button.button-primary{display:inline-block;margin:0 10px}.ytprefs-ob-nav button.ytprefs-ob-nav-prev,.ytprefs-ob-nav button.ytprefs-ob-nav-close{margin-right:25px}.ytprefs-ob-step1 ul.ytprefs-ob-filter li{margin-bottom:15px}.ytprefs-ob-step1 .ytprefs-hover-icons{width:160px;float:right;margin-left:30px;min-height:200px;position:relative}.ytprefs-ob-step1 .ytprefs-hover-icons img{position:absolute;top:0;left:0;opacity:0;display:block;width:100%;height:auto;transition:opacity 200ms}.ytprefs-ob-step1 .ytprefs-hover-icons img.yob-icon-visible{opacity:1}.ytprefs-ob-step2 .ytprefs-ob-setting{display:none;margin:10px 0 25px 0}.ytprefs-ob-step2 .ytprefs-ob-setting.yob-single-visible,.ytprefs-ob-step2 .ytprefs-ob-setting.yob-gallery-visible,.ytprefs-ob-step2 .ytprefs-ob-setting.yob-standalone-visible,.ytprefs-ob-step2 .ytprefs-ob-setting.yob-privacy-visible,.ytprefs-ob-step2 .ytprefs-ob-setting.yob-live-visible{display:block}.ytprefs-ob-step2 form #responsive ~ #boxresponsive_all,.ytprefs-ob-step2 form #facade_mode ~ .box_facade_mode{height:0;visibility:none;opacity:0;pointer-events:none;transition:opacity 300ms,visibility 300ms}.ytprefs-ob-step2 form #responsive:checked ~ #boxresponsive_all,.ytprefs-ob-step2 form #facade_mode:checked ~ .box_facade_mode{height:auto;visibility:visible;opacity:1;margin-top:10px;pointer-events:all}.ytindent{padding-left:15px;border-left:5px solid #e0e0e0}.gdpr-options-left{width:65%;float:left}.gdpr-options-right{width:33%;float:right;margin-top:20px}.gdpr-options-right .img-gdpr-message{width:100%;height:auto}iframe#gdpr_consent_message_ifr{min-height:250px!important}.ytprefs-ob-step4 .ytprefs-ob-content{max-width:100%}.wiztab-screenshots{float:right;max-width:50%;height:auto;clear:right;margin-left:30px;margin-bottom:15px;display:block;border:5px solid #ddd}.ytprefs-ob-success{color:#00a000;font-weight:bold}.ytprefs-ob-success:after{content:url('../images/adstxt-valid.png')}input[type="checkbox"]+label .check-note{display:none}input[type="checkbox"]:checked+label .check-note{display:inline}#not_live_on ~ #wp-not_live_content-wrap{opacity:.3}#not_live_on:checked ~ #wp-not_live_content-wrap{opacity:1}
|
1 |
|
2 |
+
#wphead{display:none}#wpbody{margin-left:0}#adminmenuback{display:none}#adminmenu,adminmenuwrap{display:none}#wpcontent,.auto-fold #wpcontent{margin-left:0}#wpadminbar{display:none}html.wp-toolbar{padding:0}#footer,#wpfooter,.auto-fold #wpfooter{display:none}#screen-meta-links{display:none}#wpfooter{clear:both}.clearboth{clear:both}.pad20{padding:20px}.center{text-align:center}.bold{font-weight:bold}.orange{color:#f85d00}.smallnote{font-size:small;font-style:italic}.indent-option{margin-left:25px}.ui-widget,.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:inherit}.ui-accordion .ui-accordion-header{margin-top:15px;font-weight:bold}.ui-accordion .ui-accordion-content.header-go-content{display:none!important;height:0!important}.ui-widget-content a{color:#0073aa}input.ui-widget[type=text]{margin:0;padding:.4em 1em;width:450px}.txt-button-align input.ui-widget[type=text],.txt-button-align button{vertical-align:top}#epyt_wiz_wrap .ui-button{font-weight:bold}.ui-button .ui-icon{transform:scale(1.35,1.35)}.copycode{background-color:#eef;border:2px solid #c7d6e4;display:inline-block;font-size:.9em;overflow-x:hidden;vertical-align:middle;white-space:nowrap;width:400px;padding-left:15px;padding-right:15px}.pointer{cursor:pointer}.relative{position:relative}.epyt-fitvid{width:100%;padding-top:56.25%;position:relative}.epyt-fitvid iframe{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%}.wrap-ytprefs-onboarding h1{line-height:40px}.wrap-ytprefs-onboarding h2{line-height:2em}.wrap-ytprefs-onboarding .box-vi-not-interested{display:none}.ytprefs-ob-step{position:absolute;visibility:hidden;opacity:0;transition:opacity 300ms,visibility 300ms;width:100%;height:0;top:-200000px}.ytprefs-ob-step.active-step{visibility:visible;opacity:1;height:auto;top:0}.ytprefs-ob-title{font-size:2em;line-height:2em;text-align:center}.ytprefs-ob-subtitle{font-size:1.4em;line-height:2em}.ytprefs-ob-content{max-width:800px;margin:0 auto}.ytprefs-ob-nav{text-align:center;margin-top:20px;padding-top:20px;border-top:2px solid #ddd;clear:both;margin-bottom:50px}.ytprefs-ob-nav .ytprefs-ob-nav-hide{display:none}.ytprefs-ob-nav button.button-secondary,.ytprefs-ob-nav button.button-primary{display:inline-block;margin:0 10px}.ytprefs-ob-nav button.ytprefs-ob-nav-prev,.ytprefs-ob-nav button.ytprefs-ob-nav-close{margin-right:25px}.ytprefs-ob-step1 ul.ytprefs-ob-filter li{margin-bottom:15px}.ytprefs-ob-step1 .ytprefs-hover-icons{width:160px;float:right;margin-left:30px;min-height:200px;position:relative}.ytprefs-ob-step1 .ytprefs-hover-icons img{position:absolute;top:0;left:0;opacity:0;display:block;width:100%;height:auto;transition:opacity 200ms}.ytprefs-ob-step1 .ytprefs-hover-icons img.yob-icon-visible{opacity:1}.ytprefs-ob-step2 .ytprefs-ob-setting{display:none;margin:10px 0 25px 0}.ytprefs-ob-step2 .ytprefs-ob-setting.yob-single-visible,.ytprefs-ob-step2 .ytprefs-ob-setting.yob-gallery-visible,.ytprefs-ob-step2 .ytprefs-ob-setting.yob-standalone-visible,.ytprefs-ob-step2 .ytprefs-ob-setting.yob-privacy-visible,.ytprefs-ob-step2 .ytprefs-ob-setting.yob-live-visible{display:block}.ytprefs-ob-step2 form #responsive ~ #boxresponsive_all,.ytprefs-ob-step2 form #facade_mode ~ .box_facade_mode{height:0;visibility:none;opacity:0;pointer-events:none;transition:opacity 300ms,visibility 300ms}.ytprefs-ob-step2 form #responsive:checked ~ #boxresponsive_all,.ytprefs-ob-step2 form #facade_mode:checked ~ .box_facade_mode{height:auto;visibility:visible;opacity:1;margin-top:10px;pointer-events:all}.ytindent{padding-left:15px;border-left:5px solid #e0e0e0}.gdpr-options-left{width:65%;float:left}.gdpr-options-right{width:33%;float:right;margin-top:20px}.gdpr-options-right .img-gdpr-message{width:100%;height:auto}iframe#gdpr_consent_message_ifr{min-height:250px!important}.ytprefs-ob-step4 .ytprefs-ob-content{max-width:100%}.wiztab-screenshots{float:right;max-width:50%;height:auto;clear:right;margin-left:30px;margin-bottom:15px;display:block;border:5px solid #ddd}.ytprefs-ob-success{color:#00a000;font-weight:bold}.ytprefs-ob-success:after{content:url('../images/adstxt-valid.png')}input[type="checkbox"]+label .check-note{display:none}input[type="checkbox"]:checked+label .check-note{display:inline}#not_live_on ~ #wp-not_live_content-wrap{opacity:.3}#not_live_on:checked ~ #wp-not_live_content-wrap{opacity:1}
|
styles/ytprefs.css
CHANGED
@@ -11,6 +11,11 @@ iframe.__youtube_prefs__
|
|
11 |
text-align: center;
|
12 |
}
|
13 |
|
|
|
|
|
|
|
|
|
|
|
14 |
/*.epyt-gallery div[tabindex]:focus {
|
15 |
outline: none;
|
16 |
}*/
|
11 |
text-align: center;
|
12 |
}
|
13 |
|
14 |
+
.epyt-gallery .epyt-figure {
|
15 |
+
margin-inline: 0;
|
16 |
+
margin-block: 0;
|
17 |
+
}
|
18 |
+
|
19 |
/*.epyt-gallery div[tabindex]:focus {
|
20 |
outline: none;
|
21 |
}*/
|
styles/ytprefs.min.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
|
2 |
-
.epyt-debug{cursor:pointer;text-align:left;background-color:#ddd;color:#000}iframe.__youtube_prefs__{border-width:0}.epyt-gallery{text-align:center}.epyt-gallery iframe{margin-bottom:0}.epyt-gallery.epyt-lb iframe{display:none;height:0!important}.epyt-gallery-list{margin:0 -8px 0 -8px;position:relative;transition:opacity ease-out .3s;display:block}.epyt-gallery-list .epyt-gallery-thumb{box-sizing:border-box}.epyt-gallery-list p{display:none}.epyt-gallery-clear{clear:both}.epyt-gallery-list.epyt-loading{opacity:.5;transition:opacity ease-out .3s}.epyt-gallery-thumb{position:relative;box-sizing:border-box;overflow-y:hidden;display:block!important;cursor:pointer;opacity:1;float:left;padding:0 8px 10px 8px;height:auto}.epyt-gallery-thumb.hover{position:relative;opacity:1;transition:opacity ease-out .3s;height:auto}.epyt-gallery-img-box{width:100%}.epyt-gallery-img{height:0;width:100%;padding-top:56.25%!important;position:relative;overflow:hidden!important;background-size:cover!important;background-position:center!important}.epyt-gallery-playhover{opacity:0;position:absolute;top:-10px;left:0;width:100%;height:100%;vertical-align:middle;text-align:center;transition:opacity ease-out .3s}.epyt-gallery-thumb.hover .epyt-gallery-playhover,.epyt-gallery-thumb.epyt-current-video .epyt-gallery-playhover{opacity:1;top:0;transition:all ease-out .3s}.epyt-gallery-thumb .epyt-gallery-playcrutch{display:inline-block;height:100%;vertical-align:middle;width:0}.epyt-gallery-playhover .epyt-play-img{height:auto!important;max-width:15%!important;padding:0!important;margin:0!important;min-width:30px!important;vertical-align:middle!important;display:inline-block!important;width:auto;border:0;box-sizing:border-box}.epyt-gallery-title{font-size:80%;line-height:120%;padding:10px}.epyt-gallery-notitle{padding:4px}.epyt-gallery-notitle span{display:none}.epyt-gallery-rowtitle{text-align:center;width:100%;position:absolute;left:0;top:100%;opacity:0;z-index:10;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.epyt-gallery-rowtitle.hover{opacity:1;transition:opacity linear .2s}.epyt-gallery-rowbreak{clear:both}.epyt-pagination{clear:both;text-align:center;padding:10px 8px 10px 8px}.epyt-pagination.epyt-hide-pagination *{display:none!important}.epyt-pagination>div,.epyt-pagenumbers>div{display:inline-block;padding:0 2px 0 2px;vertical-align:middle}.epyt-pagination .epyt-pagebutton{cursor:pointer;display:inline-block;padding:0 10px 0 10px}.epyt-pagebutton>div{display:inline}.epyt-pagination .epyt-loader{display:none}.epyt-gallery-list.epyt-loading .epyt-pagination .epyt-loader{display:inline-block}body .lity-container{width:100%;max-width:964px}.epyt-curtain .lity-opened iframe{opacity:0;transition:opacity .3s linear .5s}.epyt-gallery-allthumbs.epyt-cols-1 .epyt-gallery-thumb{width:100%}.epyt-gallery-allthumbs.epyt-cols-2 .epyt-gallery-thumb{width:50%}.epyt-gallery-allthumbs.epyt-cols-3 .epyt-gallery-thumb{width:33.333%}.epyt-gallery-allthumbs.epyt-cols-4 .epyt-gallery-thumb{width:25%}.epyt-gallery-allthumbs.epyt-cols-5 .epyt-gallery-thumb{width:20%}.epyt-gallery-allthumbs.epyt-cols-6 .epyt-gallery-thumb{width:16.666%}.epyt-gallery-allthumbs.epyt-cols-7 .epyt-gallery-thumb{width:14.285%}.epyt-gallery-allthumbs.epyt-cols-8 .epyt-gallery-thumb{width:12.5%}.epyt-gallery-allthumbs.epyt-cols-9 .epyt-gallery-thumb{width:11.111%}.epyt-gallery-allthumbs.epyt-cols-10 .epyt-gallery-thumb{width:10%}.epyt-gallery-allthumbs.epyt-cols-11 .epyt-gallery-thumb{width:9.090%}.epyt-gallery-allthumbs.epyt-cols-12 .epyt-gallery-thumb{width:8.333%}.epyt-gallery-allthumbs.epyt-cols-13 .epyt-gallery-thumb{width:7.692%}.epyt-gallery-allthumbs.epyt-cols-14 .epyt-gallery-thumb{width:7.142%}.epyt-gallery-allthumbs.epyt-cols-15 .epyt-gallery-thumb{width:6.666%}.epyt-gallery-allthumbs.epyt-cols-16 .epyt-gallery-thumb{width:6.25%}.epyt-gallery-allthumbs.epyt-cols-17 .epyt-gallery-thumb{width:5.882%}.epyt-gallery-allthumbs.epyt-cols-18 .epyt-gallery-thumb{width:5.555%}.epyt-gallery-allthumbs.epyt-cols-19 .epyt-gallery-thumb{width:5.263%}.epyt-gallery-allthumbs.epyt-cols-20 .epyt-gallery-thumb{width:5%}.epyt-pagebutton.hide,.epyt-pagenumbers.hide{display:none!important;opacity:0!important;visibility:hidden!important}.epyt-gallery-subscribe{text-align:center;padding:15px 0 10px 0;clear:both}.epyt-gallery-subscribe a.epyt-gallery-subbutton,.epyt-gallery-subscribe a.epyt-gallery-subbutton:hover{display:inline-block;padding:5px 10px;background-color:#e62117!important;color:#fff!important;text-decoration:none!important;border-radius:3px}.epyt-gallery-subscribe a.epyt-gallery-subbutton img{width:20px!important;height:auto!important;vertical-align:middle!important;padding:0 6px 3px 0;display:inline-block;background:transparent;-webkit-box-shadow:none;box-shadow:none;margin:0}body div.__youtube_prefs__.__youtube_prefs_gdpr__{background-color:#000;background-image:-webkit-linear-gradient(top,#000,#444);background-image:linear-gradient(to bottom,#000,#444);padding:25px;height:auto;text-align:left}body div.__youtube_prefs__.__youtube_prefs_gdpr__ *{color:#e3e3e3!important}body div.__youtube_prefs__.__youtube_prefs_gdpr__ a{text-decoration:underline}body div.__youtube_prefs__.__youtube_prefs_gdpr__ button.__youtube_prefs_gdpr__,body div.__youtube_prefs__.__youtube_prefs_gdpr__ button.__youtube_prefs_gdpr__:hover{display:inline-block;padding:5px 10px;background:#e62117!important;color:#fff!important;text-decoration:none!important;border-radius:3px;font-weight:normal;border-width:0;box-sizing:border-box}body div.__youtube_prefs__.__youtube_prefs_gdpr__ button.__youtube_prefs_gdpr__ img{width:20px!important;height:auto!important;vertical-align:middle!important;padding:0 6px 3px 0;display:inline-block;background:transparent;-webkit-box-shadow:none;box-shadow:none;margin-left:8px}body .epyt-gallery-img-gdpr{background-color:#000;background-image:-webkit-linear-gradient(top,#000,#444);background-image:linear-gradient(to bottom,#000,#444)}.epyt-facade{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%;-webkit-transition:.4s all;-moz-transition:.4s all;transition:.4s all}.epyt-facade:hover{-webkit-filter:brightness(90%);-moz-filter:brightness(90%);filter:brightness(90%)}.epyt-facade img.epyt-facade-poster{display:block;margin:0;max-width:100%;width:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:0;height:auto;cursor:pointer}.epyt-facade button.epyt-facade-play{background-color:transparent!important;position:absolute;left:50%;top:50%;width:68px;height:48px;margin-left:-34px;margin-top:-24px;-webkit-transition:opacity .25s cubic-bezier(0,0,0.2,1);transition:opacity .25s cubic-bezier(0,0,0.2,1);cursor:pointer;border-width:0!important}.epyt-facade button.epyt-facade-play svg{height:100%;left:0;position:absolute;top:0;width:100%;pointer-events:none}.epyt-facade button.epyt-facade-play svg .ytp-large-play-button-bg{-webkit-transition:fill .1s cubic-bezier(0.4,0,1,1),fill-opacity .1s cubic-bezier(0.4,0,1,1);transition:fill .1s cubic-bezier(0.4,0,1,1),fill-opacity .1s cubic-bezier(0.4,0,1,1);fill:#212121;fill-opacity:.8}.epyt-facade:hover button.epyt-facade-play svg .ytp-large-play-button-bg{-webkit-transition:fill .1s cubic-bezier(0,0,0.2,1),fill-opacity .1s cubic-bezier(0,0,0.2,1);transition:fill .1s cubic-bezier(0,0,0.2,1),fill-opacity .1s cubic-bezier(0,0,0.2,1);fill:#f00;fill-opacity:1}.wp-embed-responsive .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper .epyt-is-override.epyt-facade{position:absolute;top:0;right:0;bottom:0;left:0}.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper .epyt-is-override.__youtube_prefs_gdpr__{position:relative}.wp-embed-responsive .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper .epyt-is-override.__youtube_prefs_gdpr__{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto}.wp-embed-responsive .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper.epyt-is-override__wrapper:before{padding:0}.wp-embed-responsive .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper.epyt-is-override__wrapper .epyt-is-override.__youtube_prefs_gdpr__{position:relative;top:unset;right:unset;bottom:unset;left:unset}.ytvi-story-container{display:block;max-width:100%}
|
1 |
|
2 |
+
.epyt-debug{cursor:pointer;text-align:left;background-color:#ddd;color:#000}iframe.__youtube_prefs__{border-width:0}.epyt-gallery{text-align:center}.epyt-gallery .epyt-figure{margin-inline:0;margin-block:0}.epyt-gallery iframe{margin-bottom:0}.epyt-gallery.epyt-lb iframe{display:none;height:0!important}.epyt-gallery-list{margin:0 -8px 0 -8px;position:relative;transition:opacity ease-out .3s;display:block}.epyt-gallery-list .epyt-gallery-thumb{box-sizing:border-box}.epyt-gallery-list p{display:none}.epyt-gallery-clear{clear:both}.epyt-gallery-list.epyt-loading{opacity:.5;transition:opacity ease-out .3s}.epyt-gallery-thumb{position:relative;box-sizing:border-box;overflow-y:hidden;display:block!important;cursor:pointer;opacity:1;float:left;padding:0 8px 10px 8px;height:auto}.epyt-gallery-thumb.hover{position:relative;opacity:1;transition:opacity ease-out .3s;height:auto}.epyt-gallery-img-box{width:100%}.epyt-gallery-img{height:0;width:100%;padding-top:56.25%!important;position:relative;overflow:hidden!important;background-size:cover!important;background-position:center!important}.epyt-gallery-playhover{opacity:0;position:absolute;top:-10px;left:0;width:100%;height:100%;vertical-align:middle;text-align:center;transition:opacity ease-out .3s}.epyt-gallery-thumb.hover .epyt-gallery-playhover,.epyt-gallery-thumb.epyt-current-video .epyt-gallery-playhover{opacity:1;top:0;transition:all ease-out .3s}.epyt-gallery-thumb .epyt-gallery-playcrutch{display:inline-block;height:100%;vertical-align:middle;width:0}.epyt-gallery-playhover .epyt-play-img{height:auto!important;max-width:15%!important;padding:0!important;margin:0!important;min-width:30px!important;vertical-align:middle!important;display:inline-block!important;width:auto;border:0;box-sizing:border-box}.epyt-gallery-title{font-size:80%;line-height:120%;padding:10px}.epyt-gallery-notitle{padding:4px}.epyt-gallery-notitle span{display:none}.epyt-gallery-rowtitle{text-align:center;width:100%;position:absolute;left:0;top:100%;opacity:0;z-index:10;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.epyt-gallery-rowtitle.hover{opacity:1;transition:opacity linear .2s}.epyt-gallery-rowbreak{clear:both}.epyt-pagination{clear:both;text-align:center;padding:10px 8px 10px 8px}.epyt-pagination.epyt-hide-pagination *{display:none!important}.epyt-pagination>div,.epyt-pagenumbers>div{display:inline-block;padding:0 2px 0 2px;vertical-align:middle}.epyt-pagination .epyt-pagebutton{cursor:pointer;display:inline-block;padding:0 10px 0 10px}.epyt-pagebutton>div{display:inline}.epyt-pagination .epyt-loader{display:none}.epyt-gallery-list.epyt-loading .epyt-pagination .epyt-loader{display:inline-block}body .lity-container{width:100%;max-width:964px}.epyt-curtain .lity-opened iframe{opacity:0;transition:opacity .3s linear .5s}.epyt-gallery-allthumbs.epyt-cols-1 .epyt-gallery-thumb{width:100%}.epyt-gallery-allthumbs.epyt-cols-2 .epyt-gallery-thumb{width:50%}.epyt-gallery-allthumbs.epyt-cols-3 .epyt-gallery-thumb{width:33.333%}.epyt-gallery-allthumbs.epyt-cols-4 .epyt-gallery-thumb{width:25%}.epyt-gallery-allthumbs.epyt-cols-5 .epyt-gallery-thumb{width:20%}.epyt-gallery-allthumbs.epyt-cols-6 .epyt-gallery-thumb{width:16.666%}.epyt-gallery-allthumbs.epyt-cols-7 .epyt-gallery-thumb{width:14.285%}.epyt-gallery-allthumbs.epyt-cols-8 .epyt-gallery-thumb{width:12.5%}.epyt-gallery-allthumbs.epyt-cols-9 .epyt-gallery-thumb{width:11.111%}.epyt-gallery-allthumbs.epyt-cols-10 .epyt-gallery-thumb{width:10%}.epyt-gallery-allthumbs.epyt-cols-11 .epyt-gallery-thumb{width:9.090%}.epyt-gallery-allthumbs.epyt-cols-12 .epyt-gallery-thumb{width:8.333%}.epyt-gallery-allthumbs.epyt-cols-13 .epyt-gallery-thumb{width:7.692%}.epyt-gallery-allthumbs.epyt-cols-14 .epyt-gallery-thumb{width:7.142%}.epyt-gallery-allthumbs.epyt-cols-15 .epyt-gallery-thumb{width:6.666%}.epyt-gallery-allthumbs.epyt-cols-16 .epyt-gallery-thumb{width:6.25%}.epyt-gallery-allthumbs.epyt-cols-17 .epyt-gallery-thumb{width:5.882%}.epyt-gallery-allthumbs.epyt-cols-18 .epyt-gallery-thumb{width:5.555%}.epyt-gallery-allthumbs.epyt-cols-19 .epyt-gallery-thumb{width:5.263%}.epyt-gallery-allthumbs.epyt-cols-20 .epyt-gallery-thumb{width:5%}.epyt-pagebutton.hide,.epyt-pagenumbers.hide{display:none!important;opacity:0!important;visibility:hidden!important}.epyt-gallery-subscribe{text-align:center;padding:15px 0 10px 0;clear:both}.epyt-gallery-subscribe a.epyt-gallery-subbutton,.epyt-gallery-subscribe a.epyt-gallery-subbutton:hover{display:inline-block;padding:5px 10px;background-color:#e62117!important;color:#fff!important;text-decoration:none!important;border-radius:3px}.epyt-gallery-subscribe a.epyt-gallery-subbutton img{width:20px!important;height:auto!important;vertical-align:middle!important;padding:0 6px 3px 0;display:inline-block;background:transparent;-webkit-box-shadow:none;box-shadow:none;margin:0}body div.__youtube_prefs__.__youtube_prefs_gdpr__{background-color:#000;background-image:-webkit-linear-gradient(top,#000,#444);background-image:linear-gradient(to bottom,#000,#444);padding:25px;height:auto;text-align:left}body div.__youtube_prefs__.__youtube_prefs_gdpr__ *{color:#e3e3e3!important}body div.__youtube_prefs__.__youtube_prefs_gdpr__ a{text-decoration:underline}body div.__youtube_prefs__.__youtube_prefs_gdpr__ button.__youtube_prefs_gdpr__,body div.__youtube_prefs__.__youtube_prefs_gdpr__ button.__youtube_prefs_gdpr__:hover{display:inline-block;padding:5px 10px;background:#e62117!important;color:#fff!important;text-decoration:none!important;border-radius:3px;font-weight:normal;border-width:0;box-sizing:border-box}body div.__youtube_prefs__.__youtube_prefs_gdpr__ button.__youtube_prefs_gdpr__ img{width:20px!important;height:auto!important;vertical-align:middle!important;padding:0 6px 3px 0;display:inline-block;background:transparent;-webkit-box-shadow:none;box-shadow:none;margin-left:8px}body .epyt-gallery-img-gdpr{background-color:#000;background-image:-webkit-linear-gradient(top,#000,#444);background-image:linear-gradient(to bottom,#000,#444)}.epyt-facade{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%;-webkit-transition:.4s all;-moz-transition:.4s all;transition:.4s all}.epyt-facade:hover{-webkit-filter:brightness(90%);-moz-filter:brightness(90%);filter:brightness(90%)}.epyt-facade img.epyt-facade-poster{display:block;margin:0;max-width:100%;width:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:0;height:auto;cursor:pointer}.epyt-facade button.epyt-facade-play{background-color:transparent!important;position:absolute;left:50%;top:50%;width:68px;height:48px;margin-left:-34px;margin-top:-24px;-webkit-transition:opacity .25s cubic-bezier(0,0,0.2,1);transition:opacity .25s cubic-bezier(0,0,0.2,1);cursor:pointer;border-width:0!important}.epyt-facade button.epyt-facade-play svg{height:100%;left:0;position:absolute;top:0;width:100%;pointer-events:none}.epyt-facade button.epyt-facade-play svg .ytp-large-play-button-bg{-webkit-transition:fill .1s cubic-bezier(0.4,0,1,1),fill-opacity .1s cubic-bezier(0.4,0,1,1);transition:fill .1s cubic-bezier(0.4,0,1,1),fill-opacity .1s cubic-bezier(0.4,0,1,1);fill:#212121;fill-opacity:.8}.epyt-facade:hover button.epyt-facade-play svg .ytp-large-play-button-bg{-webkit-transition:fill .1s cubic-bezier(0,0,0.2,1),fill-opacity .1s cubic-bezier(0,0,0.2,1);transition:fill .1s cubic-bezier(0,0,0.2,1),fill-opacity .1s cubic-bezier(0,0,0.2,1);fill:#f00;fill-opacity:1}.wp-embed-responsive .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper .epyt-is-override.epyt-facade{position:absolute;top:0;right:0;bottom:0;left:0}.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper .epyt-is-override.__youtube_prefs_gdpr__{position:relative}.wp-embed-responsive .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper .epyt-is-override.__youtube_prefs_gdpr__{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto}.wp-embed-responsive .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper.epyt-is-override__wrapper:before{padding:0}.wp-embed-responsive .wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper.epyt-is-override__wrapper .epyt-is-override.__youtube_prefs_gdpr__{position:relative;top:unset;right:unset;bottom:unset;left:unset}.ytvi-story-container{display:block;max-width:100%}
|
uninstall.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// if uninstall.php is not called by WordPress, die
|
4 |
+
if (!defined('WP_UNINSTALL_PLUGIN'))
|
5 |
+
{
|
6 |
+
die;
|
7 |
+
}
|
8 |
+
|
9 |
+
// if the option to do this is checked
|
10 |
+
$all_yt_options = get_option('youtubeprefs_alloptions');
|
11 |
+
if (!empty($all_yt_options['uninstall_data']))
|
12 |
+
{
|
13 |
+
global $wpdb;
|
14 |
+
|
15 |
+
// delete main options
|
16 |
+
delete_option('youtubeprefs_alloptions');
|
17 |
+
|
18 |
+
// delete backup options
|
19 |
+
$backup_plugin_options = $wpdb->get_results("SELECT option_name FROM $wpdb->options WHERE option_name LIKE 'youtubeprefs\_alloptions\_backup\_%'");
|
20 |
+
foreach ($backup_plugin_options as $option)
|
21 |
+
{
|
22 |
+
delete_option($option->option_name);
|
23 |
+
}
|
24 |
+
|
25 |
+
// delete vi data
|
26 |
+
$vi_table_name = $wpdb->prefix . 'vi_consent_logs';
|
27 |
+
$wpdb->query("DROP TABLE IF EXISTS $vi_table_name");
|
28 |
+
}
|
youtube.php
CHANGED
@@ -3,11 +3,10 @@
|
|
3 |
Plugin Name: Embed Plus Plugin for YouTube
|
4 |
Plugin URI: https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx?ref=plugin
|
5 |
Description: YouTube Embed Plugin. Embed a YouTube channel gallery, playlist gallery, YouTube live stream. Lite embeds with defer JavaScript and facade options
|
6 |
-
Version: 14.1
|
7 |
Author: Embed Plus for YouTube Team
|
8 |
Author URI: https://www.embedplus.com
|
9 |
Requires at least: 4.5
|
10 |
-
Tested up to: 5.9
|
11 |
*/
|
12 |
|
13 |
/*
|
@@ -36,7 +35,7 @@ class YouTubePrefs
|
|
36 |
|
37 |
public static $folder_name = 'youtube-embed-plus';
|
38 |
public static $curltimeout = 30;
|
39 |
-
public static $version = '14.1';
|
40 |
public static $opt_version = 'version';
|
41 |
public static $optembedwidth = null;
|
42 |
public static $optembedheight = null;
|
@@ -47,6 +46,7 @@ class YouTubePrefs
|
|
47 |
public static $opt_glance = 'glance';
|
48 |
public static $opt_autoplay = 'autoplay';
|
49 |
public static $opt_debugmode = 'debugmode';
|
|
|
50 |
public static $opt_old_script_method = 'old_script_method';
|
51 |
public static $opt_cc_load_policy = 'cc_load_policy';
|
52 |
public static $opt_cc_lang_pref = 'cc_lang_pref';
|
@@ -720,7 +720,7 @@ class YouTubePrefs
|
|
720 |
$step1_live_errors = '';
|
721 |
$step1_live_error_invalid = 'Sorry, that does not seem to be a valid link to an existing live video. ' . $step1_api_error_msg;
|
722 |
$step1_livechannel_errors = '';
|
723 |
-
$step1_livechannel_error_invalid = 'Sorry, that does not seem to be a link to an existing channel.';
|
724 |
|
725 |
$if_live_preview = false;
|
726 |
|
@@ -1039,18 +1039,42 @@ class YouTubePrefs
|
|
1039 |
{
|
1040 |
throw new Exception();
|
1041 |
}
|
1042 |
-
if (preg_match('@/channel/(.+)@', $search))
|
1043 |
{
|
1044 |
try
|
1045 |
{
|
1046 |
$thechannelid = null;
|
1047 |
-
|
1048 |
-
$chanmatch = array();
|
1049 |
-
preg_match('@/channel/(.+)@', $search, $chanmatch);
|
1050 |
-
if (!empty($chanmatch))
|
1051 |
{
|
1052 |
-
|
1053 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1054 |
}
|
1055 |
if (!empty($thechannelid))
|
1056 |
{
|
@@ -1174,10 +1198,7 @@ class YouTubePrefs
|
|
1174 |
}
|
1175 |
?>
|
1176 |
<p>
|
1177 |
-
<strong>Is your live stream not working?</strong>
|
1178 |
-
stream's channel (for monetization) in order embed the stream. If you own the channel, we suggest that you attach an AdSense account. Otherwise, you will
|
1179 |
-
likely just see a blank screen when you embed your stream, even if it is visible on YouTube.com.
|
1180 |
-
Read more here: <a href="https://support.google.com/youtube/answer/2474026?hl=en" target="_blank">https://support.google.com/youtube/answer/2474026?hl=en</a>
|
1181 |
</p>
|
1182 |
</div>
|
1183 |
<?php
|
@@ -1322,13 +1343,6 @@ class YouTubePrefs
|
|
1322 |
else
|
1323 |
{
|
1324 |
?>
|
1325 |
-
<p>
|
1326 |
-
Important: You can embed any public livestreams or premieres from any channel that YouTube/Google has approved to be <strong>Eligible</strong> and <strong>Enabled</strong>.
|
1327 |
-
If you're trying to embed a livestream from your own channel, you can check make sure it is <strong>Eligible</strong> and <strong>Enabled</strong> by <a href="https://www.youtube.com/features" target="_blank">visiting here.</a>
|
1328 |
-
You are verified if you see the word "Enabled" at the bottom of the box that is labeled "Embed live streams." Note that verification can only be done directly through YouTube/Google with the link above, and this plugin cannot automatically do that.
|
1329 |
-
YouTube/Google also requires <strong>Monetization</strong> enabled. <a href="https://www.embedplus.com/how-to-embed-a-youtube-livestream-in-wordpress.aspx" target="_blank">You can read more here »</a>
|
1330 |
-
</p>
|
1331 |
-
|
1332 |
<div class="livestream-tabs">
|
1333 |
<ul>
|
1334 |
<li><a href="#livestream-tabs-2">Channel-based livestream (recommended)<sup class="orange">new</sup></a></li>
|
@@ -1356,11 +1370,16 @@ class YouTubePrefs
|
|
1356 |
</div>
|
1357 |
<div id="livestream-tabs-2">
|
1358 |
<p>
|
1359 |
-
This will embed a video that will automatically display the next upcoming live stream from a channel.
|
1360 |
</p>
|
1361 |
-
<
|
1362 |
-
|
1363 |
-
|
|
|
|
|
|
|
|
|
|
|
1364 |
<form name="wizform_livechannel" method="post" action="" class="wizform" id="wizform_livechannel">
|
1365 |
<?php wp_nonce_field('_epyt_wiz', '_epyt_nonce', true); ?>
|
1366 |
<div class="center txt-button-align">
|
@@ -1939,6 +1958,7 @@ class YouTubePrefs
|
|
1939 |
$_not_live_on = 0;
|
1940 |
$_not_live_on_channel = 0;
|
1941 |
$_debugmode = 0;
|
|
|
1942 |
$_admin_off_scripts = 0;
|
1943 |
$_defer_js = 0;
|
1944 |
$_defer_jquery = 0;
|
@@ -1969,6 +1989,7 @@ class YouTubePrefs
|
|
1969 |
$_glance = self::tryget($arroptions, self::$opt_glance, $_glance);
|
1970 |
$_autoplay = self::tryget($arroptions, self::$opt_autoplay, 0);
|
1971 |
$_debugmode = self::tryget($arroptions, self::$opt_debugmode, 0);
|
|
|
1972 |
$_old_script_method = self::tryget($arroptions, self::$opt_old_script_method, 0);
|
1973 |
$_cc_load_policy = self::tryget($arroptions, self::$opt_cc_load_policy, 0);
|
1974 |
$_cc_lang_pref = self::tryget($arroptions, self::$opt_cc_lang_pref, $_cc_lang_pref);
|
@@ -1978,7 +1999,7 @@ class YouTubePrefs
|
|
1978 |
$_rel = self::tryget($arroptions, self::$opt_rel, 1);
|
1979 |
$_fs = self::tryget($arroptions, self::$opt_fs, 1);
|
1980 |
$_playsinline = self::tryget($arroptions, self::$opt_playsinline, 0);
|
1981 |
-
$_origin = self::tryget($arroptions, self::$opt_origin,
|
1982 |
$_hl = self::tryget($arroptions, self::$opt_hl, '');
|
1983 |
$_dohl = self::tryget($arroptions, self::$opt_dohl, 0);
|
1984 |
$_theme = self::tryget($arroptions, self::$opt_theme, 'dark');
|
@@ -2134,6 +2155,7 @@ class YouTubePrefs
|
|
2134 |
self::$opt_not_live_on => $_not_live_on,
|
2135 |
self::$opt_not_live_on_channel => $_not_live_on_channel,
|
2136 |
self::$opt_debugmode => $_debugmode,
|
|
|
2137 |
self::$opt_admin_off_scripts => $_admin_off_scripts,
|
2138 |
self::$opt_defer_js => $_defer_js,
|
2139 |
self::$opt_defer_jquery => $_defer_jquery,
|
@@ -2833,7 +2855,7 @@ class YouTubePrefs
|
|
2833 |
if ($iscontent && !$isoverride && $finalparams[self::$opt_gb_compat] == 1 && current_theme_supports('responsive-embeds'))// self::using_gutenberg())
|
2834 |
{
|
2835 |
// don't do the following if: overriding default YT, is widget
|
2836 |
-
$begin_gb_wrapper = '<figure class="wp-block-embed wp-block-embed-youtube is-type-video is-provider-youtube"><div class="wp-block-embed__wrapper">';
|
2837 |
//wp-block-embed-youtube is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio
|
2838 |
$end_gb_wrapper = '</div></figure>';
|
2839 |
}
|
@@ -3240,7 +3262,7 @@ class YouTubePrefs
|
|
3240 |
$new_pointer_content = '<h3>' . __('New Update') . '</h3>'; // ooopointer
|
3241 |
|
3242 |
$new_pointer_content .= '<p>'; // ooopointer
|
3243 |
-
$new_pointer_content .= "This update
|
3244 |
if (self::vi_logged_in())
|
3245 |
{
|
3246 |
$new_pointer_content .= "<br><br><strong>Note:</strong> You are currently logged into the vi intelligence feature. vi support is being deprecated in the next version, so we recommend taking the vi ads down from your site. Please contact ext@embedplus.com for questions.";
|
@@ -3965,18 +3987,18 @@ class YouTubePrefs
|
|
3965 |
The plugin will automatically switch to your video's live stream or premiere once it's active. In the <em>"Not Live" Fallback Content</em> box below, enter what you would like to appear until then.
|
3966 |
You can even insert shortcodes from our plugin into the box below (shortcodes from other plugins may or may not work correctly).
|
3967 |
If you just want to show the standard countdown player that YouTube provides, don't use this feature.
|
3968 |
-
<strong>NOTE: Turning this on for direct-link live streams uses a significant amount of your YouTube API quota. We suggest unchecking it if your site has high traffic. If you chose to use this feature, do not put another live stream embed below.</strong>
|
3969 |
</label>
|
3970 |
<br>
|
3971 |
<br>
|
3972 |
<input name="<?php echo self::$opt_not_live_on_channel; ?>" id="<?php echo self::$opt_not_live_on_channel; ?>" <?php checked($all[self::$opt_not_live_on_channel], 1); ?> type="checkbox" class="checkbox">
|
3973 |
-
<label for="<?php echo self::$opt_not_live_on_channel; ?>"><span class="chktitle">Turn on for <b>channel</b> live streams
|
3974 |
If your live stream embed is channel-based, YouTube might show an error message if there is no upcoming or currently streaming video from your channel.
|
3975 |
Instead of showing an error, you can display some "coming soon" content in that space for your visitors to see until you've scheduled a live stream or premiere
|
3976 |
(Once you've scheduled something, YouTube will display the usual countdown until the stream happens).
|
3977 |
In the <em>"Not Live" Fallback Content</em> box below, enter what you would like to appear when nothing is playing or scheduled to play yet on your channel.
|
3978 |
You can even insert shortcodes from our plugin into the box below (shortcodes from other plugins may or may not work correctly).
|
3979 |
-
<strong>NOTE: This feature for channel live streams is experimental, but it will preserve your API quota. We recommend trying this instead of the direct-link option, to see if it works for your site. We hope to improve this feature over time.</strong>
|
3980 |
</label>
|
3981 |
<div class="p not-live-content">
|
3982 |
<p>
|
@@ -4445,7 +4467,13 @@ class YouTubePrefs
|
|
4445 |
It may print out some diagnostic info so that we can help you solve your issue.
|
4446 |
</label>
|
4447 |
</p>
|
4448 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
4449 |
</div>
|
4450 |
|
4451 |
|
@@ -4499,7 +4527,7 @@ class YouTubePrefs
|
|
4499 |
</h3>
|
4500 |
<p>
|
4501 |
Suppose you have a few videos that need to be different from the above defaults. You can add options to the end of a link as displayed below to override the above defaults. Each option should begin with '&'.
|
4502 |
-
<br><span class="orange">PRO users: You can use the
|
4503 |
</p>
|
4504 |
<?php
|
4505 |
_e('<ul class="reglist">');
|
@@ -4713,7 +4741,15 @@ class YouTubePrefs
|
|
4713 |
<h2>Plugin Support</h2>
|
4714 |
|
4715 |
<div id="nonprosupport">
|
4716 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4717 |
<ul class="reglist">
|
4718 |
<li>Make sure the URL is really on its own line by itself. Or, if you need multiple videos on the same line, make sure each URL is wrapped properly with the shortcode (Example: <code>[embedyt]http://www.youtube.com/watch?v=ABCDEFGHIJK&width=400&height=250[/embedyt]</code>)</li>
|
4719 |
<li>Make sure the URL is not an active hyperlink (i.e., it should just be plain text). Otherwise, highlight the URL and click the "unlink" button in your editor: <img src="<?php echo plugins_url('images/unlink.png', __FILE__) ?>"/>.</li>
|
@@ -5079,6 +5115,7 @@ class YouTubePrefs
|
|
5079 |
$new_options[self::$opt_glance] = self::postchecked(self::$opt_glance) ? 1 : 0;
|
5080 |
$new_options[self::$opt_autoplay] = self::postchecked(self::$opt_autoplay) ? 1 : 0;
|
5081 |
$new_options[self::$opt_debugmode] = self::postchecked(self::$opt_debugmode) ? 1 : 0;
|
|
|
5082 |
$new_options[self::$opt_admin_off_scripts] = self::postchecked(self::$opt_admin_off_scripts) ? 1 : 0;
|
5083 |
$new_options[self::$opt_defer_js] = self::postchecked(self::$opt_defer_js) ? 1 : 0;
|
5084 |
$new_options[self::$opt_defer_jquery] = self::postchecked(self::$opt_defer_jquery) ? 1 : 0;
|
@@ -5596,6 +5633,17 @@ class YouTubePrefs
|
|
5596 |
<button type="button" class="button-secondary ytprefs-ob-nav-close">Cancel</button>
|
5597 |
<button type="button" disabled class="button-primary ytprefs-ob-nav-next">Next »</button>
|
5598 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5599 |
</div>
|
5600 |
</div>
|
5601 |
<div class="ytprefs-ob-step ytprefs-ob-step2">
|
3 |
Plugin Name: Embed Plus Plugin for YouTube
|
4 |
Plugin URI: https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx?ref=plugin
|
5 |
Description: YouTube Embed Plugin. Embed a YouTube channel gallery, playlist gallery, YouTube live stream. Lite embeds with defer JavaScript and facade options
|
6 |
+
Version: 14.1.1
|
7 |
Author: Embed Plus for YouTube Team
|
8 |
Author URI: https://www.embedplus.com
|
9 |
Requires at least: 4.5
|
|
|
10 |
*/
|
11 |
|
12 |
/*
|
35 |
|
36 |
public static $folder_name = 'youtube-embed-plus';
|
37 |
public static $curltimeout = 30;
|
38 |
+
public static $version = '14.1.1';
|
39 |
public static $opt_version = 'version';
|
40 |
public static $optembedwidth = null;
|
41 |
public static $optembedheight = null;
|
46 |
public static $opt_glance = 'glance';
|
47 |
public static $opt_autoplay = 'autoplay';
|
48 |
public static $opt_debugmode = 'debugmode';
|
49 |
+
public static $opt_uninstall_data = 'uninstall_data';
|
50 |
public static $opt_old_script_method = 'old_script_method';
|
51 |
public static $opt_cc_load_policy = 'cc_load_policy';
|
52 |
public static $opt_cc_lang_pref = 'cc_lang_pref';
|
720 |
$step1_live_errors = '';
|
721 |
$step1_live_error_invalid = 'Sorry, that does not seem to be a valid link to an existing live video. ' . $step1_api_error_msg;
|
722 |
$step1_livechannel_errors = '';
|
723 |
+
$step1_livechannel_error_invalid = __('Sorry, that does not seem to be a link to an existing channel. Note: the custom channel name will not work. Please enter either a) the official channel format shown above, or b) any any single video belonging to the channel and the plugin can retrieve the official channel format for you.', 'text_domain');
|
724 |
|
725 |
$if_live_preview = false;
|
726 |
|
1039 |
{
|
1040 |
throw new Exception();
|
1041 |
}
|
1042 |
+
if (preg_match(self::$justurlregex, $search) || preg_match('@/channel/(.+)@', $search))
|
1043 |
{
|
1044 |
try
|
1045 |
{
|
1046 |
$thechannelid = null;
|
1047 |
+
if (preg_match(self::$justurlregex, $search))
|
|
|
|
|
|
|
1048 |
{
|
1049 |
+
// single id
|
1050 |
+
$theytid = null;
|
1051 |
+
try
|
1052 |
+
{
|
1053 |
+
$theytid = self::try_get_ytid($search);
|
1054 |
+
}
|
1055 |
+
catch (Exception $ex)
|
1056 |
+
{
|
1057 |
+
|
1058 |
+
}
|
1059 |
+
$chanvid = null;
|
1060 |
+
if ($theytid)
|
1061 |
+
{
|
1062 |
+
$chanvid = self::get_video_snippet($theytid);
|
1063 |
+
}
|
1064 |
+
if ($chanvid)
|
1065 |
+
{
|
1066 |
+
$thechannelid = $chanvid->snippet->channelId;
|
1067 |
+
}
|
1068 |
+
}
|
1069 |
+
else
|
1070 |
+
{
|
1071 |
+
// channel id
|
1072 |
+
$chanmatch = array();
|
1073 |
+
preg_match('@/channel/(.+)@', $search, $chanmatch);
|
1074 |
+
if (!empty($chanmatch))
|
1075 |
+
{
|
1076 |
+
$thechannelid = $chanmatch[1];
|
1077 |
+
}
|
1078 |
}
|
1079 |
if (!empty($thechannelid))
|
1080 |
{
|
1198 |
}
|
1199 |
?>
|
1200 |
<p>
|
1201 |
+
<?php _e('<strong>Is your live stream not working?</strong> Read more here: <a href="https://support.google.com/youtube/answer/2474026?hl=en" target="_blank">https://support.google.com/youtube/answer/2474026?hl=en</a>', 'text_domain'); ?>
|
|
|
|
|
|
|
1202 |
</p>
|
1203 |
</div>
|
1204 |
<?php
|
1343 |
else
|
1344 |
{
|
1345 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1346 |
<div class="livestream-tabs">
|
1347 |
<ul>
|
1348 |
<li><a href="#livestream-tabs-2">Channel-based livestream (recommended)<sup class="orange">new</sup></a></li>
|
1370 |
</div>
|
1371 |
<div id="livestream-tabs-2">
|
1372 |
<p>
|
1373 |
+
<?php _e('This will embed a video that will automatically display the next upcoming live stream from a channel. You have 2 choices:', 'text_domain'); ?>
|
1374 |
</p>
|
1375 |
+
<ol>
|
1376 |
+
<li>
|
1377 |
+
<?php _e('Enter the link to the official channel page below (note the word "channel" should be in the link, with a long ID afterward).<br>Example', 'text_domain'); ?>: https://www.youtube.com/<strong>channel</strong>/UCL0iAkpqV5YaIVG7xkDtS4Q
|
1378 |
+
</li>
|
1379 |
+
<li>
|
1380 |
+
<?php _e('Or, if you do not know where to find the above format, you can enter any single video that is owned by the channel, and the plugin can retrieve the above format for you.<br>Example', 'text_domain'); ?>: https://www.youtube.com/watch?<strong>v=3tXY8YSIxHM</strong>
|
1381 |
+
</li>
|
1382 |
+
</ol>
|
1383 |
<form name="wizform_livechannel" method="post" action="" class="wizform" id="wizform_livechannel">
|
1384 |
<?php wp_nonce_field('_epyt_wiz', '_epyt_nonce', true); ?>
|
1385 |
<div class="center txt-button-align">
|
1958 |
$_not_live_on = 0;
|
1959 |
$_not_live_on_channel = 0;
|
1960 |
$_debugmode = 0;
|
1961 |
+
$_uninstall_data = 0;
|
1962 |
$_admin_off_scripts = 0;
|
1963 |
$_defer_js = 0;
|
1964 |
$_defer_jquery = 0;
|
1989 |
$_glance = self::tryget($arroptions, self::$opt_glance, $_glance);
|
1990 |
$_autoplay = self::tryget($arroptions, self::$opt_autoplay, 0);
|
1991 |
$_debugmode = self::tryget($arroptions, self::$opt_debugmode, 0);
|
1992 |
+
$_uninstall_data = self::tryget($arroptions, self::$opt_uninstall_data, 0);
|
1993 |
$_old_script_method = self::tryget($arroptions, self::$opt_old_script_method, 0);
|
1994 |
$_cc_load_policy = self::tryget($arroptions, self::$opt_cc_load_policy, 0);
|
1995 |
$_cc_lang_pref = self::tryget($arroptions, self::$opt_cc_lang_pref, $_cc_lang_pref);
|
1999 |
$_rel = self::tryget($arroptions, self::$opt_rel, 1);
|
2000 |
$_fs = self::tryget($arroptions, self::$opt_fs, 1);
|
2001 |
$_playsinline = self::tryget($arroptions, self::$opt_playsinline, 0);
|
2002 |
+
$_origin = self::tryget($arroptions, self::$opt_origin, 1);
|
2003 |
$_hl = self::tryget($arroptions, self::$opt_hl, '');
|
2004 |
$_dohl = self::tryget($arroptions, self::$opt_dohl, 0);
|
2005 |
$_theme = self::tryget($arroptions, self::$opt_theme, 'dark');
|
2155 |
self::$opt_not_live_on => $_not_live_on,
|
2156 |
self::$opt_not_live_on_channel => $_not_live_on_channel,
|
2157 |
self::$opt_debugmode => $_debugmode,
|
2158 |
+
self::$opt_uninstall_data => $_uninstall_data,
|
2159 |
self::$opt_admin_off_scripts => $_admin_off_scripts,
|
2160 |
self::$opt_defer_js => $_defer_js,
|
2161 |
self::$opt_defer_jquery => $_defer_jquery,
|
2855 |
if ($iscontent && !$isoverride && $finalparams[self::$opt_gb_compat] == 1 && current_theme_supports('responsive-embeds'))// self::using_gutenberg())
|
2856 |
{
|
2857 |
// don't do the following if: overriding default YT, is widget
|
2858 |
+
$begin_gb_wrapper = '<figure class="wp-block-embed wp-block-embed-youtube is-type-video is-provider-youtube epyt-figure"><div class="wp-block-embed__wrapper">';
|
2859 |
//wp-block-embed-youtube is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio
|
2860 |
$end_gb_wrapper = '</div></figure>';
|
2861 |
}
|
3262 |
$new_pointer_content = '<h3>' . __('New Update') . '</h3>'; // ooopointer
|
3263 |
|
3264 |
$new_pointer_content .= '<p>'; // ooopointer
|
3265 |
+
$new_pointer_content .= "This update has more compatibility for WordPress 6.0, adds easier live stream embedding, and allows for cleaner uninstalls for both free and <a target=_blank href=" . self::$epbase . '/dashboard/pro-easy-video-analytics.aspx?ref=frompointer' . ">Pro versions</a>.";
|
3266 |
if (self::vi_logged_in())
|
3267 |
{
|
3268 |
$new_pointer_content .= "<br><br><strong>Note:</strong> You are currently logged into the vi intelligence feature. vi support is being deprecated in the next version, so we recommend taking the vi ads down from your site. Please contact ext@embedplus.com for questions.";
|
3987 |
The plugin will automatically switch to your video's live stream or premiere once it's active. In the <em>"Not Live" Fallback Content</em> box below, enter what you would like to appear until then.
|
3988 |
You can even insert shortcodes from our plugin into the box below (shortcodes from other plugins may or may not work correctly).
|
3989 |
If you just want to show the standard countdown player that YouTube provides, don't use this feature.
|
3990 |
+
<strong>NOTE: Turning this on for direct-link live streams uses a significant amount of your YouTube API quota. We suggest unchecking it if your site has high traffic. If you chose to use this feature, do <u>not</u> put another live stream embed below.</strong>
|
3991 |
</label>
|
3992 |
<br>
|
3993 |
<br>
|
3994 |
<input name="<?php echo self::$opt_not_live_on_channel; ?>" id="<?php echo self::$opt_not_live_on_channel; ?>" <?php checked($all[self::$opt_not_live_on_channel], 1); ?> type="checkbox" class="checkbox">
|
3995 |
+
<label for="<?php echo self::$opt_not_live_on_channel; ?>"><span class="chktitle">Turn on for <b>channel</b> live streams: <sup class="orange">beta</sup></span>
|
3996 |
If your live stream embed is channel-based, YouTube might show an error message if there is no upcoming or currently streaming video from your channel.
|
3997 |
Instead of showing an error, you can display some "coming soon" content in that space for your visitors to see until you've scheduled a live stream or premiere
|
3998 |
(Once you've scheduled something, YouTube will display the usual countdown until the stream happens).
|
3999 |
In the <em>"Not Live" Fallback Content</em> box below, enter what you would like to appear when nothing is playing or scheduled to play yet on your channel.
|
4000 |
You can even insert shortcodes from our plugin into the box below (shortcodes from other plugins may or may not work correctly).
|
4001 |
+
<strong>NOTE: This feature for channel live streams is experimental, but it will preserve your API quota. We recommend trying this instead of the direct-link option, to see if it works for your site. We hope to improve this feature over time. If you chose to use this feature, do <u>not</u> put another live stream embed below.</strong>
|
4002 |
</label>
|
4003 |
<div class="p not-live-content">
|
4004 |
<p>
|
4467 |
It may print out some diagnostic info so that we can help you solve your issue.
|
4468 |
</label>
|
4469 |
</p>
|
4470 |
+
<p>
|
4471 |
+
<input name="<?php echo self::$opt_uninstall_data; ?>" id="<?php echo self::$opt_uninstall_data; ?>" <?php checked($all[self::$opt_uninstall_data], 1); ?> type="checkbox" class="checkbox">
|
4472 |
+
<label for="<?php echo self::$opt_uninstall_data; ?>">
|
4473 |
+
<b class="chktitle">Delete Options When Uninstalling: <sup class="orange">new</sup></b> Checking this box will permanently delete your options the next time you uninstall the plugin. Leave it unchecked
|
4474 |
+
to preserve your options between installations.
|
4475 |
+
</label>
|
4476 |
+
</p>
|
4477 |
</div>
|
4478 |
|
4479 |
|
4527 |
</h3>
|
4528 |
<p>
|
4529 |
Suppose you have a few videos that need to be different from the above defaults. You can add options to the end of a link as displayed below to override the above defaults. Each option should begin with '&'.
|
4530 |
+
<br><span class="orange">PRO users: You can use the <a href="<?php echo self::$epbase . '/dashboard/pro-easy-video-analytics.aspx?ref=manual' ?>" target="_blank">customize</a> buttons that you will see inside the wizard, instead of memorizing the following codes.</span>
|
4531 |
</p>
|
4532 |
<?php
|
4533 |
_e('<ul class="reglist">');
|
4741 |
<h2>Plugin Support</h2>
|
4742 |
|
4743 |
<div id="nonprosupport">
|
4744 |
+
<p>
|
4745 |
+
Here is a short video explaining a few of the plugin's features:
|
4746 |
+
</p>
|
4747 |
+
<div class="epyt-fitvid">
|
4748 |
+
<iframe src="https://www.youtube.com/embed/QDdvXBqfrzM?rel=0" allowfullscreen="" frameborder="0"></iframe>
|
4749 |
+
</div>
|
4750 |
+
<p>
|
4751 |
+
We've also found that a common support request has been from users that are pasting video links on single lines, as required, but are not seeing the video embed show up. One of these suggestions is usually the fix:
|
4752 |
+
</p>
|
4753 |
<ul class="reglist">
|
4754 |
<li>Make sure the URL is really on its own line by itself. Or, if you need multiple videos on the same line, make sure each URL is wrapped properly with the shortcode (Example: <code>[embedyt]http://www.youtube.com/watch?v=ABCDEFGHIJK&width=400&height=250[/embedyt]</code>)</li>
|
4755 |
<li>Make sure the URL is not an active hyperlink (i.e., it should just be plain text). Otherwise, highlight the URL and click the "unlink" button in your editor: <img src="<?php echo plugins_url('images/unlink.png', __FILE__) ?>"/>.</li>
|
5115 |
$new_options[self::$opt_glance] = self::postchecked(self::$opt_glance) ? 1 : 0;
|
5116 |
$new_options[self::$opt_autoplay] = self::postchecked(self::$opt_autoplay) ? 1 : 0;
|
5117 |
$new_options[self::$opt_debugmode] = self::postchecked(self::$opt_debugmode) ? 1 : 0;
|
5118 |
+
$new_options[self::$opt_uninstall_data] = self::postchecked(self::$opt_uninstall_data) ? 1 : 0;
|
5119 |
$new_options[self::$opt_admin_off_scripts] = self::postchecked(self::$opt_admin_off_scripts) ? 1 : 0;
|
5120 |
$new_options[self::$opt_defer_js] = self::postchecked(self::$opt_defer_js) ? 1 : 0;
|
5121 |
$new_options[self::$opt_defer_jquery] = self::postchecked(self::$opt_defer_jquery) ? 1 : 0;
|
5633 |
<button type="button" class="button-secondary ytprefs-ob-nav-close">Cancel</button>
|
5634 |
<button type="button" disabled class="button-primary ytprefs-ob-nav-next">Next »</button>
|
5635 |
</div>
|
5636 |
+
<h2>
|
5637 |
+
Intro Video
|
5638 |
+
</h2>
|
5639 |
+
<p>
|
5640 |
+
Want a quick visual overview? Here's a preview of some of the free features of the plugin.
|
5641 |
+
</p>
|
5642 |
+
<div class="epyt-fitvid">
|
5643 |
+
<iframe src="https://www.youtube.com/embed/QDdvXBqfrzM?rel=0" allowfullscreen="" frameborder="0"></iframe>
|
5644 |
+
</div>
|
5645 |
+
<p>
|
5646 |
+
</p>
|
5647 |
</div>
|
5648 |
</div>
|
5649 |
<div class="ytprefs-ob-step ytprefs-ob-step2">
|