diff --git a/README.md b/README.md
index 69edb0fe..20e325ec 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
> 一个多彩,轻松上手,体验完善,具有强大自定义功能的WordPress主题(基于 [Sakura](https://github.com/mashirozx/Sakura) 主题)
-[![GitHub release](https://img.shields.io/github/v/release/mirai-mamori/Sakurairo.svg?style=for-the-badge&logo=appveyor)](https://github.com/mirai-mamori/Sakurairo/releases/latest)[![GitHub Release Date](https://img.shields.io/github/release-date/mirai-mamori/Sakurairo?style=for-the-badge&logo=appveyor)](https://github.com/mirai-mamori/Sakurairo/releases)![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/mirai-mamori/Sakurairo?style=for-the-badge&logo=appveyor)[![jsDelivr hits (GitHub)](https://img.shields.io/jsdelivr/gh/hm/mirai-mamori/sakurairo?color=red&logo=jsdelivr&logoColor=red&style=for-the-badge)](https://www.jsdelivr.com/package/gh/mirai-mamori/sakurairo)
+[![GitHub release](https://img.shields.io/github/v/release/mirai-mamori/Sakurairo.svg?style=for-the-badge&logo=appveyor)](https://github.com/mirai-mamori/Sakurairo/releases/latest)[![GitHub Release Date](https://img.shields.io/github/release-date/mirai-mamori/Sakurairo?style=for-the-badge&logo=appveyor)](https://github.com/mirai-mamori/Sakurairo/releases)![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/mirai-mamori/Sakurairo?style=for-the-badge&logo=appveyor)[![jsDelivr hits (GitHub)](https://img.shields.io/jsdelivr/gh/hm/Fuukei/Public_Repository?color=red&logo=jsdelivr&logoColor=red&style=for-the-badge)](https://www.jsdelivr.com/package/gh/mirai-mamori/sakurairo)
## 宣传视频(帮助你更好了解本主题特性):
diff --git a/footer.php b/footer.php
index 5ef6bbe2..e76872c5 100644
--- a/footer.php
+++ b/footer.php
@@ -32,7 +32,7 @@
- Theme Sakurairo by Hitomi
+ Theme Sakurairo by Fuukei
diff --git a/inc/decorate.php b/inc/decorate.php
index 0fedb62c..79b6563b 100644
--- a/inc/decorate.php
+++ b/inc/decorate.php
@@ -111,6 +111,10 @@ function customizer_css() { ?>
.sorry li a:hover {
color: ;
}
+.header-info p:hover {
+ color: ;
+ transition: all .4s;
+}
.post-tags a:hover {
color:
}
@@ -395,6 +399,12 @@ function customizer_css() { ?>
.the-feature a {
color: ;
}
+#moblieGoTop:hover,
+#changskin:hover {
+ color: ;
+ background-color: #fff;
+ opacity: .8;
+}
.menu-list li:hover {
background-color: ;
}
@@ -956,7 +966,8 @@ function customizer_css() { ?>
html,#main-container,.pattern-center:after,#mo-nav,.headertop-bar::after,.comments,.site-footer,.pattern-center-blank,.yya,.blank,.toc,.search-form input,.wrapper,.site-footer,.site-wrapper,#moblieGoTop:hover,#changskin:hover,.post-list-show,.post-list hr,.post-date,.float-content i:hover{transition:background 1s;}
.entry-content p,.entry-content ul,.entry-content ol,.comments .body p,.float-content,.post-list p,.link-title{transition:color 1s;}
h1.fes-title,h1.main-title{transition:color 1s;transition:border 1s;}
-.header-info p, .header-info, .focusinfo .header-tou img, .top-social img, .center-text{transition:color 1s;transition:background 1s;}
+.header-info, .focusinfo .header-tou img, .top-social img, .center-text{transition:color 1s;transition:background 1s;}
+.header-info p {transition:color .4s;}
/*字重*/
diff --git a/inc/login.css b/inc/login.css
index 0e1b7856..864bcb88 100644
--- a/inc/login.css
+++ b/inc/login.css
@@ -152,7 +152,7 @@ color: #676767 !important}
font-size:16px;
text-align:center;
color:#FFF;
- /*background:#EE9CA7;*/
+ /*background:#FB98C0;*/
font-weight:normal;
cursor:pointer;
box-shadow: none;
@@ -285,7 +285,7 @@ input[type=checkbox]:checked:before {
background: #fff;
z-index: 3;
cursor: move;
- /*color: #EE9CA7;*/
+ /*color: #FB98C0;*/
font-size: 38px;
font-weight: 900;
border-radius: 12px;
@@ -301,7 +301,7 @@ input[type=checkbox]:checked:before {
font-style: oblique;
color: #FFF;
border-radius: 12px;
- /*background-color: #EE9CA7;*/
+ /*background-color: #FB98C0;*/
line-height: 46px;
text-align: center;
z-index: 2;
@@ -360,7 +360,7 @@ input[type=checkbox]:checked:before {
}
/*.forgetmenot input:checked + label {
- background: #EE9CA7;
+ background: #FB98C0;
}*/
.forgetmenot input:checked + label:after {
diff --git a/options.php b/options.php
index cf554c98..74503b94 100644
--- a/options.php
+++ b/options.php
@@ -283,7 +283,7 @@ function optionsframework_options()
'name' => __('Footer Info', 'sakurairo'),
'desc' => __('Footer description, support for HTML code', 'sakurairo'),
'id' => 'footer_info',
- 'std' => 'Copyright © by Hitomi All Rights Reserved.',
+ 'std' => 'Copyright © by FUUKEI All Rights Reserved.',
'type' => 'textarea');
$options[] = array(
@@ -313,7 +313,7 @@ function optionsframework_options()
'options' => array(
'tag' => 'https://img.shields.io/github/v/release/mirai-mamori/Sakurairo.svg?style=flat-square',
'tag2' => 'https://img.shields.io/github/release-date/mirai-mamori/Sakurairo?style=flat-square',
- 'tag3' => 'https://data.jsdelivr.com/v1/package/gh/mirai-mamori/sakurairo/badge',
+ 'tag3' => 'https://data.jsdelivr.com/v1/package/gh/Fuukei/Public_Repository/badge',
),
);
@@ -1625,7 +1625,7 @@ function optionsframework_options()
'name' => __('Cherry Blossom Falling Effect', 'sakurairo'),
'desc' => __('Check open', 'sakurairo'),
'id' => 'sakurajs',
- 'std' => '1',
+ 'std' => '0',
'type' => 'checkbox');
$options[] = array(
@@ -1645,7 +1645,7 @@ function optionsframework_options()
'name' => __('Wave Effects', 'sakurairo'),
'desc' => __('Check open', 'sakurairo'),
'id' => 'bolangcss',
- 'std' => '1',
+ 'std' => '0',
'type' => 'checkbox');
$options[] = array(
@@ -1660,7 +1660,7 @@ function optionsframework_options()
'name' => __('live2D', 'sakurairo'),
'desc' => __('Check open', 'sakurairo'),
'id' => 'live2djs',
- 'std' => '1',
+ 'std' => '0',
'type' => 'checkbox');
$options[] = array(
@@ -1696,7 +1696,7 @@ function optionsframework_options()
'name' => __('A Brief Remark', 'sakurairo'),
'desc' => __('Check open', 'sakurairo'),
'id' => 'oneword',
- 'std' => '1',
+ 'std' => '0',
'type' => 'checkbox');
$options[] = array(
diff --git a/style.css b/style.css
index 28210282..2dc4f07f 100644
--- a/style.css
+++ b/style.css
@@ -3,10 +3,10 @@
/*
Theme Name: Sakurairo
Theme URI: https://github.com/mirai-mamori/Sakurairo
-Author: Hitomi , Ukenn , Spirit , Bymoye , Mashiro
+Author: made by FUUKEI
Author URI: https://asuhe.jp/
Description: A colorful, Easy-to-use, Perfect Experience, and Powerful Customizable WordPress Theme (Based on Theme Sakura)
-Version: 1.20.1
+Version: 1.20.7
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sakurairo
@@ -323,7 +323,7 @@ button,
input,
select,
textarea {
- color: #EE9CA7;
+ color: #FB98C0;
font-size: 15px;
line-height: 1.5
}
@@ -361,7 +361,7 @@ blockquote:before {
position: absolute;
top: -25px;
left: 12px;
- color: #EE9CA7;
+ color: #FB98C0;
font-family: FontAwesome
}
@@ -371,7 +371,7 @@ blockquote:after {
position: absolute;
bottom: -25px;
right: -5px;
- color: #EE9CA7;
+ color: #FB98C0;
font-family: FontAwesome
}
@@ -547,7 +547,7 @@ input[type=url],
input[type=week],
textarea {
color: #666;
- border: 1px solid #EE9CA7;
+ border: 1px solid #FB98C0;
border-radius: 15px
}
@@ -609,7 +609,7 @@ a {
a:active,
a:focus,
a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
a:focus {
@@ -619,7 +619,7 @@ a:focus {
a:active,
a:hover {
outline: 0;
- color: #EE9CA7
+ color: #FB98C0
}
.site-top {
@@ -844,7 +844,7 @@ a:hover {
font-size: 16px;
outline: 0;
background-color: #fff;
- color: #EE9CA7;
+ color: #FB98C0;
cursor: pointer;
padding: 15px;
border-radius: 10px;
@@ -863,7 +863,7 @@ a:hover {
font-size: 16px;
outline: 0;
background-color: #fff;
- color: #EE9CA7;
+ color: #FB98C0;
cursor: pointer;
padding: 15px;
border-radius: 10px;
@@ -1035,7 +1035,7 @@ a:hover {
.yya {
position: fixed;
left: 0;
- background: rgba(255, 250, 250, .92);
+ background: rgba(255, 255, 255, .75);
box-shadow: 0 1px 40px -8px rgba(255, 221, 225, .4)
}
@@ -1046,7 +1046,7 @@ a:hover {
}
.site-header:hover {
- background-color: #fffafa
+ background-color: rgba(255, 255, 255, .9);
}
.sabit {
@@ -1072,7 +1072,7 @@ a:hover {
}
.site-title a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
.site-title img {
@@ -1152,11 +1152,11 @@ a:hover {
.site-top ul li a {
padding: 10px 0;
display: inline-block;
- color: #EE9CA7
+ color: #FB98C0
}
.site-top ul li a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
.site-top ul li a:after {
@@ -1223,7 +1223,7 @@ a:hover {
width: 28px;
margin-left: -15px;
height: 2px;
- background: #EE9CA7;
+ background: #FB98C0;
-webkit-transition: all .2s ease
}
@@ -1404,7 +1404,7 @@ a:hover {
}
.entry-title a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
.p-time {
@@ -1447,7 +1447,7 @@ i.iconfont.hotpost {
.post-more i {
font-size: 25px;
- color: #EE9CA7
+ color: #FB98C0
}
.post-more i:hover {
@@ -1559,7 +1559,7 @@ i.iconfont.hotpost {
width: max-content;
padding: 2px 7px 2px 7px;
border-radius: 6px;
- color: #EE9CA7;
+ color: #FB98C0;
}
.post-meta,
@@ -1629,7 +1629,7 @@ i.iconfont.hotpost {
.float-content i {
font-size: 25px;
- color: #EE9CA7
+ color: #FB98C0
}
.float-content p {
@@ -1790,8 +1790,8 @@ i.iconfont.hotpost {
.navigator i:hover {
color: #fff;
- background: #EE9CA7;
- border: 2px solid #EE9CA7;
+ background: #FB98C0;
+ border: 2px solid #FB98C0;
-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out;
-o-transition: all .2s ease-in-out;
@@ -1816,7 +1816,7 @@ i.iconfont.hotpost {
}
.site-info a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
.footertext p {
@@ -1876,7 +1876,7 @@ h1.page-title {
font-weight: 400;
border: 1px dashed #ddd;
padding: 10px 15px;
- color: #EE9CA7;
+ color: #FB98C0;
margin-bottom: 30px
}
@@ -1919,7 +1919,7 @@ h1.page-title.mb- {
}
.post-tags a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
.post-tags i {
@@ -1993,7 +1993,7 @@ h1.page-title.mb- {
}
.post-share ul li a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
.post-share .show-share {
@@ -2781,7 +2781,7 @@ h1.works-title {
#archives-temp h2 {
font-weight: 400;
- color: #EE9CA7;
+ color: #FB98C0;
padding-bottom: 15px;
border-bottom: 1px dashed #F1F1F1;
text-align: center
@@ -2792,7 +2792,7 @@ h1.works-title {
font-style: italic;
font-size: 20px;
font-weight: 400;
- color: #EE9CA7;
+ color: #FB98C0;
margin-left: 30px;
margin-top: 50px
}
@@ -2823,7 +2823,7 @@ span.time {
.ar-time i {
padding: 10px;
border-radius: 100px;
- background: #EE9CA7;
+ background: #FB98C0;
color: #fff
}
@@ -2853,7 +2853,7 @@ span.time {
span.ar-circle {
height: 10px;
width: 10px;
- background: #EE9CA7;
+ background: #FB98C0;
display: inline-block;
position: absolute;
left: -5px;
@@ -2876,7 +2876,7 @@ h1.cat-title {
font-weight: 400;
padding-right: 15px;
border-right: 1px dashed #ddd;
- color: #EE9CA7
+ color: #FB98C0
}
.cat-des p {
@@ -2906,7 +2906,7 @@ header.page-header {
.links ul li {
width: 32%;
float: left;
- border: 1px solid #EE9CA7;
+ border: 1px solid #FB98C0;
padding: 10px 15px;
margin: 4px 4px;
position: relative;
@@ -2918,7 +2918,7 @@ header.page-header {
.links ul li img {
float: left;
- box-shadow: inset 0 0 10px #EE9CA7;
+ box-shadow: inset 0 0 10px #FB98C0;
padding: 5px;
opacity: 1;
transform: rotate(0);
@@ -2949,7 +2949,7 @@ span.sitename {
font-size: 20px;
margin-top: 85px;
margin-left: 8px;
- color: #EE9CA7;
+ color: #FB98C0;
padding-bottom: 10px;
display: block;
-webkit-transition: all .3s;
@@ -2965,7 +2965,7 @@ span.sitename {
font-size: 14px;
padding: 4px 0;
margin-left: 8px;
- border-top: 1px dotted #EE9CA7;
+ border-top: 1px dotted #FB98C0;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
@@ -2984,12 +2984,12 @@ span.sitename {
.link-title span.link-fix {
padding-left: 10px;
- border-left: 3px solid #EE9CA7;
+ border-left: 3px solid #FB98C0;
}
.links ul li:before {
content: "";
- background-color: #EE9CA7;
+ background-color: #FB98C0;
-webkit-transform: skew(45deg, 0);
transform: skew(45deg, 0);
width: 0;
@@ -3004,7 +3004,7 @@ span.sitename {
.links ul li:hover {
color: #27323A;
- border: 1px solid #EE9CA7
+ border: 1px solid #FB98C0
}
.links ul li:hover:before {
@@ -3179,7 +3179,7 @@ a.page-numbers {
}
.comment .body .comment-at {
- color: #EE9CA7;
+ color: #FB98C0;
text-decoration: none
}
@@ -3328,7 +3328,7 @@ a.page-numbers {
}
.comment h4 a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
.comment hr {
@@ -3466,7 +3466,7 @@ a.page-numbers {
}
.commentbody:focus {
- border-color: #EE9CA7;
+ border-color: #FB98C0;
transition: border-color .25s
}
@@ -3483,7 +3483,7 @@ a.page-numbers {
.commentbody:not(:placeholder-shown)~.input-label,
.commentbody:focus~.input-label {
color: #fff;
- background-color: #EE9CA7;
+ background-color: #FB98C0;
transform: scale(.75) translate(-2px, -37px);
border-radius: 3px
}
@@ -3661,7 +3661,7 @@ a.page-numbers {
h1.fes-title,
h1.main-title {
- color: #EE9CA7;
+ color: #FB98C0;
font-size: 18px;
font-weight: 400;
padding-bottom: 10px;
@@ -3890,7 +3890,7 @@ li.feature-2 {
}
.focusinfo .header-tou img {
- box-shadow: inset 0 0 10px #EE9CA7;
+ box-shadow: inset 0 0 10px #FB98C0;
padding: 5px;
opacity: 1;
transform: rotate(0);
@@ -3990,7 +3990,7 @@ li.feature-2 {
width: 63%;
margin: auto;
font-size: 16px;
- color: #EE9CA7;
+ color: #FB98C0;
background: rgba(255, 250, 250, 0.92);
padding: 15px;
margin-top: 22px;
@@ -4020,7 +4020,8 @@ li.feature-2 {
font-family: Ubuntu, sans-serif;
overflow: hidden;
text-overflow: ellipsis;
- white-space: nowrap
+ white-space: nowrap;
+ transition:color .4s;
}
.top-social {
@@ -4138,7 +4139,7 @@ li.feature-2 {
}
i.iconfont.js-toggle-search.iconsearch {
- color: #EE9CA7;
+ color: #FB98C0;
cursor: pointer;
font-size: 20px;
-webkit-transition: all .3s ease-in-out;
@@ -4202,7 +4203,7 @@ i.iconfont.js-toggle-search.iconsearch {
.search_close:after,
.search_close:before {
- background-color: #EE9CA7;
+ background-color: #FB98C0;
position: absolute;
content: "";
width: 30px;
@@ -4246,19 +4247,19 @@ i.iconfont.js-toggle-search.iconsearch {
}
.search-form input::-webkit-input-placeholder {
- color: #EE9CA7
+ color: #FB98C0
}
.search-form input:-moz-placeholder {
- color: #EE9CA7
+ color: #FB98C0
}
.search-form input::-moz-placeholder {
- color: #EE9CA7
+ color: #FB98C0
}
.search-form input:-ms-input-placeholder {
- color: #EE9CA7
+ color: #FB98C0
}
.s-search {
@@ -4282,7 +4283,7 @@ i.iconfont.js-toggle-search.iconsearch {
font-size: 32px;
font-size: 1.5rem;
line-height: 1;
- color: #EE9CA7;
+ color: #FB98C0;
position: absolute;
bottom: 12px;
margin-top: -16px;
@@ -4348,7 +4349,7 @@ i.iconfont.js-toggle-search.iconsearch {
.ins-section .fa {
font-size: 18px;
- color: #EE9CA7;
+ color: #FB98C0;
bottom: unset;
left: 12px;
margin-top: -3px;
@@ -4377,9 +4378,9 @@ body.dark .ins-section .fa {
text-align: center;
padding: 8px 15px;
z-index: 1;
- color: #EE9CA7;
- border-bottom: 3px solid #EE9CA7;
- border-color: #EE9CA7;
+ color: #FB98C0;
+ border-bottom: 3px solid #FB98C0;
+ border-color: #FB98C0;
}
.ins-section .ins-search-item header,
@@ -4414,7 +4415,7 @@ body.dark .ins-section .fa {
.ins-section .ins-search-item.active .ins-search-preview,
.ins-section .ins-search-item:hover header,
.ins-section .ins-search-item:hover .iconfont {
- color: #EE9CA7;
+ color: #FB98C0;
}
.sorry ul {
@@ -4423,11 +4424,11 @@ body.dark .ins-section .fa {
}
.sorry li a {
- color: #EE9CA7
+ color: #FB98C0
}
.sorry {
- color: #EE9CA7;
+ color: #FB98C0;
margin-bottom: 80px
}
@@ -4436,12 +4437,12 @@ body.dark .ins-section .fa {
}
.sorry li a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
.sorry-inner {
padding: 20px;
- border: 1px solid #EE9CA7
+ border: 1px solid #FB98C0
}
.error-img {
@@ -4455,15 +4456,15 @@ body.dark .ins-section .fa {
.err-button.back a {
padding: 10px 30px;
margin: 0 10px;
- border: 1px solid #EE9CA7;
- color: #EE9CA7;
+ border: 1px solid #FB98C0;
+ color: #FB98C0;
-webkit-border-radius: 50px;
-moz-border-radius: 50px;
border-radius: 50px
}
#gohome {
- background: #EE9CA7;
+ background: #FB98C0;
color: #fff
}
@@ -4854,7 +4855,7 @@ object {
}
#nprogress .bar {
- background: #EE9CA7;
+ background: #FB98C0;
position: fixed;
z-index: 1031;
top: 0;
@@ -4869,7 +4870,7 @@ object {
right: 0;
width: 100px;
height: 100%;
- box-shadow: 0 0 10px #EE9CA7, 0 0 5px #EE9CA7;
+ box-shadow: 0 0 10px #FB98C0, 0 0 5px #FB98C0;
opacity: 1;
-webkit-transform: rotate(3deg) translate(0, -4px);
-ms-transform: rotate(3deg) translate(0, -4px);
@@ -4893,8 +4894,8 @@ object {
height: 20px;
box-sizing: border-box;
border: solid 3px transparent;
- border-top-color: #EE9CA7;
- border-left-color: #EE9CA7;
+ border-top-color: #FB98C0;
+ border-left-color: #FB98C0;
border-radius: 50%;
-webkit-animation: nprogress-spinner .4s linear infinite;
animation: nprogress-spinner .4s linear infinite
@@ -5020,8 +5021,8 @@ i.iconfont.down {
}
#pagination a:hover {
- border: 1px solid #EE9CA7;
- color: #EE9CA7
+ border: 1px solid #FB98C0;
+ color: #FB98C0
}
#pagination .loading,
@@ -5203,7 +5204,7 @@ i.iconfont.down {
display: none
}
.links ul li:hover .sitename {
- color: #EE9CA7
+ color: #FB98C0
}
.links ul li:hover .linkdes {
color: #949494;
@@ -5303,14 +5304,14 @@ i.iconfont.down {
position: absolute;
width: 30px;
height: 3px;
- background-color: #EE9CA7;
+ background-color: #FB98C0;
top: 30px;
left: 20px
}
.openNav .icon:after,
.openNav .icon:before {
transition-duration: .5s;
- background-color: #EE9CA7;
+ background-color: #FB98C0;
position: absolute;
content: "";
width: 30px;
@@ -5401,7 +5402,7 @@ i.iconfont.down {
text-align: left
}
#mo-nav ul li a {
- color: #EE9CA7;
+ color: #FB98C0;
font-size: 15px
}
#mo-nav li ul {
@@ -5418,7 +5419,7 @@ i.iconfont.down {
}
#mo-nav ul li a:hover {
cursor: pointer;
- color: #EE9CA7
+ color: #FB98C0
}
.we-content li {
height: 250px
@@ -5467,7 +5468,7 @@ i.iconfont.down {
}
::-webkit-scrollbar-thumb {
- background-color: #EE9CA7
+ background-color: #FB98C0
}
@keyframes poi-deg {
@@ -5749,8 +5750,8 @@ i.iconfont.down {
.ex-login input.login-button:hover,
.ex-register input.register-button:hover {
- background-color: #EE9CA7;
- border-color: #EE9CA7;
+ background-color: #FB98C0;
+ border-color: #FB98C0;
color: #fff
}
@@ -5863,7 +5864,7 @@ i.iconfont.down {
.herder-user-name {
font-size: 12px;
padding: 10px 10px;
- color: #EE9CA7;
+ color: #FB98C0;
border-radius: 4px 4px 0 0
}
@@ -5888,7 +5889,7 @@ i.iconfont.down {
margin: 2px 0;
width: 110px;
text-align: left;
- color: #EE9CA7;
+ color: #FB98C0;
font-size: 13px;
text-align: center
}
@@ -5906,7 +5907,7 @@ i.iconfont.down {
.no-logged a {
display: initial;
- color: #EE9CA7;
+ color: #FB98C0;
font-size: 14px;
padding: 0 5px;
text-decoration: underline
@@ -6352,7 +6353,7 @@ button.botui-actions-buttons-button {
}
.logolink a {
- color: #EE9CA7;
+ color: #FB98C0;
float: left;
font-size: 25px;
font-weight: 800;
@@ -6756,7 +6757,7 @@ input[type=radio]:checked:before {
@media (min-width:861px) {
.hide-live2d {
- background-color: #EE9CA7;
+ background-color: #FB98C0;
bottom: 156px;
visibility: visible;
min-height: 38.75px
@@ -6845,7 +6846,7 @@ input[type=radio]:checked:before {
border: 0;
outline: 0;
background-color: #fff;
- color: #EE9CA7;
+ color: #FB98C0;
cursor: pointer;
padding: 15px;
border-radius: 10px;
@@ -7237,7 +7238,7 @@ li>ol {
}
.art .art-content #archives a:hover {
- color: #EE9CA7
+ color: #FB98C0
}
.art .art-content #archives .al_year {
@@ -7247,7 +7248,7 @@ li>ol {
.art .art-content .al_mon_list .al_post_list>li,
.art-content #archives .al_mon_list .al_mon {
position: relative;
- color: #EE9CA7;
+ color: #FB98C0;
}
.art-content #archives .al_mon_list .al_mon,
@@ -7255,7 +7256,7 @@ li>ol {
padding: 0;
border-radius: 0;
margin: 0;
- color: #ee9CA7;
+ color: #FB98C0;
background: 0 0;
font-weight: 400
}
@@ -7282,7 +7283,7 @@ li>ol {
.art .art-content .al_mon_list .al_post_list>li:after {
position: absolute;
left: 118px;
- background: #EE9CA7;
+ background: #FB98C0;
height: 8px;
width: 8px;
border-radius: 6px;
@@ -7304,7 +7305,7 @@ li>ol {
.art-content #archives .al_mon_list .al_mon:after {
position: absolute;
left: 116px;
- background: #EE9CA7;
+ background: #FB98C0;
height: 12px;
width: 12px;
border-radius: 6px;
@@ -7325,7 +7326,7 @@ li>ol {
max-height: 100%;
height: 100%;
width: 4px;
- background: #EE9CA7;
+ background: #FB98C0;
position: absolute;
left: 120px;
content: "";
@@ -7340,7 +7341,7 @@ li>ol {
.art .art-content .al_mon_list .al_post_list>li:after,
.art-content #archives .al_mon_list .al_mon:after {
- background: #EE9CA7
+ background: #FB98C0
}
.toc-container {
@@ -7423,7 +7424,7 @@ a.toc-link {
}
.is-active-link::before {
- background-color: #EE9CA7/*!important*/
+ background-color: #FB98C0/*!important*/
/*mark*/
}
@@ -7589,11 +7590,11 @@ a.toc-link {
.motion-switcher-table th:hover {
background-color: rgba(245, 245, 245, .5);
- color: #EE9CA7
+ color: #FB98C0
}
.motion-switcher-table .on-hover {
- color: #EE9CA7
+ color: #FB98C0
}
.motion-container {
@@ -7638,7 +7639,7 @@ a.toc-link {
margin: 3px 3px;
display: inline-block;
border-radius: 4px;
- color: #EE9CA7
+ color: #FB98C0
}
.menhera-container .emoji-item:hover {
@@ -7671,7 +7672,7 @@ a.toc-link {
position: fixed;
top: 0;
height: 3px;
- background: #EE9CA7;
+ background: #FB98C0;
transiton-property: width, background;
transition-duration: 1s, 1s;
z-index: 99999
@@ -7882,8 +7883,8 @@ a.toc-link {
}
.insert-image-tips:hover {
- color: #EE9CA7;
- border: 1px solid #EE9CA7
+ color: #FB98C0;
+ border: 1px solid #FB98C0
}
.insert-image-button {
@@ -7898,8 +7899,8 @@ a.toc-link {
}
.insert-image-tips-hover {
- color: #EE9CA7;
- border: 1px solid #EE9CA7
+ color: #FB98C0;
+ border: 1px solid #FB98C0
}
.upload-image-preview {
@@ -7948,7 +7949,7 @@ a.toc-link {
}
.the-feature a {
- color: #EE9CA7
+ color: #FB98C0
}
.the-feature a:hover {
@@ -8300,7 +8301,7 @@ td.hljs-ln-numbers {
.skin-menu {
position: fixed;
left: auto;
- bottom: 10px;
+ bottom: 12px;
right: -50px;
height: auto;
width: 220px;
@@ -8351,7 +8352,7 @@ td.hljs-ln-numbers {
cursor: pointer
}
.menu-list li:hover {
- background-color: #EE9CA7;
+ background-color: #FB98C0;
color: #fff
}
.skin-menu .row-container.font-family-controls {
@@ -8363,7 +8364,7 @@ td.hljs-ln-numbers {
border-radius: 5px;
padding: 5px 5px;
height: 43px;
- color: #EE9CA7;
+ color: #FB98C0;
width: calc(50% - 11px);
font-size: 15px;
font-weight: 400;
@@ -8376,11 +8377,11 @@ td.hljs-ln-numbers {
cursor: pointer
}
.font-family-controls button.selected {
- background-color: #EE9CA7;
+ background-color: #FB98C0;
color: #fff
}
.font-family-controls button:hover {
- background-color: #EE9CA7;
+ background-color: #FB98C0;
color: #fff
}
.control-btn-serif {
@@ -8451,7 +8452,7 @@ td.hljs-ln-numbers {
left: 0 !important
}
#aplayer-float .aplayer-lrc-current {
- color: #EE9CA7;
+ color: #FB98C0;
font-size: 15px;
font-weight: 700
}
@@ -8631,7 +8632,7 @@ h6[id*=toc-head]::before {
width: 100%;
height: 100%;
border-radius: 50%;
- background-color: #EE9CA7;
+ background-color: #FB98C0;
opacity: 0.6;
position: absolute;
top: 0;
@@ -8849,7 +8850,7 @@ h6[id*=toc-head]::before {
height: 100%;
}
.bangumi-next i {
- color: #EE9CA7;
+ color: #FB98C0;
}
.shortcodestyle {
margin: 20px 0px !important;
diff --git a/update-checker/.editorconfig b/update-checker/.editorconfig
new file mode 100644
index 00000000..1b51cad9
--- /dev/null
+++ b/update-checker/.editorconfig
@@ -0,0 +1,15 @@
+[*]
+charset=utf-8
+end_of_line=lf
+insert_final_newline=false
+indent_style=tab
+tab_width=4
+
+[{phpunit.xml.dist,*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}]
+indent_style=space
+indent_size=4
+
+[*.svg]
+indent_style=space
+indent_size=4
+
diff --git a/update-checker/Puc/v4/Factory.php b/update-checker/Puc/v4/Factory.php
index 3723e008..32673c96 100644
--- a/update-checker/Puc/v4/Factory.php
+++ b/update-checker/Puc/v4/Factory.php
@@ -1,6 +1,6 @@
prefix = $nameParts[0] . '_' . $nameParts[1] . '_';
- $this->libraryDir = realpath($this->rootDir . '../..') . '/';
+ $this->libraryDir = $this->rootDir . '../..';
+ if ( !self::isPhar() ) {
+ $this->libraryDir = realpath($this->libraryDir);
+ }
+ $this->libraryDir = $this->libraryDir . '/';
+
$this->staticMap = array(
'PucReadmeParser' => 'vendor/PucReadmeParser.php',
'Parsedown' => 'vendor/Parsedown.php',
@@ -24,6 +29,17 @@ public function __construct() {
spl_autoload_register(array($this, 'autoload'));
}
+ /**
+ * Determine if this file is running as part of a Phar archive.
+ *
+ * @return bool
+ */
+ private static function isPhar() {
+ //Check if the current file path starts with "phar://".
+ static $pharProtocol = 'phar://';
+ return (substr(__FILE__, 0, strlen($pharProtocol)) === $pharProtocol);
+ }
+
public function autoload($className) {
if ( isset($this->staticMap[$className]) && file_exists($this->libraryDir . $this->staticMap[$className]) ) {
/** @noinspection PhpIncludeInspection */
diff --git a/update-checker/Puc/v4p9/DebugBar/Extension.php b/update-checker/Puc/v4p10/DebugBar/Extension.php
similarity index 86%
rename from update-checker/Puc/v4p9/DebugBar/Extension.php
rename to update-checker/Puc/v4p10/DebugBar/Extension.php
index 94017896..deba8c2c 100644
--- a/update-checker/Puc/v4p9/DebugBar/Extension.php
+++ b/update-checker/Puc/v4p10/DebugBar/Extension.php
@@ -1,12 +1,12 @@
updateChecker = $updateChecker;
@@ -142,6 +142,15 @@ protected function preAjaxRequest() {
@ini_set('display_errors', 'On');
}
+ /**
+ * Remove hooks that were added by this extension.
+ */
+ public function removeHooks() {
+ remove_filter('debug_bar_panels', array($this, 'addDebugBarPanel'));
+ remove_action('debug_bar_enqueue_scripts', array($this, 'enqueuePanelDependencies'));
+ remove_action('wp_ajax_puc_v4_debug_check_now', array($this, 'ajaxCheckNow'));
+ }
+
/**
* @param string $filePath
* @return string
@@ -150,11 +159,11 @@ private function getLibraryUrl($filePath) {
$absolutePath = realpath(dirname(__FILE__) . '/../../../' . ltrim($filePath, '/'));
//Where is the library located inside the WordPress directory structure?
- $absolutePath = Puc_v4p9_Factory::normalizePath($absolutePath);
+ $absolutePath = Puc_v4p10_Factory::normalizePath($absolutePath);
- $pluginDir = Puc_v4p9_Factory::normalizePath(WP_PLUGIN_DIR);
- $muPluginDir = Puc_v4p9_Factory::normalizePath(WPMU_PLUGIN_DIR);
- $themeDir = Puc_v4p9_Factory::normalizePath(get_theme_root());
+ $pluginDir = Puc_v4p10_Factory::normalizePath(WP_PLUGIN_DIR);
+ $muPluginDir = Puc_v4p10_Factory::normalizePath(WPMU_PLUGIN_DIR);
+ $themeDir = Puc_v4p10_Factory::normalizePath(get_theme_root());
if ( (strpos($absolutePath, $pluginDir) === 0) || (strpos($absolutePath, $muPluginDir) === 0) ) {
//It's part of a plugin.
diff --git a/update-checker/Puc/v4p9/DebugBar/Panel.php b/update-checker/Puc/v4p10/DebugBar/Panel.php
similarity index 96%
rename from update-checker/Puc/v4p9/DebugBar/Panel.php
rename to update-checker/Puc/v4p10/DebugBar/Panel.php
index dd0e259b..ecd06414 100644
--- a/update-checker/Puc/v4p9/DebugBar/Panel.php
+++ b/update-checker/Puc/v4p10/DebugBar/Panel.php
@@ -1,9 +1,9 @@
';
diff --git a/update-checker/Puc/v4p9/DebugBar/PluginExtension.php b/update-checker/Puc/v4p10/DebugBar/PluginExtension.php
similarity index 72%
rename from update-checker/Puc/v4p9/DebugBar/PluginExtension.php
rename to update-checker/Puc/v4p10/DebugBar/PluginExtension.php
index ca3de424..863ed737 100644
--- a/update-checker/Puc/v4p9/DebugBar/PluginExtension.php
+++ b/update-checker/Puc/v4p10/DebugBar/PluginExtension.php
@@ -1,12 +1,12 @@
'',
+ 'slug' => '',
+ 'checkPeriod' => 12,
+ 'optionName' => '',
+ 'muPluginFile' => '',
+ );
+ $args = array_merge($defaults, array_intersect_key($args, $defaults));
+ extract($args, EXTR_SKIP);
+
+ //Check for the service URI
+ if ( empty($metadataUrl) ) {
+ $metadataUrl = self::getServiceURI($fullPath);
+ }
+
+ /** @noinspection PhpUndefinedVariableInspection These variables are created by extract(), above. */
+ return self::buildUpdateChecker($metadataUrl, $fullPath, $slug, $checkPeriod, $optionName, $muPluginFile);
+ }
+
/**
* Create a new instance of the update checker.
*
* This method automatically detects if you're using it for a plugin or a theme and chooses
* the appropriate implementation for your update source (JSON file, GitHub, BitBucket, etc).
*
- * @see Puc_v4p9_UpdateChecker::__construct
+ * @see Puc_v4p10_UpdateChecker::__construct
*
* @param string $metadataUrl The URL of the metadata file, a GitHub repository, or another supported update source.
* @param string $fullPath Full path to the main plugin file or to the theme directory.
@@ -32,7 +62,7 @@ class Puc_v4p9_Factory {
* @param int $checkPeriod How often to check for updates (in hours).
* @param string $optionName Where to store book-keeping info about update checks.
* @param string $muPluginFile The plugin filename relative to the mu-plugins directory.
- * @return Puc_v4p9_Plugin_UpdateChecker|Puc_v4p9_Theme_UpdateChecker|Puc_v4p9_Vcs_BaseChecker
+ * @return Puc_v4p10_Plugin_UpdateChecker|Puc_v4p10_Theme_UpdateChecker|Puc_v4p10_Vcs_BaseChecker
*/
public static function buildUpdateChecker($metadataUrl, $fullPath, $slug = '', $checkPeriod = 12, $optionName = '', $muPluginFile = '') {
$fullPath = self::normalizePath($fullPath);
@@ -178,6 +208,35 @@ protected static function getThemeDirectoryName($absolutePath) {
return null;
}
+ /**
+ * Get the service URI from the file header.
+ *
+ * @param string $fullPath
+ * @return string
+ */
+ private static function getServiceURI($fullPath) {
+ //Look for the URI
+ if ( is_readable($fullPath) ) {
+ $seek = array(
+ 'github' => 'GitHub URI',
+ 'gitlab' => 'GitLab URI',
+ 'bucket' => 'BitBucket URI',
+ );
+ $seek = apply_filters('puc_get_source_uri', $seek);
+ $data = get_file_data($fullPath, $seek);
+ foreach ($data as $key => $uri) {
+ if ( $uri ) {
+ return $uri;
+ }
+ }
+ }
+
+ //URI was not found so throw an error.
+ throw new RuntimeException(
+ sprintf('Unable to locate URI in header of "%s"', htmlentities($fullPath))
+ );
+ }
+
/**
* Get the name of the hosting service that the URL points to.
*
@@ -294,4 +353,4 @@ public static function addVersion($generalClass, $versionedClass, $version) {
}
}
-endif;
\ No newline at end of file
+endif;
diff --git a/update-checker/Puc/v4p9/InstalledPackage.php b/update-checker/Puc/v4p10/InstalledPackage.php
similarity index 95%
rename from update-checker/Puc/v4p9/InstalledPackage.php
rename to update-checker/Puc/v4p10/InstalledPackage.php
index 0a2768a2..9080c5ab 100644
--- a/update-checker/Puc/v4p9/InstalledPackage.php
+++ b/update-checker/Puc/v4p10/InstalledPackage.php
@@ -1,5 +1,5 @@
$field) ) {
diff --git a/update-checker/Puc/v4p9/Plugin/Package.php b/update-checker/Puc/v4p10/Plugin/Package.php
similarity index 94%
rename from update-checker/Puc/v4p9/Plugin/Package.php
rename to update-checker/Puc/v4p10/Plugin/Package.php
index b92c5f77..debb5ebe 100644
--- a/update-checker/Puc/v4p9/Plugin/Package.php
+++ b/update-checker/Puc/v4p10/Plugin/Package.php
@@ -1,9 +1,9 @@
pluginAbsolutePath);
//If realpath() fails, just normalize the syntax instead.
if (($muPluginDir === false) || ($pluginPath === false)) {
- $muPluginDir = Puc_v4p9_Factory::normalizePath(WPMU_PLUGIN_DIR);
- $pluginPath = Puc_v4p9_Factory::normalizePath($this->pluginAbsolutePath);
+ $muPluginDir = Puc_v4p10_Factory::normalizePath(WPMU_PLUGIN_DIR);
+ $pluginPath = Puc_v4p10_Factory::normalizePath($this->pluginAbsolutePath);
}
$cachedResult = (strpos($pluginPath, $muPluginDir) === 0);
diff --git a/update-checker/Puc/v4p9/Plugin/Ui.php b/update-checker/Puc/v4p10/Plugin/Ui.php
similarity index 98%
rename from update-checker/Puc/v4p9/Plugin/Ui.php
rename to update-checker/Puc/v4p10/Plugin/Ui.php
index 390bcdf7..1ff18d6d 100644
--- a/update-checker/Puc/v4p9/Plugin/Ui.php
+++ b/update-checker/Puc/v4p10/Plugin/Ui.php
@@ -1,14 +1,14 @@
updateChecker = $updateChecker;
diff --git a/update-checker/Puc/v4p9/Plugin/Update.php b/update-checker/Puc/v4p10/Plugin/Update.php
similarity index 81%
rename from update-checker/Puc/v4p9/Plugin/Update.php
rename to update-checker/Puc/v4p10/Plugin/Update.php
index 43456174..89293c5c 100644
--- a/update-checker/Puc/v4p9/Plugin/Update.php
+++ b/update-checker/Puc/v4p10/Plugin/Update.php
@@ -1,5 +1,5 @@
id = $this->id;
$update->url = $this->homepage;
$update->tested = $this->tested;
+ $update->requires_php = $this->requires_php;
$update->plugin = $this->filename;
if ( !empty($this->upgrade_notice) ) {
diff --git a/update-checker/Puc/v4p9/Plugin/UpdateChecker.php b/update-checker/Puc/v4p10/Plugin/UpdateChecker.php
similarity index 89%
rename from update-checker/Puc/v4p9/Plugin/UpdateChecker.php
rename to update-checker/Puc/v4p10/Plugin/UpdateChecker.php
index e99af5ee..c45f109d 100644
--- a/update-checker/Puc/v4p9/Plugin/UpdateChecker.php
+++ b/update-checker/Puc/v4p10/Plugin/UpdateChecker.php
@@ -1,5 +1,5 @@
pluginFile, array($this, 'removeHooks'));
- $this->extraUi = new Puc_v4p9_Plugin_Ui($this);
+ $this->extraUi = new Puc_v4p10_Plugin_Ui($this);
}
/**
* Create an instance of the scheduler.
*
* @param int $checkPeriod
- * @return Puc_v4p9_Scheduler
+ * @return Puc_v4p10_Scheduler
*/
protected function createScheduler($checkPeriod) {
- $scheduler = new Puc_v4p9_Scheduler($this, $checkPeriod, array('load-plugins.php'));
+ $scheduler = new Puc_v4p10_Scheduler($this, $checkPeriod, array('load-plugins.php'));
register_deactivation_hook($this->pluginFile, array($scheduler, 'removeUpdaterCron'));
return $scheduler;
}
@@ -124,13 +124,13 @@ public function removeHooks() {
* @uses wp_remote_get()
*
* @param array $queryArgs Additional query arguments to append to the request. Optional.
- * @return Puc_v4p9_Plugin_Info
+ * @return Puc_v4p10_Plugin_Info
*/
public function requestInfo($queryArgs = array()) {
- list($pluginInfo, $result) = $this->requestMetadata('Puc_v4p9_Plugin_Info', 'request_info', $queryArgs);
+ list($pluginInfo, $result) = $this->requestMetadata('Puc_v4p10_Plugin_Info', 'request_info', $queryArgs);
if ( $pluginInfo !== null ) {
- /** @var Puc_v4p9_Plugin_Info $pluginInfo */
+ /** @var Puc_v4p10_Plugin_Info $pluginInfo */
$pluginInfo->filename = $this->pluginFile;
$pluginInfo->slug = $this->slug;
}
@@ -144,7 +144,7 @@ public function requestInfo($queryArgs = array()) {
*
* @uses PluginUpdateChecker::requestInfo()
*
- * @return Puc_v4p9_Update|null An instance of Plugin_Update, or NULL when no updates are available.
+ * @return Puc_v4p10_Update|null An instance of Plugin_Update, or NULL when no updates are available.
*/
public function requestUpdate() {
//For the sake of simplicity, this function just calls requestInfo()
@@ -153,7 +153,7 @@ public function requestUpdate() {
if ( $pluginInfo === null ){
return null;
}
- $update = Puc_v4p9_Plugin_Update::fromPluginInfo($pluginInfo);
+ $update = Puc_v4p10_Plugin_Update::fromPluginInfo($pluginInfo);
$update = $this->filterUpdateResult($update);
@@ -235,6 +235,22 @@ protected function getUpdateListKey() {
return $this->pluginFile;
}
+ protected function getNoUpdateItemFields() {
+ return array_merge(
+ parent::getNoUpdateItemFields(),
+ array(
+ 'id' => $this->pluginFile,
+ 'slug' => $this->slug,
+ 'plugin' => $this->pluginFile,
+ 'icons' => array(),
+ 'banners' => array(),
+ 'banners_rtl' => array(),
+ 'tested' => '',
+ 'compatibility' => new stdClass(),
+ )
+ );
+ }
+
/**
* Alias for isBeingUpgraded().
*
@@ -265,12 +281,12 @@ public function isBeingUpgraded($upgrader = null) {
* Uses cached update data. To retrieve update information straight from
* the metadata URL, call requestUpdate() instead.
*
- * @return Puc_v4p9_Plugin_Update|null
+ * @return Puc_v4p10_Plugin_Update|null
*/
public function getUpdate() {
$update = parent::getUpdate();
if ( isset($update) ) {
- /** @var Puc_v4p9_Plugin_Update $update */
+ /** @var Puc_v4p10_Plugin_Update $update */
$update->filename = $this->pluginFile;
}
return $update;
@@ -375,20 +391,20 @@ public function addResultFilter($callback) {
}
protected function createDebugBarExtension() {
- return new Puc_v4p9_DebugBar_PluginExtension($this);
+ return new Puc_v4p10_DebugBar_PluginExtension($this);
}
/**
* Create a package instance that represents this plugin or theme.
*
- * @return Puc_v4p9_InstalledPackage
+ * @return Puc_v4p10_InstalledPackage
*/
protected function createInstalledPackage() {
- return new Puc_v4p9_Plugin_Package($this->pluginAbsolutePath, $this);
+ return new Puc_v4p10_Plugin_Package($this->pluginAbsolutePath, $this);
}
/**
- * @return Puc_v4p9_Plugin_Package
+ * @return Puc_v4p10_Plugin_Package
*/
public function getInstalledPackage() {
return $this->package;
diff --git a/update-checker/Puc/v4p9/Scheduler.php b/update-checker/Puc/v4p10/Scheduler.php
similarity index 84%
rename from update-checker/Puc/v4p9/Scheduler.php
rename to update-checker/Puc/v4p10/Scheduler.php
index ce814636..3e9857bb 100644
--- a/update-checker/Puc/v4p9/Scheduler.php
+++ b/update-checker/Puc/v4p10/Scheduler.php
@@ -1,11 +1,11 @@
removeHooks();
+ $this->updateChecker->removeHooks();
+ return;
+ }
//Sanity check and limitation to relevant types.
if (
@@ -106,7 +116,7 @@ public function upgraderProcessComplete(
//Filter out notifications of upgrades that should have no bearing upon whether or not our
//current info is up-to-date.
- if ( is_a($this->updateChecker, 'Puc_v4p9_Theme_UpdateChecker') ) {
+ if ( is_a($this->updateChecker, 'Puc_v4p10_Theme_UpdateChecker') ) {
if ( 'theme' !== $upgradeInfo['type'] || !isset($upgradeInfo['themes']) ) {
return;
}
@@ -120,7 +130,7 @@ public function upgraderProcessComplete(
}
}
- if ( is_a($this->updateChecker, 'Puc_v4p9_Plugin_UpdateChecker') ) {
+ if ( is_a($this->updateChecker, 'Puc_v4p10_Plugin_UpdateChecker') ) {
if ( 'plugin' !== $upgradeInfo['type'] || !isset($upgradeInfo['plugins']) ) {
return;
}
@@ -136,7 +146,7 @@ public function upgraderProcessComplete(
$this->maybeCheckForUpdates();
}
-
+
/**
* Check for updates if the configured check interval has already elapsed.
* Will use a shorter check interval on certain admin pages like "Dashboard -> Updates" or when doing cron.
@@ -233,6 +243,24 @@ public function removeUpdaterCron() {
public function getCronHookName() {
return $this->cronHook;
}
+
+ /**
+ * Remove most hooks added by the scheduler.
+ */
+ public function removeHooks() {
+ remove_filter('cron_schedules', array($this, '_addCustomSchedule'));
+ remove_action('admin_init', array($this, 'maybeCheckForUpdates'));
+ remove_action('load-update-core.php', array($this, 'maybeCheckForUpdates'));
+
+ if ( $this->cronHook !== null ) {
+ remove_action($this->cronHook, array($this, 'maybeCheckForUpdates'));
+ }
+ if ( !empty($this->hourlyCheckHooks) ) {
+ foreach ($this->hourlyCheckHooks as $hook) {
+ remove_action($hook, array($this, 'maybeCheckForUpdates'));
+ }
+ }
+ }
}
endif;
diff --git a/update-checker/Puc/v4p9/StateStore.php b/update-checker/Puc/v4p10/StateStore.php
similarity index 89%
rename from update-checker/Puc/v4p9/StateStore.php
rename to update-checker/Puc/v4p10/StateStore.php
index ff140638..903fee15 100644
--- a/update-checker/Puc/v4p9/StateStore.php
+++ b/update-checker/Puc/v4p10/StateStore.php
@@ -1,8 +1,8 @@
lazyLoad();
@@ -73,10 +73,10 @@ public function getUpdate() {
}
/**
- * @param Puc_v4p9_Update|null $update
+ * @param Puc_v4p10_Update|null $update
* @return $this
*/
- public function setUpdate(Puc_v4p9_Update $update = null) {
+ public function setUpdate(Puc_v4p10_Update $update = null) {
$this->lazyLoad();
$this->update = $update;
return $this;
@@ -138,7 +138,7 @@ public function save() {
$updateClass = get_class($this->update);
$state->updateClass = $updateClass;
$prefix = $this->getLibPrefix();
- if ( Puc_v4p9_Utils::startsWith($updateClass, $prefix) ) {
+ if ( Puc_v4p10_Utils::startsWith($updateClass, $prefix) ) {
$state->updateBaseClass = substr($updateClass, strlen($prefix));
}
}
@@ -169,8 +169,8 @@ protected function load() {
return;
}
- $this->lastCheck = intval(Puc_v4p9_Utils::get($state, 'lastCheck', 0));
- $this->checkedVersion = Puc_v4p9_Utils::get($state, 'checkedVersion', '');
+ $this->lastCheck = intval(Puc_v4p10_Utils::get($state, 'lastCheck', 0));
+ $this->checkedVersion = Puc_v4p10_Utils::get($state, 'checkedVersion', '');
$this->update = null;
if ( isset($state->update) ) {
diff --git a/update-checker/Puc/v4p9/Theme/Package.php b/update-checker/Puc/v4p10/Theme/Package.php
similarity index 92%
rename from update-checker/Puc/v4p9/Theme/Package.php
rename to update-checker/Puc/v4p10/Theme/Package.php
index 4766c5cb..5d9243b8 100644
--- a/update-checker/Puc/v4p9/Theme/Package.php
+++ b/update-checker/Puc/v4p10/Theme/Package.php
@@ -1,7 +1,7 @@
requestMetadata('Puc_v4p9_Theme_Update', 'request_update');
+ list($themeUpdate, $result) = $this->requestMetadata('Puc_v4p10_Theme_Update', 'request_update');
if ( $themeUpdate !== null ) {
- /** @var Puc_v4p9_Theme_Update $themeUpdate */
+ /** @var Puc_v4p10_Theme_Update $themeUpdate */
$themeUpdate->slug = $this->slug;
}
@@ -53,6 +53,16 @@ public function requestUpdate() {
return $themeUpdate;
}
+ protected function getNoUpdateItemFields() {
+ return array_merge(
+ parent::getNoUpdateItemFields(),
+ array(
+ 'theme' => $this->directoryName,
+ 'requires' => '',
+ )
+ );
+ }
+
public function userCanInstallUpdates() {
return current_user_can('update_themes');
}
@@ -61,10 +71,10 @@ public function userCanInstallUpdates() {
* Create an instance of the scheduler.
*
* @param int $checkPeriod
- * @return Puc_v4p9_Scheduler
+ * @return Puc_v4p10_Scheduler
*/
protected function createScheduler($checkPeriod) {
- return new Puc_v4p9_Scheduler($this, $checkPeriod, array('load-themes.php'));
+ return new Puc_v4p10_Scheduler($this, $checkPeriod, array('load-themes.php'));
}
/**
@@ -78,7 +88,7 @@ public function isBeingUpgraded($upgrader = null) {
}
protected function createDebugBarExtension() {
- return new Puc_v4p9_DebugBar_Extension($this, 'Puc_v4p9_DebugBar_ThemePanel');
+ return new Puc_v4p10_DebugBar_Extension($this, 'Puc_v4p10_DebugBar_ThemePanel');
}
/**
@@ -132,10 +142,10 @@ public function addResultFilter($callback) {
/**
* Create a package instance that represents this plugin or theme.
*
- * @return Puc_v4p9_InstalledPackage
+ * @return Puc_v4p10_InstalledPackage
*/
protected function createInstalledPackage() {
- return new Puc_v4p9_Theme_Package($this->stylesheet, $this);
+ return new Puc_v4p10_Theme_Package($this->stylesheet, $this);
}
}
diff --git a/update-checker/Puc/v4p9/Update.php b/update-checker/Puc/v4p10/Update.php
similarity index 84%
rename from update-checker/Puc/v4p9/Update.php
rename to update-checker/Puc/v4p10/Update.php
index 3db3d605..b36b18b0 100644
--- a/update-checker/Puc/v4p9/Update.php
+++ b/update-checker/Puc/v4p10/Update.php
@@ -1,5 +1,5 @@
debugMode = (bool)(constant('WP_DEBUG'));
$this->metadataUrl = $metadataUrl;
@@ -79,8 +89,8 @@ public function __construct($metadataUrl, $directoryName, $slug = null, $checkPe
$this->package = $this->createInstalledPackage();
$this->scheduler = $this->createScheduler($checkPeriod);
- $this->upgraderStatus = new Puc_v4p9_UpgraderStatus();
- $this->updateState = new Puc_v4p9_StateStore($this->optionName);
+ $this->upgraderStatus = new Puc_v4p10_UpgraderStatus();
+ $this->updateState = new Puc_v4p10_StateStore($this->optionName);
if ( did_action('init') ) {
$this->loadTextDomain();
@@ -146,7 +156,7 @@ protected function installHooks() {
/**
* Remove hooks that were added by this update checker instance.
*/
- protected function removeHooks() {
+ public function removeHooks() {
remove_filter('site_transient_' . $this->updateTransient, array($this,'injectUpdate'));
remove_filter('site_transient_' . $this->updateTransient, array($this, 'injectTranslationUpdates'));
remove_action(
@@ -159,6 +169,14 @@ protected function removeHooks() {
remove_action('plugins_loaded', array($this, 'maybeInitDebugBar'));
remove_action('init', array($this, 'loadTextDomain'));
+
+ if ( $this->scheduler ) {
+ $this->scheduler->removeHooks();
+ }
+
+ if ( $this->debugBarExtension ) {
+ $this->debugBarExtension->removeHooks();
+ }
}
/**
@@ -187,12 +205,11 @@ abstract public function userCanInstallUpdates();
* @return bool
*/
public function allowMetadataHost($allow, $host) {
- static $metadataHost = 0; //Using 0 instead of NULL because parse_url can return NULL.
- if ( $metadataHost === 0 ) {
- $metadataHost = parse_url($this->metadataUrl, PHP_URL_HOST);
+ if ( $this->cachedMetadataHost === 0 ) {
+ $this->cachedMetadataHost = parse_url($this->metadataUrl, PHP_URL_HOST);
}
- if ( is_string($metadataHost) && (strtolower($host) === strtolower($metadataHost)) ) {
+ if ( is_string($this->cachedMetadataHost) && (strtolower($host) === strtolower($this->cachedMetadataHost)) ) {
return true;
}
return $allow;
@@ -201,12 +218,12 @@ public function allowMetadataHost($allow, $host) {
/**
* Create a package instance that represents this plugin or theme.
*
- * @return Puc_v4p9_InstalledPackage
+ * @return Puc_v4p10_InstalledPackage
*/
abstract protected function createInstalledPackage();
/**
- * @return Puc_v4p9_InstalledPackage
+ * @return Puc_v4p10_InstalledPackage
*/
public function getInstalledPackage() {
return $this->package;
@@ -219,14 +236,14 @@ public function getInstalledPackage() {
* and substitute their own scheduler.
*
* @param int $checkPeriod
- * @return Puc_v4p9_Scheduler
+ * @return Puc_v4p10_Scheduler
*/
abstract protected function createScheduler($checkPeriod);
/**
* Check for updates. The results are stored in the DB option specified in $optionName.
*
- * @return Puc_v4p9_Update|null
+ * @return Puc_v4p10_Update|null
*/
public function checkForUpdates() {
$installedVersion = $this->getInstalledVersion();
@@ -260,7 +277,7 @@ public function checkForUpdates() {
/**
* Load the update checker state from the DB.
*
- * @return Puc_v4p9_StateStore
+ * @return Puc_v4p10_StateStore
*/
public function getUpdateState() {
return $this->updateState->lazyLoad();
@@ -285,7 +302,7 @@ public function resetUpdateState() {
* Uses cached update data. To retrieve update information straight from
* the metadata URL, call requestUpdate() instead.
*
- * @return Puc_v4p9_Update|null
+ * @return Puc_v4p10_Update|null
*/
public function getUpdate() {
$update = $this->updateState->getUpdate();
@@ -306,16 +323,16 @@ public function getUpdate() {
*
* Subclasses should run the update through filterUpdateResult before returning it.
*
- * @return Puc_v4p9_Update An instance of Update, or NULL when no updates are available.
+ * @return Puc_v4p10_Update An instance of Update, or NULL when no updates are available.
*/
abstract public function requestUpdate();
/**
* Filter the result of a requestUpdate() call.
*
- * @param Puc_v4p9_Update|null $update
+ * @param Puc_v4p10_Update|null $update
* @param array|WP_Error|null $httpResult The value returned by wp_remote_get(), if any.
- * @return Puc_v4p9_Update
+ * @return Puc_v4p10_Update
*/
protected function filterUpdateResult($update, $httpResult = null) {
//Let plugins/themes modify the update.
@@ -338,9 +355,9 @@ protected function filterUpdateResult($update, $httpResult = null) {
* "Compatibility: Unknown".
* The function mimics how wordpress.org API crafts the "tested" field out of "Tested up to".
*
- * @param Puc_v4p9_Metadata|null $update
+ * @param Puc_v4p10_Metadata|null $update
*/
- protected function fixSupportedWordpressVersion(Puc_v4p9_Metadata $update = null) {
+ protected function fixSupportedWordpressVersion(Puc_v4p10_Metadata $update = null) {
if ( !isset($update->tested) || !preg_match('/^\d++\.\d++$/', $update->tested) ) {
return;
}
@@ -349,26 +366,39 @@ protected function fixSupportedWordpressVersion(Puc_v4p9_Metadata $update = null
$wpVersion = $GLOBALS['wp_version'];
- if ( function_exists('get_preferred_from_update_core') ) {
- $coreUpdate = get_preferred_from_update_core();
- if ( isset($coreUpdate->current) && version_compare($coreUpdate->current, $wpVersion, '>') ) {
- $actualWpVersions[] = $coreUpdate->current;
+ if ( function_exists('get_core_updates') ) {
+ $coreUpdates = get_core_updates();
+ if ( is_array($coreUpdates) ) {
+ foreach ($coreUpdates as $coreUpdate) {
+ if ( isset($coreUpdate->current) ) {
+ $actualWpVersions[] = $coreUpdate->current;
+ }
+ }
}
}
$actualWpVersions[] = $wpVersion;
- $actualWpPatchNumber = "999";
+ $actualWpPatchNumber = null;
foreach ($actualWpVersions as $version) {
- if ( preg_match('/^(?P\d++\.\d++)\.(?P\d++)/', $version, $versionParts) ) {
+ if ( preg_match('/^(?P\d++\.\d++)(?:\.(?P\d++))?/', $version, $versionParts) ) {
if ( $versionParts['majorMinor'] === $update->tested ) {
- $actualWpPatchNumber = $versionParts['patch'];
- break;
+ $patch = isset($versionParts['patch']) ? intval($versionParts['patch']) : 0;
+ if ( $actualWpPatchNumber === null ) {
+ $actualWpPatchNumber = $patch;
+ } else {
+ $actualWpPatchNumber = max($actualWpPatchNumber, $patch);
+ }
}
}
}
+ if ( $actualWpPatchNumber === null ) {
+ $actualWpPatchNumber = 999;
+ }
- $update->tested .= '.' . $actualWpPatchNumber;
+ if ( $actualWpPatchNumber > 0 ) {
+ $update->tested .= '.' . $actualWpPatchNumber;
+ }
}
/**
@@ -503,6 +533,10 @@ public function injectUpdate($updates) {
} else {
//Clean up any stale update info.
$updates = $this->removeUpdateFromList($updates);
+ //Add a placeholder item to the "no_update" list to enable auto-update support.
+ //If we don't do this, the option to enable automatic updates will only show up
+ //when an update is available.
+ $updates = $this->addNoUpdateItem($updates);
}
return $updates;
@@ -534,6 +568,40 @@ protected function removeUpdateFromList($updates) {
return $updates;
}
+ /**
+ * See this post for more information:
+ * @link https://make.wordpress.org/core/2020/07/30/recommended-usage-of-the-updates-api-to-support-the-auto-updates-ui-for-plugins-and-themes-in-wordpress-5-5/
+ *
+ * @param stdClass|null $updates
+ * @return stdClass
+ */
+ protected function addNoUpdateItem($updates) {
+ if ( !is_object($updates) ) {
+ $updates = new stdClass();
+ $updates->response = array();
+ $updates->no_update = array();
+ } else if ( !isset($updates->no_update) ) {
+ $updates->no_update = array();
+ }
+
+ $updates->no_update[$this->getUpdateListKey()] = (object) $this->getNoUpdateItemFields();
+
+ return $updates;
+ }
+
+ /**
+ * Subclasses should override this method to add fields that are specific to plugins or themes.
+ * @return array
+ */
+ protected function getNoUpdateItemFields() {
+ return array(
+ 'new_version' => $this->getInstalledVersion(),
+ 'url' => '',
+ 'package' => '',
+ 'requires_php' => '',
+ );
+ }
+
/**
* Get the key that will be used when adding updates to the update list that's maintained
* by the WordPress core. The list is always an associative array, but the key is different
@@ -570,7 +638,7 @@ protected function shouldShowUpdates() {
* @param string $metaClass Parse the JSON as an instance of this class. It must have a static fromJson method.
* @param string $filterRoot
* @param array $queryArgs Additional query arguments.
- * @return array [Puc_v4p9_Metadata|null, array|WP_Error] A metadata instance and the value returned by wp_remote_get().
+ * @return array [Puc_v4p10_Metadata|null, array|WP_Error] A metadata instance and the value returned by wp_remote_get().
*/
protected function requestMetadata($metaClass, $filterRoot, $queryArgs = array()) {
//Query args to append to the URL. Plugins can add their own by using a filter callback (see addQueryArgFilter()).
@@ -904,18 +972,18 @@ protected function isBadDirectoryStructure($remoteSource) {
*/
public function maybeInitDebugBar() {
if ( class_exists('Debug_Bar', false) && file_exists(dirname(__FILE__) . '/DebugBar') ) {
- $this->createDebugBarExtension();
+ $this->debugBarExtension = $this->createDebugBarExtension();
}
}
protected function createDebugBarExtension() {
- return new Puc_v4p9_DebugBar_Extension($this);
+ return new Puc_v4p10_DebugBar_Extension($this);
}
/**
* Display additional configuration details in the Debug Bar panel.
*
- * @param Puc_v4p9_DebugBar_Panel $panel
+ * @param Puc_v4p10_DebugBar_Panel $panel
*/
public function onDisplayConfiguration($panel) {
//Do nothing. Subclasses can use this to add additional info to the panel.
diff --git a/update-checker/Puc/v4p9/UpgraderStatus.php b/update-checker/Puc/v4p10/UpgraderStatus.php
similarity index 98%
rename from update-checker/Puc/v4p9/UpgraderStatus.php
rename to update-checker/Puc/v4p10/UpgraderStatus.php
index 2918fa1c..2c2a6259 100644
--- a/update-checker/Puc/v4p9/UpgraderStatus.php
+++ b/update-checker/Puc/v4p10/UpgraderStatus.php
@@ -1,5 +1,5 @@
$branch->name,
'updated' => $branch->target->date,
'downloadUrl' => $this->getDownloadUrl($branch->name),
@@ -70,7 +70,7 @@ public function getBranch($branchName) {
* Get a specific tag.
*
* @param string $tagName
- * @return Puc_v4p9_Vcs_Reference|null
+ * @return Puc_v4p10_Vcs_Reference|null
*/
public function getTag($tagName) {
$tag = $this->api('/refs/tags/' . $tagName);
@@ -78,7 +78,7 @@ public function getTag($tagName) {
return null;
}
- return new Puc_v4p9_Vcs_Reference(array(
+ return new Puc_v4p10_Vcs_Reference(array(
'name' => $tag->name,
'version' => ltrim($tag->name, 'v'),
'updated' => $tag->target->date,
@@ -89,7 +89,7 @@ public function getTag($tagName) {
/**
* Get the tag that looks like the highest version number.
*
- * @return Puc_v4p9_Vcs_Reference|null
+ * @return Puc_v4p10_Vcs_Reference|null
*/
public function getLatestTag() {
$tags = $this->api('/refs/tags?sort=-target.date');
@@ -103,7 +103,7 @@ public function getLatestTag() {
//Return the first result.
if ( !empty($versionTags) ) {
$tag = $versionTags[0];
- return new Puc_v4p9_Vcs_Reference(array(
+ return new Puc_v4p10_Vcs_Reference(array(
'name' => $tag->name,
'version' => ltrim($tag->name, 'v'),
'updated' => $tag->target->date,
@@ -117,7 +117,7 @@ public function getLatestTag() {
* Get the tag/ref specified by the "Stable tag" header in the readme.txt of a given branch.
*
* @param string $branch
- * @return null|Puc_v4p9_Vcs_Reference
+ * @return null|Puc_v4p10_Vcs_Reference
*/
protected function getStableTag($branch) {
$remoteReadme = $this->getRemoteReadme($branch);
@@ -187,7 +187,7 @@ public function getLatestCommitTime($ref) {
*/
public function api($url, $version = '2.0') {
$url = ltrim($url, '/');
- $isSrcResource = Puc_v4p9_Utils::startsWith($url, 'src/');
+ $isSrcResource = Puc_v4p10_Utils::startsWith($url, 'src/');
$url = implode('/', array(
'https://api.bitbucket.org',
@@ -242,7 +242,7 @@ public function setAuthentication($credentials) {
parent::setAuthentication($credentials);
if ( !empty($credentials) && !empty($credentials['consumer_key']) ) {
- $this->oauth = new Puc_v4p9_OAuthSignature(
+ $this->oauth = new Puc_v4p10_OAuthSignature(
$credentials['consumer_key'],
$credentials['consumer_secret']
);
diff --git a/update-checker/Puc/v4p9/Vcs/GitHubApi.php b/update-checker/Puc/v4p10/Vcs/GitHubApi.php
similarity index 96%
rename from update-checker/Puc/v4p9/Vcs/GitHubApi.php
rename to update-checker/Puc/v4p10/Vcs/GitHubApi.php
index 0187a666..ada0d13e 100644
--- a/update-checker/Puc/v4p9/Vcs/GitHubApi.php
+++ b/update-checker/Puc/v4p10/Vcs/GitHubApi.php
@@ -1,8 +1,8 @@
api('/repos/:user/:repo/releases/latest');
@@ -65,7 +65,7 @@ public function getLatestRelease() {
return null;
}
- $reference = new Puc_v4p9_Vcs_Reference(array(
+ $reference = new Puc_v4p10_Vcs_Reference(array(
'name' => $release->tag_name,
'version' => ltrim($release->tag_name, 'v'), //Remove the "v" prefix from "v1.2.3".
'downloadUrl' => $release->zipball_url,
@@ -109,7 +109,7 @@ public function getLatestRelease() {
/**
* Get the tag that looks like the highest version number.
*
- * @return Puc_v4p9_Vcs_Reference|null
+ * @return Puc_v4p10_Vcs_Reference|null
*/
public function getLatestTag() {
$tags = $this->api('/repos/:user/:repo/tags');
@@ -124,7 +124,7 @@ public function getLatestTag() {
}
$tag = $versionTags[0];
- return new Puc_v4p9_Vcs_Reference(array(
+ return new Puc_v4p10_Vcs_Reference(array(
'name' => $tag->name,
'version' => ltrim($tag->name, 'v'),
'downloadUrl' => $tag->zipball_url,
@@ -136,7 +136,7 @@ public function getLatestTag() {
* Get a branch by name.
*
* @param string $branchName
- * @return null|Puc_v4p9_Vcs_Reference
+ * @return null|Puc_v4p10_Vcs_Reference
*/
public function getBranch($branchName) {
$branch = $this->api('/repos/:user/:repo/branches/' . $branchName);
@@ -144,7 +144,7 @@ public function getBranch($branchName) {
return null;
}
- $reference = new Puc_v4p9_Vcs_Reference(array(
+ $reference = new Puc_v4p10_Vcs_Reference(array(
'name' => $branch->name,
'downloadUrl' => $this->buildArchiveDownloadUrl($branch->name),
'apiResponse' => $branch,
@@ -314,7 +314,7 @@ public function setAuthentication($credentials) {
* Figure out which reference (i.e tag or branch) contains the latest version.
*
* @param string $configBranch Start looking in this branch.
- * @return null|Puc_v4p9_Vcs_Reference
+ * @return null|Puc_v4p10_Vcs_Reference
*/
public function chooseReference($configBranch) {
$updateSource = null;
diff --git a/update-checker/Puc/v4p9/Vcs/GitLabApi.php b/update-checker/Puc/v4p10/Vcs/GitLabApi.php
similarity index 95%
rename from update-checker/Puc/v4p9/Vcs/GitLabApi.php
rename to update-checker/Puc/v4p10/Vcs/GitLabApi.php
index 30bbd13c..a1a313c4 100644
--- a/update-checker/Puc/v4p9/Vcs/GitLabApi.php
+++ b/update-checker/Puc/v4p10/Vcs/GitLabApi.php
@@ -1,8 +1,8 @@
getLatestTag();
@@ -100,7 +100,7 @@ public function getLatestRelease() {
/**
* Get the tag that looks like the highest version number.
*
- * @return Puc_v4p9_Vcs_Reference|null
+ * @return Puc_v4p10_Vcs_Reference|null
*/
public function getLatestTag() {
$tags = $this->api('/:id/repository/tags');
@@ -114,7 +114,7 @@ public function getLatestTag() {
}
$tag = $versionTags[0];
- return new Puc_v4p9_Vcs_Reference(array(
+ return new Puc_v4p10_Vcs_Reference(array(
'name' => $tag->name,
'version' => ltrim($tag->name, 'v'),
'downloadUrl' => $this->buildArchiveDownloadUrl($tag->name),
@@ -126,7 +126,7 @@ public function getLatestTag() {
* Get a branch by name.
*
* @param string $branchName
- * @return null|Puc_v4p9_Vcs_Reference
+ * @return null|Puc_v4p10_Vcs_Reference
*/
public function getBranch($branchName) {
$branch = $this->api('/:id/repository/branches/' . $branchName);
@@ -134,7 +134,7 @@ public function getBranch($branchName) {
return null;
}
- $reference = new Puc_v4p9_Vcs_Reference(array(
+ $reference = new Puc_v4p10_Vcs_Reference(array(
'name' => $branch->name,
'downloadUrl' => $this->buildArchiveDownloadUrl($branch->name),
'apiResponse' => $branch,
@@ -283,7 +283,7 @@ public function getTag($tagName) {
* Figure out which reference (i.e tag or branch) contains the latest version.
*
* @param string $configBranch Start looking in this branch.
- * @return null|Puc_v4p9_Vcs_Reference
+ * @return null|Puc_v4p10_Vcs_Reference
*/
public function chooseReference($configBranch) {
$updateSource = null;
diff --git a/update-checker/Puc/v4p9/Vcs/PluginUpdateChecker.php b/update-checker/Puc/v4p10/Vcs/PluginUpdateChecker.php
similarity index 91%
rename from update-checker/Puc/v4p9/Vcs/PluginUpdateChecker.php
rename to update-checker/Puc/v4p10/Vcs/PluginUpdateChecker.php
index fab268fd..aba4b320 100644
--- a/update-checker/Puc/v4p9/Vcs/PluginUpdateChecker.php
+++ b/update-checker/Puc/v4p10/Vcs/PluginUpdateChecker.php
@@ -1,21 +1,21 @@
api;
$api->setLocalDirectory($this->package->getAbsoluteDirectoryPath());
- $info = new Puc_v4p9_Plugin_Info();
+ $info = new Puc_v4p10_Plugin_Info();
$info->filename = $this->pluginFile;
$info->slug = $this->slug;
@@ -124,7 +124,7 @@ protected function readmeTxtExistsLocally() {
* Copy plugin metadata from a file header to a Plugin Info object.
*
* @param array $fileHeader
- * @param Puc_v4p9_Plugin_Info $pluginInfo
+ * @param Puc_v4p10_Plugin_Info $pluginInfo
*/
protected function setInfoFromHeader($fileHeader, $pluginInfo) {
$headerToPropertyMap = array(
@@ -139,6 +139,8 @@ protected function setInfoFromHeader($fileHeader, $pluginInfo) {
'Tested WP' => 'tested',
'Requires at least' => 'requires',
'Tested up to' => 'tested',
+
+ 'Requires PHP' => 'requires_php',
);
foreach ($headerToPropertyMap as $headerName => $property) {
if ( isset($fileHeader[$headerName]) && !empty($fileHeader[$headerName]) ) {
@@ -155,7 +157,7 @@ protected function setInfoFromHeader($fileHeader, $pluginInfo) {
* Copy plugin metadata from the remote readme.txt file.
*
* @param string $ref GitHub tag or branch where to look for the readme.
- * @param Puc_v4p9_Plugin_Info $pluginInfo
+ * @param Puc_v4p10_Plugin_Info $pluginInfo
*/
protected function setInfoFromRemoteReadme($ref, $pluginInfo) {
$readme = $this->api->getRemoteReadme($ref);
@@ -172,6 +174,9 @@ protected function setInfoFromRemoteReadme($ref, $pluginInfo) {
if ( !empty($readme['requires_at_least']) ) {
$pluginInfo->requires = $readme['requires_at_least'];
}
+ if ( !empty($readme['requires_php']) ) {
+ $pluginInfo->requires_php = $readme['requires_php'];
+ }
if ( isset($readme['upgrade_notice'], $readme['upgrade_notice'][$pluginInfo->version]) ) {
$pluginInfo->upgrade_notice = $readme['upgrade_notice'][$pluginInfo->version];
diff --git a/update-checker/Puc/v4p9/Vcs/Reference.php b/update-checker/Puc/v4p10/Vcs/Reference.php
similarity index 91%
rename from update-checker/Puc/v4p9/Vcs/Reference.php
rename to update-checker/Puc/v4p10/Vcs/Reference.php
index b9b30c19..85250cd6 100644
--- a/update-checker/Puc/v4p9/Vcs/Reference.php
+++ b/update-checker/Puc/v4p10/Vcs/Reference.php
@@ -1,5 +1,5 @@
api;
$api->setLocalDirectory($this->package->getAbsoluteDirectoryPath());
- $update = new Puc_v4p9_Theme_Update();
+ $update = new Puc_v4p10_Theme_Update();
$update->slug = $this->slug;
//Figure out which reference (tag or branch) we'll use to get the latest version of the theme.
@@ -60,13 +60,13 @@ public function requestUpdate() {
//Get headers from the main stylesheet in this branch/tag. Its "Version" header and other metadata
//are what the WordPress install will actually see after upgrading, so they take precedence over releases/tags.
$remoteHeader = $this->package->getFileHeader($api->getRemoteFile('style.css', $ref));
- $update->version = Puc_v4p9_Utils::findNotEmpty(array(
+ $update->version = Puc_v4p10_Utils::findNotEmpty(array(
$remoteHeader['Version'],
- Puc_v4p9_Utils::get($updateSource, 'version'),
+ Puc_v4p10_Utils::get($updateSource, 'version'),
));
//The details URL defaults to the Theme URI header or the repository URL.
- $update->details_url = Puc_v4p9_Utils::findNotEmpty(array(
+ $update->details_url = Puc_v4p10_Utils::findNotEmpty(array(
$remoteHeader['ThemeURI'],
$this->package->getHeaderValue('ThemeURI'),
$this->metadataUrl,
diff --git a/update-checker/composer.json b/update-checker/composer.json
index 4379eeb1..db487f39 100644
--- a/update-checker/composer.json
+++ b/update-checker/composer.json
@@ -18,6 +18,6 @@
"ext-json": "*"
},
"autoload": {
- "files": ["load-v4p9.php"]
+ "files": ["load-v4p10.php"]
}
}
diff --git a/update-checker/languages/plugin-update-checker-ca.mo b/update-checker/languages/plugin-update-checker-ca.mo
deleted file mode 100644
index 59645fab..00000000
Binary files a/update-checker/languages/plugin-update-checker-ca.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-ca.po b/update-checker/languages/plugin-update-checker-ca.po
deleted file mode 100644
index 36f3ad70..00000000
--- a/update-checker/languages/plugin-update-checker-ca.po
+++ /dev/null
@@ -1,48 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2017-11-24 17:02+0200\n"
-"PO-Revision-Date: 2019-09-25 18:15+0200\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2.3\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"Last-Translator: \n"
-"Language: ca\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:395
-msgid "Check for updates"
-msgstr "Comprova si hi ha actualitzacions"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:548
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "L’extensió %s està actualitzada."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:550
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "Una nova versió de l’extensió %s està disponible."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:552
-#, php-format
-msgctxt "the plugin title"
-msgid "Could not determine if updates are available for %s."
-msgstr "No s’ha pogut determinar si hi ha actualitzacions per a %s."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:558
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Estat del comprovador d’actualitzacions desconegut \"%s\""
-
-#: Puc/v4p3/Vcs/PluginUpdateChecker.php:95
-msgid "There is no changelog available."
-msgstr "No hi ha cap registre de canvis disponible."
diff --git a/update-checker/languages/plugin-update-checker-cs_CZ.mo b/update-checker/languages/plugin-update-checker-cs_CZ.mo
deleted file mode 100644
index ac6d20ea..00000000
Binary files a/update-checker/languages/plugin-update-checker-cs_CZ.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-cs_CZ.po b/update-checker/languages/plugin-update-checker-cs_CZ.po
deleted file mode 100644
index 2c9af18f..00000000
--- a/update-checker/languages/plugin-update-checker-cs_CZ.po
+++ /dev/null
@@ -1,45 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-05-20 10:53+0300\n"
-"PO-Revision-Date: 2017-07-05 15:39+0000\n"
-"Last-Translator: Vojtěch Sajdl \n"
-"Language-Team: Czech (Czech Republic)\n"
-"Language: cs-CZ\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Loco-Source-Locale: cs_CZ\n"
-"X-Generator: Loco - https://localise.biz/\n"
-"X-Poedit-Basepath: ..\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"X-Poedit-SearchPath-0: .\n"
-"X-Loco-Parser: loco_parse_po"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:358
-msgid "Check for updates"
-msgstr "Zkontrolovat aktualizace"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:405
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "Plugin %s je aktuální."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:407
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "Nová verze pluginu %s je dostupná."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:409
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Neznámý status kontroly aktualizací \"%s\""
-
-#: Puc/v4p1/Vcs/PluginUpdateChecker.php:83
-msgid "There is no changelog available."
-msgstr "Changelog není dostupný."
diff --git a/update-checker/languages/plugin-update-checker-da_DK.mo b/update-checker/languages/plugin-update-checker-da_DK.mo
deleted file mode 100644
index 9c596707..00000000
Binary files a/update-checker/languages/plugin-update-checker-da_DK.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-da_DK.po b/update-checker/languages/plugin-update-checker-da_DK.po
deleted file mode 100644
index 8f2bc0d7..00000000
--- a/update-checker/languages/plugin-update-checker-da_DK.po
+++ /dev/null
@@ -1,42 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2017-05-20 10:53+0300\n"
-"PO-Revision-Date: 2017-10-17 11:07+0200\n"
-"Last-Translator: Mikk3lRo\n"
-"Language-Team: Mikk3lRo\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.0.4\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"Language: da_DK\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:358
-msgid "Check for updates"
-msgstr "Undersøg for opdateringer"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:405
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "Plugin'et %s er allerede opdateret."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:407
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "En ny version af plugin'et %s er tilgængelig."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:409
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Ukendt opdateringsstatus: \"%s\""
-
-#: Puc/v4p1/Vcs/PluginUpdateChecker.php:83
-msgid "There is no changelog available."
-msgstr "Der er ingen ændringslog tilgængelig."
diff --git a/update-checker/languages/plugin-update-checker-de_DE.mo b/update-checker/languages/plugin-update-checker-de_DE.mo
deleted file mode 100644
index 0734cae2..00000000
Binary files a/update-checker/languages/plugin-update-checker-de_DE.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-de_DE.po b/update-checker/languages/plugin-update-checker-de_DE.po
deleted file mode 100644
index 25234ba5..00000000
--- a/update-checker/languages/plugin-update-checker-de_DE.po
+++ /dev/null
@@ -1,38 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2016-06-29 20:21+0100\n"
-"PO-Revision-Date: 2016-06-29 20:23+0100\n"
-"Last-Translator: Igor Lückel \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.1\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e\n"
-"Language: de_DE\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: github-checker.php:137
-msgid "There is no changelog available."
-msgstr "Es ist keine Liste von Programmänderungen verfügbar."
-
-#: plugin-update-checker.php:852
-msgid "Check for updates"
-msgstr "Nach Update suchen"
-
-#: plugin-update-checker.php:896
-msgid "This plugin is up to date."
-msgstr "Das Plugin ist aktuell."
-
-#: plugin-update-checker.php:898
-msgid "A new version of this plugin is available."
-msgstr "Es ist eine neue Version für das Plugin verfügbar."
-
-#: plugin-update-checker.php:900
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Unbekannter Update Status \"%s\""
diff --git a/update-checker/languages/plugin-update-checker-es_ES.mo b/update-checker/languages/plugin-update-checker-es_ES.mo
deleted file mode 100644
index 42e94ab3..00000000
Binary files a/update-checker/languages/plugin-update-checker-es_ES.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-fa_IR.mo b/update-checker/languages/plugin-update-checker-fa_IR.mo
deleted file mode 100644
index a68f1004..00000000
Binary files a/update-checker/languages/plugin-update-checker-fa_IR.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-fa_IR.po b/update-checker/languages/plugin-update-checker-fa_IR.po
deleted file mode 100644
index 20b69380..00000000
--- a/update-checker/languages/plugin-update-checker-fa_IR.po
+++ /dev/null
@@ -1,38 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2016-02-17 14:21+0100\n"
-"PO-Revision-Date: 2016-10-28 14:30+0330\n"
-"Last-Translator: studio RVOLA \n"
-"Language-Team: Pro Style \n"
-"Language: fa_IR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.8\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: github-checker.php:120
-msgid "There is no changelog available."
-msgstr "شرحی برای تغییرات یافت نشد"
-
-#: plugin-update-checker.php:637
-msgid "Check for updates"
-msgstr "بررسی برای بروزرسانی "
-
-#: plugin-update-checker.php:681
-msgid "This plugin is up to date."
-msgstr "شما از آخرین نسخه استفاده میکنید . بهروز باشید"
-
-#: plugin-update-checker.php:683
-msgid "A new version of this plugin is available."
-msgstr "نسخه جدیدی برای افزونه ارائه شده است ."
-
-#: plugin-update-checker.php:685
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "وضعیت ناشناخته برای بروزرسانی \"%s\""
diff --git a/update-checker/languages/plugin-update-checker-fr_CA.mo b/update-checker/languages/plugin-update-checker-fr_CA.mo
deleted file mode 100644
index 24639b69..00000000
Binary files a/update-checker/languages/plugin-update-checker-fr_CA.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-fr_CA.po b/update-checker/languages/plugin-update-checker-fr_CA.po
deleted file mode 100644
index 5dfa8ba4..00000000
--- a/update-checker/languages/plugin-update-checker-fr_CA.po
+++ /dev/null
@@ -1,48 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2017-11-24 17:02+0200\n"
-"PO-Revision-Date: 2018-02-12 10:32-0500\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.0.4\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"Last-Translator: Eric Gagnon \n"
-"Language: fr_CA\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:395
-msgid "Check for updates"
-msgstr "Vérifier les mises à jour"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:548
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "L’extension %s est à jour."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:550
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "Une nouvelle version de l’extension %s est disponible."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:552
-#, php-format
-msgctxt "the plugin title"
-msgid "Could not determine if updates are available for %s."
-msgstr "Impossible de déterminer si une mise à jour est disponible pour \"%s\""
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:558
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Un problème inconnu est survenu \"%s\""
-
-#: Puc/v4p3/Vcs/PluginUpdateChecker.php:95
-msgid "There is no changelog available."
-msgstr "Il n’y a aucun journal de mise à jour disponible."
diff --git a/update-checker/languages/plugin-update-checker-fr_FR.mo b/update-checker/languages/plugin-update-checker-fr_FR.mo
deleted file mode 100644
index a492d96f..00000000
Binary files a/update-checker/languages/plugin-update-checker-fr_FR.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-fr_FR.po b/update-checker/languages/plugin-update-checker-fr_FR.po
deleted file mode 100644
index 9f18e2cb..00000000
--- a/update-checker/languages/plugin-update-checker-fr_FR.po
+++ /dev/null
@@ -1,42 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2017-07-07 14:53+0200\n"
-"PO-Revision-Date: 2017-07-07 14:54+0200\n"
-"Language-Team: studio RVOLA \n"
-"Language: fr_FR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.0.2\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"Last-Translator: Nicolas GEHIN\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:358
-msgid "Check for updates"
-msgstr "Vérifier les mises à jour"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:405
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "L’extension %s est à jour."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:407
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "Une nouvelle version de l’extension %s est disponible."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:409
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Un problème inconnu est survenu \"%s\""
-
-#: Puc/v4p1/Vcs/PluginUpdateChecker.php:85
-msgid "There is no changelog available."
-msgstr "Il n’y a aucun journal de mise à jour disponible."
diff --git a/update-checker/languages/plugin-update-checker-hu_HU.mo b/update-checker/languages/plugin-update-checker-hu_HU.mo
deleted file mode 100644
index 4789ef1d..00000000
Binary files a/update-checker/languages/plugin-update-checker-hu_HU.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-hu_HU.po b/update-checker/languages/plugin-update-checker-hu_HU.po
deleted file mode 100644
index df22657b..00000000
--- a/update-checker/languages/plugin-update-checker-hu_HU.po
+++ /dev/null
@@ -1,41 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2016-01-11 21:23+0100\n"
-"PO-Revision-Date: 2016-01-11 21:25+0100\n"
-"Last-Translator: Tamás András Horváth \n"
-"Language-Team: \n"
-"Language: hu_HU\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.6\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: github-checker.php:137
-msgid "There is no changelog available."
-msgstr "Nem érhető el a changelog."
-
-#: plugin-update-checker.php:852
-msgid "Check for updates"
-msgstr "Frissítés ellenőrzése"
-
-#: plugin-update-checker.php:896
-msgid "This plugin is up to date."
-msgstr "Ez a plugin naprakész."
-
-#: plugin-update-checker.php:898
-msgid "A new version of this plugin is available."
-msgstr "Új verzió érhető el a kiegészítőhöz"
-
-#: plugin-update-checker.php:900
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Ismeretlen a frissítés ellenőrző státusza \"%s\""
-
-#~ msgid "Every %d hours"
-#~ msgstr "Minden %d órában"
diff --git a/update-checker/languages/plugin-update-checker-it_IT.mo b/update-checker/languages/plugin-update-checker-it_IT.mo
deleted file mode 100644
index 6a2c57d9..00000000
Binary files a/update-checker/languages/plugin-update-checker-it_IT.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-it_IT.po b/update-checker/languages/plugin-update-checker-it_IT.po
deleted file mode 100644
index d894642e..00000000
--- a/update-checker/languages/plugin-update-checker-it_IT.po
+++ /dev/null
@@ -1,38 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2016-06-29 20:21+0100\n"
-"PO-Revision-Date: 2017-01-15 12:24+0100\n"
-"Last-Translator: Igor Lückel \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.5\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e\n"
-"Language: de_DE\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: github-checker.php:137
-msgid "There is no changelog available."
-msgstr "Non c'è alcuna sezione di aggiornamento disponibile"
-
-#: plugin-update-checker.php:852
-msgid "Check for updates"
-msgstr "Verifica aggiornamenti"
-
-#: plugin-update-checker.php:896
-msgid "This plugin is up to date."
-msgstr "Il plugin è aggiornato"
-
-#: plugin-update-checker.php:898
-msgid "A new version of this plugin is available."
-msgstr "Una nuova versione del plugin è disponibile"
-
-#: plugin-update-checker.php:900
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Si è verificato un problema sconosciuto \"%s\""
diff --git a/update-checker/languages/plugin-update-checker-ja.mo b/update-checker/languages/plugin-update-checker-ja.mo
deleted file mode 100644
index 941b6ba2..00000000
Binary files a/update-checker/languages/plugin-update-checker-ja.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-ja.po b/update-checker/languages/plugin-update-checker-ja.po
deleted file mode 100644
index 5a5c5ffa..00000000
--- a/update-checker/languages/plugin-update-checker-ja.po
+++ /dev/null
@@ -1,57 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2019-07-15 17:07+0900\n"
-"PO-Revision-Date: 2019-07-15 17:12+0900\n"
-"Last-Translator: tak \n"
-"Language-Team: \n"
-"Language: ja_JP\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2.3\n"
-"X-Poedit-Basepath: ../../../../../../Applications/XAMPP/xamppfiles/htdocs/"
-"kisagai/wordpress/wp-content/plugins/simple-stripe-gateway/Puc\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Poedit-KeywordsList: __;_x:1,2c\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: v4p7/Plugin/Ui.php:54
-msgid "View details"
-msgstr "詳細を表示"
-
-#: v4p7/Plugin/Ui.php:77
-#, php-format
-msgid "More information about %s"
-msgstr "%sについての詳細"
-
-#: v4p7/Plugin/Ui.php:128
-msgid "Check for updates"
-msgstr "アップデートを確認"
-
-#: v4p7/Plugin/Ui.php:213
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "%s プラグインは、最新バージョンです。"
-
-#: v4p7/Plugin/Ui.php:215
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "%s プラグインの最新バージョンがあります。"
-
-#: v4p7/Plugin/Ui.php:217
-#, php-format
-msgctxt "the plugin title"
-msgid "Could not determine if updates are available for %s."
-msgstr "%s のアップデートがあるかどうかを判断できませんでした。"
-
-#: v4p7/Plugin/Ui.php:223
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "バージョンアップの確認で想定外の状態になりました。ステータス:”%s”"
-
-#: v4p7/Vcs/PluginUpdateChecker.php:98
-msgid "There is no changelog available."
-msgstr "更新履歴はありません。"
diff --git a/update-checker/languages/plugin-update-checker-nl_BE.mo b/update-checker/languages/plugin-update-checker-nl_BE.mo
deleted file mode 100644
index 1cea26dd..00000000
Binary files a/update-checker/languages/plugin-update-checker-nl_BE.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-nl_BE.po b/update-checker/languages/plugin-update-checker-nl_BE.po
deleted file mode 100644
index e1734bb5..00000000
--- a/update-checker/languages/plugin-update-checker-nl_BE.po
+++ /dev/null
@@ -1,48 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2018-03-25 18:15+0200\n"
-"PO-Revision-Date: 2018-03-25 18:32+0200\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.7.1\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"Last-Translator: Frank Goossens \n"
-"Language: nl_BE\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:395
-msgid "Check for updates"
-msgstr "Controleer op nieuwe versies"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:548
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "De meest recente %s versie is geïnstalleerd."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:550
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "Er is een nieuwe versie van %s beschikbaar."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:552
-#, php-format
-msgctxt "the plugin title"
-msgid "Could not determine if updates are available for %s."
-msgstr "Kon niet bepalen of er nieuwe versie van %s beschikbaar is."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:558
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Ongekende status bij controle op nieuwe versie: \"%s\""
-
-#: Puc/v4p3/Vcs/PluginUpdateChecker.php:95
-msgid "There is no changelog available."
-msgstr "Er is geen changelog beschikbaar."
diff --git a/update-checker/languages/plugin-update-checker-nl_NL.mo b/update-checker/languages/plugin-update-checker-nl_NL.mo
deleted file mode 100644
index 16dde622..00000000
Binary files a/update-checker/languages/plugin-update-checker-nl_NL.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-nl_NL.po b/update-checker/languages/plugin-update-checker-nl_NL.po
deleted file mode 100644
index 7f57a89f..00000000
--- a/update-checker/languages/plugin-update-checker-nl_NL.po
+++ /dev/null
@@ -1,48 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2018-03-25 18:15+0200\n"
-"PO-Revision-Date: 2018-03-25 18:32+0200\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.7.1\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"Last-Translator: Frank Goossens \n"
-"Language: nl_NL\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:395
-msgid "Check for updates"
-msgstr "Controleer op nieuwe versies"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:548
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "De meest recente %s versie is geïnstalleerd."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:550
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "Er is een nieuwe versie van %s beschikbaar."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:552
-#, php-format
-msgctxt "the plugin title"
-msgid "Could not determine if updates are available for %s."
-msgstr "Kon niet bepalen of er nieuwe versie van %s beschikbaar is."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:558
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Ongekende status bij controle op nieuwe versie: \"%s\""
-
-#: Puc/v4p3/Vcs/PluginUpdateChecker.php:95
-msgid "There is no changelog available."
-msgstr "Er is geen changelog beschikbaar."
diff --git a/update-checker/languages/plugin-update-checker-pt_BR.mo b/update-checker/languages/plugin-update-checker-pt_BR.mo
deleted file mode 100644
index d1c0f283..00000000
Binary files a/update-checker/languages/plugin-update-checker-pt_BR.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-pt_BR.po b/update-checker/languages/plugin-update-checker-pt_BR.po
deleted file mode 100644
index 70a0f625..00000000
--- a/update-checker/languages/plugin-update-checker-pt_BR.po
+++ /dev/null
@@ -1,48 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2017-05-19 15:41-0300\n"
-"PO-Revision-Date: 2017-05-19 15:42-0300\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: pt_BR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.8\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x;_x:1,2c\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:358
-msgid "Check for updates"
-msgstr "Verificar Atualizações"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:401 Puc/v4p1/Plugin/UpdateChecker.php:406
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "O plugin %s já está na sua versão mais recente."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:408
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "Há uma nova versão para o plugin %s disponível para download."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:410
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Status \"%s\" desconhecido."
-
-#: Puc/v4p1/Vcs/PluginUpdateChecker.php:83
-msgid "There is no changelog available."
-msgstr "Não há um changelog disponível."
-
-#~ msgid "The %s plugin is up to date."
-#~ msgstr "O plugin %s já está na sua versão mais recente."
-
-#~ msgid "A new version of the %s plugin is available."
-#~ msgstr "Há uma nova versão para o plugin %s disponível para download."
diff --git a/update-checker/languages/plugin-update-checker-sl_SI.mo b/update-checker/languages/plugin-update-checker-sl_SI.mo
deleted file mode 100644
index df47ca7c..00000000
Binary files a/update-checker/languages/plugin-update-checker-sl_SI.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-sl_SI.po b/update-checker/languages/plugin-update-checker-sl_SI.po
deleted file mode 100644
index 385d8011..00000000
--- a/update-checker/languages/plugin-update-checker-sl_SI.po
+++ /dev/null
@@ -1,48 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2017-11-24 17:02+0200\n"
-"PO-Revision-Date: 2018-10-27 20:36+0200\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n%100<=4 ? 2 : 3);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"Last-Translator: Igor Funa\n"
-"Language: sl_SI\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:395
-msgid "Check for updates"
-msgstr "Preveri posodobitve"
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:548
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "Vtičnik %s je že posodobljen."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:550
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "Nova različica vtičnika %s je na razpolago."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:552
-#, php-format
-msgctxt "the plugin title"
-msgid "Could not determine if updates are available for %s."
-msgstr "Ne morem ugotoviti če se za vtičnik %s na razpolago posodobitve."
-
-#: Puc/v4p3/Plugin/UpdateChecker.php:558
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Neznan status preverjanja posodobitev za \"%s\""
-
-#: Puc/v4p3/Vcs/PluginUpdateChecker.php:95
-msgid "There is no changelog available."
-msgstr "Dnevnik sprememb ni na razpolago."
diff --git a/update-checker/languages/plugin-update-checker-sv_SE.mo b/update-checker/languages/plugin-update-checker-sv_SE.mo
deleted file mode 100644
index 4d06fc14..00000000
Binary files a/update-checker/languages/plugin-update-checker-sv_SE.mo and /dev/null differ
diff --git a/update-checker/languages/plugin-update-checker-sv_SE.po b/update-checker/languages/plugin-update-checker-sv_SE.po
deleted file mode 100644
index b8948144..00000000
--- a/update-checker/languages/plugin-update-checker-sv_SE.po
+++ /dev/null
@@ -1,42 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2017-05-20 10:53+0300\n"
-"PO-Revision-Date: 2017-10-16 15:02+0200\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.0.4\n"
-"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"Last-Translator: \n"
-"Language: sv_SE\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:358
-msgid "Check for updates"
-msgstr "Sök efter uppdateringar"
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:405
-#, php-format
-msgctxt "the plugin title"
-msgid "The %s plugin is up to date."
-msgstr "Tillägget %s är uppdaterat."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:407
-#, php-format
-msgctxt "the plugin title"
-msgid "A new version of the %s plugin is available."
-msgstr "Det finns en ny version av tillägget %s."
-
-#: Puc/v4p1/Plugin/UpdateChecker.php:409
-#, php-format
-msgid "Unknown update checker status \"%s\""
-msgstr "Okänd status för kontroll av uppdatering “%s”"
-
-#: Puc/v4p1/Vcs/PluginUpdateChecker.php:83
-msgid "There is no changelog available."
-msgstr "Det finns ingen ändringslogg tillgänglig."
diff --git a/update-checker/languages/plugin-update-checker-zh_CN.mo b/update-checker/languages/plugin-update-checker-zh_CN.mo
new file mode 100644
index 00000000..c0fc4055
Binary files /dev/null and b/update-checker/languages/plugin-update-checker-zh_CN.mo differ
diff --git a/update-checker/languages/plugin-update-checker-es_ES.po b/update-checker/languages/plugin-update-checker-zh_CN.po
similarity index 67%
rename from update-checker/languages/plugin-update-checker-es_ES.po
rename to update-checker/languages/plugin-update-checker-zh_CN.po
index 0aea3121..005b4d04 100644
--- a/update-checker/languages/plugin-update-checker-es_ES.po
+++ b/update-checker/languages/plugin-update-checker-zh_CN.po
@@ -2,47 +2,47 @@ msgid ""
msgstr ""
"Project-Id-Version: plugin-update-checker\n"
"POT-Creation-Date: 2017-11-24 17:02+0200\n"
-"PO-Revision-Date: 2019-09-25 18:17+0200\n"
+"PO-Revision-Date: 2020-08-04 08:10+0800\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2.3\n"
+"X-Generator: Poedit 2.4\n"
"X-Poedit-Basepath: ..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
-"Last-Translator: \n"
-"Language: es_ES\n"
+"Last-Translator: Seaton Jiang \n"
+"Language: zh_CN\n"
"X-Poedit-SearchPath-0: .\n"
#: Puc/v4p3/Plugin/UpdateChecker.php:395
msgid "Check for updates"
-msgstr "Comprobar si hay actualizaciones"
+msgstr "检查更新"
#: Puc/v4p3/Plugin/UpdateChecker.php:548
#, php-format
msgctxt "the plugin title"
msgid "The %s plugin is up to date."
-msgstr "El plugin %s está actualizado."
+msgstr "%s 目前是最新版本。"
#: Puc/v4p3/Plugin/UpdateChecker.php:550
#, php-format
msgctxt "the plugin title"
msgid "A new version of the %s plugin is available."
-msgstr "Una nueva versión del %s plugin está disponible."
+msgstr "%s 当前有可用的更新。"
#: Puc/v4p3/Plugin/UpdateChecker.php:552
#, php-format
msgctxt "the plugin title"
msgid "Could not determine if updates are available for %s."
-msgstr "No se pudo determinar si hay actualizaciones disponibles para %s."
+msgstr "%s 无法确定是否有可用的更新。"
#: Puc/v4p3/Plugin/UpdateChecker.php:558
#, php-format
msgid "Unknown update checker status \"%s\""
-msgstr "Estado del comprobador de actualización desconocido \"%s\""
+msgstr "未知的更新检查状态:%s"
#: Puc/v4p3/Vcs/PluginUpdateChecker.php:95
msgid "There is no changelog available."
-msgstr "No hay registro de cambios disponible."
+msgstr "没有可用的更新日志。"
diff --git a/update-checker/languages/plugin-update-checker.pot b/update-checker/languages/plugin-update-checker.pot
index 67f4f003..29d1f406 100644
--- a/update-checker/languages/plugin-update-checker.pot
+++ b/update-checker/languages/plugin-update-checker.pot
@@ -2,7 +2,7 @@
msgid ""
msgstr ""
"Project-Id-Version: plugin-update-checker\n"
-"POT-Creation-Date: 2017-11-24 17:02+0200\n"
+"POT-Creation-Date: 2020-08-08 14:36+0300\n"
"PO-Revision-Date: 2016-01-10 20:59+0100\n"
"Last-Translator: Tamás András Horváth \n"
"Language-Team: \n"
@@ -10,40 +10,40 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.0.4\n"
+"X-Generator: Poedit 2.4\n"
"X-Poedit-Basepath: ..\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n"
"X-Poedit-SearchPath-0: .\n"
-#: Puc/v4p3/Plugin/UpdateChecker.php:395
+#: Puc/v4p10/Plugin/Ui.php:128
msgid "Check for updates"
msgstr ""
-#: Puc/v4p3/Plugin/UpdateChecker.php:548
+#: Puc/v4p10/Plugin/Ui.php:213
#, php-format
msgctxt "the plugin title"
msgid "The %s plugin is up to date."
msgstr ""
-#: Puc/v4p3/Plugin/UpdateChecker.php:550
+#: Puc/v4p10/Plugin/Ui.php:215
#, php-format
msgctxt "the plugin title"
msgid "A new version of the %s plugin is available."
msgstr ""
-#: Puc/v4p3/Plugin/UpdateChecker.php:552
+#: Puc/v4p10/Plugin/Ui.php:217
#, php-format
msgctxt "the plugin title"
msgid "Could not determine if updates are available for %s."
msgstr ""
-#: Puc/v4p3/Plugin/UpdateChecker.php:558
+#: Puc/v4p10/Plugin/Ui.php:223
#, php-format
msgid "Unknown update checker status \"%s\""
msgstr ""
-#: Puc/v4p3/Vcs/PluginUpdateChecker.php:95
+#: Puc/v4p10/Vcs/PluginUpdateChecker.php:98
msgid "There is no changelog available."
msgstr ""
diff --git a/update-checker/load-v4p10.php b/update-checker/load-v4p10.php
new file mode 100644
index 00000000..55319388
--- /dev/null
+++ b/update-checker/load-v4p10.php
@@ -0,0 +1,28 @@
+ 'Puc_v4p10_Plugin_UpdateChecker',
+ 'Theme_UpdateChecker' => 'Puc_v4p10_Theme_UpdateChecker',
+
+ 'Vcs_PluginUpdateChecker' => 'Puc_v4p10_Vcs_PluginUpdateChecker',
+ 'Vcs_ThemeUpdateChecker' => 'Puc_v4p10_Vcs_ThemeUpdateChecker',
+
+ 'GitHubApi' => 'Puc_v4p10_Vcs_GitHubApi',
+ 'BitBucketApi' => 'Puc_v4p10_Vcs_BitBucketApi',
+ 'GitLabApi' => 'Puc_v4p10_Vcs_GitLabApi',
+ )
+ as $pucGeneralClass => $pucVersionedClass
+) {
+ Puc_v4_Factory::addVersion($pucGeneralClass, $pucVersionedClass, '4.10');
+ //Also add it to the minor-version factory in case the major-version factory
+ //was already defined by another, older version of the update checker.
+ Puc_v4p10_Factory::addVersion($pucGeneralClass, $pucVersionedClass, '4.10');
+}
+
diff --git a/update-checker/load-v4p9.php b/update-checker/load-v4p9.php
deleted file mode 100644
index f5634b5f..00000000
--- a/update-checker/load-v4p9.php
+++ /dev/null
@@ -1,28 +0,0 @@
- 'Puc_v4p9_Plugin_UpdateChecker',
- 'Theme_UpdateChecker' => 'Puc_v4p9_Theme_UpdateChecker',
-
- 'Vcs_PluginUpdateChecker' => 'Puc_v4p9_Vcs_PluginUpdateChecker',
- 'Vcs_ThemeUpdateChecker' => 'Puc_v4p9_Vcs_ThemeUpdateChecker',
-
- 'GitHubApi' => 'Puc_v4p9_Vcs_GitHubApi',
- 'BitBucketApi' => 'Puc_v4p9_Vcs_BitBucketApi',
- 'GitLabApi' => 'Puc_v4p9_Vcs_GitLabApi',
- )
- as $pucGeneralClass => $pucVersionedClass
-) {
- Puc_v4_Factory::addVersion($pucGeneralClass, $pucVersionedClass, '4.9');
- //Also add it to the minor-version factory in case the major-version factory
- //was already defined by another, older version of the update checker.
- Puc_v4p9_Factory::addVersion($pucGeneralClass, $pucVersionedClass, '4.9');
-}
-
diff --git a/update-checker/update-checker.php b/update-checker/update-checker.php
index 2abd4ec7..5a03ddba 100644
--- a/update-checker/update-checker.php
+++ b/update-checker/update-checker.php
@@ -1,10 +1,10 @@
sanitize_text( $_requires_php[1] );
+ } else {
+ $requires_php = null;
+ }
// Stable tag: 10.4-ride-the-fire-eagle-danger-day
if ( preg_match('|Stable tag:(.*)|i', $file_contents, $_stable_tag) )
@@ -196,6 +202,7 @@ function parse_readme_contents( $file_contents ) {
'tags' => $tags,
'requires_at_least' => $requires_at_least,
'tested_up_to' => $tested_up_to,
+ 'requires_php' => $requires_php,
'stable_tag' => $stable_tag,
'contributors' => $contributors,
'donate_link' => $donate_link,