mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-11-09 20:50:37 +09:00
Merge pull request #1475 from ultimatemember/development/2.8.x
Version 2.8.5
This commit is contained in:
@@ -44,7 +44,7 @@ GNU Version 2 or Any Later Version
|
||||
|
||||
### IMPORTANT: PLEASE UPDATE THE PLUGIN TO AT LEAST VERSION 2.6.7 IMMEDIATELY. VERSION 2.6.7 PATCHES SECURITY PRIVILEGE ESCALATION VULNERABILITY. PLEASE SEE [THIS ARTICLE](https://docs.ultimatemember.com/article/1866-security-incident-update-and-recommended-actions) FOR MORE INFORMATION
|
||||
|
||||
[Official Release Version: 2.8.4](https://github.com/ultimatemember/ultimatemember/releases/tag/2.8.4).
|
||||
[Official Release Version: 2.8.5](https://github.com/ultimatemember/ultimatemember/releases/tag/2.8.5).
|
||||
|
||||
## Changelog
|
||||
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
.um_block_settings .um_block_settings_hide {
|
||||
display: none; }
|
||||
|
||||
display: none;
|
||||
}
|
||||
.um_block_settings .components-select-control .components-select-control__input[multiple] {
|
||||
height: auto; }
|
||||
.um_block_settings .components-select-control .components-select-control__input[multiple] + .components-input-control__suffix {
|
||||
display: none; }
|
||||
height: auto;
|
||||
}
|
||||
.um_block_settings .components-select-control .components-select-control__input[multiple] + .components-input-control__suffix {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.um-block-notice {
|
||||
background: #fff;
|
||||
font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;
|
||||
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
|
||||
font-size: 13px;
|
||||
padding: 20px;
|
||||
border: 1px solid #000; }
|
||||
border: 1px solid #000;
|
||||
}
|
||||
@@ -1,29 +1,38 @@
|
||||
.um-admin-drag-ctrls-demo.um-admin-drag-ctrls {
|
||||
left: 12px;
|
||||
right: auto; }
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.um-admin-drag-row-icons {
|
||||
left: 0;
|
||||
right: auto; }
|
||||
.um-admin-drag-row-icons a {
|
||||
float: right; }
|
||||
right: auto;
|
||||
}
|
||||
.um-admin-drag-row-icons a {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.um-admin-drag-ctrls.columns {
|
||||
right: 0 !important;
|
||||
left: auto; }
|
||||
.um-admin-drag-ctrls.columns a {
|
||||
float: right; }
|
||||
left: auto;
|
||||
}
|
||||
.um-admin-drag-ctrls.columns a {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.um-admin-drag-rowsub-icons {
|
||||
right: auto;
|
||||
left: 0; }
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.um-admin-drag-fld-icons {
|
||||
float: left; }
|
||||
.um-admin-drag-fld-icons a {
|
||||
float: right; }
|
||||
float: left;
|
||||
}
|
||||
.um-admin-drag-fld-icons a {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.um-admin-drag-fld-title,
|
||||
.um-admin-drag-fld-type {
|
||||
float: right;
|
||||
margin: 0 20px 0 0; }
|
||||
margin: 0 20px 0 0;
|
||||
}
|
||||
+474
-364
@@ -1,123 +1,145 @@
|
||||
@-webkit-keyframes um-ajax-spinning {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@-moz-keyframes um-ajax-spinning {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@-ms-keyframes um-ajax-spinning {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@keyframes um-ajax-spinning {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
.um-admin-row-loading {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: calc( 100% + 30px);
|
||||
height: calc(100% + 30px);
|
||||
top: -30px;
|
||||
left: 0;
|
||||
background: rgba(241, 241, 241, 0.6);
|
||||
z-index: 999;
|
||||
display: none; }
|
||||
.um-admin-row-loading > span {
|
||||
display: block;
|
||||
-webkit-transition: 0.1s opacity;
|
||||
-moz-transition: 0.1s opacity;
|
||||
-ms-transition: 0.1s opacity;
|
||||
-o-transition: 0.1s opacity;
|
||||
transition: 0.1s opacity;
|
||||
color: #c6c6c6 !important;
|
||||
-webkit-animation: um-ajax-spinning 1.1s infinite linear;
|
||||
animation: um-ajax-spinning 1.1s infinite linear;
|
||||
border-top: 0.2em solid black;
|
||||
border-right: 0.2em solid black;
|
||||
border-bottom: 0.2em solid black;
|
||||
border-left: 0.2em solid #c6c6c6;
|
||||
font-size: 1.75em;
|
||||
filter: alpha(opacity=0);
|
||||
-ms-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
border-radius: 50%;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin: -20px 0 0 -20px;
|
||||
outline: 0;
|
||||
padding: 0;
|
||||
vertical-align: baseline;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%; }
|
||||
display: none;
|
||||
}
|
||||
.um-admin-row-loading > span {
|
||||
display: block;
|
||||
-webkit-transition: 0.1s opacity;
|
||||
-moz-transition: 0.1s opacity;
|
||||
-ms-transition: 0.1s opacity;
|
||||
-o-transition: 0.1s opacity;
|
||||
transition: 0.1s opacity;
|
||||
color: #c6c6c6 !important;
|
||||
-webkit-animation: um-ajax-spinning 1.1s infinite linear;
|
||||
animation: um-ajax-spinning 1.1s infinite linear;
|
||||
border-top: 0.2em solid rgb(0, 0, 0);
|
||||
border-right: 0.2em solid rgb(0, 0, 0);
|
||||
border-bottom: 0.2em solid rgb(0, 0, 0);
|
||||
border-left: 0.2em solid #c6c6c6;
|
||||
font-size: 1.75em;
|
||||
filter: alpha(opacity=0);
|
||||
-ms-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
border-radius: 50%;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin: -20px 0 0 -20px;
|
||||
outline: 0;
|
||||
padding: 0;
|
||||
vertical-align: baseline;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.um-admin-boxed-links {
|
||||
width: 100%;
|
||||
text-align: center; }
|
||||
.um-admin-boxed-links a {
|
||||
width: 33.3%;
|
||||
float: left;
|
||||
border-left: 1px solid #fff;
|
||||
border-right: 1px solid #fff;
|
||||
padding: 30px 25px !important;
|
||||
background: #f8f8f8;
|
||||
text-align: center;
|
||||
display: inline-block !important;
|
||||
font-size: 14px;
|
||||
transition: all .2s linear;
|
||||
text-decoration: none;
|
||||
color: #666;
|
||||
margin: 0 !important;
|
||||
box-sizing: border-box !important;
|
||||
border-radius: 2px;
|
||||
font-weight: 600; }
|
||||
.um-admin-boxed-links a:hover {
|
||||
background: #eee; }
|
||||
.um-admin-boxed-links a.um-admin-activebg {
|
||||
background: #0085ba;
|
||||
color: #fff; }
|
||||
.um-admin-boxed-links a.um-admin-activebg:hover {
|
||||
background: #0085ba;
|
||||
color: #fff; }
|
||||
.um-admin-boxed-links i {
|
||||
font-size: 28px;
|
||||
vertical-align: middle;
|
||||
margin: 0 10px 0 0; }
|
||||
text-align: center;
|
||||
}
|
||||
.um-admin-boxed-links a {
|
||||
width: 33.3%;
|
||||
float: left;
|
||||
border-left: 1px solid #fff;
|
||||
border-right: 1px solid #fff;
|
||||
padding: 30px 25px !important;
|
||||
background: #f8f8f8;
|
||||
text-align: center;
|
||||
display: inline-block !important;
|
||||
font-size: 14px;
|
||||
transition: all 0.2s linear;
|
||||
text-decoration: none;
|
||||
color: #666;
|
||||
margin: 0 !important;
|
||||
box-sizing: border-box !important;
|
||||
border-radius: 2px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.um-admin-boxed-links a:hover {
|
||||
background: #eee;
|
||||
}
|
||||
.um-admin-boxed-links a.um-admin-activebg {
|
||||
background: #0085ba;
|
||||
color: #fff;
|
||||
}
|
||||
.um-admin-boxed-links a.um-admin-activebg:hover {
|
||||
background: #0085ba;
|
||||
color: #fff;
|
||||
}
|
||||
.um-admin-boxed-links i {
|
||||
font-size: 28px;
|
||||
vertical-align: middle;
|
||||
margin: 0 10px 0 0;
|
||||
}
|
||||
|
||||
.um-admin-half {
|
||||
float: left;
|
||||
width: 48%; }
|
||||
.um-admin-half select {
|
||||
box-sizing: border-box; }
|
||||
.um-admin-half.um-admin-right {
|
||||
float: right; }
|
||||
.um-admin-half p:first-child {
|
||||
margin-top: 0; }
|
||||
.um-admin-half .um {
|
||||
opacity: 1;
|
||||
margin-bottom: 0 !important; }
|
||||
width: 48%;
|
||||
}
|
||||
.um-admin-half select {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.um-admin-half.um-admin-right {
|
||||
float: right;
|
||||
}
|
||||
.um-admin-half p:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.um-admin-half .um {
|
||||
opacity: 1;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.um-admin-tri {
|
||||
float: left;
|
||||
width: 33%;
|
||||
position: relative; }
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.um-admin-error-block,
|
||||
.um-admin-success-block {
|
||||
@@ -131,16 +153,20 @@
|
||||
padding: 12px;
|
||||
font-size: 13px;
|
||||
line-height: 1em !important;
|
||||
margin: 0 0 16px 0; }
|
||||
margin: 0 0 16px 0;
|
||||
}
|
||||
|
||||
.um-admin-success-block {
|
||||
background: #7acf58; }
|
||||
background: #7acf58;
|
||||
}
|
||||
|
||||
.um-admin-cur-condition-template {
|
||||
display: none; }
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dynamic-mce-content {
|
||||
display: none; }
|
||||
display: none;
|
||||
}
|
||||
|
||||
.um-admin-btns {
|
||||
line-height: 1.5em;
|
||||
@@ -149,70 +175,88 @@
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: baseline;
|
||||
flex-wrap: wrap; }
|
||||
.um-admin-btns .um-no-custom-fields {
|
||||
margin: 0; }
|
||||
.um-admin-btns a {
|
||||
margin: 0 3px 8px 0 !important;
|
||||
font-size: 12px !important;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
display: flex !important; }
|
||||
.um-admin-btns a.with-icon span {
|
||||
color: #aaa;
|
||||
font-size: 15px !important;
|
||||
padding-left: 5px;
|
||||
height: auto;
|
||||
width: auto; }
|
||||
.um-admin-btns a.with-icon:hover span {
|
||||
color: #cb3838; }
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.um-admin-btns .um-no-custom-fields {
|
||||
margin: 0;
|
||||
}
|
||||
.um-admin-btns a {
|
||||
margin: 0 3px 8px 0 !important;
|
||||
font-size: 12px !important;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
display: flex !important;
|
||||
}
|
||||
.um-admin-btns a.with-icon span {
|
||||
color: #aaa;
|
||||
font-size: 15px !important;
|
||||
padding-left: 5px;
|
||||
height: auto;
|
||||
width: auto;
|
||||
}
|
||||
.um-admin-btns a.with-icon:hover span {
|
||||
color: #cb3838;
|
||||
}
|
||||
|
||||
.um-admin-btn-toggle {
|
||||
padding: 10px 0; }
|
||||
.um-admin-btn-toggle p {
|
||||
margin: 0 5px 0 0 !important; }
|
||||
.um-admin-btn-toggle p.um-admin-reset-conditions a {
|
||||
margin-bottom: 5px; }
|
||||
.um-admin-btn-toggle a {
|
||||
text-decoration: none;
|
||||
color: #999; }
|
||||
.um-admin-btn-toggle a.um-admin-new-condition {
|
||||
margin-bottom: 5px; }
|
||||
.um-admin-btn-toggle a.active {
|
||||
color: #0085ba; }
|
||||
.um-admin-btn-toggle a.active:hover {
|
||||
color: #0085ba; }
|
||||
.um-admin-btn-toggle i {
|
||||
margin: 0 5px 0 0 !important;
|
||||
height: 100%;
|
||||
color: #666;
|
||||
position: relative;
|
||||
top: 1px; }
|
||||
padding: 10px 0;
|
||||
}
|
||||
.um-admin-btn-toggle p {
|
||||
margin: 0 5px 0 0 !important;
|
||||
}
|
||||
.um-admin-btn-toggle p.um-admin-reset-conditions a {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.um-admin-btn-toggle a {
|
||||
text-decoration: none;
|
||||
color: #999;
|
||||
}
|
||||
.um-admin-btn-toggle a.um-admin-new-condition {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.um-admin-btn-toggle a.active {
|
||||
color: #0085ba;
|
||||
}
|
||||
.um-admin-btn-toggle a.active:hover {
|
||||
color: #0085ba;
|
||||
}
|
||||
.um-admin-btn-toggle i {
|
||||
margin: 0 5px 0 0 !important;
|
||||
height: 100%;
|
||||
color: #666;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.um-admin-btn-content {
|
||||
display: none;
|
||||
padding: 5px 0 0 0; }
|
||||
.um-admin-btn-content p {
|
||||
float: left;
|
||||
margin-right: 10px !important;
|
||||
padding: 0 !important; }
|
||||
.um-admin-btn-content p.um-admin-conditions-notice {
|
||||
width: 100%;
|
||||
margin: 0 0 9px 0 !important; }
|
||||
.um-admin-btn-content .um-admin-cur-condition:not(:last-child) {
|
||||
margin: 0 0 5px 0; }
|
||||
padding: 5px 0 0 0;
|
||||
}
|
||||
.um-admin-btn-content p {
|
||||
float: left;
|
||||
margin-right: 10px !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
.um-admin-btn-content p.um-admin-conditions-notice {
|
||||
width: 100%;
|
||||
margin: 0 0 9px 0 !important;
|
||||
}
|
||||
.um-admin-btn-content .um-admin-cur-condition:not(:last-child) {
|
||||
margin: 0 0 5px 0;
|
||||
}
|
||||
|
||||
.um-admin-builder i {
|
||||
font-size: 15px !important;
|
||||
height: 100% !important;
|
||||
line-height: 100% !important;
|
||||
margin: 0 5px 0 0 !important; }
|
||||
|
||||
margin: 0 5px 0 0 !important;
|
||||
}
|
||||
.um-admin-builder .um-admin-drag {
|
||||
margin-top: 40px; }
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.um-admin-drag-add-field {
|
||||
display: block;
|
||||
@@ -221,52 +265,66 @@
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
color: #aaa;
|
||||
text-decoration: none; }
|
||||
.um-admin-drag-add-field:hover {
|
||||
color: #0085ba; }
|
||||
.um-admin-drag-add-field i {
|
||||
font-size: 23px !important;
|
||||
margin: 0 !important; }
|
||||
text-decoration: none;
|
||||
}
|
||||
.um-admin-drag-add-field:hover {
|
||||
color: #0085ba;
|
||||
}
|
||||
.um-admin-drag-add-field i {
|
||||
font-size: 23px !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.um-admin-drag-ctrls {
|
||||
position: absolute;
|
||||
top: -30px;
|
||||
left: 0; }
|
||||
.um-admin-drag-ctrls.um-admin-drag-ctrls-demo {
|
||||
position: absolute;
|
||||
right: 7px;
|
||||
top: -30px;
|
||||
left: auto; }
|
||||
.um-admin-drag-ctrls a {
|
||||
float: left;
|
||||
margin: 0 5px 0 0;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
background: #eee;
|
||||
color: #888;
|
||||
padding: 0 8px;
|
||||
text-decoration: none;
|
||||
border-radius: 2px 2px 0 0; }
|
||||
.um-admin-drag-ctrls a:hover {
|
||||
background-color: #e5e5e5; }
|
||||
.um-admin-drag-ctrls a.active, .um-admin-drag-ctrls a.active:hover {
|
||||
background-color: #0085ba;
|
||||
color: #fff; }
|
||||
.um-admin-drag-ctrls.columns a {
|
||||
width: 30px !important;
|
||||
background-image: url(../../img/builder/1-column.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center; }
|
||||
.um-admin-drag-ctrls.columns a:nth-child(2) {
|
||||
background-image: url(../../img/builder/2-columns.gif); }
|
||||
.um-admin-drag-ctrls.columns a:last-child {
|
||||
background-image: url(../../img/builder/3-columns.gif); }
|
||||
.um-admin-drag-ctrls.columns a.active {
|
||||
background-image: url(../../img/builder/1-column-active.gif); }
|
||||
.um-admin-drag-ctrls.columns a.active:nth-child(2) {
|
||||
background-image: url(../../img/builder/2-columns-active.gif); }
|
||||
.um-admin-drag-ctrls.columns a.active:last-child {
|
||||
background-image: url(../../img/builder/3-columns-active.gif); }
|
||||
left: 0;
|
||||
}
|
||||
.um-admin-drag-ctrls.um-admin-drag-ctrls-demo {
|
||||
position: absolute;
|
||||
right: 7px;
|
||||
top: -30px;
|
||||
left: auto;
|
||||
}
|
||||
.um-admin-drag-ctrls a {
|
||||
float: left;
|
||||
margin: 0 5px 0 0;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
background: #eee;
|
||||
color: #888;
|
||||
padding: 0 8px;
|
||||
text-decoration: none;
|
||||
border-radius: 2px 2px 0 0;
|
||||
}
|
||||
.um-admin-drag-ctrls a:hover {
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
.um-admin-drag-ctrls a.active, .um-admin-drag-ctrls a.active:hover {
|
||||
background-color: #0085ba;
|
||||
color: #fff;
|
||||
}
|
||||
.um-admin-drag-ctrls.columns a {
|
||||
width: 30px !important;
|
||||
background-image: url(../../img/builder/1-column.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
}
|
||||
.um-admin-drag-ctrls.columns a:nth-child(2) {
|
||||
background-image: url(../../img/builder/2-columns.gif);
|
||||
}
|
||||
.um-admin-drag-ctrls.columns a:last-child {
|
||||
background-image: url(../../img/builder/3-columns.gif);
|
||||
}
|
||||
.um-admin-drag-ctrls.columns a.active {
|
||||
background-image: url(../../img/builder/1-column-active.gif);
|
||||
}
|
||||
.um-admin-drag-ctrls.columns a.active:nth-child(2) {
|
||||
background-image: url(../../img/builder/2-columns-active.gif);
|
||||
}
|
||||
.um-admin-drag-ctrls.columns a.active:last-child {
|
||||
background-image: url(../../img/builder/3-columns-active.gif);
|
||||
}
|
||||
|
||||
.um-admin-drag {
|
||||
width: 100%;
|
||||
@@ -275,7 +333,8 @@
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
position: relative;
|
||||
padding: 60px 20px 20px 20px; }
|
||||
padding: 60px 20px 20px 20px;
|
||||
}
|
||||
|
||||
.um-admin-drag-row {
|
||||
width: 100%;
|
||||
@@ -285,51 +344,59 @@
|
||||
-webkit-box-sizing: border-box;
|
||||
position: relative;
|
||||
padding: 60px 20px 20px 20px;
|
||||
margin: 0 0 60px 0; }
|
||||
.um-admin-drag-row:last-child {
|
||||
margin-bottom: 0; }
|
||||
margin: 0 0 60px 0;
|
||||
}
|
||||
.um-admin-drag-row:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.um-admin-drag-row-icons {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: -30px;
|
||||
height: 30px; }
|
||||
.um-admin-drag-row-icons a {
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all .2s linear;
|
||||
border-left: 1px solid #379dd5; }
|
||||
.um-admin-drag-row-icons a:hover {
|
||||
background: #008ec2; }
|
||||
.um-admin-drag-row-icons span {
|
||||
cursor: move !important;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all .2s linear;
|
||||
border-left: 1px solid #379dd5; }
|
||||
.um-admin-drag-row-icons span:hover {
|
||||
background: #008ec2; }
|
||||
.um-admin-drag-row-icons i {
|
||||
font-size: 18px !important;
|
||||
margin: 0 !important;
|
||||
top: 2px;
|
||||
position: relative; }
|
||||
height: 30px;
|
||||
}
|
||||
.um-admin-drag-row-icons a {
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all 0.2s linear;
|
||||
border-left: 1px solid #379dd5;
|
||||
}
|
||||
.um-admin-drag-row-icons a:hover {
|
||||
background: #008ec2;
|
||||
}
|
||||
.um-admin-drag-row-icons span {
|
||||
cursor: move !important;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all 0.2s linear;
|
||||
border-left: 1px solid #379dd5;
|
||||
}
|
||||
.um-admin-drag-row-icons span:hover {
|
||||
background: #008ec2;
|
||||
}
|
||||
.um-admin-drag-row-icons i {
|
||||
font-size: 18px !important;
|
||||
margin: 0 !important;
|
||||
top: 2px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.um-admin-drag-rowsub {
|
||||
position: relative;
|
||||
@@ -338,51 +405,59 @@
|
||||
-webkit-box-sizing: border-box;
|
||||
background: #f1f1f1;
|
||||
padding: 20px;
|
||||
margin: 0 0 60px 0; }
|
||||
.um-admin-drag-rowsub:last-child {
|
||||
margin-bottom: 0; }
|
||||
margin: 0 0 60px 0;
|
||||
}
|
||||
.um-admin-drag-rowsub:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.um-admin-drag-rowsub-icons {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: -30px;
|
||||
height: 30px; }
|
||||
.um-admin-drag-rowsub-icons a {
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all .2s linear;
|
||||
border-left: 1px solid #379dd5; }
|
||||
.um-admin-drag-rowsub-icons a:hover {
|
||||
background: #008ec2; }
|
||||
.um-admin-drag-rowsub-icons span {
|
||||
cursor: move !important;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all .2s linear;
|
||||
border-left: 1px solid #379dd5; }
|
||||
.um-admin-drag-rowsub-icons span:hover {
|
||||
background: #008ec2; }
|
||||
.um-admin-drag-rowsub-icons i {
|
||||
font-size: 18px !important;
|
||||
margin: 0 !important;
|
||||
top: 2px;
|
||||
position: relative; }
|
||||
height: 30px;
|
||||
}
|
||||
.um-admin-drag-rowsub-icons a {
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all 0.2s linear;
|
||||
border-left: 1px solid #379dd5;
|
||||
}
|
||||
.um-admin-drag-rowsub-icons a:hover {
|
||||
background: #008ec2;
|
||||
}
|
||||
.um-admin-drag-rowsub-icons span {
|
||||
cursor: move !important;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all 0.2s linear;
|
||||
border-left: 1px solid #379dd5;
|
||||
}
|
||||
.um-admin-drag-rowsub-icons span:hover {
|
||||
background: #008ec2;
|
||||
}
|
||||
.um-admin-drag-rowsub-icons i {
|
||||
font-size: 18px !important;
|
||||
margin: 0 !important;
|
||||
top: 2px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.um-admin-drag-col {
|
||||
float: left;
|
||||
@@ -390,51 +465,65 @@
|
||||
background: #fff;
|
||||
border: 1px dashed #bbb;
|
||||
box-sizing: border-box;
|
||||
padding: 20px; }
|
||||
.um-admin-drag-col.cols-3 {
|
||||
width: 32%; }
|
||||
.um-admin-drag-col.cols-3.cols-last {
|
||||
width: 32%; }
|
||||
.um-admin-drag-col.cols-3.cols-middle {
|
||||
width: 32%;
|
||||
margin: 0 2%; }
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld-title {
|
||||
height: auto;
|
||||
line-height: 18px;
|
||||
margin: 10px;
|
||||
margin-bottom: 0; }
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld-type {
|
||||
height: auto;
|
||||
line-height: 18px;
|
||||
margin: 0 0 10px 0; }
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld-icons {
|
||||
float: none;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 30px;
|
||||
display: none; }
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld-icons.um-field-type-group {
|
||||
float: left;
|
||||
position: relative;
|
||||
bottom: auto;
|
||||
right: auto;
|
||||
height: 30px;
|
||||
display: block; }
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld:hover .um-admin-drag-fld-icons {
|
||||
display: block; }
|
||||
.um-admin-drag-col.cols-1 {
|
||||
width: 100%; }
|
||||
.um-admin-drag-col.cols-1.cols-last {
|
||||
width: 100%; }
|
||||
.um-admin-drag-col.cols-2 {
|
||||
width: 49%;
|
||||
margin: 0 1% 0 0; }
|
||||
.um-admin-drag-col.cols-2.cols-last {
|
||||
width: 49%;
|
||||
margin: 0 0 0 1%; }
|
||||
.um-admin-drag-col > .um-admin-drag-fld:last-of-type {
|
||||
margin-bottom: 20px; }
|
||||
padding: 20px;
|
||||
}
|
||||
.um-admin-drag-col.cols-3 {
|
||||
width: 32%;
|
||||
}
|
||||
.um-admin-drag-col.cols-3.cols-last {
|
||||
width: 32%;
|
||||
}
|
||||
.um-admin-drag-col.cols-3.cols-middle {
|
||||
width: 32%;
|
||||
margin: 0 2%;
|
||||
}
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld-title {
|
||||
height: auto;
|
||||
line-height: 18px;
|
||||
margin: 10px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld-type {
|
||||
height: auto;
|
||||
line-height: 18px;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld-icons {
|
||||
float: none;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 30px;
|
||||
display: none;
|
||||
}
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld-icons.um-field-type-group {
|
||||
float: left;
|
||||
position: relative;
|
||||
bottom: auto;
|
||||
right: auto;
|
||||
height: 30px;
|
||||
display: block;
|
||||
}
|
||||
.um-admin-drag-col.cols-3 .um-admin-drag-fld:hover .um-admin-drag-fld-icons {
|
||||
display: block;
|
||||
}
|
||||
.um-admin-drag-col.cols-1 {
|
||||
width: 100%;
|
||||
}
|
||||
.um-admin-drag-col.cols-1.cols-last {
|
||||
width: 100%;
|
||||
}
|
||||
.um-admin-drag-col.cols-2 {
|
||||
width: 49%;
|
||||
margin: 0 1% 0 0;
|
||||
}
|
||||
.um-admin-drag-col.cols-2.cols-last {
|
||||
width: 49%;
|
||||
margin: 0 0 0 1%;
|
||||
}
|
||||
.um-admin-drag-col > .um-admin-drag-fld:last-of-type {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.um-admin-drag-addrow {
|
||||
text-align: center;
|
||||
@@ -443,12 +532,15 @@
|
||||
cursor: pointer;
|
||||
border: 1px dashed #bbb;
|
||||
padding: 10px 0;
|
||||
margin: 20px 0 0 0; }
|
||||
.um-admin-drag-addrow i {
|
||||
font-size: 23px !important;
|
||||
margin: 0 !important; }
|
||||
.um-admin-drag-addrow:hover {
|
||||
color: #0085ba; }
|
||||
margin: 20px 0 0 0;
|
||||
}
|
||||
.um-admin-drag-addrow i {
|
||||
font-size: 23px !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
.um-admin-drag-addrow:hover {
|
||||
color: #0085ba;
|
||||
}
|
||||
|
||||
.um-admin-drag-fld {
|
||||
display: block;
|
||||
@@ -456,10 +548,12 @@
|
||||
border: 1px solid #dddddd;
|
||||
margin: 0 0 15px 0;
|
||||
background: #f5f5f5;
|
||||
cursor: move !important; }
|
||||
.um-admin-drag-fld.um-field-type-group {
|
||||
background: #555;
|
||||
border: 0; }
|
||||
cursor: move !important;
|
||||
}
|
||||
.um-admin-drag-fld.um-field-type-group {
|
||||
background: #555;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.um-admin-drag-fld-title {
|
||||
float: left;
|
||||
@@ -468,19 +562,23 @@
|
||||
color: #666;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
margin: 0 0 0 20px; }
|
||||
.um-admin-drag-fld-title.um-field-type-group {
|
||||
color: #fff; }
|
||||
.um-admin-drag-fld-title i {
|
||||
width: 24px;
|
||||
display: inline-block;
|
||||
text-align: center; }
|
||||
margin: 0 0 0 20px;
|
||||
}
|
||||
.um-admin-drag-fld-title.um-field-type-group {
|
||||
color: #fff;
|
||||
}
|
||||
.um-admin-drag-fld-title i {
|
||||
width: 24px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.um-admin-drag-group {
|
||||
background: #fcfcfc;
|
||||
cursor: default;
|
||||
padding: 20px;
|
||||
border: 1px dashed #bbb; }
|
||||
border: 1px dashed #bbb;
|
||||
}
|
||||
|
||||
.um-admin-drag-fld-type {
|
||||
float: left;
|
||||
@@ -489,60 +587,72 @@
|
||||
line-height: 30px;
|
||||
margin: 0 0 0 20px;
|
||||
font-weight: 400;
|
||||
color: #999; }
|
||||
.um-admin-drag-fld-type.um-field-type-group {
|
||||
color: #fff; }
|
||||
color: #999;
|
||||
}
|
||||
.um-admin-drag-fld-type.um-field-type-group {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.um-admin-drag-fld-icons {
|
||||
float: right; }
|
||||
.um-admin-drag-fld-icons a {
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all .2s linear;
|
||||
border-left: 1px solid #379dd5; }
|
||||
.um-admin-drag-fld-icons a:hover {
|
||||
background: #008ec2; }
|
||||
.um-admin-drag-fld-icons i {
|
||||
font-size: 18px !important;
|
||||
margin: 0 !important;
|
||||
top: 2px;
|
||||
position: relative; }
|
||||
.um-admin-drag-fld-icons.um-field-type-group a.um_admin_duplicate_field {
|
||||
display: none !important; }
|
||||
float: right;
|
||||
}
|
||||
.um-admin-drag-fld-icons a {
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
width: 40px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
display: block !important;
|
||||
float: left;
|
||||
background: #0085ba;
|
||||
padding: 0 4px;
|
||||
transition: all 0.2s linear;
|
||||
border-left: 1px solid #379dd5;
|
||||
}
|
||||
.um-admin-drag-fld-icons a:hover {
|
||||
background: #008ec2;
|
||||
}
|
||||
.um-admin-drag-fld-icons i {
|
||||
font-size: 18px !important;
|
||||
margin: 0 !important;
|
||||
top: 2px;
|
||||
position: relative;
|
||||
}
|
||||
.um-admin-drag-fld-icons.um-field-type-group a.um_admin_duplicate_field {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.um-row-placeholder {
|
||||
width: 100%;
|
||||
border: 2px dashed #aaa;
|
||||
box-sizing: border-box; }
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.um-rowsub-placeholder {
|
||||
width: 100%;
|
||||
border: 2px dashed #ccc;
|
||||
box-sizing: border-box;
|
||||
display: block; }
|
||||
display: block;
|
||||
}
|
||||
|
||||
.um-fld-placeholder {
|
||||
display: block;
|
||||
border: 1px dashed #ddd;
|
||||
background: #fff;
|
||||
box-sizing: border-box;
|
||||
width: 100%; }
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.um-admin-modal #UM_preview_form .um-admin-modal-body {
|
||||
position: relative; }
|
||||
.um-admin-modal #UM_preview_form .um-admin-modal-body .um-admin-preview-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: rgba(255, 255, 255, 0);
|
||||
z-index: 100; }
|
||||
position: relative;
|
||||
}
|
||||
.um-admin-modal #UM_preview_form .um-admin-modal-body .um-admin-preview-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: rgba(255, 255, 255, 0);
|
||||
z-index: 100;
|
||||
}
|
||||
+61
-47
@@ -3,19 +3,23 @@
|
||||
width: 18px;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
color: #7acf58; }
|
||||
.um-adm-ico.inactive {
|
||||
color: #c74a4a; }
|
||||
.um-adm-ico.pointer {
|
||||
cursor: pointer; }
|
||||
color: #7acf58;
|
||||
}
|
||||
.um-adm-ico.inactive {
|
||||
color: #c74a4a;
|
||||
}
|
||||
.um-adm-ico.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
body.um-admin-modal-open {
|
||||
overflow: hidden; }
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.um-admin #major-publishing-actions {
|
||||
background-color: #fff !important;
|
||||
border-top: 0; }
|
||||
|
||||
border-top: 0;
|
||||
}
|
||||
.um-admin a.button i,
|
||||
.um-admin a.button-primary i {
|
||||
font-size: 15px !important;
|
||||
@@ -23,36 +27,38 @@ body.um-admin-modal-open {
|
||||
width: 15px !important;
|
||||
text-align: center !important;
|
||||
margin: 0 5px 0 0 !important;
|
||||
display: inline-block; }
|
||||
.um-admin a.button i:before,
|
||||
.um-admin a.button-primary i:before {
|
||||
position: relative;
|
||||
top: 1px; }
|
||||
display: inline-block;
|
||||
}
|
||||
.um-admin a.button i:before,
|
||||
.um-admin a.button-primary i:before {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.um-admin-metabox h6 {
|
||||
font-size: 14px;
|
||||
margin: 12px 0 0 0; }
|
||||
|
||||
margin: 12px 0 0 0;
|
||||
}
|
||||
.um-admin-metabox h3 {
|
||||
padding-left: 0 !important; }
|
||||
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
.um-admin-metabox h4 {
|
||||
font-size: 14px;
|
||||
background: #f5f5f5;
|
||||
padding: 8px 4px;
|
||||
color: #333; }
|
||||
|
||||
color: #333;
|
||||
}
|
||||
.um-admin-metabox p {
|
||||
margin: 10px 0 0 0; }
|
||||
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
.um-admin-metabox label {
|
||||
display: block;
|
||||
cursor: default;
|
||||
padding: 0 !important;
|
||||
font-size: 13px;
|
||||
color: #666; }
|
||||
|
||||
.um-admin-metabox input[type="text"] {
|
||||
color: #666;
|
||||
}
|
||||
.um-admin-metabox input[type=text] {
|
||||
height: auto !important;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
@@ -60,15 +66,18 @@ body.um-admin-modal-open {
|
||||
box-sizing: border-box !important;
|
||||
font-size: 13px !important;
|
||||
line-height: 1.4em !important;
|
||||
padding: 4px 10px !important; }
|
||||
.um-admin-metabox input[type="text"]:disabled {
|
||||
opacity: 0.7 !important;
|
||||
color: #aaa !important; }
|
||||
.um-admin-metabox input[type="text"].small {
|
||||
width: 54px; }
|
||||
.um-admin-metabox input[type="text"].um-admin-error {
|
||||
border-color: #c74a4a !important; }
|
||||
|
||||
padding: 4px 10px !important;
|
||||
}
|
||||
.um-admin-metabox input[type=text]:disabled {
|
||||
opacity: 0.7 !important;
|
||||
color: #aaa !important;
|
||||
}
|
||||
.um-admin-metabox input[type=text].small {
|
||||
width: 54px;
|
||||
}
|
||||
.um-admin-metabox input[type=text].um-admin-error {
|
||||
border-color: #c74a4a !important;
|
||||
}
|
||||
.um-admin-metabox textarea {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
@@ -79,18 +88,21 @@ body.um-admin-modal-open {
|
||||
padding: 8px !important;
|
||||
color: #888 !important;
|
||||
min-height: 100px;
|
||||
height: 100px; }
|
||||
.um-admin-metabox textarea.tall {
|
||||
min-height: 200px;
|
||||
height: 200px; }
|
||||
.um-admin-metabox textarea.um-admin-error {
|
||||
border-color: #c74a4a !important; }
|
||||
height: 100px;
|
||||
}
|
||||
.um-admin-metabox textarea.tall {
|
||||
min-height: 200px;
|
||||
height: 200px;
|
||||
}
|
||||
.um-admin-metabox textarea.um-admin-error {
|
||||
border-color: #c74a4a !important;
|
||||
}
|
||||
|
||||
.um .picker__box,
|
||||
.um .picker__nav--prev:hover,
|
||||
.um .picker__nav--next:hover {
|
||||
background: #0085ba; }
|
||||
|
||||
background: #0085ba;
|
||||
}
|
||||
.um .picker__footer,
|
||||
.um .picker__header,
|
||||
.um .picker__day--infocus:hover,
|
||||
@@ -103,13 +115,15 @@ body.um-admin-modal-open {
|
||||
.um .picker__list-item--selected,
|
||||
.um .picker__list-item--selected:hover,
|
||||
.um .picker--focused .picker__list-item--selected {
|
||||
background: #008ec2; }
|
||||
background: #008ec2;
|
||||
}
|
||||
|
||||
body.um .picker .picker__frame {
|
||||
top: 32px; }
|
||||
|
||||
top: 32px;
|
||||
}
|
||||
body.um .picker .picker__footer > button:not(:disabled):not(.button) {
|
||||
color: #fff; }
|
||||
|
||||
color: #fff;
|
||||
}
|
||||
body.um .picker .picker__footer > button.picker__button--close {
|
||||
margin-top: 5px; }
|
||||
margin-top: 5px;
|
||||
}
|
||||
@@ -8,60 +8,75 @@
|
||||
border-radius: 3px;
|
||||
top: 5px;
|
||||
left: 3px;
|
||||
border: none !important; }
|
||||
|
||||
border: none !important;
|
||||
}
|
||||
#um-metaboxes-general.wrap a.red,
|
||||
#um-metaboxes-general.wrap span.red {
|
||||
color: #c74a4a; }
|
||||
|
||||
color: #c74a4a;
|
||||
}
|
||||
#um-metaboxes-general.wrap span.ok {
|
||||
color: #7acf58; }
|
||||
color: #7acf58;
|
||||
}
|
||||
|
||||
.um-metabox-holder p.sub {
|
||||
padding: 0 4px 2px 4px;
|
||||
margin: 0 0 8px 0;
|
||||
color: #8F8F8F;
|
||||
font-size: 14px;
|
||||
border-bottom: 1px solid #ECECEC; }
|
||||
|
||||
.um-metabox-holder .table {
|
||||
float: left;
|
||||
width: 45%; }
|
||||
.um-metabox-holder .table td {
|
||||
white-space: nowrap;
|
||||
font-size: 12px; }
|
||||
|
||||
border-bottom: 1px solid #ECECEC;
|
||||
}
|
||||
.um-metabox-holder a.warning {
|
||||
color: #c74a4a !important;
|
||||
background: transparent !important;
|
||||
border: 0; }
|
||||
|
||||
.um-metabox-holder .table_right {
|
||||
float: right;
|
||||
width: 45%; }
|
||||
|
||||
.um-metabox-holder td.b {
|
||||
padding-right: 6px;
|
||||
text-align: right;
|
||||
font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif;
|
||||
font-size: 14px;
|
||||
width: 1%; }
|
||||
.um-metabox-holder td.b a {
|
||||
font-size: 18px; }
|
||||
|
||||
border: 0;
|
||||
}
|
||||
.um-metabox-holder .norm i {
|
||||
display: inline-block;
|
||||
width: 30px;
|
||||
text-align: center; }
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
.um-metabox-holder .norm p {
|
||||
margin: 5px 0; }
|
||||
|
||||
margin: 5px 0;
|
||||
}
|
||||
.um-metabox-holder .norm .count {
|
||||
font-size: 16px;
|
||||
font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif;
|
||||
font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
|
||||
color: #999;
|
||||
width: 40px;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
margin-right: 10px; }
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#um-users-overview-table {
|
||||
width: 100%;
|
||||
}
|
||||
#um-users-overview-table td {
|
||||
width: auto;
|
||||
min-width: 120px;
|
||||
vertical-align: middle;
|
||||
padding: 0 0 0 5px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
#um-users-overview-table td:first-child {
|
||||
padding: 0 5px 0 0;
|
||||
}
|
||||
#um-users-overview-table td > span {
|
||||
width: 100%;
|
||||
direction: ltr;
|
||||
display: grid;
|
||||
grid-gap: 6px;
|
||||
grid-template-columns: repeat(2, minmax(20px, auto));
|
||||
align-content: start;
|
||||
align-items: center;
|
||||
justify-content: start;
|
||||
justify-items: center;
|
||||
}
|
||||
#um-users-overview-table td > span a {
|
||||
word-break: break-word;
|
||||
}
|
||||
#um-users-overview-table td > span a.count {
|
||||
justify-self: end;
|
||||
font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
|
||||
font-size: 18px;
|
||||
}
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
#um-metaboxes-general h1 sup{font-size:14px;position:relative;font-weight:400;background:#0085ba;color:#fff!important;padding:2px 4px!important;border-radius:3px;top:5px;left:3px;border:none!important}#um-metaboxes-general.wrap a.red,#um-metaboxes-general.wrap span.red{color:#c74a4a}#um-metaboxes-general.wrap span.ok{color:#7acf58}.um-metabox-holder p.sub{padding:0 4px 2px 4px;margin:0 0 8px 0;color:#8f8f8f;font-size:14px;border-bottom:1px solid #ececec}.um-metabox-holder .table{float:left;width:45%}.um-metabox-holder .table td{white-space:nowrap;font-size:12px}.um-metabox-holder a.warning{color:#c74a4a!important;background:0 0!important;border:0}.um-metabox-holder .table_right{float:right;width:45%}.um-metabox-holder td.b{padding-right:6px;text-align:right;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-size:14px;width:1%}.um-metabox-holder td.b a{font-size:18px}.um-metabox-holder .norm i{display:inline-block;width:30px;text-align:center}.um-metabox-holder .norm p{margin:5px 0}.um-metabox-holder .norm .count{font-size:16px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;color:#999;width:40px;display:inline-block;text-align:right;margin-right:10px}
|
||||
#um-metaboxes-general h1 sup{font-size:14px;position:relative;font-weight:400;background:#0085ba;color:#fff!important;padding:2px 4px!important;border-radius:3px;top:5px;left:3px;border:none!important}#um-metaboxes-general.wrap a.red,#um-metaboxes-general.wrap span.red{color:#c74a4a}#um-metaboxes-general.wrap span.ok{color:#7acf58}.um-metabox-holder p.sub{padding:0 4px 2px 4px;margin:0 0 8px 0;color:#8f8f8f;font-size:14px;border-bottom:1px solid #ececec}.um-metabox-holder a.warning{color:#c74a4a!important;background:0 0!important;border:0}.um-metabox-holder .norm i{display:inline-block;width:30px;text-align:center}.um-metabox-holder .norm p{margin:5px 0}.um-metabox-holder .norm .count{font-size:16px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;color:#999;width:40px;display:inline-block;text-align:right;margin-right:10px}#um-users-overview-table{width:100%}#um-users-overview-table td{width:auto;min-width:120px;vertical-align:middle;padding:0 0 0 5px;box-sizing:border-box}#um-users-overview-table td:first-child{padding:0 5px 0 0}#um-users-overview-table td>span{width:100%;direction:ltr;display:grid;grid-gap:6px;grid-template-columns:repeat(2,minmax(20px,auto));align-content:start;align-items:center;justify-content:start;justify-items:center}#um-users-overview-table td>span a{word-break:break-word}#um-users-overview-table td>span a.count{justify-self:end;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-size:18px}
|
||||
@@ -30,31 +30,11 @@
|
||||
font-size: 14px
|
||||
border-bottom: 1px solid #ECECEC
|
||||
|
||||
.table
|
||||
float: left
|
||||
width: 45%
|
||||
td
|
||||
white-space: nowrap
|
||||
font-size: 12px
|
||||
|
||||
a.warning
|
||||
color: #{$admin-warning} !important
|
||||
background: transparent !important
|
||||
border: 0
|
||||
|
||||
.table_right
|
||||
float: right
|
||||
width: 45%
|
||||
|
||||
td.b
|
||||
padding-right: 6px
|
||||
text-align: right
|
||||
font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif
|
||||
font-size: 14px
|
||||
width: 1%
|
||||
a
|
||||
font-size: 18px
|
||||
|
||||
.norm
|
||||
i
|
||||
display: inline-block
|
||||
@@ -72,3 +52,30 @@
|
||||
display: inline-block
|
||||
text-align: right
|
||||
margin-right: 10px
|
||||
|
||||
#um-users-overview-table
|
||||
width: 100%
|
||||
td
|
||||
width: auto
|
||||
min-width: 120px
|
||||
vertical-align: middle
|
||||
padding: 0 0 0 5px
|
||||
box-sizing: border-box
|
||||
&:first-child
|
||||
padding: 0 5px 0 0
|
||||
td > span
|
||||
width: 100%
|
||||
direction: ltr
|
||||
display: grid
|
||||
grid-gap: 6px
|
||||
grid-template-columns: repeat(2, minmax(20px, auto))
|
||||
align-content: start
|
||||
align-items: center
|
||||
justify-content: start
|
||||
justify-items: center
|
||||
a
|
||||
word-break: break-word
|
||||
&.count
|
||||
justify-self: end
|
||||
font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif
|
||||
font-size: 18px
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
.um-admin.post-type-um_directory .wp-list-table.posts .manage-column.column-id {
|
||||
width: 60px; }
|
||||
|
||||
width: 60px;
|
||||
}
|
||||
.um-admin.post-type-um_directory .wp-list-table.posts .manage-column.column-shortcode {
|
||||
width: 35%; }
|
||||
|
||||
width: 35%;
|
||||
}
|
||||
.um-admin.post-type-um_directory .wp-list-table.posts .column-is_default {
|
||||
width: 120px;
|
||||
text-align: center !important; }
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 782px) {
|
||||
.um-admin.post-type-um_directory .wp-list-table.posts td.column-is_default {
|
||||
text-align: left !important; } }
|
||||
text-align: left !important;
|
||||
}
|
||||
}
|
||||
@@ -10,8 +10,8 @@
|
||||
-ms-grid-template-columns: repeat(3, 1fr);
|
||||
-ms-grid-gap: 10px;
|
||||
-ms-grid-auto-rows: minmax(max-content, auto);
|
||||
align-items: center; }
|
||||
|
||||
align-items: center;
|
||||
}
|
||||
#um-extensions-wrap .plugin-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -20,8 +20,8 @@
|
||||
flex-wrap: nowrap;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 20px; }
|
||||
|
||||
padding: 20px;
|
||||
}
|
||||
#um-extensions-wrap .plugin-image-wrapper {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@@ -35,43 +35,48 @@
|
||||
border-radius: 60px;
|
||||
box-shadow: 0 2px 9px rgba(50, 50, 93, 0.21);
|
||||
border: solid 4px #fff;
|
||||
overflow: hidden; }
|
||||
#um-extensions-wrap .plugin-image-wrapper a {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #7856ff; }
|
||||
|
||||
overflow: hidden;
|
||||
}
|
||||
#um-extensions-wrap .plugin-image-wrapper a {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #7856ff;
|
||||
}
|
||||
#um-extensions-wrap a.plugin-image {
|
||||
display: block; }
|
||||
#um-extensions-wrap a.plugin-image img {
|
||||
display: block; }
|
||||
#um-extensions-wrap a.plugin-image.svg-image {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap; }
|
||||
#um-extensions-wrap a.plugin-image.svg-image img {
|
||||
filter: invert(1);
|
||||
background-color: transparent;
|
||||
width: 38px;
|
||||
height: auto; }
|
||||
#um-extensions-wrap a.plugin-image:not(.svg-image) img {
|
||||
width: 70px;
|
||||
margin: 0;
|
||||
height: 70px;
|
||||
padding: 0; }
|
||||
|
||||
display: block;
|
||||
}
|
||||
#um-extensions-wrap a.plugin-image img {
|
||||
display: block;
|
||||
}
|
||||
#um-extensions-wrap a.plugin-image.svg-image {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
#um-extensions-wrap a.plugin-image.svg-image img {
|
||||
filter: invert(1);
|
||||
background-color: transparent;
|
||||
width: 38px;
|
||||
height: auto;
|
||||
}
|
||||
#um-extensions-wrap a.plugin-image:not(.svg-image) img {
|
||||
width: 70px;
|
||||
margin: 0;
|
||||
height: 70px;
|
||||
padding: 0;
|
||||
}
|
||||
#um-extensions-wrap #um_bbpress_image {
|
||||
background-color: #fff !important;
|
||||
filter: none !important;
|
||||
width: 70px !important; }
|
||||
|
||||
width: 70px !important;
|
||||
}
|
||||
#um-extensions-wrap #um_mycred_image {
|
||||
background-color: #fff; }
|
||||
|
||||
background-color: #fff;
|
||||
}
|
||||
#um-extensions-wrap #um_groups_image,
|
||||
#um-extensions-wrap #um_profile-tabs_image,
|
||||
#um-extensions-wrap #um_user-tags_image,
|
||||
@@ -80,44 +85,46 @@
|
||||
#um-extensions-wrap #um_verified-users_image,
|
||||
#um-extensions-wrap #um_private-content_image,
|
||||
#um-extensions-wrap #um_online-users_image {
|
||||
width: 36px !important; }
|
||||
|
||||
width: 36px !important;
|
||||
}
|
||||
#um-extensions-wrap #um_notices_image,
|
||||
#um-extensions-wrap #um_social-activity_image,
|
||||
#um-extensions-wrap #um_profile-completeness_image,
|
||||
#um-extensions-wrap #um_private-messages_image,
|
||||
#um-extensions-wrap #um_user-photos_image,
|
||||
#um-extensions-wrap #um_terms-conditions_image {
|
||||
width: 29px !important; }
|
||||
|
||||
width: 29px !important;
|
||||
}
|
||||
#um-extensions-wrap #um_social-login_image {
|
||||
width: 28px !important; }
|
||||
|
||||
width: 28px !important;
|
||||
}
|
||||
#um-extensions-wrap #um_real-time-notifications_image,
|
||||
#um-extensions-wrap #um_user-notes_image {
|
||||
width: 26px !important; }
|
||||
|
||||
width: 26px !important;
|
||||
}
|
||||
#um-extensions-wrap #um_followers_image,
|
||||
#um-extensions-wrap #um_user-locations_image {
|
||||
width: 32px !important; }
|
||||
|
||||
width: 32px !important;
|
||||
}
|
||||
#um-extensions-wrap #um_user-bookmarks_image {
|
||||
width: 23px !important; }
|
||||
|
||||
width: 23px !important;
|
||||
}
|
||||
#um-extensions-wrap .plugin-card-top {
|
||||
margin: 0;
|
||||
padding: 20px 0 0 0;
|
||||
width: 100%;
|
||||
min-height: 100px; }
|
||||
#um-extensions-wrap .plugin-card-top h3 {
|
||||
text-align: center;
|
||||
margin: 0 0 20px 0;
|
||||
padding: 0; }
|
||||
#um-extensions-wrap .plugin-card-top .desc {
|
||||
text-align: center;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important; }
|
||||
|
||||
min-height: 100px;
|
||||
}
|
||||
#um-extensions-wrap .plugin-card-top h3 {
|
||||
text-align: center;
|
||||
margin: 0 0 20px 0;
|
||||
padding: 0;
|
||||
}
|
||||
#um-extensions-wrap .plugin-card-top .desc {
|
||||
text-align: center;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
#um-extensions-wrap .plugin-action-links {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@@ -125,22 +132,28 @@
|
||||
align-items: baseline;
|
||||
flex-wrap: nowrap;
|
||||
width: 100%;
|
||||
padding: 20px 0 0 0; }
|
||||
padding: 20px 0 0 0;
|
||||
}
|
||||
|
||||
@media (max-width: 1152px) {
|
||||
#um-extensions-wrap .plugin-card-top {
|
||||
min-height: 120px; } }
|
||||
|
||||
min-height: 120px;
|
||||
}
|
||||
}
|
||||
@media (max-width: 992px) {
|
||||
#um-extensions-wrap #the-list {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
-ms-grid-template-columns: repeat(2, 1fr); } }
|
||||
|
||||
-ms-grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
@media (max-width: 782px) {
|
||||
#um-extensions-wrap #the-list {
|
||||
grid-template-columns: repeat(1, 1fr);
|
||||
-ms-grid-template-columns: repeat(1, 1fr); } }
|
||||
|
||||
-ms-grid-template-columns: repeat(1, 1fr);
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 782px) {
|
||||
#um-extensions-wrap .plugin-card-top {
|
||||
min-height: 80px; } }
|
||||
min-height: 80px;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
.um-form-fields-section {
|
||||
padding: 0 0 0 10px;
|
||||
float: right; }
|
||||
.um-form-fields-section label input {
|
||||
float: right; }
|
||||
float: right;
|
||||
}
|
||||
.um-form-fields-section label input {
|
||||
float: right;
|
||||
}
|
||||
@@ -1,17 +1,18 @@
|
||||
.um-admin.post-type-um_form .manage-column.column-id {
|
||||
width: 60px; }
|
||||
|
||||
width: 60px;
|
||||
}
|
||||
.um-admin.post-type-um_form .manage-column.column-mode {
|
||||
width: 100px; }
|
||||
|
||||
width: 100px;
|
||||
}
|
||||
.um-admin.post-type-um_form .manage-column.column-is_default {
|
||||
width: 60px; }
|
||||
|
||||
width: 60px;
|
||||
}
|
||||
.um-admin.post-type-um_form .manage-column.column-title {
|
||||
width: 200px; }
|
||||
|
||||
width: 200px;
|
||||
}
|
||||
.um-admin.post-type-um_form .manage-column.column-shortcode {
|
||||
width: 200px; }
|
||||
|
||||
width: 200px;
|
||||
}
|
||||
.um-admin.post-type-um_form td.column-shortcode, .um-admin.post-type-um_form td.column-id {
|
||||
font-size: 14px; }
|
||||
font-size: 14px;
|
||||
}
|
||||
+312
-246
@@ -1,20 +1,21 @@
|
||||
.um-form-table .um-forms-line[data-conditional] {
|
||||
display: none; }
|
||||
|
||||
display: none;
|
||||
}
|
||||
.um-form-table .um-forms-line label .um-req {
|
||||
color: #a00;
|
||||
margin: 0 0 0 3px;
|
||||
font-weight: normal; }
|
||||
|
||||
font-weight: normal;
|
||||
}
|
||||
.um-form-table .um-forms-line .um-text-delete {
|
||||
color: #a00;
|
||||
float: left; }
|
||||
.um-form-table .um-forms-line .um-text-delete:hover {
|
||||
color: red; }
|
||||
|
||||
float: left;
|
||||
}
|
||||
.um-form-table .um-forms-line .um-text-delete:hover {
|
||||
color: red;
|
||||
}
|
||||
.um-form-table .um-forms-line .um-multi-text-add-option {
|
||||
margin-bottom: 14px; }
|
||||
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
.um-form-table .um-forms-line .icon_preview {
|
||||
display: none;
|
||||
max-width: 200px;
|
||||
@@ -25,115 +26,131 @@
|
||||
background: #f7f7f7;
|
||||
border-radius: 3px;
|
||||
height: auto;
|
||||
width: auto !important; }
|
||||
|
||||
width: auto !important;
|
||||
}
|
||||
.um-form-table .um-forms-line td .um-same-page-update-wrapper {
|
||||
display: none;
|
||||
margin: 7px 0 0 0; }
|
||||
.um-form-table .um-forms-line td .um-same-page-update-wrapper input.um-admin-form-same-page-update {
|
||||
margin: 7px 0 0 0; }
|
||||
.um-form-table .um-forms-line td .um-same-page-update-wrapper .upgrade_log {
|
||||
margin: 7px 0 0 0;
|
||||
width: 100%;
|
||||
height: 150px;
|
||||
overflow: auto;
|
||||
border: 1px solid #a1a1a1; }
|
||||
|
||||
.um-form-table .um-forms-line[data-field_type="same_page_update"] {
|
||||
vertical-align: baseline; }
|
||||
.um-form-table .um-forms-line[data-field_type="same_page_update"] th,
|
||||
.um-form-table .um-forms-line[data-field_type="same_page_update"] td {
|
||||
vertical-align: baseline; }
|
||||
|
||||
margin: 7px 0 0 0;
|
||||
}
|
||||
.um-form-table .um-forms-line td .um-same-page-update-wrapper input.um-admin-form-same-page-update {
|
||||
margin: 7px 0 0 0;
|
||||
}
|
||||
.um-form-table .um-forms-line td .um-same-page-update-wrapper .upgrade_log {
|
||||
margin: 7px 0 0 0;
|
||||
width: 100%;
|
||||
height: 150px;
|
||||
overflow: auto;
|
||||
border: 1px solid #a1a1a1;
|
||||
}
|
||||
.um-form-table .um-forms-line[data-field_type=same_page_update] {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
.um-form-table .um-forms-line[data-field_type=same_page_update] th,
|
||||
.um-form-table .um-forms-line[data-field_type=same_page_update] td {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
.um-form-table.um-third-column .um-forms-line th {
|
||||
width: 33%; }
|
||||
|
||||
width: 33%;
|
||||
}
|
||||
.um-form-table.um-half-column .um-forms-line th {
|
||||
width: 50%; }
|
||||
|
||||
width: 50%;
|
||||
}
|
||||
.um-form-table.um-two-thirds-column .um-forms-line th {
|
||||
width: 83%; }
|
||||
|
||||
width: 83%;
|
||||
}
|
||||
.um-form-table.um-top-label .um-forms-line td {
|
||||
padding: 0 0 15px 0; }
|
||||
.um-form-table.um-top-label .um-forms-line td label {
|
||||
margin: 0 0 5px 0;
|
||||
display: inline-block; }
|
||||
|
||||
.um-form-table.um-top-label .um-forms-line[data-field_type="icon"] td label {
|
||||
padding: 0 0 15px 0;
|
||||
}
|
||||
.um-form-table.um-top-label .um-forms-line td label {
|
||||
margin: 0 0 5px 0;
|
||||
display: inline-block;
|
||||
}
|
||||
.um-form-table.um-top-label .um-forms-line[data-field_type=icon] td label {
|
||||
width: 100%;
|
||||
display: block;
|
||||
margin: 0 0 5px 0; }
|
||||
margin: 0 0 5px 0;
|
||||
}
|
||||
|
||||
.um-external-link-icon {
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
margin: 0;
|
||||
vertical-align: middle;
|
||||
fill: currentcolor; }
|
||||
fill: currentcolor;
|
||||
}
|
||||
|
||||
.um_admin_fonticon_wrapper {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap; }
|
||||
.um_admin_fonticon_wrapper .um-admin-icon-value {
|
||||
line-height: 1; }
|
||||
.um_admin_fonticon_wrapper .um-admin-icon-value i {
|
||||
top: 0; }
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.um_admin_fonticon_wrapper .um-admin-icon-value {
|
||||
line-height: 1;
|
||||
}
|
||||
.um_admin_fonticon_wrapper .um-admin-icon-value i {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
input[type="text"].um-forms-field,
|
||||
input[type="url"].um-forms-field,
|
||||
input[type="number"].um-forms-field,
|
||||
input[type="date"].um-forms-field,
|
||||
input[type="time"].um-forms-field,
|
||||
input[type="password"].um-forms-field,
|
||||
input[type=text].um-forms-field,
|
||||
input[type=url].um-forms-field,
|
||||
input[type=number].um-forms-field,
|
||||
input[type=date].um-forms-field,
|
||||
input[type=time].um-forms-field,
|
||||
input[type=password].um-forms-field,
|
||||
select.um-forms-field,
|
||||
textarea.um-forms-field {
|
||||
box-sizing: border-box; }
|
||||
input[type="text"].um-forms-field.um-long-field,
|
||||
input[type="url"].um-forms-field.um-long-field,
|
||||
input[type="number"].um-forms-field.um-long-field,
|
||||
input[type="date"].um-forms-field.um-long-field,
|
||||
input[type="time"].um-forms-field.um-long-field,
|
||||
input[type="password"].um-forms-field.um-long-field,
|
||||
select.um-forms-field.um-long-field,
|
||||
textarea.um-forms-field.um-long-field {
|
||||
width: 100% !important; }
|
||||
input[type="text"].um-forms-field.um-medium-field,
|
||||
input[type="url"].um-forms-field.um-medium-field,
|
||||
input[type="number"].um-forms-field.um-medium-field,
|
||||
input[type="date"].um-forms-field.um-medium-field,
|
||||
input[type="time"].um-forms-field.um-medium-field,
|
||||
input[type="password"].um-forms-field.um-medium-field,
|
||||
select.um-forms-field.um-medium-field,
|
||||
textarea.um-forms-field.um-medium-field {
|
||||
width: 50% !important; }
|
||||
input[type="text"].um-forms-field.um-small-field,
|
||||
input[type="url"].um-forms-field.um-small-field,
|
||||
input[type="number"].um-forms-field.um-small-field,
|
||||
input[type="date"].um-forms-field.um-small-field,
|
||||
input[type="time"].um-forms-field.um-small-field,
|
||||
input[type="password"].um-forms-field.um-small-field,
|
||||
select.um-forms-field.um-small-field,
|
||||
textarea.um-forms-field.um-small-field {
|
||||
width: 25% !important; }
|
||||
box-sizing: border-box;
|
||||
}
|
||||
input[type=text].um-forms-field.um-long-field,
|
||||
input[type=url].um-forms-field.um-long-field,
|
||||
input[type=number].um-forms-field.um-long-field,
|
||||
input[type=date].um-forms-field.um-long-field,
|
||||
input[type=time].um-forms-field.um-long-field,
|
||||
input[type=password].um-forms-field.um-long-field,
|
||||
select.um-forms-field.um-long-field,
|
||||
textarea.um-forms-field.um-long-field {
|
||||
width: 100% !important;
|
||||
}
|
||||
input[type=text].um-forms-field.um-medium-field,
|
||||
input[type=url].um-forms-field.um-medium-field,
|
||||
input[type=number].um-forms-field.um-medium-field,
|
||||
input[type=date].um-forms-field.um-medium-field,
|
||||
input[type=time].um-forms-field.um-medium-field,
|
||||
input[type=password].um-forms-field.um-medium-field,
|
||||
select.um-forms-field.um-medium-field,
|
||||
textarea.um-forms-field.um-medium-field {
|
||||
width: 50% !important;
|
||||
}
|
||||
input[type=text].um-forms-field.um-small-field,
|
||||
input[type=url].um-forms-field.um-small-field,
|
||||
input[type=number].um-forms-field.um-small-field,
|
||||
input[type=date].um-forms-field.um-small-field,
|
||||
input[type=time].um-forms-field.um-small-field,
|
||||
input[type=password].um-forms-field.um-small-field,
|
||||
select.um-forms-field.um-small-field,
|
||||
textarea.um-forms-field.um-small-field {
|
||||
width: 25% !important;
|
||||
}
|
||||
|
||||
input[type="number"].um-forms-field {
|
||||
padding-right: 0; }
|
||||
input[type=number].um-forms-field {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.um-multi-text-list,
|
||||
.um-multi-selects-list,
|
||||
.um-md-default-filters-list {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin: 0 0 10px 0; }
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
|
||||
.um-hidden-multi-text,
|
||||
.um-hidden-multi-selects,
|
||||
.um-hidden-md-default-filters {
|
||||
display: none !important; }
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.um-md-default-filters-option-line {
|
||||
float: left;
|
||||
@@ -141,128 +158,153 @@ input[type="number"].um-forms-field {
|
||||
clear: both;
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 0 0 5px 0;
|
||||
margin: 5px 0 0 0; }
|
||||
.um-md-default-filters-option-line .um-field-wrapper {
|
||||
float: left;
|
||||
width: calc( 100% - 60px);
|
||||
line-height: 30px;
|
||||
box-sizing: border-box; }
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 {
|
||||
float: left;
|
||||
width: calc( 100% - 60px);
|
||||
line-height: 30px;
|
||||
box-sizing: border-box; }
|
||||
.um-md-default-filters-option-line .um-field-wrapper2.um {
|
||||
margin: 5px 0 0 0; }
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 .ui-slider-range.ui-widget-header {
|
||||
background: #44b0ec;
|
||||
border: 1px solid #44b0ec !important;
|
||||
margin-top: -1px; }
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 > select {
|
||||
width: 100%;
|
||||
float: left; }
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 > input {
|
||||
width: 100%;
|
||||
float: left; }
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 > input.um-timepicker-filter, .um-md-default-filters-option-line .um-field-wrapper2 > input.um-datepicker-filter {
|
||||
width: calc( 50% - 7px) !important;
|
||||
float: left; }
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 > input.um-timepicker-filter:first-child, .um-md-default-filters-option-line .um-field-wrapper2 > input.um-datepicker-filter:first-child {
|
||||
margin-right: 11px; }
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 .um-slider {
|
||||
margin: 5px 9px 0 9px;
|
||||
width: calc( 100% - 18px);
|
||||
box-sizing: border-box;
|
||||
display: block; }
|
||||
.um-md-default-filters-option-line .um-field-control {
|
||||
float: left;
|
||||
width: 60px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box; }
|
||||
margin: 5px 0 0 0;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-wrapper {
|
||||
float: left;
|
||||
width: calc(100% - 60px);
|
||||
line-height: 30px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 {
|
||||
float: left;
|
||||
width: calc(100% - 60px);
|
||||
line-height: 30px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-wrapper2.um {
|
||||
margin: 5px 0 0 0;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 .ui-slider-range.ui-widget-header {
|
||||
background: #44b0ec;
|
||||
border: 1px solid #44b0ec !important;
|
||||
margin-top: -1px;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 > select {
|
||||
width: 100%;
|
||||
float: left;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 > input {
|
||||
width: 100%;
|
||||
float: left;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 > input.um-timepicker-filter, .um-md-default-filters-option-line .um-field-wrapper2 > input.um-datepicker-filter {
|
||||
width: calc(50% - 7px) !important;
|
||||
float: left;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 > input.um-timepicker-filter:first-child, .um-md-default-filters-option-line .um-field-wrapper2 > input.um-datepicker-filter:first-child {
|
||||
margin-right: 11px;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-wrapper2 .um-slider {
|
||||
margin: 5px 9px 0 9px;
|
||||
width: calc(100% - 18px);
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
}
|
||||
.um-md-default-filters-option-line .um-field-control {
|
||||
float: left;
|
||||
width: 60px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.um-multi-selects-option-line {
|
||||
float: left;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
clear: both;
|
||||
margin: 0 0 5px 0; }
|
||||
.um-multi-selects-option-line.um-admin-drag-fld {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
background: none;
|
||||
border: none; }
|
||||
.um-multi-selects-option-line.um-admin-drag-fld .um-field-wrapper {
|
||||
width: calc( 100% - 90px); }
|
||||
.um-multi-selects-option-line.um-admin-drag-fld .um-field-icon {
|
||||
float: left;
|
||||
width: 20px;
|
||||
text-align: left;
|
||||
line-height: 30px; }
|
||||
.um-multi-selects-option-line .um-field-wrapper {
|
||||
float: left;
|
||||
width: calc( 100% - 60px);
|
||||
line-height: 30px;
|
||||
box-sizing: border-box; }
|
||||
.um-multi-selects-option-line .um-field-wrapper.um-custom-order-fields {
|
||||
margin: 5px 0 0 0; }
|
||||
.um-multi-selects-option-line .um-field-wrapper.um-custom-order-fields label {
|
||||
float: left;
|
||||
width: 100%;
|
||||
line-height: 30px;
|
||||
box-sizing: border-box;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-beetween;
|
||||
align-items: baseline;
|
||||
flex-wrap: nowrap; }
|
||||
.um-multi-selects-option-line .um-field-wrapper.um-custom-order-fields label input[type="text"],
|
||||
.um-multi-selects-option-line .um-field-wrapper.um-custom-order-fields label select {
|
||||
width: auto;
|
||||
display: inline;
|
||||
font-weight: normal;
|
||||
max-width: 70%;
|
||||
flex: 0.9; }
|
||||
.um-multi-selects-option-line .um-field-wrapper input,
|
||||
.um-multi-selects-option-line .um-field-wrapper select {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin: 0; }
|
||||
.um-multi-selects-option-line .um-field-control {
|
||||
float: left;
|
||||
width: 60px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box; }
|
||||
margin: 0 0 5px 0;
|
||||
}
|
||||
.um-multi-selects-option-line.um-admin-drag-fld {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
background: none;
|
||||
border: none;
|
||||
}
|
||||
.um-multi-selects-option-line.um-admin-drag-fld .um-field-wrapper {
|
||||
width: calc(100% - 90px);
|
||||
}
|
||||
.um-multi-selects-option-line.um-admin-drag-fld .um-field-icon {
|
||||
float: left;
|
||||
width: 20px;
|
||||
text-align: left;
|
||||
line-height: 30px;
|
||||
}
|
||||
.um-multi-selects-option-line .um-field-wrapper {
|
||||
float: left;
|
||||
width: calc(100% - 60px);
|
||||
line-height: 30px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.um-multi-selects-option-line .um-field-wrapper.um-custom-order-fields {
|
||||
margin: 5px 0 0 0;
|
||||
}
|
||||
.um-multi-selects-option-line .um-field-wrapper.um-custom-order-fields label {
|
||||
float: left;
|
||||
width: 100%;
|
||||
line-height: 30px;
|
||||
box-sizing: border-box;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-beetween;
|
||||
align-items: baseline;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.um-multi-selects-option-line .um-field-wrapper.um-custom-order-fields label input[type=text],
|
||||
.um-multi-selects-option-line .um-field-wrapper.um-custom-order-fields label select {
|
||||
width: auto;
|
||||
display: inline;
|
||||
font-weight: normal;
|
||||
max-width: 70%;
|
||||
flex: 0.9;
|
||||
}
|
||||
.um-multi-selects-option-line .um-field-wrapper input,
|
||||
.um-multi-selects-option-line .um-field-wrapper select {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
.um-multi-selects-option-line .um-field-control {
|
||||
float: left;
|
||||
width: 60px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.um-multi-text-option-line {
|
||||
float: left;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
clear: both;
|
||||
margin: 0 0 5px 0; }
|
||||
.um-multi-text-option-line .um-field-wrapper {
|
||||
float: left;
|
||||
width: calc( 100% - 90px);
|
||||
line-height: 30px;
|
||||
box-sizing: border-box; }
|
||||
.um-multi-text-option-line .um-field-wrapper input,
|
||||
.um-multi-text-option-line .um-field-wrapper select {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin: 0; }
|
||||
.um-multi-text-option-line .um-field-control {
|
||||
float: left;
|
||||
width: 60px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box; }
|
||||
margin: 0 0 5px 0;
|
||||
}
|
||||
.um-multi-text-option-line .um-field-wrapper {
|
||||
float: left;
|
||||
width: calc(100% - 90px);
|
||||
line-height: 30px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.um-multi-text-option-line .um-field-wrapper input,
|
||||
.um-multi-text-option-line .um-field-wrapper select {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
.um-multi-text-option-line .um-field-control {
|
||||
float: left;
|
||||
width: 60px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.um-form-fields-section {
|
||||
float: left;
|
||||
@@ -271,52 +313,66 @@ input[type="number"].um-forms-field {
|
||||
padding: 0 10px 0 0;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box; }
|
||||
.um-form-fields-section label {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
.um-form-fields-section label input {
|
||||
float: left;
|
||||
margin-top: 0; }
|
||||
.um-form-fields-section label span {
|
||||
float: left;
|
||||
width: calc( 100% - 20px); }
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
.um-form-fields-section label {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.um-form-fields-section label input {
|
||||
float: left;
|
||||
margin-top: 0;
|
||||
}
|
||||
.um-form-fields-section label span {
|
||||
float: left;
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 782px) {
|
||||
input[type="text"].um-forms-field.um-medium-field,
|
||||
input[type=text].um-forms-field.um-medium-field,
|
||||
select.um-forms-field.um-medium-field,
|
||||
textarea.um-forms-field.um-medium-field {
|
||||
width: 100% !important; }
|
||||
input[type="text"].um-forms-field.um-small-field,
|
||||
width: 100% !important;
|
||||
}
|
||||
input[type=text].um-forms-field.um-small-field,
|
||||
select.um-forms-field.um-small-field,
|
||||
textarea.um-forms-field.um-small-field {
|
||||
width: 50% !important; }
|
||||
width: 50% !important;
|
||||
}
|
||||
.um-form-fields-section {
|
||||
width: 100% !important; }
|
||||
width: 100% !important;
|
||||
}
|
||||
.um-admin-metabox .um-form-fields-section label {
|
||||
line-height: 22px !important;
|
||||
margin: 0 0 12px 0 !important; }
|
||||
.um-admin-metabox .um-form-fields-section label span {
|
||||
width: calc( 100% - 30px); }
|
||||
margin: 0 0 12px 0 !important;
|
||||
}
|
||||
.um-admin-metabox .um-form-fields-section label span {
|
||||
width: calc(100% - 30px);
|
||||
}
|
||||
.um-multi-text-option-line,
|
||||
.um-multi-selects-option-line {
|
||||
margin: 0 0 6px 0; }
|
||||
margin: 0 0 6px 0;
|
||||
}
|
||||
.um-forms-line label {
|
||||
float: left;
|
||||
width: 100%; }
|
||||
width: 100%;
|
||||
}
|
||||
.um-form-table.um-third-column .um-forms-line th, .um-form-table.um-half-column .um-forms-line th, .um-form-table.um-two-thirds-column .um-forms-line th {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin-bottom: 5px; }
|
||||
.um-form-table.um-third-column .um-forms-line th label, .um-form-table.um-half-column .um-forms-line th label, .um-form-table.um-two-thirds-column .um-forms-line th label {
|
||||
float: left;
|
||||
width: 100%; }
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.um-form-table.um-third-column .um-forms-line th label, .um-form-table.um-half-column .um-forms-line th label, .um-form-table.um-two-thirds-column .um-forms-line th label {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
.um-form-table.um-third-column .um-forms-line td, .um-form-table.um-half-column .um-forms-line td, .um-form-table.um-two-thirds-column .um-forms-line td {
|
||||
float: left;
|
||||
width: 100%; } }
|
||||
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.um-sortable-items-field .um-sortable-item {
|
||||
cursor: move !important;
|
||||
padding: 5px;
|
||||
@@ -333,38 +389,48 @@ input[type="number"].um-forms-field {
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap; }
|
||||
.um-sortable-items-field .um-sortable-item.um-hidden-item {
|
||||
display: none; }
|
||||
.um-sortable-items-field .um-sortable-item .um-field-icon {
|
||||
width: 20px;
|
||||
text-align: left;
|
||||
margin: 0 10px 0 0; }
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.um-sortable-items-field .um-sortable-item.um-hidden-item {
|
||||
display: none;
|
||||
}
|
||||
.um-sortable-items-field .um-sortable-item .um-field-icon {
|
||||
width: 20px;
|
||||
text-align: left;
|
||||
margin: 0 10px 0 0;
|
||||
}
|
||||
|
||||
.wp-picker-container input.wp-color-picker[type="text"] {
|
||||
.wp-picker-container input.wp-color-picker[type=text] {
|
||||
width: 68px !important;
|
||||
float: left !important;
|
||||
padding: 2px 4px !important;
|
||||
border-width: 1px !important; }
|
||||
border-width: 1px !important;
|
||||
}
|
||||
|
||||
span.um-admin-icon-value {
|
||||
margin: 0 10px;
|
||||
font-size: 13px; }
|
||||
span.um-admin-icon-value i {
|
||||
font-size: 28px;
|
||||
color: #0085ba;
|
||||
position: relative;
|
||||
top: 5px; }
|
||||
font-size: 13px;
|
||||
}
|
||||
span.um-admin-icon-value i {
|
||||
font-size: 28px;
|
||||
color: #0085ba;
|
||||
position: relative;
|
||||
top: 5px;
|
||||
}
|
||||
|
||||
span.um-admin-icon-clear {
|
||||
display: none;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
color: #ccc; }
|
||||
span.um-admin-icon-clear.show {
|
||||
display: inline-block; }
|
||||
span.um-admin-icon-clear:hover {
|
||||
color: #777; }
|
||||
span.um-admin-icon-clear i {
|
||||
font-size: 20px;
|
||||
vertical-align: middle; }
|
||||
color: #ccc;
|
||||
}
|
||||
span.um-admin-icon-clear.show {
|
||||
display: inline-block;
|
||||
}
|
||||
span.um-admin-icon-clear:hover {
|
||||
color: #777;
|
||||
}
|
||||
span.um-admin-icon-clear i {
|
||||
font-size: 20px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
+57
-38
@@ -1,34 +1,44 @@
|
||||
ul#adminmenu li#toplevel_page_ultimatemember a.wp-has-current-submenu:after {
|
||||
display: none !important; }
|
||||
|
||||
display: none !important;
|
||||
}
|
||||
ul#adminmenu li#toplevel_page_ultimatemember.wp-has-submenu.wp-not-current-submenu:hover:after {
|
||||
right: -9999999px; }
|
||||
|
||||
right: -9999999px;
|
||||
}
|
||||
ul#adminmenu > li#toplevel_page_ultimatemember.current > a.current:after {
|
||||
display: none !important; }
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.um-admin-notice {
|
||||
border-color: #0085ba;
|
||||
color: #555; }
|
||||
.um-admin-notice.error {
|
||||
border-color: #dc3232; }
|
||||
.um-admin-notice.notice-warning {
|
||||
border-color: #dba617; }
|
||||
.um-admin-notice a {
|
||||
text-decoration: none;
|
||||
color: #0085ba; }
|
||||
.um-admin-notice a:hover {
|
||||
color: #44b0ec; }
|
||||
.um-admin-notice a.button-primary {
|
||||
background-color: #0085ba;
|
||||
border-color: #0085ba; }
|
||||
.um-admin-notice a.button-primary:hover {
|
||||
background-color: #008ec2;
|
||||
border-color: #008ec2; }
|
||||
.um-admin-notice a.button-secondary {
|
||||
opacity: 0.7; }
|
||||
.um-admin-notice a.button-secondary:hover {
|
||||
opacity: 0.9; }
|
||||
color: #555;
|
||||
}
|
||||
.um-admin-notice.error {
|
||||
border-color: #dc3232;
|
||||
}
|
||||
.um-admin-notice.notice-warning {
|
||||
border-color: #dba617;
|
||||
}
|
||||
.um-admin-notice a {
|
||||
text-decoration: none;
|
||||
color: #0085ba;
|
||||
}
|
||||
.um-admin-notice a:hover {
|
||||
color: #44b0ec;
|
||||
}
|
||||
.um-admin-notice a.button-primary {
|
||||
background-color: #0085ba;
|
||||
border-color: #0085ba;
|
||||
}
|
||||
.um-admin-notice a.button-primary:hover {
|
||||
background-color: #008ec2;
|
||||
border-color: #008ec2;
|
||||
}
|
||||
.um-admin-notice a.button-secondary {
|
||||
opacity: 0.7;
|
||||
}
|
||||
.um-admin-notice a.button-secondary:hover {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* UM Tooltip ( future helptip ) */
|
||||
.um .ui-tooltip.um_tooltip {
|
||||
@@ -41,19 +51,28 @@ ul#adminmenu > li#toplevel_page_ultimatemember.current > a.current:after {
|
||||
font-size: 12px;
|
||||
border-radius: 5px;
|
||||
border: none !important;
|
||||
text-shadow: none !important; }
|
||||
text-shadow: none !important;
|
||||
}
|
||||
|
||||
.um_tooltip {
|
||||
cursor: pointer;
|
||||
vertical-align: middle; }
|
||||
.um_tooltip:hover {
|
||||
opacity: 1; }
|
||||
.um_tooltip:hover:before {
|
||||
opacity: 0.8; }
|
||||
.um_tooltip.dashicons, .um_tooltip.dashicons:before {
|
||||
height: 22px; }
|
||||
.um_tooltip.dashicons-editor-help:before {
|
||||
float: left;
|
||||
font-size: 20px;
|
||||
line-height: 20px;
|
||||
color: rgba(0, 0, 0, 0.85) !important; }
|
||||
vertical-align: middle;
|
||||
}
|
||||
.um_tooltip:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
.um_tooltip:hover:before {
|
||||
opacity: 0.8;
|
||||
}
|
||||
.um_tooltip.dashicons {
|
||||
height: 22px;
|
||||
}
|
||||
.um_tooltip.dashicons:before {
|
||||
height: 22px;
|
||||
}
|
||||
.um_tooltip.dashicons-editor-help:before {
|
||||
float: left;
|
||||
font-size: 20px;
|
||||
line-height: 20px;
|
||||
color: rgba(0, 0, 0, 0.85) !important;
|
||||
}
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
ul#adminmenu li#toplevel_page_ultimatemember a.wp-has-current-submenu:after{display:none!important}ul#adminmenu li#toplevel_page_ultimatemember.wp-has-submenu.wp-not-current-submenu:hover:after{right:-9999999px}ul#adminmenu>li#toplevel_page_ultimatemember.current>a.current:after{display:none!important}.um-admin-notice{border-color:#0085ba;color:#555}.um-admin-notice.error{border-color:#dc3232}.um-admin-notice.notice-warning{border-color:#dba617}.um-admin-notice a{text-decoration:none;color:#0085ba}.um-admin-notice a:hover{color:#44b0ec}.um-admin-notice a.button-primary{background-color:#0085ba;border-color:#0085ba}.um-admin-notice a.button-primary:hover{background-color:#008ec2;border-color:#008ec2}.um-admin-notice a.button-secondary{opacity:.7}.um-admin-notice a.button-secondary:hover{opacity:.9}.um .ui-tooltip.um_tooltip{padding:8px;color:#eee!important;background:rgba(0,0,0,.85)!important;position:absolute;z-index:10002;max-width:300px;font-size:12px;border-radius:5px;border:none!important;text-shadow:none!important}.um_tooltip{cursor:pointer;vertical-align:middle}.um_tooltip:hover{opacity:1}.um_tooltip:hover:before{opacity:.8}.um_tooltip.dashicons,.um_tooltip.dashicons:before{height:22px}.um_tooltip.dashicons-editor-help:before{float:left;font-size:20px;line-height:20px;color:rgba(0,0,0,.85)!important}
|
||||
ul#adminmenu li#toplevel_page_ultimatemember a.wp-has-current-submenu:after{display:none!important}ul#adminmenu li#toplevel_page_ultimatemember.wp-has-submenu.wp-not-current-submenu:hover:after{right:-9999999px}ul#adminmenu>li#toplevel_page_ultimatemember.current>a.current:after{display:none!important}.um-admin-notice{border-color:#0085ba;color:#555}.um-admin-notice.error{border-color:#dc3232}.um-admin-notice.notice-warning{border-color:#dba617}.um-admin-notice a{text-decoration:none;color:#0085ba}.um-admin-notice a:hover{color:#44b0ec}.um-admin-notice a.button-primary{background-color:#0085ba;border-color:#0085ba}.um-admin-notice a.button-primary:hover{background-color:#008ec2;border-color:#008ec2}.um-admin-notice a.button-secondary{opacity:.7}.um-admin-notice a.button-secondary:hover{opacity:.9}.um .ui-tooltip.um_tooltip{padding:8px;color:#eee!important;background:rgba(0,0,0,.85)!important;position:absolute;z-index:10002;max-width:300px;font-size:12px;border-radius:5px;border:none!important;text-shadow:none!important}.um_tooltip{cursor:pointer;vertical-align:middle}.um_tooltip:hover{opacity:1}.um_tooltip:hover:before{opacity:.8}.um_tooltip.dashicons{height:22px}.um_tooltip.dashicons:before{height:22px}.um_tooltip.dashicons-editor-help:before{float:left;font-size:20px;line-height:20px;color:rgba(0,0,0,.85)!important}
|
||||
@@ -57,7 +57,7 @@ ul#adminmenu
|
||||
&.dashicons
|
||||
height: 22px
|
||||
&:before
|
||||
@extend .#{$helptip}.dashicons
|
||||
height: 22px
|
||||
&.dashicons-editor-help:before
|
||||
float: left
|
||||
font-size: 20px
|
||||
|
||||
+126
-93
@@ -5,7 +5,8 @@
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 10000; }
|
||||
z-index: 10000;
|
||||
}
|
||||
|
||||
.um-admin-modal {
|
||||
border-radius: 3px;
|
||||
@@ -17,59 +18,78 @@
|
||||
z-index: 10001;
|
||||
box-sizing: border-box;
|
||||
width: 730px;
|
||||
margin-left: -365px; }
|
||||
.um-admin-modal.normal {
|
||||
width: 730px;
|
||||
margin-left: -365px; }
|
||||
.um-admin-modal.smaller {
|
||||
width: 500px;
|
||||
margin-left: -250px; }
|
||||
.um-admin-modal.small {
|
||||
width: 400px;
|
||||
margin-left: -200px; }
|
||||
.um-admin-modal input[type="submit"].button-primary {
|
||||
padding: 0 12px !important;
|
||||
vertical-align: middle !important;
|
||||
line-height: 24px !important; }
|
||||
.um-admin-modal .um-admin-modal-body {
|
||||
padding: 10px 20px 10px 20px;
|
||||
max-height: 500px;
|
||||
overflow: auto; }
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox label {
|
||||
margin: 0 !important; }
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox .um-admin-editor-h {
|
||||
margin-top: 12px; }
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox .um-admin-editor-h label {
|
||||
margin: 0 0 4px 0 !important; }
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox .wp-editor-wrap {
|
||||
margin: 0 0 4px 0 !important; }
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox .wp-editor-wrap textarea {
|
||||
border: 0 !important; }
|
||||
.um-admin-modal a.button-primary {
|
||||
padding: 0 12px !important;
|
||||
vertical-align: middle !important; }
|
||||
.um-admin-modal a.button {
|
||||
padding: 0 12px !important;
|
||||
vertical-align: middle !important; }
|
||||
.um-admin-modal a.button i:before {
|
||||
display: block;
|
||||
top: 0; }
|
||||
.um-admin-modal h3 {
|
||||
font-size: 14px;
|
||||
line-height: 14px;
|
||||
font-weight: normal;
|
||||
color: #fff; }
|
||||
.um-admin-modal h4 {
|
||||
margin: 0 0 10px 0 !important; }
|
||||
.um-admin-modal label {
|
||||
font-size: 13px;
|
||||
color: #aaa; }
|
||||
.um-admin-modal p {
|
||||
font-size: 13px;
|
||||
color: #aaa; }
|
||||
.um-admin-modal.loading .um-admin-modal-body {
|
||||
height: 200px;
|
||||
background: url(../../img/ajax-loader.gif) no-repeat center; }
|
||||
margin-left: -365px;
|
||||
}
|
||||
.um-admin-modal.normal {
|
||||
width: 730px;
|
||||
margin-left: -365px;
|
||||
}
|
||||
.um-admin-modal.smaller {
|
||||
width: 500px;
|
||||
margin-left: -250px;
|
||||
}
|
||||
.um-admin-modal.small {
|
||||
width: 400px;
|
||||
margin-left: -200px;
|
||||
}
|
||||
.um-admin-modal input[type=submit].button-primary {
|
||||
padding: 0 12px !important;
|
||||
vertical-align: middle !important;
|
||||
line-height: 24px !important;
|
||||
}
|
||||
.um-admin-modal .um-admin-modal-body {
|
||||
padding: 10px 20px 10px 20px;
|
||||
max-height: 500px;
|
||||
overflow: auto;
|
||||
}
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox label {
|
||||
margin: 0 !important;
|
||||
}
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox .um-admin-editor-h {
|
||||
margin-top: 12px;
|
||||
}
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox .um-admin-editor-h label {
|
||||
margin: 0 0 4px 0 !important;
|
||||
}
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox .wp-editor-wrap {
|
||||
margin: 0 0 4px 0 !important;
|
||||
}
|
||||
.um-admin-modal .um-admin-modal-body.um-admin-metabox .wp-editor-wrap textarea {
|
||||
border: 0 !important;
|
||||
}
|
||||
.um-admin-modal a.button-primary {
|
||||
padding: 0 12px !important;
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
.um-admin-modal a.button {
|
||||
padding: 0 12px !important;
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
.um-admin-modal a.button i:before {
|
||||
display: block;
|
||||
top: 0;
|
||||
}
|
||||
.um-admin-modal h3 {
|
||||
font-size: 14px;
|
||||
line-height: 14px;
|
||||
font-weight: normal;
|
||||
color: #fff;
|
||||
}
|
||||
.um-admin-modal h4 {
|
||||
margin: 0 0 10px 0 !important;
|
||||
}
|
||||
.um-admin-modal label {
|
||||
font-size: 13px;
|
||||
color: #aaa;
|
||||
}
|
||||
.um-admin-modal p {
|
||||
font-size: 13px;
|
||||
color: #aaa;
|
||||
}
|
||||
.um-admin-modal.loading .um-admin-modal-body {
|
||||
height: 200px;
|
||||
background: url(../../img/ajax-loader.gif) no-repeat center;
|
||||
}
|
||||
|
||||
.um-admin-modal-close {
|
||||
position: absolute;
|
||||
@@ -78,63 +98,76 @@
|
||||
top: 14px;
|
||||
font-size: 22px;
|
||||
text-decoration: none;
|
||||
opacity: 0.4; }
|
||||
.um-admin-modal-close:hover {
|
||||
opacity: 1; }
|
||||
opacity: 0.4;
|
||||
}
|
||||
.um-admin-modal-close:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.um-admin-modal-head {
|
||||
padding: 4px 20px;
|
||||
background: #0085ba;
|
||||
position: relative;
|
||||
border-radius: 3px 3px 0 0; }
|
||||
border-radius: 3px 3px 0 0;
|
||||
}
|
||||
|
||||
.um-admin-modal-foot {
|
||||
padding: 20px 0 !important;
|
||||
border-top: 1px solid #ddd;
|
||||
text-align: center;
|
||||
background: #eee;
|
||||
border-radius: 0 0 3px 3px; }
|
||||
.um-admin-modal-foot a,
|
||||
.um-admin-modal-foot input {
|
||||
margin: 0 10px !important;
|
||||
font-size: 14px !important; }
|
||||
border-radius: 0 0 3px 3px;
|
||||
}
|
||||
.um-admin-modal-foot a,
|
||||
.um-admin-modal-foot input {
|
||||
margin: 0 10px !important;
|
||||
font-size: 14px !important;
|
||||
}
|
||||
|
||||
#UM_fonticons div.um-admin-metabox {
|
||||
padding-bottom: 22px !important; }
|
||||
padding-bottom: 22px !important;
|
||||
}
|
||||
|
||||
p._icon_search {
|
||||
position: relative;
|
||||
width: 85% !important;
|
||||
margin: 0 auto !important;
|
||||
padding: 12px 0 0 0 !important; }
|
||||
p._icon_search:before {
|
||||
position: absolute;
|
||||
right: 6px;
|
||||
top: 12px;
|
||||
font-size: 20px;
|
||||
content: "\f4a4";
|
||||
font-family: "Ionicons";
|
||||
color: #999; }
|
||||
p._icon_search:before input[type="text"] {
|
||||
padding-right: 40px !important; }
|
||||
padding: 12px 0 0 0 !important;
|
||||
}
|
||||
p._icon_search:before {
|
||||
position: absolute;
|
||||
right: 6px;
|
||||
top: 12px;
|
||||
font-size: 20px;
|
||||
content: "\f4a4";
|
||||
font-family: "Ionicons";
|
||||
color: #999;
|
||||
}
|
||||
p._icon_search:before input[type=text] {
|
||||
padding-right: 40px !important;
|
||||
}
|
||||
|
||||
.um-admin-icons {
|
||||
padding: 0 0 15px 12px;
|
||||
float: left; }
|
||||
.um-admin-icons span {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
margin: 5px;
|
||||
color: #777;
|
||||
border: 4px solid #eee;
|
||||
border-radius: 3px; }
|
||||
.um-admin-icons span:hover, .um-admin-icons span.highlighted {
|
||||
color: #0085ba;
|
||||
border-color: #0085ba; }
|
||||
.um-admin-icons i {
|
||||
vertical-align: middle !important;
|
||||
font-size: 24px;
|
||||
width: 24px;
|
||||
text-align: center;
|
||||
padding: 15px 20px;
|
||||
display: inline-block; }
|
||||
float: left;
|
||||
}
|
||||
.um-admin-icons span {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
margin: 5px;
|
||||
color: #777;
|
||||
border: 4px solid #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.um-admin-icons span:hover, .um-admin-icons span.highlighted {
|
||||
color: #0085ba;
|
||||
border-color: #0085ba;
|
||||
}
|
||||
.um-admin-icons i {
|
||||
vertical-align: middle !important;
|
||||
font-size: 24px;
|
||||
width: 24px;
|
||||
text-align: center;
|
||||
padding: 15px 20px;
|
||||
display: inline-block;
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
.um-admin-overlay
|
||||
background: rgba( 0, 0, 0, 0.7)
|
||||
width: 100%
|
||||
height: 100%
|
||||
position: fixed
|
||||
top: 0
|
||||
left: 0
|
||||
z-index: 10000
|
||||
background: rgba( 0, 0, 0, 0.7)
|
||||
width: 100%
|
||||
height: 100%
|
||||
position: fixed
|
||||
top: 0
|
||||
left: 0
|
||||
z-index: 10000
|
||||
|
||||
.um-admin-modal
|
||||
border-radius: 3px
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
.wp-admin p.um-nav-roles {
|
||||
display: none;
|
||||
margin-top: 5px; }
|
||||
.wp-admin p.um-nav-roles label {
|
||||
margin-top: 2px !important;
|
||||
margin-bottom: 2px !important; }
|
||||
.wp-admin p.um-nav-roles label input[type="checkbox"] {
|
||||
margin-top: 2px !important; }
|
||||
|
||||
margin-top: 5px;
|
||||
}
|
||||
.wp-admin p.um-nav-roles label {
|
||||
margin-top: 2px !important;
|
||||
margin-bottom: 2px !important;
|
||||
}
|
||||
.wp-admin p.um-nav-roles label input[type=checkbox] {
|
||||
margin-top: 2px !important;
|
||||
}
|
||||
.wp-admin p.um-nav-mode {
|
||||
margin-top: 10px; }
|
||||
margin-top: 10px;
|
||||
}
|
||||
+20
-13
@@ -1,39 +1,46 @@
|
||||
#um-roles .row-actions .reset a {
|
||||
color: #a00; }
|
||||
#um-roles .row-actions .reset a:hover {
|
||||
color: red; }
|
||||
color: #a00;
|
||||
}
|
||||
#um-roles .row-actions .reset a:hover {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.wp-list-table.roles .column-core,
|
||||
.wp-list-table.roles .column-users {
|
||||
width: 15%;
|
||||
text-align: center !important; }
|
||||
|
||||
text-align: center !important;
|
||||
}
|
||||
.wp-list-table.roles .column-admin_access,
|
||||
.wp-list-table.roles .column-priority {
|
||||
width: 10%;
|
||||
text-align: center !important; }
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 782px) {
|
||||
.wp-list-table.roles .column-core,
|
||||
.wp-list-table.roles .column-users,
|
||||
.wp-list-table.roles .column-admin_access,
|
||||
.wp-list-table.roles .column-priority {
|
||||
text-align: left !important; } }
|
||||
|
||||
text-align: left !important;
|
||||
}
|
||||
}
|
||||
#um-admin-form-wp-capabilities .um-metadata-line th {
|
||||
width: auto; }
|
||||
|
||||
width: auto;
|
||||
}
|
||||
#um-admin-form-wp-capabilities .um-metadata-line td {
|
||||
width: 20px; }
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
#um_edit_role #titlewrap > span {
|
||||
width: 40px;
|
||||
font-size: 24px;
|
||||
float: left;
|
||||
display: block;
|
||||
line-height: 37px; }
|
||||
line-height: 37px;
|
||||
}
|
||||
|
||||
#um-admin-form-publish #major-publishing-actions {
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0; }
|
||||
padding-right: 0;
|
||||
}
|
||||
+124
-87
@@ -1,5 +1,6 @@
|
||||
.um-settings-section .description {
|
||||
font-style: italic; }
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.um-notification-status {
|
||||
margin-right: 18px;
|
||||
@@ -9,74 +10,93 @@
|
||||
float: left;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box; }
|
||||
.um-notification-status.um-notification-is-active {
|
||||
color: #7acf58; }
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
.um-notification-status.um-notification-is-active {
|
||||
color: #7acf58;
|
||||
}
|
||||
|
||||
.um-email-configure span {
|
||||
line-height: 24px; }
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.um-long-field {
|
||||
width: 100%; }
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.um-medium-field {
|
||||
width: 50%; }
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.um-small-field {
|
||||
width: 25%; }
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.column-configure {
|
||||
width: 10%;
|
||||
text-align: right; }
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
th.column-email.column-primary {
|
||||
padding-left: 48px; }
|
||||
padding-left: 48px;
|
||||
}
|
||||
|
||||
.um-form-table .um-forms-line td {
|
||||
padding-right: 0; }
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
#um-settings-emails {
|
||||
margin: 15px 0; }
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
#um-settings-template-versions {
|
||||
margin: 15px 0; }
|
||||
#um-settings-template-versions .wp-list-table .column-core_version {
|
||||
width: 100px;
|
||||
text-align: center; }
|
||||
#um-settings-template-versions .wp-list-table .column-theme_version {
|
||||
width: 100px;
|
||||
text-align: center; }
|
||||
#um-settings-template-versions .wp-list-table .column-status {
|
||||
width: 260px; }
|
||||
margin: 15px 0;
|
||||
}
|
||||
#um-settings-template-versions .wp-list-table .column-core_version {
|
||||
width: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
#um-settings-template-versions .wp-list-table .column-theme_version {
|
||||
width: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
#um-settings-template-versions .wp-list-table .column-status {
|
||||
width: 260px;
|
||||
}
|
||||
|
||||
#um-settings-form {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin: 0; }
|
||||
#um-settings-form .subsubsub {
|
||||
float: left;
|
||||
width: 100%; }
|
||||
#um-settings-form h2.title a.um-back-button {
|
||||
font-weight: normal;
|
||||
font-size: 30px;
|
||||
line-height: 1;
|
||||
text-decoration: none;
|
||||
margin-right: 5px; }
|
||||
margin: 0;
|
||||
}
|
||||
#um-settings-form .subsubsub {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
#um-settings-form h2.title a.um-back-button {
|
||||
font-weight: normal;
|
||||
font-size: 30px;
|
||||
line-height: 1;
|
||||
text-decoration: none;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.um-settings-line .multi-checkbox-line {
|
||||
float: left;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0; }
|
||||
|
||||
padding: 0;
|
||||
}
|
||||
.um-settings-line .multi-checkbox-column {
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
.um-settings-line .multi-checkbox-column label {
|
||||
float: left;
|
||||
width: 100%; }
|
||||
padding: 0;
|
||||
}
|
||||
.um-settings-line .multi-checkbox-column label {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.wrap-licenses .form-table,
|
||||
.wrap-licenses thead,
|
||||
@@ -86,8 +106,8 @@ th.column-email.column-primary {
|
||||
.wrap-licenses td,
|
||||
.wrap-licenses th,
|
||||
.wrap-licenses caption {
|
||||
display: block; }
|
||||
|
||||
display: block;
|
||||
}
|
||||
.wrap-licenses .form-table tr {
|
||||
float: left;
|
||||
margin: 0 15px 15px 0;
|
||||
@@ -98,23 +118,23 @@ th.column-email.column-primary {
|
||||
padding: 14px;
|
||||
min-height: 240px;
|
||||
position: relative;
|
||||
box-sizing: border-box; }
|
||||
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.wrap-licenses .form-table th {
|
||||
background: #f9f9f9;
|
||||
padding: 14px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
margin: -14px -14px 20px;
|
||||
width: 100%; }
|
||||
|
||||
width: 100%;
|
||||
}
|
||||
.wrap-licenses .form-table td {
|
||||
padding: 0; }
|
||||
|
||||
padding: 0;
|
||||
}
|
||||
.wrap-licenses td input.regular-text {
|
||||
margin: 0 0 8px;
|
||||
width: 100%; }
|
||||
|
||||
.wrap-licenses .edd-license-data[class*="edd-license-"] {
|
||||
width: 100%;
|
||||
}
|
||||
.wrap-licenses .edd-license-data[class*=edd-license-] {
|
||||
position: absolute;
|
||||
background: #fafafa;
|
||||
padding: 14px;
|
||||
@@ -123,75 +143,92 @@ th.column-email.column-primary {
|
||||
min-height: 67px;
|
||||
width: 100%;
|
||||
bottom: 14px;
|
||||
box-sizing: border-box; }
|
||||
.wrap-licenses .edd-license-data[class*="edd-license-"] a {
|
||||
color: #444; }
|
||||
.wrap-licenses .edd-license-data[class*="edd-license-"] a:hover {
|
||||
text-decoration: none; }
|
||||
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.wrap-licenses .edd-license-data[class*=edd-license-] a {
|
||||
color: #444;
|
||||
}
|
||||
.wrap-licenses .edd-license-data[class*=edd-license-] a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.wrap-licenses .edd-license-data.license-expires-soon-notice {
|
||||
background-color: #00a0d2;
|
||||
color: #fff;
|
||||
border-color: #00a0d2; }
|
||||
.wrap-licenses .edd-license-data.license-expires-soon-notice a {
|
||||
color: #fff; }
|
||||
.wrap-licenses .edd-license-data.license-expires-soon-notice a:hover {
|
||||
text-decoration: none; }
|
||||
|
||||
border-color: #00a0d2;
|
||||
}
|
||||
.wrap-licenses .edd-license-data.license-expires-soon-notice a {
|
||||
color: #fff;
|
||||
}
|
||||
.wrap-licenses .edd-license-data.license-expires-soon-notice a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.wrap-licenses .edd-license-data.edd-license-expired {
|
||||
background-color: #e24e4e;
|
||||
color: #fff;
|
||||
border-color: #e24e4e; }
|
||||
.wrap-licenses .edd-license-data.edd-license-expired a {
|
||||
color: #fff; }
|
||||
.wrap-licenses .edd-license-data.edd-license-expired a:hover {
|
||||
text-decoration: none; }
|
||||
|
||||
border-color: #e24e4e;
|
||||
}
|
||||
.wrap-licenses .edd-license-data.edd-license-expired a {
|
||||
color: #fff;
|
||||
}
|
||||
.wrap-licenses .edd-license-data.edd-license-expired a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.wrap-licenses .edd-license-data.edd-license-valid {
|
||||
background-color: #5abc55;
|
||||
color: #fff;
|
||||
border-color: #5abc55; }
|
||||
|
||||
border-color: #5abc55;
|
||||
}
|
||||
.wrap-licenses .edd-license-data.edd-license-error, .wrap-licenses .edd-license-data.edd-license-missing, .wrap-licenses .edd-license-data.edd-license-invalid, .wrap-licenses .edd-license-data.edd-license-site_inactive, .wrap-licenses .edd-license-data.edd-license-item_name_mismatch {
|
||||
background-color: #ffebcd;
|
||||
border-color: #ffebcd; }
|
||||
|
||||
border-color: #ffebcd;
|
||||
}
|
||||
.wrap-licenses .edd-license-data p {
|
||||
font-size: 13px;
|
||||
margin-top: 0; }
|
||||
|
||||
margin-top: 0;
|
||||
}
|
||||
.wrap-licenses ~ p.submit {
|
||||
clear: both; }
|
||||
clear: both;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 980px) {
|
||||
.wrap-licenses .form-table tr {
|
||||
width: calc( 50% - 15px);
|
||||
max-width: none; } }
|
||||
|
||||
width: calc(50% - 15px);
|
||||
max-width: none;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 782px) {
|
||||
#um-settings-template-versions .wp-list-table .column-core_version,
|
||||
#um-settings-template-versions .wp-list-table .column-theme_version {
|
||||
width: auto;
|
||||
text-align: left; }
|
||||
text-align: left;
|
||||
}
|
||||
.wrap-licenses .form-table tr {
|
||||
width: 100%;
|
||||
margin-right: 0;
|
||||
max-width: none; }
|
||||
max-width: none;
|
||||
}
|
||||
.um-settings-line .multi-checkbox-column {
|
||||
width: 100% !important; }
|
||||
.um-settings-line .multi-checkbox-column label {
|
||||
line-height: 30px !important; }
|
||||
width: 100% !important;
|
||||
}
|
||||
.um-settings-line .multi-checkbox-column label {
|
||||
line-height: 30px !important;
|
||||
}
|
||||
.um-medium-field {
|
||||
width: 100%; }
|
||||
width: 100%;
|
||||
}
|
||||
.um-small-field {
|
||||
width: 50%; } }
|
||||
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
.um_setting_ajax_button_response.complete {
|
||||
color: #7acf58;
|
||||
font-style: italic; }
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.wp-core-ui .button.um_license_activate, .wp-core-ui .button.um_license_deactivate, .wp-core-ui .button.um_license_reactivate {
|
||||
margin-top: 5px; }
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.um-media-upload .um-media-upload-url {
|
||||
margin-bottom: 5px; }
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
+17
-13
@@ -1,29 +1,33 @@
|
||||
.um-admin.users-php .subsubsub li.subsep {
|
||||
display: block;
|
||||
visibility: hidden;
|
||||
height: 0; }
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.um-admin-modal .um-admin-infobox label {
|
||||
font-weight: bold;
|
||||
display: block;
|
||||
color: #333;
|
||||
cursor: default; }
|
||||
|
||||
cursor: default;
|
||||
}
|
||||
.um-admin-modal .um-admin-infobox p {
|
||||
color: #666;
|
||||
padding-top: 15px; }
|
||||
|
||||
padding-top: 15px;
|
||||
}
|
||||
.um-admin-modal .um-admin-infobox > p:not(:first-child) {
|
||||
border-top: 1px solid #e5e5e5; }
|
||||
|
||||
border-top: 1px solid #e5e5e5;
|
||||
}
|
||||
.um-admin-modal .um-admin-infobox > p:first-child {
|
||||
margin-top: 0;
|
||||
padding-top: 0; }
|
||||
|
||||
padding-top: 0;
|
||||
}
|
||||
.um-admin-modal .um-admin-infobox > .um-row > p {
|
||||
border-top: 1px solid #e5e5e5; }
|
||||
.um-admin-modal .um-admin-infobox > .um-row > p:last-child {
|
||||
margin-bottom: 0; }
|
||||
border-top: 1px solid #e5e5e5;
|
||||
}
|
||||
.um-admin-modal .um-admin-infobox > .um-row > p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#UM_preview_registration .um-admin-modal-foot {
|
||||
display: none; }
|
||||
display: none;
|
||||
}
|
||||
+12
-11
@@ -2,8 +2,8 @@
|
||||
.um .tipsy,
|
||||
.um-page .tipsy {
|
||||
z-index: 9999999999;
|
||||
font-size: inherit; }
|
||||
|
||||
font-size: inherit;
|
||||
}
|
||||
.um .tipsy-inner,
|
||||
.um-page .tipsy-inner {
|
||||
background-color: #333333;
|
||||
@@ -15,20 +15,21 @@
|
||||
line-height: 17px;
|
||||
word-wrap: break-word;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale; }
|
||||
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.um .tipsy-arrow-n,
|
||||
.um-page .tipsy-arrow-n {
|
||||
border-bottom-color: #333; }
|
||||
|
||||
border-bottom-color: #333;
|
||||
}
|
||||
.um .tipsy-arrow-s,
|
||||
.um-page .tipsy-arrow-s {
|
||||
border-top-color: #333; }
|
||||
|
||||
border-top-color: #333;
|
||||
}
|
||||
.um .tipsy-arrow-e,
|
||||
.um-page .tipsy-arrow-e {
|
||||
border-left-color: #333; }
|
||||
|
||||
border-left-color: #333;
|
||||
}
|
||||
.um .tipsy-arrow-w,
|
||||
.um-page .tipsy-arrow-w {
|
||||
border-right-color: #333; }
|
||||
border-right-color: #333;
|
||||
}
|
||||
@@ -1,85 +1,93 @@
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row.um-member-directory-search-row {
|
||||
justify-content: flex-start; }
|
||||
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line label {
|
||||
margin: 0 0 0 10px; }
|
||||
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type {
|
||||
margin: 0 0 0 10px; }
|
||||
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a a {
|
||||
margin: 0 0 0 5px; }
|
||||
|
||||
margin: 0 0 0 5px;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a .um-new-dropdown {
|
||||
right: -12px;
|
||||
left: auto; }
|
||||
|
||||
left: auto;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters .um-member-directory-filters-a a {
|
||||
margin: 0 0 0 5px; }
|
||||
|
||||
margin: 0 0 0 5px;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input, .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input {
|
||||
margin: 0 0 0 5px !important; }
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input:nth-child(even), .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input:nth-child(even) {
|
||||
margin: 0 5px 0 0 !important; }
|
||||
|
||||
margin: 0 0 0 5px !important;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input:nth-child(even), .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input:nth-child(even) {
|
||||
margin: 0 5px 0 0 !important;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag {
|
||||
margin: 0 0 5px 10px; }
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag:first-child {
|
||||
margin-left: 10px; }
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag .um-members-filter-remove {
|
||||
margin-left: 0;
|
||||
margin-right: 10px; }
|
||||
|
||||
margin: 0 0 5px 10px;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag:first-child {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag .um-members-filter-remove {
|
||||
margin-left: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-members-edit-btn a.um-edit-profile-btn:before {
|
||||
margin-right: 0;
|
||||
margin-left: 8px; }
|
||||
|
||||
margin-left: 8px;
|
||||
}
|
||||
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-photo {
|
||||
margin: 0 0 0 15px; }
|
||||
|
||||
margin: 0 0 0 15px;
|
||||
}
|
||||
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content {
|
||||
margin: 0 0 0 10px; }
|
||||
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions .um-member-cog .um-new-dropdown {
|
||||
right: auto;
|
||||
left: 0;
|
||||
text-align: right; }
|
||||
|
||||
text-align: right;
|
||||
}
|
||||
.um-directory .um-members-pagination-box .um-members-pagi {
|
||||
align-items: center; }
|
||||
.um-directory .um-members-pagination-box .um-members-pagi .pagi.pagi-arrow {
|
||||
transform: rotate(180deg); }
|
||||
|
||||
align-items: center;
|
||||
}
|
||||
.um-directory .um-members-pagination-box .um-members-pagi .pagi.pagi-arrow {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
.um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type {
|
||||
margin: 0 0 0 2px; }
|
||||
|
||||
margin: 0 0 0 2px;
|
||||
}
|
||||
.um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-new-dropdown {
|
||||
right: auto;
|
||||
left: 0; }
|
||||
|
||||
left: 0;
|
||||
}
|
||||
.um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo {
|
||||
margin: 0 0 0 10px; }
|
||||
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
|
||||
margin: 0 0 0 10px; }
|
||||
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type {
|
||||
margin: 0 0 0 5px; }
|
||||
|
||||
margin: 0 0 0 5px;
|
||||
}
|
||||
.um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo {
|
||||
margin: 0 0 0 10px; }
|
||||
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer {
|
||||
align-items: flex-start; }
|
||||
.um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
|
||||
margin: 0 0 0 10px; }
|
||||
.um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
|
||||
margin: 0 0 5px 10px; }
|
||||
|
||||
align-items: flex-start;
|
||||
}
|
||||
.um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
|
||||
margin: 0 0 5px 10px;
|
||||
}
|
||||
.um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo {
|
||||
margin: 0 0 0 10px; }
|
||||
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
|
||||
margin: 0 0 0 10px; }
|
||||
.um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
|
||||
margin: 0 0 5px 10px; }
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
|
||||
margin: 0 0 5px 10px;
|
||||
}
|
||||
+1194
-960
File diff suppressed because it is too large
Load Diff
@@ -433,6 +433,14 @@ jQuery(document).ready( function() {
|
||||
addClass('um-forms-field um-long-field').removeClass('um-hidden-multi-selects').attr('id', list.data('id_attr') + '-' + k);
|
||||
});
|
||||
|
||||
jQuery('.um-multi-selects-add-option[data-name="um_metadata[_um_search_exclude_fields][]"]').on('click', function() {
|
||||
jQuery('.um-multi-selects-list[data-field_id="_um_search_include_fields"] li.um-multi-selects-option-line').remove();
|
||||
});
|
||||
|
||||
jQuery('.um-multi-selects-add-option[data-name="um_metadata[_um_search_include_fields][]"]').on('click', function() {
|
||||
jQuery('.um-multi-selects-list[data-field_id="_um_search_exclude_fields"] li.um-multi-selects-option-line').remove();
|
||||
});
|
||||
|
||||
var um_local_date = new Date();
|
||||
var um_gmt_hours = -um_local_date.getTimezoneOffset() / 60;
|
||||
jQuery('input[name="um-gmt-offset"]').val( um_gmt_hours );
|
||||
@@ -819,11 +827,18 @@ jQuery(document).ready( function() {
|
||||
});
|
||||
|
||||
jQuery('.um-clear-image').on('click', function(e) {
|
||||
var clear_button = jQuery(this);
|
||||
var default_image_url = clear_button.siblings('.um-forms-field').data('default');
|
||||
let clear_button = jQuery(this);
|
||||
let default_image_url = clear_button.siblings('.um-forms-field').data('default');
|
||||
if ( undefined === default_image_url ) {
|
||||
default_image_url = '';
|
||||
}
|
||||
|
||||
clear_button.siblings('.um-set-image').show();
|
||||
clear_button.hide();
|
||||
clear_button.siblings('.icon_preview').attr( 'src', default_image_url );
|
||||
if ( '' === default_image_url ) {
|
||||
clear_button.siblings('.icon_preview').hide();
|
||||
}
|
||||
clear_button.siblings('.um-media-upload-data-id').val('');
|
||||
clear_button.siblings('.um-media-upload-data-width').val('');
|
||||
clear_button.siblings('.um-media-upload-data-height').val('');
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -1,5 +1,24 @@
|
||||
== Changelog ==
|
||||
|
||||
= 2.8.5: April 9, 2024 =
|
||||
|
||||
* Enhancements:
|
||||
|
||||
- Added: "Hide my last login" via the Account > Privacy setting
|
||||
- Added: Exclude and Include fields for member directory searching
|
||||
- Tweak: Compatibility with WordPress 6.5
|
||||
|
||||
* Bugfixes:
|
||||
|
||||
- Fixed: URL attributes escaping (CVE-2024-2765)
|
||||
- Fixed: wp-admin Ultimate Member > Dashboard layouts
|
||||
- Fixed: Required fields labels
|
||||
- Fixed: Change password and update account email notifications duplicates
|
||||
- Fixed: Reset Password urlencoded username
|
||||
- Fixed: Clear media JS in wp-admin settings
|
||||
|
||||
* Cached and optimized/minified assets(JS/CSS) must be flushed/re-generated after upgrade
|
||||
|
||||
= 2.8.4: March 6, 2024 =
|
||||
|
||||
* Enhancements:
|
||||
|
||||
+232
-46
@@ -2,97 +2,283 @@
|
||||
Ultimate Member dependencies
|
||||
*/
|
||||
|
||||
var gulp = require('gulp')
|
||||
, uglify = require('gulp-uglify'),
|
||||
sass = require('gulp-sass'),
|
||||
rename = require('gulp-rename'),
|
||||
cleanCSS = require( 'gulp-clean-css' );
|
||||
// var gulp = require('gulp')
|
||||
// , uglify = require('gulp-uglify'),
|
||||
// sass = require('gulp-sass'),
|
||||
// rename = require('gulp-rename'),
|
||||
// cleanCSS = require( 'gulp-clean-css' );
|
||||
|
||||
const { src, dest, parallel } = require( 'gulp' );
|
||||
const sass = require( 'gulp-sass' )( require( 'sass' ) );
|
||||
const uglify = require( 'gulp-uglify' );
|
||||
const cleanCSS = require( 'gulp-clean-css' );
|
||||
const rename = require( 'gulp-rename' );
|
||||
|
||||
// task
|
||||
gulp.task( 'default', function ( done ) {
|
||||
sass.compiler = require( 'node-sass' );
|
||||
// gulp.task( 'default', function ( done ) {
|
||||
// sass.compiler = require( 'node-sass' );
|
||||
//
|
||||
// gulp.src(['assets/sass/*.sass']).pipe( sass().on( 'error', sass.logError ) ).pipe( gulp.dest( 'assets/css' ) );
|
||||
//
|
||||
// gulp.src(['assets/js/*.js','!assets/js/*.min.js']) // path to your files
|
||||
// .pipe( uglify() )
|
||||
// .pipe( rename({ suffix: '.min' }) )
|
||||
// .pipe( gulp.dest( 'assets/js/' ) );
|
||||
//
|
||||
// gulp.src(['assets/js/admin/*.js','!assets/js/admin/*.min.js']) // path to your files
|
||||
// .pipe( uglify() )
|
||||
// .pipe( rename({ suffix: '.min' }) )
|
||||
// .pipe( gulp.dest( 'assets/js/admin/' ) );
|
||||
// gulp.src(['assets/css/admin/*.css', '!assets/css/admin/*.min.css',])
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/css/admin/' ) );
|
||||
//
|
||||
// gulp.src(['assets/css/*.css', '!assets/css/*.min.css',])
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/css/' ) );
|
||||
//
|
||||
// // full CSS files
|
||||
// gulp.src(['assets/css/admin/*.sass'])
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( gulp.dest( 'assets/css/admin/' ) );
|
||||
// // min CSS files
|
||||
// gulp.src(['assets/css/admin/*.sass'])
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/css/admin/' ) );
|
||||
//
|
||||
// // full CSS files
|
||||
// gulp.src(['assets/css/*.sass'])
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( gulp.dest( 'assets/css/' ) );
|
||||
// // min CSS files
|
||||
// gulp.src(['assets/css/*.sass'])
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/css/' ) );
|
||||
//
|
||||
// gulp.src(['assets/libs/legacy/fonticons/*.css', '!assets/libs/legacy/fonticons/*.min.css',])
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/libs/legacy/fonticons/' ) );
|
||||
//
|
||||
// // Dropdown lib
|
||||
// // full CSS files
|
||||
// gulp.src(['assets/libs/dropdown/*.sass'])
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( gulp.dest( 'assets/libs/dropdown/' ) );
|
||||
// // min CSS files
|
||||
// gulp.src(['assets/libs/dropdown/*.sass'])
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/libs/dropdown/' ) );
|
||||
// gulp.src(['assets/libs/dropdown/*.js', '!assets/libs/dropdown/*.min.js',])
|
||||
// .pipe( uglify() )
|
||||
// .pipe( rename({ suffix: '.min' }) )
|
||||
// .pipe( gulp.dest( 'assets/libs/dropdown/' ) );
|
||||
//
|
||||
// // Modal lib
|
||||
// // full CSS files
|
||||
// gulp.src(['assets/libs/modal/*.sass'])
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( gulp.dest( 'assets/libs/modal/' ) );
|
||||
// // min CSS files
|
||||
// gulp.src(['assets/libs/modal/*.sass'])
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/libs/modal/' ) );
|
||||
// gulp.src(['assets/libs/modal/*.js', '!assets/libs/modal/*.min.js',])
|
||||
// .pipe( uglify() )
|
||||
// .pipe( rename({ suffix: '.min' }) )
|
||||
// .pipe( gulp.dest( 'assets/libs/modal/' ) );
|
||||
//
|
||||
// // Raty lib
|
||||
// gulp.src(['assets/libs/raty/*.css', '!assets/libs/raty/*.min.css',])
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/libs/raty/' ) );
|
||||
// gulp.src(['assets/libs/raty/*.js', '!assets/libs/raty/*.min.js',])
|
||||
// .pipe( uglify() )
|
||||
// .pipe( rename({ suffix: '.min' }) )
|
||||
// .pipe( gulp.dest( 'assets/libs/raty/' ) );
|
||||
//
|
||||
// // Tipsy lib
|
||||
// gulp.src(['assets/libs/tipsy/*.css', '!assets/libs/tipsy/*.min.css',])
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/libs/tipsy/' ) );
|
||||
// gulp.src(['assets/libs/tipsy/*.js', '!assets/libs/tipsy/*.min.js',])
|
||||
// .pipe( uglify() )
|
||||
// .pipe( rename({ suffix: '.min' }) )
|
||||
// .pipe( gulp.dest( 'assets/libs/tipsy/' ) );
|
||||
//
|
||||
// // Pickadate lib
|
||||
// gulp.src(['assets/libs/pickadate/*.css', '!assets/libs/pickadate/*.min.css',])
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( gulp.dest( 'assets/libs/pickadate/' ) );
|
||||
// gulp.src(['assets/libs/pickadate/*.js', '!assets/libs/pickadate/*.min.js',])
|
||||
// .pipe( uglify() )
|
||||
// .pipe( rename({ suffix: '.min' }) )
|
||||
// .pipe( gulp.dest( 'assets/libs/pickadate/' ) );
|
||||
// gulp.src(['assets/libs/pickadate/translations/*.js', '!assets/libs/pickadate/translations/*.min.js',])
|
||||
// .pipe( uglify() )
|
||||
// .pipe( rename({ suffix: '.min' }) )
|
||||
// .pipe( gulp.dest( 'assets/libs/pickadate/translations/' ) );
|
||||
//
|
||||
// done();
|
||||
// });
|
||||
//
|
||||
// function js( path ) {
|
||||
// return src( ['assets/' + path + '/js/*.js', '!assets/' + path + '/js/*.min.js'] )
|
||||
// .pipe( uglify() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( dest( 'assets/' + path + '/js' ) );
|
||||
// }
|
||||
//
|
||||
// function css( path ) {
|
||||
// sass.compiler = require( 'node-sass' );
|
||||
//
|
||||
// var src_array = exclude_css( path );
|
||||
// return src( src_array )
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( dest( 'assets/' + path + '/css' ) );
|
||||
// }
|
||||
//
|
||||
// function min_css( path ) {
|
||||
// sass.compiler = require( 'node-sass' );
|
||||
//
|
||||
// var src_array = exclude_css( path );
|
||||
// return src( src_array )
|
||||
// .pipe( sass().on( 'error', sass.logError ) )
|
||||
// .pipe( cleanCSS() )
|
||||
// .pipe( rename( { suffix: '.min' } ) )
|
||||
// .pipe( dest( 'assets/' + path + '/css' ) );
|
||||
// }
|
||||
|
||||
gulp.src(['assets/sass/*.sass']).pipe( sass().on( 'error', sass.logError ) ).pipe( gulp.dest( 'assets/css' ) );
|
||||
function defaultTask( done ) {
|
||||
// sass.compiler = require( 'node-sass' );
|
||||
|
||||
gulp.src(['assets/js/*.js','!assets/js/*.min.js']) // path to your files
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( gulp.dest( 'assets/js/' ) );
|
||||
src(['assets/sass/*.sass']).pipe( sass().on( 'error', sass.logError ) ).pipe( dest( 'assets/css' ) );
|
||||
|
||||
gulp.src(['assets/js/admin/*.js','!assets/js/admin/*.min.js']) // path to your files
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( gulp.dest( 'assets/js/admin/' ) );
|
||||
gulp.src(['assets/css/admin/*.css', '!assets/css/admin/*.min.css',])
|
||||
src(['assets/js/*.js','!assets/js/*.min.js']) // path to your files
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( dest( 'assets/js/' ) );
|
||||
|
||||
src(['assets/js/admin/*.js','!assets/js/admin/*.min.js']) // path to your files
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( dest( 'assets/js/admin/' ) );
|
||||
src(['assets/css/admin/*.css', '!assets/css/admin/*.min.css',])
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( gulp.dest( 'assets/css/admin/' ) );
|
||||
.pipe( dest( 'assets/css/admin/' ) );
|
||||
|
||||
gulp.src(['assets/css/*.css', '!assets/css/*.min.css',])
|
||||
src(['assets/css/*.css', '!assets/css/*.min.css',])
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( gulp.dest( 'assets/css/' ) );
|
||||
.pipe( dest( 'assets/css/' ) );
|
||||
|
||||
// full CSS files
|
||||
gulp.src(['assets/css/admin/*.sass'])
|
||||
src(['assets/css/admin/*.sass'])
|
||||
.pipe( sass().on( 'error', sass.logError ) )
|
||||
.pipe( gulp.dest( 'assets/css/admin/' ) );
|
||||
.pipe( dest( 'assets/css/admin/' ) );
|
||||
// min CSS files
|
||||
gulp.src(['assets/css/admin/*.sass'])
|
||||
src(['assets/css/admin/*.sass'])
|
||||
.pipe( sass().on( 'error', sass.logError ) )
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( gulp.dest( 'assets/css/admin/' ) );
|
||||
.pipe( dest( 'assets/css/admin/' ) );
|
||||
|
||||
// full CSS files
|
||||
gulp.src(['assets/css/*.sass'])
|
||||
src(['assets/css/*.sass'])
|
||||
.pipe( sass().on( 'error', sass.logError ) )
|
||||
.pipe( gulp.dest( 'assets/css/' ) );
|
||||
.pipe( dest( 'assets/css/' ) );
|
||||
// min CSS files
|
||||
gulp.src(['assets/css/*.sass'])
|
||||
src(['assets/css/*.sass'])
|
||||
.pipe( sass().on( 'error', sass.logError ) )
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( gulp.dest( 'assets/css/' ) );
|
||||
.pipe( dest( 'assets/css/' ) );
|
||||
|
||||
gulp.src(['assets/libs/legacy/fonticons/*.css', '!assets/libs/legacy/fonticons/*.min.css',])
|
||||
src(['assets/libs/legacy/fonticons/*.css', '!assets/libs/legacy/fonticons/*.min.css',])
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( gulp.dest( 'assets/libs/legacy/fonticons/' ) );
|
||||
.pipe( dest( 'assets/libs/legacy/fonticons/' ) );
|
||||
|
||||
// Dropdown lib
|
||||
// full CSS files
|
||||
src(['assets/libs/dropdown/*.sass'])
|
||||
.pipe( sass().on( 'error', sass.logError ) )
|
||||
.pipe( dest( 'assets/libs/dropdown/' ) );
|
||||
// min CSS files
|
||||
src(['assets/libs/dropdown/*.sass'])
|
||||
.pipe( sass().on( 'error', sass.logError ) )
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( dest( 'assets/libs/dropdown/' ) );
|
||||
src(['assets/libs/dropdown/*.js', '!assets/libs/dropdown/*.min.js',])
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( dest( 'assets/libs/dropdown/' ) );
|
||||
|
||||
// Modal lib
|
||||
// full CSS files
|
||||
src(['assets/libs/modal/*.sass'])
|
||||
.pipe( sass().on( 'error', sass.logError ) )
|
||||
.pipe( dest( 'assets/libs/modal/' ) );
|
||||
// min CSS files
|
||||
src(['assets/libs/modal/*.sass'])
|
||||
.pipe( sass().on( 'error', sass.logError ) )
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( dest( 'assets/libs/modal/' ) );
|
||||
src(['assets/libs/modal/*.js', '!assets/libs/modal/*.min.js',])
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( dest( 'assets/libs/modal/' ) );
|
||||
|
||||
// Raty lib
|
||||
gulp.src(['assets/libs/raty/*.css', '!assets/libs/raty/*.min.css',])
|
||||
src(['assets/libs/raty/*.css', '!assets/libs/raty/*.min.css',])
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( gulp.dest( 'assets/libs/raty/' ) );
|
||||
gulp.src(['assets/libs/raty/*.js', '!assets/libs/raty/*.min.js',])
|
||||
.pipe( dest( 'assets/libs/raty/' ) );
|
||||
src(['assets/libs/raty/*.js', '!assets/libs/raty/*.min.js',])
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( gulp.dest( 'assets/libs/raty/' ) );
|
||||
.pipe( dest( 'assets/libs/raty/' ) );
|
||||
|
||||
// Tipsy lib
|
||||
gulp.src(['assets/libs/tipsy/*.css', '!assets/libs/tipsy/*.min.css',])
|
||||
src(['assets/libs/tipsy/*.css', '!assets/libs/tipsy/*.min.css',])
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( gulp.dest( 'assets/libs/tipsy/' ) );
|
||||
gulp.src(['assets/libs/tipsy/*.js', '!assets/libs/tipsy/*.min.js',])
|
||||
.pipe( dest( 'assets/libs/tipsy/' ) );
|
||||
src(['assets/libs/tipsy/*.js', '!assets/libs/tipsy/*.min.js',])
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( gulp.dest( 'assets/libs/tipsy/' ) );
|
||||
.pipe( dest( 'assets/libs/tipsy/' ) );
|
||||
|
||||
// Pickadate lib
|
||||
gulp.src(['assets/libs/pickadate/*.css', '!assets/libs/pickadate/*.min.css',])
|
||||
src(['assets/libs/pickadate/*.css', '!assets/libs/pickadate/*.min.css',])
|
||||
.pipe( cleanCSS() )
|
||||
.pipe( rename( { suffix: '.min' } ) )
|
||||
.pipe( gulp.dest( 'assets/libs/pickadate/' ) );
|
||||
gulp.src(['assets/libs/pickadate/*.js', '!assets/libs/pickadate/*.min.js',])
|
||||
.pipe( dest( 'assets/libs/pickadate/' ) );
|
||||
src(['assets/libs/pickadate/*.js', '!assets/libs/pickadate/*.min.js',])
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( gulp.dest( 'assets/libs/pickadate/' ) );
|
||||
gulp.src(['assets/libs/pickadate/translations/*.js', '!assets/libs/pickadate/translations/*.min.js',])
|
||||
.pipe( dest( 'assets/libs/pickadate/' ) );
|
||||
src(['assets/libs/pickadate/translations/*.js', '!assets/libs/pickadate/translations/*.min.js',])
|
||||
.pipe( uglify() )
|
||||
.pipe( rename({ suffix: '.min' }) )
|
||||
.pipe( gulp.dest( 'assets/libs/pickadate/translations/' ) );
|
||||
.pipe( dest( 'assets/libs/pickadate/translations/' ) );
|
||||
|
||||
done();
|
||||
});
|
||||
done();
|
||||
}
|
||||
exports.default = defaultTask;
|
||||
|
||||
@@ -95,16 +95,17 @@ final class Enqueue extends \um\common\Enqueue {
|
||||
* @since 2.6.1
|
||||
*/
|
||||
public function block_editor() {
|
||||
$suffix = self::get_suffix();
|
||||
$js_url = self::get_url( 'js' );
|
||||
$css_url = self::get_url( 'css' );
|
||||
$suffix = self::get_suffix();
|
||||
$js_url = self::get_url( 'js' );
|
||||
$css_url = self::get_url( 'css' );
|
||||
$libs_url = self::get_url( 'libs' );
|
||||
|
||||
$this->load_gutenberg_js();
|
||||
|
||||
wp_register_script( 'um_admin_blocks_shortcodes', $js_url . 'admin/block-renderer' . $suffix . '.js', array( 'wp-i18n', 'wp-blocks', 'wp-components' ), UM_VERSION, true );
|
||||
wp_set_script_translations( 'um_admin_blocks_shortcodes', 'ultimate-member' );
|
||||
|
||||
$notifications_enabled = 0;
|
||||
$notifications_enabled = false;
|
||||
if ( false !== UM()->account()->is_notifications_tab_visible() ) {
|
||||
$notifications_enabled = UM()->options()->get( 'account_tab_notifications' );
|
||||
}
|
||||
@@ -112,7 +113,7 @@ final class Enqueue extends \um\common\Enqueue {
|
||||
$um_account_settings = array(
|
||||
'general' => array(
|
||||
'label' => __( 'General', 'ultimate-member' ),
|
||||
'enabled' => 1,
|
||||
'enabled' => true,
|
||||
),
|
||||
'password' => array(
|
||||
'label' => __( 'Password', 'ultimate-member' ),
|
||||
@@ -192,10 +193,14 @@ final class Enqueue extends \um\common\Enqueue {
|
||||
|
||||
wp_register_style( 'um_styles', $css_url . 'um-styles' . $suffix . '.css', array( 'um_ui', 'um_tipsy', 'um_raty', 'um_fonticons_ii', 'um_fonticons_fa', 'select2' ), UM_VERSION );
|
||||
wp_register_style( 'um_profile', $css_url . 'um-profile' . $suffix . '.css', array(), UM_VERSION );
|
||||
wp_register_style( 'um_responsive', $css_url . 'um-responsive' . $suffix . '.css', array( 'um_profile', 'um_crop' ), UM_VERSION );
|
||||
wp_register_style( 'um_responsive', $css_url . 'um-responsive' . $suffix . '.css', array( 'um_profile' ), UM_VERSION );
|
||||
wp_register_style( 'um_account', $css_url . 'um-account' . $suffix . '.css', array(), UM_VERSION );
|
||||
wp_register_style( 'um_default_css', $css_url . 'um-old-default' . $suffix . '.css', array(), UM_VERSION );
|
||||
|
||||
wp_register_style( 'um_datetime', $libs_url . 'pickadate/default' . $suffix . '.css', array(), '3.6.2' );
|
||||
wp_register_style( 'um_datetime_date', $libs_url . 'pickadate/default.date' . $suffix . '.css', array( 'um_datetime' ), '3.6.2' );
|
||||
wp_register_style( 'um_datetime_time', $libs_url . 'pickadate/default.time' . $suffix . '.css', array( 'um_datetime' ), '3.6.2' );
|
||||
|
||||
wp_enqueue_style( 'um_default_css' );
|
||||
wp_enqueue_style( 'um_members' );
|
||||
wp_enqueue_style( 'um_styles' );
|
||||
@@ -203,6 +208,9 @@ final class Enqueue extends \um\common\Enqueue {
|
||||
wp_enqueue_style( 'um_responsive' );
|
||||
wp_enqueue_style( 'um_account' );
|
||||
|
||||
wp_enqueue_style( 'um_datetime_date' );
|
||||
wp_enqueue_style( 'um_datetime_time' );
|
||||
|
||||
$custom_css = '.wp-block .um{opacity: 1;}.um_request_name {display: none !important;}';
|
||||
|
||||
wp_add_inline_style( 'um_styles', $custom_css );
|
||||
|
||||
@@ -331,7 +331,7 @@ if ( ! class_exists( 'um\admin\Secure' ) ) {
|
||||
$val .= '<div><small>' . esc_html__( 'Blocked Due to Suspicious Activity', 'ultimate-member' ) . '</small></div>';
|
||||
$nonce = wp_create_nonce( 'um-security-restore-account-nonce-' . $user_id );
|
||||
$restore_account_url = admin_url( 'users.php?user_id=' . $user_id . '&um_secure_restore_account=1&_wpnonce=' . $nonce );
|
||||
$action = ' · <a href=" ' . esc_attr( $restore_account_url ) . ' " onclick=\'return confirm("' . esc_js( __( 'Are you sure that you want to restore this account after getting flagged for suspicious activity?', 'ultimate-member' ) ) . '");\'><small>' . esc_html__( 'Restore Account', 'ultimate-member' ) . '</small></a>';
|
||||
$action = ' · <a href=" ' . esc_url( $restore_account_url ) . ' " onclick=\'return confirm("' . esc_js( __( 'Are you sure that you want to restore this account after getting flagged for suspicious activity?', 'ultimate-member' ) ) . '");\'><small>' . esc_html__( 'Restore Account', 'ultimate-member' ) . '</small></a>';
|
||||
if ( ! empty( $datetime ) ) {
|
||||
$val .= '<div><small>' . human_time_diff( strtotime( $datetime ) ) . ' ' . __( 'ago', 'ultimate-member' ) . '</small>' . $action . '</div>';
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ class Site_Health {
|
||||
$pages = array();
|
||||
$predefined_pages = UM()->config()->core_pages;
|
||||
foreach ( $predefined_pages as $page_s => $page ) {
|
||||
$page_id = UM()->options()->get_core_page_id( $page_s );
|
||||
$page_id = UM()->options()->get_predefined_page_option_key( $page_s );
|
||||
$page_title = ! empty( $page['title'] ) ? $page['title'] : '';
|
||||
if ( empty( $page_title ) ) {
|
||||
continue;
|
||||
@@ -513,7 +513,7 @@ class Site_Health {
|
||||
'value' => UM()->options()->get( 'enable_reset_password_limit' ) ? $labels['yes'] : $labels['no'],
|
||||
),
|
||||
);
|
||||
if ( 1 === absint( UM()->options()->get( 'enable_reset_password_limit' ) ) ) {
|
||||
if ( UM()->options()->get( 'enable_reset_password_limit' ) ) {
|
||||
$access_other_settings['um-reset_password_limit_number'] = array(
|
||||
'label' => __( 'Reset Password Limit ', 'ultimate-member' ),
|
||||
'value' => UM()->options()->get( 'reset_password_limit_number' ),
|
||||
|
||||
@@ -244,7 +244,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Columns' ) ) {
|
||||
public function add_display_post_states( $post_states, $post ) {
|
||||
|
||||
foreach ( UM()->config()->core_pages as $page_key => $page_value ) {
|
||||
$page_id = UM()->options()->get( UM()->options()->get_core_page_id( $page_key ) );
|
||||
$page_id = UM()->options()->get( UM()->options()->get_predefined_page_option_key( $page_key ) );
|
||||
|
||||
if ( $page_id == $post->ID ) {
|
||||
$post_states[ 'um_core_page_' . $page_key ] = sprintf( 'UM %s', $page_value['title'] );
|
||||
|
||||
@@ -1187,6 +1187,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
|
||||
delete_post_meta( $post_id, '_um_tagline_fields' );
|
||||
delete_post_meta( $post_id, '_um_reveal_fields' );
|
||||
delete_post_meta( $post_id, '_um_search_fields' );
|
||||
delete_post_meta( $post_id, '_um_search_exclude_fields' );
|
||||
delete_post_meta( $post_id, '_um_search_include_fields' );
|
||||
delete_post_meta( $post_id, '_um_roles_can_search' );
|
||||
delete_post_meta( $post_id, '_um_roles_can_filter' );
|
||||
delete_post_meta( $post_id, '_um_show_these_users' );
|
||||
|
||||
@@ -249,42 +249,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
),
|
||||
);
|
||||
|
||||
// $core_pages = UM()->config()->core_pages;
|
||||
//
|
||||
// foreach ( $core_pages as $page_s => $page ) {
|
||||
// $have_pages = UM()->query()->wp_pages();
|
||||
// $page_id = UM()->options()->get_core_page_id( $page_s );
|
||||
//
|
||||
// $page_title = ! empty( $page['title'] ) ? $page['title'] : '';
|
||||
//
|
||||
// if ( 'reached_maximum_limit' === $have_pages ) {
|
||||
// $general_pages_fields[] = array(
|
||||
// 'id' => $page_id,
|
||||
// 'type' => 'text',
|
||||
// // translators: %s: Page title
|
||||
// 'label' => sprintf( __( '%s page', 'ultimate-member' ), $page_title ),
|
||||
// 'placeholder' => __( 'Add page ID', 'ultimate-member' ),
|
||||
// 'compiler' => true,
|
||||
// 'size' => 'small',
|
||||
// );
|
||||
// } else {
|
||||
// $general_pages_fields[] = array(
|
||||
// 'id' => $page_id,
|
||||
// 'type' => 'select',
|
||||
// // translators: %s: Page title
|
||||
// 'label' => sprintf( __( '%s page', 'ultimate-member' ), $page_title ),
|
||||
// 'options' => UM()->query()->wp_pages(),
|
||||
// 'placeholder' => __( 'Choose a page...', 'ultimate-member' ),
|
||||
// 'compiler' => true,
|
||||
// 'size' => 'small',
|
||||
// );
|
||||
// }
|
||||
//
|
||||
// $settings_map[ $page_id ] = array(
|
||||
// 'sanitize' => 'absint',
|
||||
// );
|
||||
// }
|
||||
|
||||
foreach ( UM()->config()->get( 'predefined_pages' ) as $slug => $page ) {
|
||||
$page_id = UM()->options()->get_predefined_page_option_key( $slug );
|
||||
$page_title = ! empty( $page['title'] ) ? $page['title'] : '';
|
||||
@@ -786,6 +750,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
'use_um_gravatar_default_image' => array(
|
||||
'sanitize' => 'bool',
|
||||
),
|
||||
'delete_comments' => array(
|
||||
'sanitize' => 'bool',
|
||||
),
|
||||
'toggle_password' => array(
|
||||
'sanitize' => 'bool',
|
||||
),
|
||||
@@ -1041,6 +1008,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
'rest_api_version' => array(
|
||||
'sanitize' => 'text',
|
||||
),
|
||||
'disable_restriction_pre_queries' => array(
|
||||
'sanitize' => 'bool',
|
||||
),
|
||||
'uninstall_on_delete' => array(
|
||||
'sanitize' => 'bool',
|
||||
),
|
||||
@@ -1413,7 +1383,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
'args' => array(
|
||||
'textarea_rows' => 6,
|
||||
),
|
||||
'conditional' => array( 'account_tab_delete', '=', '1' ),
|
||||
),
|
||||
array(
|
||||
'id' => 'delete_account_no_pass_required_text',
|
||||
@@ -1423,7 +1392,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
'args' => array(
|
||||
'textarea_rows' => 6,
|
||||
),
|
||||
'conditional' => array( 'account_tab_delete', '=', '0' ),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -274,7 +274,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) {
|
||||
public function user_row_actions( $actions, $user_object ) {
|
||||
$user_id = $user_object->ID;
|
||||
|
||||
$actions['frontend_profile'] = '<a href="' . um_user_profile_url( $user_id ) . '">' . __( 'View profile', 'ultimate-member' ) . '</a>';
|
||||
$actions['frontend_profile'] = '<a href="' . esc_url( um_user_profile_url( $user_id ) ) . '">' . __( 'View profile', 'ultimate-member' ) . '</a>';
|
||||
|
||||
$submitted = get_user_meta( $user_id, 'submitted', true );
|
||||
if ( ! empty( $submitted ) ) {
|
||||
|
||||
@@ -1,93 +1,74 @@
|
||||
<?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<div class="table">
|
||||
|
||||
<table>
|
||||
<tr class="first">
|
||||
<td class="first b">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php' ) ); ?>">
|
||||
<table id="um-users-overview-table">
|
||||
<tr>
|
||||
<td>
|
||||
<span>
|
||||
<a class="count" href="<?php echo esc_url( admin_url( 'users.php' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users(); ?>
|
||||
</a>
|
||||
</td>
|
||||
<td class="t">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php' ) ); ?>">
|
||||
<?php _e( 'Users', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="first b">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=approved' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'approved' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
<td class="t">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=approved' ) ); ?>">
|
||||
<?php _e( 'Approved', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="first b">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=rejected' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'rejected' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
<td class="t">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=rejected' ) ); ?>">
|
||||
<?php _e( 'Rejected', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="table table_right">
|
||||
|
||||
<table>
|
||||
<tr class="first">
|
||||
<td class="b">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=awaiting_admin_review' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'awaiting_admin_review' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
<td class="last t">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=awaiting_admin_review' ) ); ?>" class="warning">
|
||||
<?php _e( 'Pending Review', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="b">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=awaiting_email_confirmation' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'awaiting_email_confirmation' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
<td class="last t">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=awaiting_email_confirmation' ) ); ?>" class="warning">
|
||||
<?php _e( 'Awaiting Email Confirmation', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="first b">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=inactive' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'inactive' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
<td class="t">
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=inactive' ) ); ?>">
|
||||
<?php _e( 'Inactive', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span>
|
||||
<a class="count" href="<?php echo esc_url( admin_url( 'users.php?um_status=awaiting_admin_review' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'awaiting_admin_review' ); ?>
|
||||
</a>
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=awaiting_admin_review' ) ); ?>" class="warning">
|
||||
<?php _e( 'Pending Review', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span>
|
||||
<a class="count" href="<?php echo esc_url( admin_url( 'users.php?um_status=approved' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'approved' ); ?>
|
||||
</a>
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=approved' ) ); ?>">
|
||||
<?php _e( 'Approved', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span>
|
||||
<a class="count" href="<?php echo esc_url( admin_url( 'users.php?um_status=awaiting_email_confirmation' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'awaiting_email_confirmation' ); ?>
|
||||
</a>
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=awaiting_email_confirmation' ) ); ?>" class="warning">
|
||||
<?php _e( 'Awaiting Email Confirmation', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span>
|
||||
<a class="count" href="<?php echo esc_url( admin_url( 'users.php?um_status=rejected' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'rejected' ); ?>
|
||||
</a>
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=rejected' ) ); ?>">
|
||||
<?php _e( 'Rejected', 'ultimate-member' ); ?>
|
||||
</a></span>
|
||||
</td>
|
||||
<td>
|
||||
<span>
|
||||
<a class="count" href="<?php echo esc_url( admin_url( 'users.php?um_status=inactive' ) ); ?>">
|
||||
<?php echo UM()->query()->count_users_by_status( 'inactive' ); ?>
|
||||
</a>
|
||||
<a href="<?php echo esc_url( admin_url( 'users.php?um_status=inactive' ) ); ?>">
|
||||
<?php _e( 'Inactive', 'ultimate-member' ); ?>
|
||||
</a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="clear"></div>
|
||||
|
||||
@@ -10,8 +10,10 @@ $_um_roles_search_value = empty( $_um_roles_search_value ) ? array() : $_um_role
|
||||
$_um_roles_filter_value = get_post_meta( $post_id, '_um_roles_can_filter', true );
|
||||
$_um_roles_filter_value = empty( $_um_roles_filter_value ) ? array() : $_um_roles_filter_value;
|
||||
|
||||
$_um_search_fields = get_post_meta( $post_id, '_um_search_fields', true );
|
||||
$_um_search_filters = get_post_meta( $post_id, '_um_search_filters', true ); ?>
|
||||
$_um_search_exclude_fields = get_post_meta( $post_id, '_um_search_exclude_fields', true );
|
||||
$_um_search_include_fields = get_post_meta( $post_id, '_um_search_include_fields', true );
|
||||
$_um_search_fields = get_post_meta( $post_id, '_um_search_fields', true );
|
||||
$_um_search_filters = get_post_meta( $post_id, '_um_search_filters', true ); ?>
|
||||
|
||||
|
||||
<div class="um-admin-metabox">
|
||||
@@ -38,6 +40,30 @@ $_um_search_filters = get_post_meta( $post_id, '_um_search_filters', true ); ?>
|
||||
'columns' => 3,
|
||||
'conditional' => array( '_um_search', '=', 1 ),
|
||||
),
|
||||
array(
|
||||
'id' => '_um_search_exclude_fields',
|
||||
'type' => 'multi_selects',
|
||||
'label' => __( 'Exclude fields from search', 'ultimate-member' ),
|
||||
'value' => $_um_search_exclude_fields,
|
||||
'conditional' => array( '_um_search', '=', 1 ),
|
||||
'options' => UM()->member_directory()->searching_fields,
|
||||
'add_text' => __( 'Add New', 'ultimate-member' ),
|
||||
'show_default_number' => 0,
|
||||
'sorting' => true,
|
||||
'tooltip' => __( 'Choose fields to exclude them from search. This option will delete all included fields.', 'ultimate-member' ),
|
||||
),
|
||||
array(
|
||||
'id' => '_um_search_include_fields',
|
||||
'type' => 'multi_selects',
|
||||
'label' => __( 'Fields to search by', 'ultimate-member' ),
|
||||
'value' => $_um_search_include_fields,
|
||||
'conditional' => array( '_um_search', '=', 1 ),
|
||||
'options' => UM()->member_directory()->searching_fields,
|
||||
'add_text' => __( 'Add New', 'ultimate-member' ),
|
||||
'show_default_number' => 0,
|
||||
'sorting' => true,
|
||||
'tooltip' => __( 'Choose fields to only include them in the search. This option will delete all excluded fields.', 'ultimate-member' ),
|
||||
),
|
||||
array(
|
||||
'id' => '_um_filters',
|
||||
'type' => 'checkbox',
|
||||
|
||||
@@ -284,7 +284,7 @@ class Secure {
|
||||
if ( $suspicious_accounts_count > 0 ) {
|
||||
$lock_register_forms_url = admin_url( 'admin.php?page=um_options&tab=advanced§ion=secure&um_secure_lock_register_forms=1&_wpnonce=' . wp_create_nonce( 'um_secure_lock_register_forms' ) );
|
||||
$content .= $br . esc_html__( '1. Please temporarily lock all your active Register forms.', 'ultimate-member' );
|
||||
$content .= ' <a href="' . esc_attr( $lock_register_forms_url ) . '" target="_blank">' . esc_html__( 'Click here to lock them now.', 'ultimate-member' ) . '</a>';
|
||||
$content .= ' <a href="' . esc_url( $lock_register_forms_url ) . '" target="_blank">' . esc_html__( 'Click here to lock them now.', 'ultimate-member' ) . '</a>';
|
||||
$content .= ' ' . esc_html__( 'You can unblock the Register forms later. Just go to Ultimate Member > Settings > Advanced > Security and uncheck the option "Lock All Register Forms".', 'ultimate-member' );
|
||||
$content .= $br . $br;
|
||||
$suspicious_accounts_url = admin_url( 'users.php?um_status=inactive' );
|
||||
@@ -300,24 +300,24 @@ class Secure {
|
||||
}
|
||||
|
||||
$content .= esc_html__( '2. Review all suspicious accounts and delete them completely.', 'ultimate-member' );
|
||||
$content .= ' <a href="' . esc_attr( $suspicious_accounts_url ) . '" target="_blank">' . esc_html__( 'Click here to review accounts.', 'ultimate-member' ) . '</a>';
|
||||
$content .= ' <a href="' . esc_url( $suspicious_accounts_url ) . '" target="_blank">' . esc_html__( 'Click here to review accounts.', 'ultimate-member' ) . '</a>';
|
||||
$content .= $br . $br;
|
||||
|
||||
$nonce = wp_create_nonce( 'um-secure-expire-session-nonce' );
|
||||
$destroy_all_sessions_url = admin_url( '?um_secure_expire_all_sessions=1&_wpnonce=' . esc_attr( $nonce ) . '&except_me=1' );
|
||||
$content .= esc_html__( '3. If accounts are suspicious to you, please destroy all user sessions to logout active users on your site.', 'ultimate-member' );
|
||||
$content .= ' <a href="' . esc_attr( $destroy_all_sessions_url ) . '" target="_blank">' . esc_html__( 'Click here to Destroy Sessions now', 'ultimate-member' ) . '</a>';
|
||||
$content .= ' <a href="' . esc_url( $destroy_all_sessions_url ) . '" target="_blank">' . esc_html__( 'Click here to Destroy Sessions now', 'ultimate-member' ) . '</a>';
|
||||
|
||||
$content .= $br . $br;
|
||||
$content .= esc_html__( '4. Run a complete scan on your site using third-party Security plugins such as', 'ultimate-member' );
|
||||
$content .= ' <a target="_blank" href="' . esc_attr( admin_url( 'plugin-install.php?s=Jetpack%2520Protect%2520WP%2520Scan&tab=search&type=term' ) ) . '">' . esc_html__( 'WPScan/Jetpack Protect or WordFence Security', 'ultimate-member' ) . '</a>.';
|
||||
$content .= ' <a target="_blank" href="' . esc_url( admin_url( 'plugin-install.php?s=Jetpack%2520Protect%2520WP%2520Scan&tab=search&type=term' ) ) . '">' . esc_html__( 'WPScan/Jetpack Protect or WordFence Security', 'ultimate-member' ) . '</a>.';
|
||||
|
||||
$content .= $br . $br;
|
||||
$nonce = wp_create_nonce( 'um-secure-enable-reset-pass-nonce' );
|
||||
$reset_pass_sessions_url = admin_url( '?um_secure_enable_reset_password=1&_wpnonce=' . esc_attr( $nonce ) . '&except_me=1' );
|
||||
|
||||
$content .= esc_html__( '5. Force users to Reset their Passwords.', 'ultimate-member' );
|
||||
$content .= ' <a target="_blank" href="' . esc_attr( $reset_pass_sessions_url ) . '">' . esc_html__( 'Click here to enable this option', 'ultimate-member' ) . '</a>.';
|
||||
$content .= ' <a target="_blank" href="' . esc_url( $reset_pass_sessions_url ) . '">' . esc_html__( 'Click here to enable this option', 'ultimate-member' ) . '</a>.';
|
||||
$content .= ' ' . esc_html__( 'When this option is enabled, users will be asked to reset their passwords(one-time) on the next login in the UM Login form.', 'ultimate-member' );
|
||||
$content .= $br . $br;
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
<?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-server-side-render'), 'version' => 'a7aefdd7c81b99d7d5e3');
|
||||
<?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-server-side-render'), 'version' => '5b1a8ec016836a5c26cd');
|
||||
|
||||
@@ -1 +1 @@
|
||||
!function(){"use strict";var e={n:function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t=window.wp.element,r=window.wp.data,n=window.wp.components,i=window.wp.blockEditor,o=window.wp.serverSideRender,l=e.n(o);(0,window.wp.blocks.registerBlockType)("um-block/um-member-directories",{edit:function(e){let{member_id:o,setAttributes:u}=e.attributes;const c=(0,i.useBlockProps)(),a=(0,r.useSelect)((e=>e("core").getEntityRecords("postType","um_directory",{per_page:-1,_fields:["id","title"]})));if(!a)return(0,t.createElement)("p",null,(0,t.createElement)(n.Spinner,null),wp.i18n.__("Loading...","ultimate-member"));if(0===a.length)return"No posts found.";let d=[{id:"",title:""}].concat(a).map((e=>({label:e.title.rendered,value:e.id})));return(0,t.createElement)("div",{...c},(0,t.createElement)(l(),{block:"um-block/um-member-directories",attributes:e.attributes}),(0,t.createElement)(i.InspectorControls,null,(0,t.createElement)(n.PanelBody,{title:wp.i18n.__("Select Directories","ultimate-member")},(0,t.createElement)(n.SelectControl,{label:wp.i18n.__("Select Directories","ultimate-member"),className:"um_select_directory",value:o,options:d,style:{height:"35px",lineHeight:"20px",padding:"0 7px"},onChange:t=>{e.setAttributes({member_id:t})}}))))},save:function(e){return null}}),jQuery(window).on("load",(function(e){new MutationObserver((function(e){e.forEach((function(e){jQuery(e.addedNodes).find(".um.um-directory").each((function(){var e=jQuery(this);um_ajax_get_members(e),um_slider_filter_init(e),um_datepicker_filter_init(e),um_timepicker_filter_init(e)}))}))})).observe(document,{attributes:!1,childList:!0,characterData:!1,subtree:!0})}))}();
|
||||
(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var i in r)e.o(r,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,r=window.wp.data,i=window.wp.components,n=window.wp.blockEditor,o=window.wp.serverSideRender;var l=e.n(o);(0,window.wp.blocks.registerBlockType)("um-block/um-member-directories",{edit:function(e){let{member_id:o,setAttributes:a}=e.attributes;const c=(0,n.useBlockProps)(),u=(0,r.useSelect)((e=>e("core").getEntityRecords("postType","um_directory",{per_page:-1,_fields:["id","title"]})));if(!u)return(0,t.createElement)("p",null,(0,t.createElement)(i.Spinner,null),wp.i18n.__("Loading...","ultimate-member"));if(0===u.length)return"No posts found.";let d=[{id:"",title:""}].concat(u).map((e=>({label:e.title.rendered,value:e.id})));return(0,t.createElement)("div",{...c},(0,t.createElement)(l(),{block:"um-block/um-member-directories",attributes:e.attributes}),(0,t.createElement)(n.InspectorControls,null,(0,t.createElement)(i.PanelBody,{title:wp.i18n.__("Select Directories","ultimate-member")},(0,t.createElement)(i.SelectControl,{label:wp.i18n.__("Select Directories","ultimate-member"),className:"um_select_directory",value:o,options:d,style:{height:"35px",lineHeight:"20px",padding:"0 7px"},onChange:t=>{e.setAttributes({member_id:t})}}))))},save:function(e){return null}}),jQuery(window).on("load",(function(e){new MutationObserver((function(e){e.forEach((function(e){jQuery(e.addedNodes).find(".um.um-directory").each((function(){var e=jQuery(this);um_ajax_get_members(e),um_slider_filter_init(e),um_datepicker_filter_init(e),um_timepicker_filter_init(e)})),jQuery(e.addedNodes).find(".um-member").each((function(){var e=jQuery(this).parent();UM_Member_Grid(e)}))}))})).observe(document,{attributes:!1,childList:!0,characterData:!1,subtree:!0})}))})();
|
||||
@@ -101,6 +101,10 @@ jQuery(window).on( 'load', function($) {
|
||||
um_datepicker_filter_init( directory );
|
||||
um_timepicker_filter_init( directory );
|
||||
});
|
||||
jQuery(mutation.addedNodes).find('.um-member').each(function() {
|
||||
var directory = jQuery(this).parent();
|
||||
UM_Member_Grid(directory);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
+205
-236
@@ -204,29 +204,7 @@ if ( ! class_exists( 'um\Config' ) ) {
|
||||
'_um_secondary_color',
|
||||
);
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_core_form_meta_all
|
||||
* @description Extend UM forms meta keys
|
||||
* @input_vars
|
||||
* [{"var":"$meta","type":"array","desc":"UM forms meta"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_core_form_meta_all', 'function_name', 10, 1 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_core_form_meta_all', 'my_core_form_meta', 10, 1 );
|
||||
* function my_core_form_meta( $meta ) {
|
||||
* // your code here
|
||||
* $meta['my_meta_key'] = 'my_meta_value';
|
||||
* return $meta;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$this->core_form_meta_all = apply_filters( 'um_core_form_meta_all', array(
|
||||
$this->core_form_meta_all = array(
|
||||
/*Profile Form*/
|
||||
'_um_profile_show_name' => 1,
|
||||
'_um_profile_show_social_links' => 0,
|
||||
@@ -279,62 +257,49 @@ if ( ! class_exists( 'um\Config' ) ) {
|
||||
'_um_directory_template' => 'members',
|
||||
'_um_directory_header' => __( '{total_users} Members', 'ultimate-member' ),
|
||||
'_um_directory_header_single' => __( '{total_users} Member', 'ultimate-member' ),
|
||||
) );
|
||||
);
|
||||
/**
|
||||
* Filters the list of Ultimate Member forms meta.
|
||||
*
|
||||
* @param {array} $form_meta UM Forms meta.
|
||||
*
|
||||
* @return {array} Forms meta.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_core_form_meta_all
|
||||
*
|
||||
* @example <caption>Add custom admin notice after {custom_update_key} action.</caption>
|
||||
* function my_um_core_form_meta_all( $form_meta ) {
|
||||
* // your code here
|
||||
* $meta['my_meta_key'] = 'my_meta_value';
|
||||
* return $meta;
|
||||
* }
|
||||
* add_filter( 'um_core_form_meta_all', 'my_um_core_form_meta_all' );
|
||||
*/
|
||||
$this->core_form_meta_all = apply_filters( 'um_core_form_meta_all', $this->core_form_meta_all );
|
||||
|
||||
$this->core_form_meta['register'] = array(
|
||||
'_um_custom_fields' => 'a:6:{s:10:"user_login";a:15:{s:5:"title";s:8:"Username";s:7:"metakey";s:10:"user_login";s:4:"type";s:4:"text";s:5:"label";s:8:"Username";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";b:0;s:8:"validate";s:15:"unique_username";s:9:"min_chars";i:3;s:9:"max_chars";i:24;s:8:"position";s:1:"1";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:10:"user_email";a:13:{s:5:"title";s:14:"Email Address";s:7:"metakey";s:10:"user_email";s:4:"type";s:4:"text";s:5:"label";s:14:"E-mail Address";s:8:"required";i:0;s:6:"public";i:1;s:8:"editable";b:1;s:8:"validate";s:12:"unique_email";s:8:"position";s:1:"4";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:13:"user_password";a:16:{s:5:"title";s:8:"Password";s:7:"metakey";s:13:"user_password";s:4:"type";s:8:"password";s:5:"label";s:8:"Password";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";b:1;s:9:"min_chars";i:8;s:9:"max_chars";i:30;s:15:"force_good_pass";i:1;s:18:"force_confirm_pass";i:1;s:8:"position";s:1:"5";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:10:"first_name";a:12:{s:5:"title";s:10:"First Name";s:7:"metakey";s:10:"first_name";s:4:"type";s:4:"text";s:5:"label";s:10:"First Name";s:8:"required";i:0;s:6:"public";i:1;s:8:"editable";b:1;s:8:"position";s:1:"2";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:9:"last_name";a:12:{s:5:"title";s:9:"Last Name";s:7:"metakey";s:9:"last_name";s:4:"type";s:4:"text";s:5:"label";s:9:"Last Name";s:8:"required";i:0;s:6:"public";i:1;s:8:"editable";b:1;s:8:"position";s:1:"3";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:9:"_um_row_1";a:4:{s:4:"type";s:3:"row";s:2:"id";s:9:"_um_row_1";s:8:"sub_rows";s:1:"1";s:4:"cols";s:1:"1";}}',
|
||||
'_um_mode' => 'register',
|
||||
'_um_core' => 'register',
|
||||
'_um_custom_fields' => 'a:6:{s:10:"user_login";a:15:{s:5:"title";s:8:"Username";s:7:"metakey";s:10:"user_login";s:4:"type";s:4:"text";s:5:"label";s:8:"Username";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";b:0;s:8:"validate";s:15:"unique_username";s:9:"min_chars";i:3;s:9:"max_chars";i:24;s:8:"position";s:1:"1";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:10:"user_email";a:13:{s:5:"title";s:14:"Email Address";s:7:"metakey";s:10:"user_email";s:4:"type";s:4:"text";s:5:"label";s:14:"E-mail Address";s:8:"required";i:0;s:6:"public";i:1;s:8:"editable";b:1;s:8:"validate";s:12:"unique_email";s:8:"position";s:1:"4";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:13:"user_password";a:16:{s:5:"title";s:8:"Password";s:7:"metakey";s:13:"user_password";s:4:"type";s:8:"password";s:5:"label";s:8:"Password";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";b:1;s:9:"min_chars";i:8;s:9:"max_chars";i:30;s:15:"force_good_pass";i:1;s:18:"force_confirm_pass";i:1;s:8:"position";s:1:"5";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:10:"first_name";a:12:{s:5:"title";s:10:"First Name";s:7:"metakey";s:10:"first_name";s:4:"type";s:4:"text";s:5:"label";s:10:"First Name";s:8:"required";i:0;s:6:"public";i:1;s:8:"editable";b:1;s:8:"position";s:1:"2";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:9:"last_name";a:12:{s:5:"title";s:9:"Last Name";s:7:"metakey";s:9:"last_name";s:4:"type";s:4:"text";s:5:"label";s:9:"Last Name";s:8:"required";i:0;s:6:"public";i:1;s:8:"editable";b:1;s:8:"position";s:1:"3";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:9:"_um_row_1";a:4:{s:4:"type";s:3:"row";s:2:"id";s:9:"_um_row_1";s:8:"sub_rows";s:1:"1";s:4:"cols";s:1:"1";}}',
|
||||
'_um_mode' => 'register',
|
||||
'_um_core' => 'register',
|
||||
'_um_register_use_custom_settings' => 0,
|
||||
);
|
||||
|
||||
$this->core_form_meta['login'] = array(
|
||||
'_um_custom_fields' => 'a:3:{s:8:"username";a:13:{s:5:"title";s:18:"Username or Email";s:7:"metakey";s:8:"username";s:4:"type";s:4:"text";s:5:"label";s:18:"Username or E-mail";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";b:0;s:8:"validate";s:24:"unique_username_or_email";s:8:"position";s:1:"1";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:13:"user_password";a:16:{s:5:"title";s:8:"Password";s:7:"metakey";s:13:"user_password";s:4:"type";s:8:"password";s:5:"label";s:8:"Password";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";b:1;s:9:"min_chars";i:8;s:9:"max_chars";i:30;s:15:"force_good_pass";i:1;s:18:"force_confirm_pass";i:1;s:8:"position";s:1:"2";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:9:"_um_row_1";a:4:{s:4:"type";s:3:"row";s:2:"id";s:9:"_um_row_1";s:8:"sub_rows";s:1:"1";s:4:"cols";s:1:"1";}}',
|
||||
'_um_mode' => 'login',
|
||||
'_um_core' => 'login',
|
||||
'_um_custom_fields' => 'a:3:{s:8:"username";a:13:{s:5:"title";s:18:"Username or Email";s:7:"metakey";s:8:"username";s:4:"type";s:4:"text";s:5:"label";s:18:"Username or E-mail";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";b:0;s:8:"validate";s:24:"unique_username_or_email";s:8:"position";s:1:"1";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:13:"user_password";a:16:{s:5:"title";s:8:"Password";s:7:"metakey";s:13:"user_password";s:4:"type";s:8:"password";s:5:"label";s:8:"Password";s:8:"required";i:1;s:6:"public";i:1;s:8:"editable";b:1;s:9:"min_chars";i:8;s:9:"max_chars";i:30;s:15:"force_good_pass";i:1;s:18:"force_confirm_pass";i:1;s:8:"position";s:1:"2";s:6:"in_row";s:9:"_um_row_1";s:10:"in_sub_row";s:1:"0";s:9:"in_column";s:1:"1";s:8:"in_group";s:0:"";}s:9:"_um_row_1";a:4:{s:4:"type";s:3:"row";s:2:"id";s:9:"_um_row_1";s:8:"sub_rows";s:1:"1";s:4:"cols";s:1:"1";}}',
|
||||
'_um_mode' => 'login',
|
||||
'_um_core' => 'login',
|
||||
'_um_login_use_custom_settings' => 0,
|
||||
);
|
||||
|
||||
$this->core_form_meta['profile'] = array(
|
||||
'_um_custom_fields' => 'a:1:{s:9:"_um_row_1";a:4:{s:4:"type";s:3:"row";s:2:"id";s:9:"_um_row_1";s:8:"sub_rows";s:1:"1";s:4:"cols";s:1:"1";}}',
|
||||
'_um_mode' => 'profile',
|
||||
'_um_core' => 'profile',
|
||||
'_um_custom_fields' => 'a:1:{s:9:"_um_row_1";a:4:{s:4:"type";s:3:"row";s:2:"id";s:9:"_um_row_1";s:8:"sub_rows";s:1:"1";s:4:"cols";s:1:"1";}}',
|
||||
'_um_mode' => 'profile',
|
||||
'_um_core' => 'profile',
|
||||
'_um_profile_use_custom_settings' => 0,
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_email_notifications
|
||||
* @description Extend UM email notifications
|
||||
* @input_vars
|
||||
* [{"var":"$emails","type":"array","desc":"UM email notifications"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_email_notifications', 'function_name', 10, 1 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_email_notifications', 'my_email_notifications', 10, 1 );
|
||||
* function my_email_notifications( $emails ) {
|
||||
* // your code here
|
||||
* $emails['my_email'] = array(
|
||||
* 'key' => 'my_email',
|
||||
* 'title' => __( 'my_email_title','ultimate-member' ),
|
||||
* 'subject' => 'my_email_subject',
|
||||
* 'body' => 'my_email_body',
|
||||
* 'description' => 'my_email_description',
|
||||
* 'recipient' => 'user', // set 'admin' for make administrator as recipient
|
||||
* 'default_active' => true // can be false for make disabled by default
|
||||
* );
|
||||
*
|
||||
* return $emails;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$this->email_notifications = apply_filters( 'um_email_notifications', array(
|
||||
$this->email_notifications = array(
|
||||
'welcome_email' => array(
|
||||
'key' => 'welcome_email',
|
||||
'title' => __( 'Account Welcome Email','ultimate-member' ),
|
||||
@@ -514,85 +479,116 @@ if ( ! class_exists( 'um\Config' ) ) {
|
||||
'recipient' => 'admin',
|
||||
'default_active' => true,
|
||||
),
|
||||
) );
|
||||
);
|
||||
/**
|
||||
* Filters the list of Ultimate Member email notifications.
|
||||
*
|
||||
* @param {array} $email_notifications Email notifications.
|
||||
*
|
||||
* @return {array} Email notifications.
|
||||
*
|
||||
* @since 2.0.0
|
||||
* @hook um_email_notifications
|
||||
*
|
||||
* @example <caption>Add custom admin notice after {custom_update_key} action.</caption>
|
||||
* function my_um_email_notifications( $notifications ) {
|
||||
* // your code here
|
||||
* $emails['my_email'] = array(
|
||||
* 'key' => 'my_email',
|
||||
* 'title' => __( 'my_email_title','ultimate-member' ),
|
||||
* 'subject' => 'my_email_subject',
|
||||
* 'body' => 'my_email_body',
|
||||
* 'description' => 'my_email_description',
|
||||
* 'recipient' => 'user', // set 'admin' for make administrator as recipient
|
||||
* 'default_active' => true // can be false for make disabled by default
|
||||
* );
|
||||
*
|
||||
* return $emails;
|
||||
* }
|
||||
* add_filter( 'um_email_notifications', 'my_um_email_notifications' );
|
||||
*/
|
||||
$this->email_notifications = apply_filters( 'um_email_notifications', $this->email_notifications );
|
||||
|
||||
//settings defaults
|
||||
// Settings defaults.
|
||||
$this->settings_defaults = array(
|
||||
'restricted_access_post_metabox' => array( 'post' => 1, 'page' => 1 ),
|
||||
'disable_restriction_pre_queries' => 0,
|
||||
'uninstall_on_delete' => 0,
|
||||
'restricted_access_post_metabox' => array(
|
||||
'post' => 1,
|
||||
'page' => 1,
|
||||
),
|
||||
'disable_restriction_pre_queries' => false,
|
||||
'uninstall_on_delete' => false,
|
||||
'permalink_base' => 'user_login',
|
||||
'permalink_base_custom_meta' => '',
|
||||
'display_name' => 'full_name',
|
||||
'display_name_field' => '',
|
||||
'author_redirect' => 1,
|
||||
'author_redirect' => true,
|
||||
'members_page' => true,
|
||||
'use_gravatars' => 0,
|
||||
'use_gravatars' => false,
|
||||
'use_um_gravatar_default_builtin_image' => 'default',
|
||||
'use_um_gravatar_default_image' => 0,
|
||||
'use_um_gravatar_default_image' => false,
|
||||
'toggle_password' => false,
|
||||
'require_strongpass' => 0,
|
||||
'require_strongpass' => false,
|
||||
'password_min_chars' => 8,
|
||||
'password_max_chars' => 30,
|
||||
'account_tab_password' => 1,
|
||||
'account_tab_privacy' => 1,
|
||||
'account_tab_notifications' => 1,
|
||||
'account_tab_delete' => 1,
|
||||
'account_tab_password' => true,
|
||||
'account_tab_privacy' => true,
|
||||
'account_tab_notifications' => true,
|
||||
'account_tab_delete' => true,
|
||||
'delete_account_text' => __( 'Are you sure you want to delete your account? This will erase all of your account data from the site. To delete your account enter your password below.', 'ultimate-member' ),
|
||||
'delete_account_no_pass_required_text' => __( 'Are you sure you want to delete your account? This will erase all of your account data from the site. To delete your account, click on the button below.', 'ultimate-member' ),
|
||||
'account_name' => 1,
|
||||
'account_name_disable' => 0,
|
||||
'account_name_require' => 1,
|
||||
'account_email' => 1,
|
||||
'account_general_password' => 0,
|
||||
'account_hide_in_directory' => 1,
|
||||
'account_name' => true,
|
||||
'account_name_disable' => false,
|
||||
'account_name_require' => true,
|
||||
'account_email' => true,
|
||||
'account_general_password' => false,
|
||||
'account_hide_in_directory' => true,
|
||||
'account_hide_in_directory_default' => 'No',
|
||||
'photo_thumb_sizes' => array( 40, 80, 190 ),
|
||||
'cover_thumb_sizes' => array( 300, 600 ),
|
||||
'accessible' => 0,
|
||||
'access_redirect' => '',
|
||||
'access_exclude_uris' => array(),
|
||||
'home_page_accessible' => 1,
|
||||
'category_page_accessible' => 1,
|
||||
'restricted_post_title_replace' => 1,
|
||||
'home_page_accessible' => true,
|
||||
'category_page_accessible' => true,
|
||||
'restricted_post_title_replace' => true,
|
||||
'restricted_access_post_title' => __( 'Restricted content', 'ultimate-member' ),
|
||||
'restricted_access_message' => '',
|
||||
'restricted_blocks' => 0,
|
||||
'enable_blocks' => 0,
|
||||
'restricted_blocks' => false,
|
||||
'enable_blocks' => false,
|
||||
'restricted_block_message' => '',
|
||||
'enable_reset_password_limit' => 1,
|
||||
'enable_reset_password_limit' => true,
|
||||
'reset_password_limit_number' => 3,
|
||||
'change_password_request_limit' => false,
|
||||
'blocked_emails' => '',
|
||||
'blocked_words' => 'admin' . "\r\n" . 'administrator' . "\r\n" . 'webmaster' . "\r\n" . 'support' . "\r\n" . 'staff',
|
||||
'allowed_choice_callbacks' => '',
|
||||
'allow_url_redirect_confirm' => 1,
|
||||
'allow_url_redirect_confirm' => true,
|
||||
'default_avatar' => '',
|
||||
'default_cover' => '',
|
||||
'disable_profile_photo_upload' => 0,
|
||||
'profile_show_metaicon' => 0,
|
||||
'profile_menu' => 1,
|
||||
'disable_profile_photo_upload' => false,
|
||||
'profile_show_metaicon' => false,
|
||||
'profile_menu' => true,
|
||||
'profile_menu_default_tab' => 'main',
|
||||
'profile_menu_icons' => 1,
|
||||
'form_asterisk' => 0,
|
||||
'profile_menu_icons' => true,
|
||||
'form_asterisk' => false,
|
||||
'profile_title' => '{display_name} | {site_name}',
|
||||
'profile_desc' => '{display_name} is on {site_name}. Join {site_name} to view {display_name}\'s profile',
|
||||
'admin_email' => get_bloginfo( 'admin_email' ),
|
||||
'mail_from' => get_bloginfo( 'name' ),
|
||||
'mail_from_addr' => get_bloginfo( 'admin_email' ),
|
||||
'email_html' => 1,
|
||||
'image_orientation_by_exif' => 0,
|
||||
'email_html' => true,
|
||||
'image_orientation_by_exif' => false,
|
||||
'image_compression' => 60,
|
||||
'image_max_width' => 1000,
|
||||
'cover_min_width' => 1000,
|
||||
'profile_photo_max_size' => 999999999,
|
||||
'cover_photo_max_size' => 999999999,
|
||||
'custom_roles_increment' => 1,
|
||||
'um_profile_object_cache_stop' => 0,
|
||||
'um_profile_object_cache_stop' => false,
|
||||
'rest_api_version' => '2.0',
|
||||
'member_directory_own_table' => 0,
|
||||
'member_directory_own_table' => false,
|
||||
'profile_show_bio' => false,
|
||||
'profile_show_html_bio' => 0,
|
||||
'profile_show_html_bio' => false,
|
||||
'profile_bio_maxchars' => 180,
|
||||
'profile_noindex' => 0,
|
||||
'activation_link_expiry_time' => '',
|
||||
@@ -603,7 +599,7 @@ if ( ! class_exists( 'um\Config' ) ) {
|
||||
'secure_notify_admins_banned_accounts' => false,
|
||||
'secure_notify_admins_banned_accounts__interval' => 'instant',
|
||||
'secure_allowed_redirect_hosts' => '',
|
||||
'delete_comments' => 0,
|
||||
'delete_comments' => false,
|
||||
);
|
||||
|
||||
add_filter( 'um_get_tabs_from_config', '__return_true' );
|
||||
@@ -620,26 +616,26 @@ if ( ! class_exists( 'um\Config' ) ) {
|
||||
|
||||
if ( ! isset( $tab['default_privacy'] ) ) {
|
||||
$this->settings_defaults[ 'profile_tab_' . $id . '_privacy' ] = 0;
|
||||
$this->settings_defaults[ 'profile_tab_' . $id . '_roles' ] = '';
|
||||
$this->settings_defaults[ 'profile_tab_' . $id . '_roles' ] = '';
|
||||
}
|
||||
}
|
||||
|
||||
foreach ( $this->email_notifications as $key => $notification ) {
|
||||
$this->settings_defaults[ $key . '_on' ] = ! empty( $notification['default_active'] );
|
||||
$this->settings_defaults[ $key . '_on' ] = ! empty( $notification['default_active'] );
|
||||
$this->settings_defaults[ $key . '_sub' ] = $notification['subject'];
|
||||
$this->settings_defaults[ $key ] = $notification['body'];
|
||||
$this->settings_defaults[ $key ] = $notification['body'];
|
||||
}
|
||||
|
||||
foreach ( $this->core_pages as $page_s => $page ) {
|
||||
$page_id = UM()->options()->get_core_page_id( $page_s );
|
||||
$page_id = UM()->options()->get_predefined_page_option_key( $page_s );
|
||||
|
||||
$this->settings_defaults[ $page_id ] = '';
|
||||
}
|
||||
|
||||
foreach( $this->core_form_meta_all as $key => $value ) {
|
||||
foreach ( $this->core_form_meta_all as $key => $value ) {
|
||||
$this->settings_defaults[ str_replace( '_um_', '', $key ) ] = $value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
@@ -665,126 +661,86 @@ if ( ! class_exists( 'um\Config' ) ) {
|
||||
|
||||
$this->permalinks = $this->get_core_pages();
|
||||
|
||||
|
||||
|
||||
$this->default_roles_metadata = array(
|
||||
/*
|
||||
* All caps map
|
||||
*
|
||||
* '_um_can_access_wpadmin' => 1,
|
||||
'_um_can_not_see_adminbar' => 0,
|
||||
'_um_can_edit_everyone' => 1,
|
||||
'_um_can_edit_roles' => '',
|
||||
'_um_can_delete_everyone' => 1,
|
||||
'_um_can_delete_roles' => '',
|
||||
'_um_after_delete' => '',
|
||||
'_um_delete_redirect_url' => '',
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_redirect_homepage' => '',
|
||||
'_um_after_login' => 'redirect_admin',
|
||||
'_um_login_redirect_url' => '',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_logout_redirect_url' => '',
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_view_roles' => '',
|
||||
'_um_can_make_private_profile' => 1,
|
||||
'_um_can_access_private_profile' => 1,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
'_um_auto_approve_url' => '',
|
||||
'_um_login_email_activate' => '',
|
||||
'_um_checkmail_action' => '',
|
||||
'_um_checkmail_message' => '',
|
||||
'_um_checkmail_url' => '',
|
||||
'_um_url_email_activate' => '',
|
||||
'_um_pending_action' => '',
|
||||
'_um_pending_message' => '',
|
||||
'_um_pending_url' => '',
|
||||
*
|
||||
* */
|
||||
|
||||
|
||||
'subscriber' => array(
|
||||
'_um_can_access_wpadmin' => 0,
|
||||
'_um_can_not_see_adminbar' => 1,
|
||||
'_um_can_edit_everyone' => 0,
|
||||
'_um_can_delete_everyone' => 0,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_after_login' => 'redirect_profile',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 0,
|
||||
'_um_can_access_private_profile' => 0,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
'subscriber' => array(
|
||||
'_um_can_access_wpadmin' => 0,
|
||||
'_um_can_not_see_adminbar' => 1,
|
||||
'_um_can_edit_everyone' => 0,
|
||||
'_um_can_delete_everyone' => 0,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_after_login' => 'redirect_profile',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 0,
|
||||
'_um_can_access_private_profile' => 0,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
),
|
||||
'author' => array(
|
||||
'_um_can_access_wpadmin' => 0,
|
||||
'_um_can_not_see_adminbar' => 1,
|
||||
'_um_can_edit_everyone' => 0,
|
||||
'_um_can_delete_everyone' => 0,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_after_login' => 'redirect_profile',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 0,
|
||||
'_um_can_access_private_profile' => 0,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
'author' => array(
|
||||
'_um_can_access_wpadmin' => 0,
|
||||
'_um_can_not_see_adminbar' => 1,
|
||||
'_um_can_edit_everyone' => 0,
|
||||
'_um_can_delete_everyone' => 0,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_after_login' => 'redirect_profile',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 0,
|
||||
'_um_can_access_private_profile' => 0,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
),
|
||||
'contributor' => array(
|
||||
'_um_can_access_wpadmin' => 0,
|
||||
'_um_can_not_see_adminbar' => 1,
|
||||
'_um_can_edit_everyone' => 0,
|
||||
'_um_can_delete_everyone' => 0,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_after_login' => 'redirect_profile',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 0,
|
||||
'_um_can_access_private_profile' => 0,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
'contributor' => array(
|
||||
'_um_can_access_wpadmin' => 0,
|
||||
'_um_can_not_see_adminbar' => 1,
|
||||
'_um_can_edit_everyone' => 0,
|
||||
'_um_can_delete_everyone' => 0,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_after_login' => 'redirect_profile',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 0,
|
||||
'_um_can_access_private_profile' => 0,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
),
|
||||
'editor' => array(
|
||||
'_um_can_access_wpadmin' => 0,
|
||||
'_um_can_not_see_adminbar' => 1,
|
||||
'_um_can_edit_everyone' => 0,
|
||||
'_um_can_delete_everyone' => 0,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_after_login' => 'redirect_profile',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 0,
|
||||
'_um_can_access_private_profile' => 0,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
'editor' => array(
|
||||
'_um_can_access_wpadmin' => 0,
|
||||
'_um_can_not_see_adminbar' => 1,
|
||||
'_um_can_edit_everyone' => 0,
|
||||
'_um_can_delete_everyone' => 0,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_after_login' => 'redirect_profile',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 0,
|
||||
'_um_can_access_private_profile' => 0,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
),
|
||||
'administrator' => array(
|
||||
'_um_can_access_wpadmin' => 1,
|
||||
'_um_can_not_see_adminbar' => 0,
|
||||
'_um_can_edit_everyone' => 1,
|
||||
'_um_can_delete_everyone' => 1,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_after_login' => 'redirect_admin',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 1,
|
||||
'_um_can_access_private_profile' => 1,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
'_um_can_access_wpadmin' => 1,
|
||||
'_um_can_not_see_adminbar' => 0,
|
||||
'_um_can_edit_everyone' => 1,
|
||||
'_um_can_delete_everyone' => 1,
|
||||
'_um_can_edit_profile' => 1,
|
||||
'_um_can_delete_profile' => 1,
|
||||
'_um_default_homepage' => 1,
|
||||
'_um_after_login' => 'redirect_admin',
|
||||
'_um_after_logout' => 'redirect_home',
|
||||
'_um_can_view_all' => 1,
|
||||
'_um_can_make_private_profile' => 1,
|
||||
'_um_can_access_private_profile' => 1,
|
||||
'_um_status' => 'approved',
|
||||
'_um_auto_approve_act' => 'redirect_profile',
|
||||
),
|
||||
);
|
||||
|
||||
@@ -812,7 +768,6 @@ if ( ! class_exists( 'um\Config' ) ) {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get UM Pages
|
||||
*
|
||||
@@ -826,27 +781,41 @@ if ( ! class_exists( 'um\Config' ) ) {
|
||||
}
|
||||
|
||||
foreach ( $core_pages as $page_key ) {
|
||||
$page_option_key = UM()->options()->get_core_page_id( $page_key );
|
||||
$page_option_key = UM()->options()->get_predefined_page_option_key( $page_key );
|
||||
$permalink[ $page_key ] = UM()->options()->get( $page_option_key );
|
||||
}
|
||||
|
||||
return $permalink;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @todo make config class not cycled
|
||||
*/
|
||||
function set_core_page() {
|
||||
$this->core_pages = apply_filters( 'um_core_pages', array(
|
||||
'user' => array( 'title' => __( 'User', 'ultimate-member' ) ),
|
||||
'login' => array( 'title' => __( 'Login', 'ultimate-member' ) ),
|
||||
'register' => array( 'title' => __( 'Register', 'ultimate-member' ) ),
|
||||
'members' => array( 'title' => __( 'Members', 'ultimate-member' ) ),
|
||||
'logout' => array( 'title' => __( 'Logout', 'ultimate-member' ) ),
|
||||
'account' => array( 'title' => __( 'Account', 'ultimate-member' ) ),
|
||||
'password-reset' => array( 'title' => __( 'Password Reset', 'ultimate-member' ) ),
|
||||
) );
|
||||
public function set_core_page() {
|
||||
$this->core_pages = array(
|
||||
'user' => array(
|
||||
'title' => __( 'User', 'ultimate-member' ),
|
||||
),
|
||||
'login' => array(
|
||||
'title' => __( 'Login', 'ultimate-member' ),
|
||||
),
|
||||
'register' => array(
|
||||
'title' => __( 'Register', 'ultimate-member' ),
|
||||
),
|
||||
'members' => array(
|
||||
'title' => __( 'Members', 'ultimate-member' ),
|
||||
),
|
||||
'logout' => array(
|
||||
'title' => __( 'Logout', 'ultimate-member' ),
|
||||
),
|
||||
'account' => array(
|
||||
'title' => __( 'Account', 'ultimate-member' ),
|
||||
),
|
||||
'password-reset' => array(
|
||||
'title' => __( 'Password Reset', 'ultimate-member' ),
|
||||
),
|
||||
);
|
||||
$this->core_pages = apply_filters( 'um_core_pages', $this->core_pages );
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+20
-72
@@ -235,93 +235,41 @@ if ( ! class_exists( 'UM' ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Loading UM textdomain
|
||||
* Loading UM textdomain.
|
||||
*
|
||||
* 'ultimate-member' by default
|
||||
* Note: 'ultimate-member' is a default textdomain.
|
||||
*
|
||||
* @since 2.8.5 WordPress native functions are used to make this function clear.
|
||||
*/
|
||||
public function localize() {
|
||||
// The function `get_user_locale()` will return `get_locale()` result by default if user or its locale is empty.
|
||||
$language_locale = get_user_locale();
|
||||
|
||||
$default_domain = dirname( plugin_basename( UM_PLUGIN ) );
|
||||
/**
|
||||
* UM hook
|
||||
* Filters the plugin's textdomain.
|
||||
*
|
||||
* @type filter
|
||||
* @title um_language_locale
|
||||
* @description Change UM language locale
|
||||
* @input_vars
|
||||
* [{"var":"$locale","type":"string","desc":"UM language locale"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_filter( 'um_language_locale', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_language_locale', 'my_language_locale', 10, 1 );
|
||||
* function my_language_locale( $locale ) {
|
||||
* // your code here
|
||||
* return $locale;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$language_locale = apply_filters( 'um_language_locale', $language_locale );
|
||||
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
* @param {string} $domain Plugin's textdomain.
|
||||
*
|
||||
* @type filter
|
||||
* @title um_language_textdomain
|
||||
* @description Change UM textdomain
|
||||
* @input_vars
|
||||
* [{"var":"$domain","type":"string","desc":"UM Textdomain"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_filter( 'um_language_textdomain', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_language_textdomain', 'my_textdomain', 10, 1 );
|
||||
* function my_textdomain( $domain ) {
|
||||
* // your code here
|
||||
* @return {string} Maybe changed plugin's textdomain.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_language_textdomain
|
||||
*
|
||||
* @example <caption>Change UM language locale.</caption>
|
||||
* function my_um_language_textdomain( $domain ) {
|
||||
* $domain = 'ultimate-member-custom';
|
||||
* return $domain;
|
||||
* }
|
||||
* ?>
|
||||
* add_filter( 'um_language_textdomain', 'my_um_language_textdomain' );
|
||||
*/
|
||||
$language_domain = apply_filters( 'um_language_textdomain', 'ultimate-member' );
|
||||
|
||||
$language_file = WP_LANG_DIR . '/plugins/' . $language_domain . '-' . $language_locale . '.mo';
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_language_file
|
||||
* @description Change UM language file path
|
||||
* @input_vars
|
||||
* [{"var":"$language_file","type":"string","desc":"UM language file path"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_filter( 'um_language_file', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_language_file', 'my_language_file', 10, 1 );
|
||||
* function my_language_file( $language_file ) {
|
||||
* // your code here
|
||||
* return $language_file;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$language_file = apply_filters( 'um_language_file', $language_file );
|
||||
$domain = apply_filters( 'um_language_textdomain', $default_domain );
|
||||
|
||||
// Unload textdomain if it has already loaded.
|
||||
if ( is_textdomain_loaded( $language_domain ) ) {
|
||||
unload_textdomain( $language_domain, true );
|
||||
if ( is_textdomain_loaded( $domain ) ) {
|
||||
unload_textdomain( $domain, true );
|
||||
}
|
||||
load_textdomain( $language_domain, $language_file );
|
||||
load_plugin_textdomain( $domain, false, $default_domain . '/languages' );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 1.3.x active extensions deactivate for properly running 2.0.x AJAX upgrades
|
||||
*/
|
||||
|
||||
@@ -1772,10 +1772,10 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
||||
$access = UM()->options()->get( 'accessible' );
|
||||
|
||||
if ( $access == 2 ) {
|
||||
//global settings for accessible home page
|
||||
// Global settings for accessible home page
|
||||
$home_page_accessible = UM()->options()->get( 'home_page_accessible' );
|
||||
|
||||
if ( $home_page_accessible == 0 ) {
|
||||
if ( ! $home_page_accessible ) {
|
||||
//get redirect URL if not set get login page by default
|
||||
$redirect = UM()->options()->get( 'access_redirect' );
|
||||
if ( ! $redirect ) {
|
||||
@@ -1795,9 +1795,9 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
||||
$access = UM()->options()->get( 'accessible' );
|
||||
|
||||
if ( $access == 2 ) {
|
||||
//global settings for accessible home page
|
||||
// Global settings for accessible home page
|
||||
$category_page_accessible = UM()->options()->get( 'category_page_accessible' );
|
||||
if ( $category_page_accessible == 0 ) {
|
||||
if ( ! $category_page_accessible ) {
|
||||
//get redirect URL if not set get login page by default
|
||||
$redirect = UM()->options()->get( 'access_redirect' );
|
||||
if ( ! $redirect ) {
|
||||
|
||||
@@ -576,7 +576,7 @@ if ( ! class_exists( 'um\core\Account' ) ) {
|
||||
|
||||
case 'privacy':
|
||||
|
||||
$args = 'profile_privacy,profile_noindex,hide_in_members';
|
||||
$args = 'profile_privacy,profile_noindex,hide_in_members,um_show_last_login';
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
|
||||
@@ -1336,6 +1336,23 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
'required_opt' => array( 'members_page', true ),
|
||||
),
|
||||
|
||||
'um_show_last_login' => array(
|
||||
'title' => __( 'Show my last login?', 'ultimate-member' ),
|
||||
'metakey' => 'um_show_last_login',
|
||||
'type' => 'radio',
|
||||
'label' => __( 'Show my last login?', 'ultimate-member' ),
|
||||
'help' => __( 'Here you can hide last login field on profile page and card in member directory', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => true,
|
||||
'default' => 'yes',
|
||||
'options' => array(
|
||||
'no' => __( 'No', 'ultimate-member' ),
|
||||
'yes' => __( 'Yes', 'ultimate-member' ),
|
||||
),
|
||||
'account_only' => true,
|
||||
),
|
||||
|
||||
'delete_account' => array(
|
||||
'title' => __( 'Delete Account', 'ultimate-member' ),
|
||||
'metakey' => 'delete_account',
|
||||
|
||||
@@ -604,7 +604,7 @@ if ( ! class_exists( 'um\core\External_Integrations' ) ) {
|
||||
*/
|
||||
function render_status_icon( $link, $text, $img ) {
|
||||
|
||||
$icon_html = '<a href="' . $link . '" title="' . $text . '">';
|
||||
$icon_html = '<a href="' . esc_url( $link ) . '" title="' . esc_attr( $text ) . '">';
|
||||
$icon_html .= '<img style="padding:1px;margin:2px;" border="0" src="'
|
||||
. ICL_PLUGIN_URL . '/res/img/'
|
||||
. $img . '" alt="'
|
||||
|
||||
@@ -653,13 +653,6 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
* @return string
|
||||
*/
|
||||
public function field_label( $label, $key, $data ) {
|
||||
$output = null;
|
||||
$output .= '<div class="um-field-label">';
|
||||
|
||||
if ( ! empty( $data['icon'] ) && isset( $this->field_icons ) && 'off' !== $this->field_icons && ( 'label' === $this->field_icons || true === $this->viewing ) ) {
|
||||
$output .= '<div class="um-field-label-icon"><i class="' . esc_attr( $data['icon'] ) . '" aria-label="' . esc_attr( $label ) . '"></i></div>';
|
||||
}
|
||||
|
||||
if ( true === $this->viewing ) {
|
||||
/**
|
||||
* Filters Ultimate Member field label on the Profile form: View mode.
|
||||
@@ -730,13 +723,26 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
$label = apply_filters( 'um_edit_label_all_fields', $label, $data );
|
||||
}
|
||||
|
||||
$output = null;
|
||||
$output .= '<div class="um-field-label">';
|
||||
|
||||
if ( ! empty( $data['icon'] ) && isset( $this->field_icons ) && 'off' !== $this->field_icons && ( 'label' === $this->field_icons || true === $this->viewing ) ) {
|
||||
$output .= '<div class="um-field-label-icon"><i class="' . esc_attr( $data['icon'] ) . '" aria-label="' . esc_attr( $label ) . '"></i></div>';
|
||||
}
|
||||
|
||||
$fields_without_metakey = UM()->builtin()->get_fields_without_metakey();
|
||||
$for_attr = '';
|
||||
if ( ! in_array( $data['type'], $fields_without_metakey, true ) ) {
|
||||
$for_attr = ' for="' . esc_attr( $key . UM()->form()->form_suffix ) . '"';
|
||||
}
|
||||
|
||||
$output .= '<label' . $for_attr . '>' . __( $label, 'ultimate-member' ) . '</label>';
|
||||
$output .= '<label' . $for_attr . '>' . esc_html__( $label, 'ultimate-member' );
|
||||
|
||||
if ( ! empty( $data['required'] ) && UM()->options()->get( 'form_asterisk' ) ) {
|
||||
$output .= '<span class="um-req" title="' . esc_attr__( 'Required', 'ultimate-member' ) . '">*</span>';
|
||||
}
|
||||
|
||||
$output .= '</label>';
|
||||
|
||||
if ( ! empty( $data['help'] ) && false === $this->viewing && false === strpos( $key, 'confirm_user_pass' ) ) {
|
||||
if ( ! UM()->mobile()->isMobile() ) {
|
||||
@@ -3092,7 +3098,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
$fonticon = UM()->files()->get_fonticon_by_ext( $file_type['ext'] );
|
||||
|
||||
$output .= '<div class="um-single-fileinfo">';
|
||||
$output .= '<a href="' . esc_attr( $file_url ) . '" target="_blank">';
|
||||
$output .= '<a href="' . esc_url( $file_url ) . '" target="_blank">';
|
||||
$output .= '<span class="icon" style="background:' . esc_attr( $fonticon_bg ) . '"><i class="' . esc_attr( $fonticon ) . '"></i></span>';
|
||||
$output .= '<span class="filename">' . esc_html( $file_field_name ) . '</span>';
|
||||
$output .= '</a></div></div>';
|
||||
@@ -4278,6 +4284,14 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function view_field( $key, $data, $rule = false ) {
|
||||
if ( '_um_last_login' === $key ) {
|
||||
$profile_id = um_user( 'ID' );
|
||||
$show_last_login = get_user_meta( $profile_id, 'um_show_last_login', true );
|
||||
if ( ! empty( $show_last_login ) && 'no' === $show_last_login[0] ) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
$output = '';
|
||||
|
||||
// Get whole field data.
|
||||
|
||||
@@ -224,6 +224,27 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
|
||||
$blog_id = get_current_blog_id();
|
||||
|
||||
/**
|
||||
* Filters member directory select-type filter relation in query.
|
||||
*
|
||||
* @param {string} $relation Relation `OR` or `AND`. `OR` by default.
|
||||
* @param {string} $field Field key.
|
||||
*
|
||||
* @return {string} Relation.
|
||||
*
|
||||
* @since 2.8.5
|
||||
* @hook um_members_directory_select_filter_relation
|
||||
*
|
||||
* @example <caption>Change relation to 'AND'.</caption>
|
||||
* function my_um_members_directory_select_filter_relation( $relation, $field ) {
|
||||
* // your code here
|
||||
* $relation = 'AND';
|
||||
* return $relation;
|
||||
* }
|
||||
* add_filter( 'um_members_directory_select_filter_relation', 'my_um_members_directory_select_filter_relation', 10, 2 );
|
||||
*/
|
||||
$relation = apply_filters( 'um_members_directory_select_filter_relation', 'OR', $field );
|
||||
|
||||
switch ( $field ) {
|
||||
default:
|
||||
$filter_type = $this->filter_types[ $field ];
|
||||
@@ -328,7 +349,7 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
// phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $join_alias is pre-escaped.
|
||||
}
|
||||
|
||||
$values = implode( ' OR ', $values_array );
|
||||
$values = implode( ' ' . esc_sql( $relation ) . ' ', $values_array );
|
||||
|
||||
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $join_alias and $values variables are pre-escaped or $wpdb->prepare.
|
||||
$this->where_clauses[] = $wpdb->prepare( "( {$join_alias}.um_key = %s AND ( {$values} ) )", $field );
|
||||
@@ -421,7 +442,7 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
}
|
||||
|
||||
// $roles_clauses is pre-prepared.
|
||||
$this->where_clauses[] = '( ' . implode( ' OR ', $roles_clauses ) . ' )';
|
||||
$this->where_clauses[] = '( ' . implode( ' ' . esc_sql( $relation ) . ' ', $roles_clauses ) . ' )';
|
||||
|
||||
if ( ! $is_default ) {
|
||||
$this->custom_filters_in_query[ $field ] = $value;
|
||||
@@ -483,19 +504,55 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
$value = array_map(
|
||||
function( $date ) {
|
||||
return is_numeric( $date ) ? $date : strtotime( $date );
|
||||
},
|
||||
$value
|
||||
);
|
||||
|
||||
$from_date = gmdate( 'Y-m-d H:i:s', (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ) ); // client time zone offset
|
||||
$to_date = gmdate( 'Y-m-d H:i:s', (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1 ); // time 23:59
|
||||
|
||||
// $join_alias is pre-escaped.
|
||||
$this->joins[] = "LEFT JOIN {$wpdb->prefix}um_metadata {$join_alias} ON {$join_alias}.user_id = u.ID";
|
||||
$join_alias_ll = $join_alias . '_show_las_login';
|
||||
$this->joins[] = "LEFT JOIN {$wpdb->prefix}um_metadata {$join_alias_ll} ON {$join_alias_ll}.user_id = u.ID AND {$join_alias_ll}.um_key = 'um_show_last_login'";
|
||||
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $join_alias is pre-escaped.
|
||||
$this->where_clauses[] = $wpdb->prepare( "( {$join_alias}.um_key = '_um_last_login' AND {$join_alias}.um_value BETWEEN %s AND %s )", $from_date, $to_date );
|
||||
$this->where_clauses[] = $wpdb->prepare( "( {$join_alias}.um_key = '_um_last_login' AND {$join_alias}.um_value BETWEEN %s AND %s AND ( {$join_alias_ll}.um_value IS NULL OR {$join_alias_ll}.um_value != %s ) )", $from_date, $to_date, 'a:1:{i:0;s:2:"no";}' );
|
||||
|
||||
if ( ! $is_default ) {
|
||||
$this->custom_filters_in_query[ $field ] = $value;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'gender':
|
||||
if ( ! is_array( $value ) ) {
|
||||
$value = array( $value );
|
||||
}
|
||||
|
||||
// $join_alias is pre-escaped.
|
||||
$this->joins[] = "LEFT JOIN {$wpdb->prefix}um_metadata {$join_alias} ON {$join_alias}.user_id = u.ID";
|
||||
|
||||
$values_array = array();
|
||||
foreach ( $value as $single_val ) {
|
||||
$single_val = trim( stripslashes( $single_val ) );
|
||||
|
||||
// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $join_alias and $compare variables are pre-escaped.
|
||||
$values_array[] = $wpdb->prepare( "{$join_alias}.um_value LIKE %s", '%"' . $wpdb->esc_like( $single_val ) . '"%' );
|
||||
$values_array[] = $wpdb->prepare( "{$join_alias}.um_value = %s", $single_val );
|
||||
// phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $join_alias is pre-escaped.
|
||||
}
|
||||
|
||||
$values = implode( ' ' . esc_sql( $relation ) . ' ', $values_array );
|
||||
|
||||
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $join_alias and $values variables are pre-escaped or $wpdb->prepare.
|
||||
$this->where_clauses[] = $wpdb->prepare( "( {$join_alias}.um_key = %s AND ( {$values} ) )", $field );
|
||||
|
||||
if ( ! $is_default ) {
|
||||
$this->custom_filters_in_query[ $field ] = $value;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -649,13 +706,29 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
// phpcs:enable WordPress.Security.NonceVerification -- verified via `UM()->check_ajax_nonce();`.
|
||||
if ( ! empty( $search_line ) ) {
|
||||
$searches = array();
|
||||
foreach ( $this->core_search_fields as $field ) {
|
||||
$field = esc_sql( $field );
|
||||
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $field is pre-escaped.
|
||||
$searches[] = $wpdb->prepare( "u.{$field} LIKE %s", '%' . $wpdb->esc_like( $search_line ) . '%' );
|
||||
|
||||
$exclude_fields = get_post_meta( $directory_id, '_um_search_exclude_fields', true );
|
||||
$include_fields = get_post_meta( $directory_id, '_um_search_include_fields', true );
|
||||
|
||||
$core_search = $this->get_core_search_fields();
|
||||
if ( ! empty( $include_fields ) ) {
|
||||
$core_search = array_intersect( $core_search, $include_fields );
|
||||
}
|
||||
if ( ! empty( $exclude_fields ) ) {
|
||||
$core_search = array_diff( $core_search, $exclude_fields );
|
||||
}
|
||||
if ( ! empty( $core_search ) ) {
|
||||
foreach ( $core_search as $field ) {
|
||||
$field = esc_sql( $field );
|
||||
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $field is pre-escaped.
|
||||
$searches[] = $wpdb->prepare( "u.{$field} LIKE %s", '%' . $wpdb->esc_like( $search_line ) . '%' );
|
||||
}
|
||||
}
|
||||
|
||||
$core_search = implode( ' OR ', $searches );
|
||||
if ( ! empty( $core_search ) ) {
|
||||
$core_search = ' OR ' . $core_search;
|
||||
}
|
||||
|
||||
$this->joins[] = "LEFT JOIN {$wpdb->prefix}um_metadata umm_search ON umm_search.user_id = u.ID";
|
||||
|
||||
@@ -663,8 +736,17 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
|
||||
$search_like_string = apply_filters( 'um_member_directory_meta_search_like_type', '%' . $wpdb->esc_like( $search_line ) . '%', $search_line );
|
||||
|
||||
$custom_fields_sql = '';
|
||||
|
||||
if ( ! empty( $exclude_fields ) ) {
|
||||
$custom_fields_sql = " AND umm_search.um_key NOT IN ('" . implode( "','", $exclude_fields ) . "') ";
|
||||
}
|
||||
if ( ! empty( $include_fields ) ) {
|
||||
$custom_fields_sql = " AND umm_search.um_key IN ('" . implode( "','", $include_fields ) . "') ";
|
||||
}
|
||||
|
||||
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $core_search and $additional_search are pre-prepared.
|
||||
$this->where_clauses[] = $wpdb->prepare( "( umm_search.um_value = %s OR umm_search.um_value LIKE %s OR umm_search.um_value LIKE %s OR {$core_search}{$additional_search})", $search_line, $search_like_string, '%' . $wpdb->esc_like( maybe_serialize( (string) $search_line ) ) . '%' );
|
||||
$this->where_clauses[] = $wpdb->prepare( "( umm_search.um_value = %s OR umm_search.um_value LIKE %s OR umm_search.um_value LIKE %s{$core_search}{$additional_search}){$custom_fields_sql}", $search_line, $search_like_string, '%' . $wpdb->esc_like( maybe_serialize( (string) $search_line ) ) . '%' );
|
||||
|
||||
$this->is_search = true;
|
||||
}
|
||||
|
||||
@@ -42,6 +42,11 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
*/
|
||||
var $filter_fields = array();
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
public $searching_fields = array();
|
||||
|
||||
|
||||
/**
|
||||
* @var array
|
||||
@@ -122,7 +127,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
* Get the WordPress core searching fields in wp_users query.
|
||||
* @return array
|
||||
*/
|
||||
private function get_core_search_fields() {
|
||||
protected function get_core_search_fields() {
|
||||
/**
|
||||
* Filters the WordPress core searching fields in wp_users query for UM Member directory query.
|
||||
*
|
||||
@@ -433,6 +438,25 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
|
||||
$this->filter_supported_fields = apply_filters( 'um_members_directory_custom_field_types_supported_filter', array( 'date', 'time', 'select', 'multiselect', 'radio', 'checkbox', 'rating', 'text', 'textarea', 'number' ) );
|
||||
|
||||
$core_search_keys = $this->get_core_search_fields();
|
||||
|
||||
$this->searching_fields = array();
|
||||
if ( ! empty( UM()->builtin()->all_user_fields() ) ) {
|
||||
foreach ( UM()->builtin()->all_user_fields() as $key => $data ) {
|
||||
if ( in_array( $key, $core_search_keys, true ) ) {
|
||||
if ( isset( $data['title'] ) && array_search( $data['title'], $this->searching_fields, true ) !== false ) {
|
||||
$data['title'] = $data['title'] . ' (' . $key . ')';
|
||||
}
|
||||
|
||||
$title = isset( $data['title'] ) ? $data['title'] : ( isset( $data['label'] ) ? $data['label'] : '' );
|
||||
if ( empty( $title ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->searching_fields[ $key ] = $title;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( ! empty( UM()->builtin()->saved_fields ) ) {
|
||||
foreach ( UM()->builtin()->saved_fields as $key => $data ) {
|
||||
|
||||
@@ -459,6 +483,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
|
||||
ksort( $this->filter_fields );
|
||||
|
||||
$this->searching_fields = array_merge( $this->searching_fields, $this->filter_fields );
|
||||
asort( $this->searching_fields );
|
||||
|
||||
$this->filter_types = apply_filters( 'um_members_directory_filter_types', array(
|
||||
'country' => 'select',
|
||||
'gender' => 'select',
|
||||
@@ -1734,27 +1761,50 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
|
||||
$sql['where'] = str_replace( '#%&', '{' . $matches[0][0] . '}', $sql['where'] );
|
||||
|
||||
$directory_id = $this->get_directory_by_hash( sanitize_key( $_POST['directory_id'] ) );
|
||||
$exclude_fields = get_post_meta( $directory_id, '_um_search_exclude_fields', true );
|
||||
$include_fields = get_post_meta( $directory_id, '_um_search_include_fields', true );
|
||||
|
||||
if ( isset( $join_matches[1] ) ) {
|
||||
$meta_join_for_search = trim( $join_matches[1] );
|
||||
|
||||
// skip private invisible fields
|
||||
$custom_fields = array();
|
||||
foreach ( array_keys( UM()->builtin()->all_user_fields ) as $field_key ) {
|
||||
if ( empty( $field_key ) ) {
|
||||
continue;
|
||||
}
|
||||
if ( empty( $include_fields ) ) {
|
||||
foreach ( array_keys( UM()->builtin()->all_user_fields ) as $field_key ) {
|
||||
if ( empty( $field_key ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$data = UM()->fields()->get_field( $field_key );
|
||||
if ( ! um_can_view_field( $data ) ) {
|
||||
continue;
|
||||
}
|
||||
$data = UM()->fields()->get_field( $field_key );
|
||||
if ( ! um_can_view_field( $data ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$custom_fields[] = $field_key;
|
||||
$custom_fields[] = $field_key;
|
||||
}
|
||||
} else {
|
||||
foreach ( $include_fields as $field_key ) {
|
||||
if ( empty( $field_key ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$data = UM()->fields()->get_field( $field_key );
|
||||
if ( ! um_can_view_field( $data ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$custom_fields[] = $field_key;
|
||||
}
|
||||
}
|
||||
|
||||
$custom_fields = apply_filters( 'um_general_search_custom_fields', $custom_fields );
|
||||
|
||||
if ( ! empty( $custom_fields ) ) {
|
||||
if ( ! empty( $exclude_fields ) ) {
|
||||
$custom_fields = array_diff( $custom_fields, $exclude_fields );
|
||||
}
|
||||
|
||||
$sql['join'] = preg_replace(
|
||||
'/(' . $meta_join_for_search . ' ON \( ' . $wpdb->users . '\.ID = ' . $meta_join_for_search . '\.user_id )(\))/im',
|
||||
"$1 AND " . $meta_join_for_search . ".meta_key IN( '" . implode( "','", $custom_fields ) . "' ) $2",
|
||||
@@ -1763,18 +1813,28 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
// Add OR instead AND to search in WP core fields user_email, user_login, user_display_name
|
||||
$search_where = $context->get_search_sql( $search, $this->get_core_search_fields(), 'both' );
|
||||
$core_search = $this->get_core_search_fields();
|
||||
if ( ! empty( $include_fields ) ) {
|
||||
$core_search = array_intersect( $core_search, $include_fields );
|
||||
}
|
||||
if ( ! empty( $exclude_fields ) ) {
|
||||
$core_search = array_diff( $core_search, $exclude_fields );
|
||||
}
|
||||
|
||||
$search_where = preg_replace( '/ AND \((.*?)\)/im', "$1 OR", $search_where );
|
||||
if ( ! empty( $core_search ) ) {
|
||||
// Add OR instead AND to search in WP core fields user_email, user_login, user_display_name
|
||||
$search_where = $context->get_search_sql( $search, $core_search, 'both' );
|
||||
|
||||
// str_replace( '/', '\/', wp_slash( $search ) ) means that we add backslashes to special symbols + add backslash to slash(/) symbol for proper regular pattern.
|
||||
$sql['where'] = preg_replace(
|
||||
'/(' . $meta_join_for_search . '.meta_value = \'' . str_replace( '/', '\/', wp_slash( $search ) ) . '\')/im',
|
||||
trim( $search_where ) . " $1",
|
||||
$sql['where'],
|
||||
1
|
||||
);
|
||||
$search_where = preg_replace( '/ AND \((.*?)\)/im', "$1 OR", $search_where );
|
||||
|
||||
// str_replace( '/', '\/', wp_slash( $search ) ) means that we add backslashes to special symbols + add backslash to slash(/) symbol for proper regular pattern.
|
||||
$sql['where'] = preg_replace(
|
||||
'/(' . $meta_join_for_search . '.meta_value = \'' . str_replace( '/', '\/', wp_slash( $search ) ) . '\')/im',
|
||||
trim( $search_where ) . " $1",
|
||||
$sql['where'],
|
||||
1
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1785,6 +1845,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
* Handle filters request
|
||||
*/
|
||||
function filters( $directory_data ) {
|
||||
global $wpdb;
|
||||
//filters
|
||||
$filter_query = array();
|
||||
if ( ! empty( $directory_data['search_fields'] ) ) {
|
||||
@@ -1817,9 +1878,11 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/** This filter is documented in includes/core/class-member-directory-meta.php */
|
||||
$relation = apply_filters( 'um_members_directory_select_filter_relation', 'OR', $field );
|
||||
|
||||
switch ( $field ) {
|
||||
default:
|
||||
|
||||
$filter_type = $this->filter_types[ $field ];
|
||||
|
||||
/**
|
||||
@@ -1873,35 +1936,35 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
|
||||
case 'select':
|
||||
if ( is_array( $value ) ) {
|
||||
$field_query = array( 'relation' => 'OR' );
|
||||
$field_query = array( 'relation' => esc_sql( $relation ) );
|
||||
|
||||
foreach ( $value as $single_val ) {
|
||||
$single_val = trim( stripslashes( $single_val ) );
|
||||
|
||||
$arr_meta_query = array(
|
||||
array(
|
||||
'key' => $field,
|
||||
'value' => $single_val,
|
||||
'compare' => '=',
|
||||
'key' => $field,
|
||||
'value' => $single_val,
|
||||
'compare' => '=',
|
||||
),
|
||||
array(
|
||||
'key' => $field,
|
||||
'value' => serialize( (string) $single_val ),
|
||||
'compare' => 'LIKE',
|
||||
'key' => $field,
|
||||
'value' => serialize( (string) $single_val ),
|
||||
'compare' => 'LIKE',
|
||||
),
|
||||
array(
|
||||
'key' => $field,
|
||||
'value' => '"' . $single_val . '"',
|
||||
'compare' => 'LIKE',
|
||||
)
|
||||
'key' => $field,
|
||||
'value' => '"' . $single_val . '"',
|
||||
'compare' => 'LIKE',
|
||||
),
|
||||
);
|
||||
|
||||
if ( is_numeric( $single_val ) ) {
|
||||
|
||||
$arr_meta_query[] = array(
|
||||
'key' => $field,
|
||||
'value' => serialize( (int) $single_val ),
|
||||
'compare' => 'LIKE',
|
||||
'key' => $field,
|
||||
'value' => serialize( absint( $single_val ) ),
|
||||
'compare' => 'LIKE',
|
||||
);
|
||||
|
||||
}
|
||||
@@ -1975,26 +2038,39 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
if ( ! empty( $field_query ) && $field_query !== true ) {
|
||||
$this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $field_query ) );
|
||||
}
|
||||
|
||||
break;
|
||||
case 'role':
|
||||
$value = array_map( 'strtolower', $value );
|
||||
|
||||
if ( ! empty( $this->query_args['role__in'] ) ) {
|
||||
$this->query_args['role__in'] = is_array( $this->query_args['role__in'] ) ? $this->query_args['role__in'] : array( $this->query_args['role__in'] );
|
||||
$default_role = array_intersect( $this->query_args['role__in'], $value );
|
||||
$um_role = array_diff( $value, $default_role );
|
||||
|
||||
foreach ( $um_role as $key => &$val ) {
|
||||
$val = 'um_' . str_replace( ' ', '-', $val );
|
||||
if ( 'OR' !== $relation ) {
|
||||
$role__in_clauses = array( 'relation' => $relation );
|
||||
foreach ( $value as $role ) {
|
||||
$role__in_clauses[] = array(
|
||||
'key' => $wpdb->get_blog_prefix() . 'capabilities',
|
||||
'value' => '"' . $role . '"',
|
||||
'compare' => 'LIKE',
|
||||
);
|
||||
}
|
||||
$this->query_args['role__in'] = array_merge( $default_role, $um_role );
|
||||
|
||||
$this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $role__in_clauses ) );
|
||||
|
||||
$this->custom_filters_in_query[ $field ] = $value;
|
||||
} else {
|
||||
$this->query_args['role__in'] = $value;
|
||||
};
|
||||
if ( ! empty( $this->query_args['role__in'] ) ) {
|
||||
$this->query_args['role__in'] = is_array( $this->query_args['role__in'] ) ? $this->query_args['role__in'] : array( $this->query_args['role__in'] );
|
||||
$default_role = array_intersect( $this->query_args['role__in'], $value );
|
||||
$um_role = array_diff( $value, $default_role );
|
||||
|
||||
$this->custom_filters_in_query[ $field ] = $this->query_args['role__in'];
|
||||
foreach ( $um_role as $key => &$val ) {
|
||||
$val = 'um_' . str_replace( ' ', '-', $val );
|
||||
}
|
||||
$this->query_args['role__in'] = array_merge( $default_role, $um_role );
|
||||
} else {
|
||||
$this->query_args['role__in'] = $value;
|
||||
}
|
||||
|
||||
$this->custom_filters_in_query[ $field ] = $this->query_args['role__in'];
|
||||
}
|
||||
break;
|
||||
case 'birth_date':
|
||||
$from_date = date( 'Y/m/d', mktime( 0,0,0, date( 'm', time() ), date( 'd', time() ), date( 'Y', time() - min( $value ) * YEAR_IN_SECONDS ) ) );
|
||||
@@ -2016,7 +2092,6 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
|
||||
break;
|
||||
case 'user_registered':
|
||||
|
||||
$offset = 0;
|
||||
if ( isset( $_POST['gmt_offset'] ) && is_numeric( $_POST['gmt_offset'] ) ) {
|
||||
$offset = (int) $_POST['gmt_offset'];
|
||||
@@ -2052,6 +2127,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
$from_date = (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ); // client time zone offset
|
||||
$to_date = (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1; // time 23:59
|
||||
$meta_query = array(
|
||||
'relation' => 'AND',
|
||||
array(
|
||||
'key' => '_um_last_login',
|
||||
'value' => array( gmdate( 'Y-m-d H:i:s', $from_date ), gmdate( 'Y-m-d H:i:s', $to_date ) ),
|
||||
@@ -2059,12 +2135,54 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
'inclusive' => true,
|
||||
'type' => 'DATETIME',
|
||||
),
|
||||
array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'um_show_last_login',
|
||||
'compare' => 'NOT EXISTS',
|
||||
),
|
||||
array(
|
||||
'key' => 'um_show_last_login',
|
||||
'value' => 'a:1:{i:0;s:2:"no";}',
|
||||
'compare' => '!=',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$this->custom_filters_in_query[ $field ] = $value;
|
||||
|
||||
$this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) );
|
||||
break;
|
||||
case 'gender':
|
||||
if ( is_array( $value ) ) {
|
||||
$field_query = array( 'relation' => $relation );
|
||||
|
||||
foreach ( $value as $single_val ) {
|
||||
$single_val = trim( stripslashes( $single_val ) );
|
||||
|
||||
$arr_meta_query = array(
|
||||
array(
|
||||
'key' => $field,
|
||||
'value' => $single_val,
|
||||
'compare' => '=',
|
||||
),
|
||||
array(
|
||||
'key' => $field,
|
||||
'value' => '"' . $single_val . '"',
|
||||
'compare' => 'LIKE',
|
||||
),
|
||||
);
|
||||
|
||||
$field_query = array_merge( $field_query, $arr_meta_query );
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! empty( $field_query ) ) {
|
||||
$this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $field_query ) );
|
||||
|
||||
$this->custom_filters_in_query[ $field ] = $value;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2141,35 +2259,36 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
$value = array( $value );
|
||||
}
|
||||
|
||||
$field_query = array( 'relation' => 'OR' );
|
||||
/** This filter is documented in includes/core/class-member-directory.php */
|
||||
$field_query = apply_filters( 'um_members_directory_filter_select', array( 'relation' => 'OR' ), $field );
|
||||
|
||||
foreach ( $value as $single_val ) {
|
||||
$single_val = trim( $single_val );
|
||||
|
||||
$arr_meta_query = array(
|
||||
array(
|
||||
'key' => $field,
|
||||
'value' => $single_val,
|
||||
'compare' => '=',
|
||||
'key' => $field,
|
||||
'value' => $single_val,
|
||||
'compare' => '=',
|
||||
),
|
||||
array(
|
||||
'key' => $field,
|
||||
'value' => serialize( (string) $single_val ),
|
||||
'compare' => 'LIKE',
|
||||
'key' => $field,
|
||||
'value' => serialize( (string) $single_val ),
|
||||
'compare' => 'LIKE',
|
||||
),
|
||||
array(
|
||||
'key' => $field,
|
||||
'value' => '"' . $single_val . '"',
|
||||
'compare' => 'LIKE',
|
||||
)
|
||||
'key' => $field,
|
||||
'value' => '"' . $single_val . '"',
|
||||
'compare' => 'LIKE',
|
||||
),
|
||||
);
|
||||
|
||||
if ( is_numeric( $single_val ) ) {
|
||||
|
||||
$arr_meta_query[] = array(
|
||||
'key' => $field,
|
||||
'value' => serialize( (int) $single_val ),
|
||||
'compare' => 'LIKE',
|
||||
'key' => $field,
|
||||
'value' => serialize( absint( $single_val ) ),
|
||||
'compare' => 'LIKE',
|
||||
);
|
||||
|
||||
}
|
||||
@@ -2298,9 +2417,18 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
$offset = $gmt_offset;
|
||||
}
|
||||
|
||||
$from_date = (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ); // client time zone offset
|
||||
$to_date = (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1; // time 23:59
|
||||
$value = array_map(
|
||||
function( $date ) {
|
||||
return is_numeric( $date ) ? $date : strtotime( $date );
|
||||
},
|
||||
$value
|
||||
);
|
||||
|
||||
$from_date = gmdate( 'Y-m-d H:i:s', (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ) ); // client time zone offset
|
||||
$to_date = gmdate( 'Y-m-d H:i:s', (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1 ); // time 23:59
|
||||
|
||||
$meta_query = array(
|
||||
'relation' => 'AND',
|
||||
array(
|
||||
'key' => '_um_last_login',
|
||||
'value' => array( $from_date, $to_date ),
|
||||
@@ -2308,6 +2436,18 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
'inclusive' => true,
|
||||
'type' => 'DATETIME',
|
||||
),
|
||||
array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'um_show_last_login',
|
||||
'compare' => 'NOT EXISTS',
|
||||
),
|
||||
array(
|
||||
'key' => 'um_show_last_login',
|
||||
'value' => 'a:1:{i:0;s:2:"no";}',
|
||||
'compare' => '!=',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) );
|
||||
@@ -2513,6 +2653,13 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( '_um_last_login' === $key ) {
|
||||
$show_last_login = get_user_meta( $user_id, 'um_show_last_login', true );
|
||||
if ( ! empty( $show_last_login ) && 'no' === $show_last_login[0] ) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$value = um_filtered_value( $key );
|
||||
|
||||
if ( ! $value ) {
|
||||
@@ -2537,6 +2684,13 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( '_um_last_login' === $key ) {
|
||||
$show_last_login = get_user_meta( $user_id, 'um_show_last_login', true );
|
||||
if ( ! empty( $show_last_login ) && 'no' === $show_last_login[0] ) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$value = um_filtered_value( $key );
|
||||
if ( ! $value ) {
|
||||
continue;
|
||||
|
||||
@@ -7,64 +7,56 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
|
||||
if ( ! class_exists( 'um\core\Options' ) ) {
|
||||
|
||||
|
||||
/**
|
||||
* Class Options
|
||||
* @package um\core
|
||||
*/
|
||||
class Options {
|
||||
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
var $options = array();
|
||||
|
||||
private $options = array();
|
||||
|
||||
/**
|
||||
* Options constructor.
|
||||
*/
|
||||
function __construct() {
|
||||
public function __construct() {
|
||||
$this->init_variables();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set variables
|
||||
*/
|
||||
function init_variables() {
|
||||
private function init_variables() {
|
||||
$this->options = get_option( 'um_options', array() );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get UM option value
|
||||
* Get UM option value.
|
||||
*
|
||||
* @param $option_id
|
||||
* @return mixed|string|void
|
||||
* @param string $option_id
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function get( $option_id ) {
|
||||
public function get( $option_id ) {
|
||||
if ( isset( $this->options[ $option_id ] ) ) {
|
||||
/**
|
||||
* UM hook
|
||||
* Filters the plugin option.
|
||||
*
|
||||
* @type filter
|
||||
* @title um_get_option_filter__{$option_id}
|
||||
* @description Change UM option on get by $option_id
|
||||
* @input_vars
|
||||
* [{"var":"$option","type":"array","desc":"Option Value"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_get_option_filter__{$option_id}', 'function_name', 10, 1 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_get_option_filter__{$option_id}', 'my_get_option_filter', 10, 1 );
|
||||
* function my_get_option_filter( $option ) {
|
||||
* // your code here
|
||||
* return $option;
|
||||
* @param {mixed} $value Option value.
|
||||
*
|
||||
* @return {mixed} Option value.
|
||||
*
|
||||
* @since 1.3.67
|
||||
* @hook um_get_option_filter__{$option_id}
|
||||
*
|
||||
* @example <caption>Change `option_1` value.</caption>
|
||||
* function my_custom_option_1( $value ) {
|
||||
* $value = 'option_1_custom_value';
|
||||
* return $value;
|
||||
* }
|
||||
* ?>
|
||||
* add_filter( 'um_get_option_filter__option_1', 'my_custom_option_1' );
|
||||
*/
|
||||
return apply_filters( "um_get_option_filter__{$option_id}", $this->options[ $option_id ] );
|
||||
}
|
||||
@@ -72,35 +64,30 @@ if ( ! class_exists( 'um\core\Options' ) ) {
|
||||
switch ( $option_id ) {
|
||||
case 'site_name':
|
||||
return get_bloginfo( 'name' );
|
||||
break;
|
||||
case 'admin_email':
|
||||
return get_bloginfo( 'admin_email' );
|
||||
break;
|
||||
default:
|
||||
return '';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update UM option value
|
||||
*
|
||||
* @param $option_id
|
||||
* @param $value
|
||||
*/
|
||||
function update( $option_id, $value ) {
|
||||
public function update( $option_id, $value ) {
|
||||
$this->options[ $option_id ] = $value;
|
||||
update_option( 'um_options', $this->options );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Delete UM option
|
||||
*
|
||||
* @param $option_id
|
||||
*/
|
||||
function remove( $option_id ) {
|
||||
public function remove( $option_id ) {
|
||||
if ( ! empty( $this->options[ $option_id ] ) ) {
|
||||
unset( $this->options[ $option_id ] );
|
||||
}
|
||||
@@ -108,16 +95,15 @@ if ( ! class_exists( 'um\core\Options' ) ) {
|
||||
update_option( 'um_options', $this->options );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get UM option default value
|
||||
*
|
||||
* @use UM()->config()
|
||||
*
|
||||
* @param $option_id
|
||||
* @param string $option_id
|
||||
* @return mixed
|
||||
*/
|
||||
function get_default( $option_id ) {
|
||||
public function get_default( $option_id ) {
|
||||
$settings_defaults = UM()->config()->settings_defaults;
|
||||
if ( ! isset( $settings_defaults[ $option_id ] ) ) {
|
||||
return false;
|
||||
@@ -136,40 +122,58 @@ if ( ! class_exists( 'um\core\Options' ) ) {
|
||||
* @return string
|
||||
*/
|
||||
public function get_predefined_page_option_key( $slug ) {
|
||||
/**
|
||||
* Filters the predefined page option key.
|
||||
*
|
||||
* @param {string} $option_key Predefined page option key.
|
||||
*
|
||||
* @return {string} Predefined page option key.
|
||||
*
|
||||
* @since 2.8.3
|
||||
* @hook um_predefined_page_option_key
|
||||
*
|
||||
* @example <caption>Change option key for login predefined page.</caption>
|
||||
* function my_um_predefined_page_option_key( $option_key ) {
|
||||
* if ( 'core_login' === $option_key ) {
|
||||
* $option_key = 'core_login_custom';
|
||||
* }
|
||||
* return $option_key;
|
||||
* }
|
||||
* add_filter( 'um_predefined_page_option_key', 'my_um_predefined_page_option_key' );
|
||||
*/
|
||||
return apply_filters( 'um_predefined_page_option_key', "core_{$slug}" );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get core page ID
|
||||
*
|
||||
* @todo Deprecate soon
|
||||
*
|
||||
* @param string $key
|
||||
*
|
||||
* @return mixed|void
|
||||
* @return string
|
||||
*/
|
||||
function get_core_page_id( $key ) {
|
||||
public function get_core_page_id( $key ) {
|
||||
/**
|
||||
* UM hook
|
||||
* Filters the predefined page option key.
|
||||
*
|
||||
* @type filter
|
||||
* @title um_core_page_id_filter
|
||||
* @description Change UM page slug
|
||||
* @input_vars
|
||||
* [{"var":"$slug","type":"array","desc":"UM page slug"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_core_page_id_filter', 'function_name', 10, 1 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_core_page_id_filter', 'my_core_page_id', 10, 1 );
|
||||
* function my_core_page_id( $slug ) {
|
||||
* // your code here
|
||||
* return $slug;
|
||||
* @param {string} $page_key Predefined page option key.
|
||||
*
|
||||
* @return {string} Predefined page option key.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_core_page_id_filter
|
||||
*
|
||||
* @example <caption>Change option key for login predefined page.</caption>
|
||||
* function my_um_core_page_id_filter( $page_key ) {
|
||||
* if ( 'core_login' === $page_key ) {
|
||||
* $page_key = 'core_login_custom';
|
||||
* }
|
||||
* return $page_key;
|
||||
* }
|
||||
* ?>
|
||||
* add_filter( 'um_core_page_id_filter', 'my_um_core_page_id_filter' );
|
||||
*/
|
||||
return apply_filters( 'um_core_page_id_filter', 'core_' . $key );
|
||||
return apply_filters( 'um_core_page_id_filter', $this->get_predefined_page_option_key( $key ) );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ if ( ! class_exists( 'um\core\Password' ) ) {
|
||||
array(
|
||||
'act' => 'reset_password',
|
||||
'hash' => $reset_key,
|
||||
'login' => $user_data->user_login,
|
||||
'login' => rawurlencode( $user_data->user_login ),
|
||||
),
|
||||
um_get_core_page( 'password-reset' )
|
||||
);
|
||||
|
||||
@@ -418,6 +418,13 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
|
||||
if ( ! empty( $array ) ) {
|
||||
foreach ( $array as $key ) {
|
||||
if ( $key ) {
|
||||
if ( '_um_last_login' === $key ) {
|
||||
$show_last_login = get_user_meta( um_user( 'ID' ), 'um_show_last_login', true );
|
||||
if ( ! empty( $show_last_login ) && 'no' === $show_last_login[0] ) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$data = array();
|
||||
if ( isset( UM()->builtin()->all_user_fields[ $key ] ) ) {
|
||||
$data = UM()->builtin()->all_user_fields[ $key ];
|
||||
|
||||
@@ -213,7 +213,7 @@ KEY meta_value_indx (um_value(191))
|
||||
$options = get_option( 'um_options', array() );
|
||||
|
||||
foreach ( $core_pages as $slug => $page_id ) {
|
||||
$key = UM()->options()->get_core_page_id( $slug );
|
||||
$key = UM()->options()->get_predefined_page_option_key( $slug );
|
||||
$options[ $key ] = $page_id;
|
||||
}
|
||||
|
||||
|
||||
@@ -330,7 +330,7 @@ function um_submit_account_details( $args ) {
|
||||
$v = sanitize_text_field( $v );
|
||||
} elseif ( 'user_email' === $k ) {
|
||||
$v = sanitize_email( $v );
|
||||
} elseif ( 'hide_in_members' === $k ) {
|
||||
} elseif ( 'hide_in_members' === $k || 'um_show_last_login' === $k ) {
|
||||
$v = array_map( 'sanitize_text_field', $v );
|
||||
}
|
||||
|
||||
@@ -351,6 +351,13 @@ function um_submit_account_details( $args ) {
|
||||
}
|
||||
}
|
||||
|
||||
if ( isset( $changes['um_show_last_login'] ) ) {
|
||||
if ( 'yes' === $changes['um_show_last_login'] || array_intersect( array( 'yes' ), $changes['um_show_last_login'] ) ) {
|
||||
delete_user_meta( $user_id, 'um_show_last_login' );
|
||||
unset( $changes['um_show_last_login'] );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
@@ -552,8 +559,13 @@ add_action( 'um_after_user_account_updated', 'um_after_user_account_updated_perm
|
||||
* @param $changed
|
||||
*/
|
||||
function um_account_updated_notification( $user_id, $changed ) {
|
||||
um_fetch_user( $user_id );
|
||||
UM()->mail()->send( um_user( 'user_email' ), 'changedaccount_email' );
|
||||
// phpcs:disable WordPress.Security.NonceVerification
|
||||
if ( 'password' !== $_POST['_um_account_tab'] || ! UM()->options()->get( 'changedpw_email_on' ) ) {
|
||||
// Avoid email duplicates (account changed and password changed) on the password change tab.
|
||||
um_fetch_user( $user_id );
|
||||
UM()->mail()->send( um_user( 'user_email' ), 'changedaccount_email' );
|
||||
}
|
||||
// phpcs:enable WordPress.Security.NonceVerification
|
||||
}
|
||||
add_action( 'um_after_user_account_updated', 'um_account_updated_notification', 20, 2 );
|
||||
|
||||
@@ -612,7 +624,7 @@ function um_after_account_privacy( $args ) {
|
||||
$exports_url = wp_privacy_exports_url();
|
||||
|
||||
echo '<p>' . esc_html__( 'You could download your previous data:', 'ultimate-member' ) . '</p>';
|
||||
echo '<a href="' . esc_attr( $exports_url . get_post_meta( $completed['ID'], '_export_file_name', true ) ) . '">' . esc_html__( 'Download Personal Data', 'ultimate-member' ) . '</a>';
|
||||
echo '<a href="' . esc_url( $exports_url . get_post_meta( $completed['ID'], '_export_file_name', true ) ) . '">' . esc_html__( 'Download Personal Data', 'ultimate-member' ) . '</a>';
|
||||
echo '<p>' . esc_html__( 'You could send a new request for an export of personal your data.', 'ultimate-member' ) . '</p>';
|
||||
|
||||
}
|
||||
|
||||
@@ -766,7 +766,7 @@ add_action( 'um_registration_set_extra_data', 'um_registration_set_profile_full_
|
||||
* Redirect from default registration to UM registration page
|
||||
*/
|
||||
function um_form_register_redirect() {
|
||||
$page_id = UM()->options()->get( UM()->options()->get_core_page_id( 'register' ) );
|
||||
$page_id = UM()->options()->get( UM()->options()->get_predefined_page_option_key( 'register' ) );
|
||||
// Do not redirect if the registration page is not published.
|
||||
if ( ! empty( $page_id ) && 'publish' === get_post_status( $page_id ) ) {
|
||||
// Not `um_safe_redirect()` because predefined register page is situated on the same host.
|
||||
|
||||
@@ -1,37 +1,38 @@
|
||||
<?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
||||
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Control comment author display
|
||||
* Control comment author display.
|
||||
*
|
||||
* @param $return
|
||||
* @param $author
|
||||
* @param $comment_ID
|
||||
* @param string $return The HTML-formatted comment author link.
|
||||
* @param string $author The comment author's username.
|
||||
* @param string $comment_id The comment ID as a numeric string.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function um_comment_link_to_profile( $return, $author, $comment_ID ) {
|
||||
function um_comment_link_to_profile( $return, $author, $comment_id ) {
|
||||
$comment = get_comment( $comment_id );
|
||||
|
||||
$comment = get_comment( $comment_ID );
|
||||
|
||||
if( isset( $comment->user_id ) && ! empty( $comment->user_id ) ){
|
||||
if ( ! empty( $comment->user_id ) ) {
|
||||
if ( isset( UM()->user()->cached_user[ $comment->user_id ] ) && UM()->user()->cached_user[ $comment->user_id ] ) {
|
||||
|
||||
$return = '<a href="'. UM()->user()->cached_user[$comment->user_id]['url'] . '">' . UM()->user()->cached_user[$comment->user_id]['name'] . '</a>';
|
||||
|
||||
$return = '<a href="' . esc_url( UM()->user()->cached_user[ $comment->user_id ]['url'] ) . '">' . UM()->user()->cached_user[ $comment->user_id ]['name'] . '</a>';
|
||||
} else {
|
||||
|
||||
um_fetch_user( $comment->user_id );
|
||||
|
||||
UM()->user()->cached_user[ $comment->user_id ] = array('url' => um_user_profile_url(), 'name' => um_user('display_name') );
|
||||
$return = '<a href="'. UM()->user()->cached_user[$comment->user_id]['url'] . '">' . UM()->user()->cached_user[$comment->user_id]['name'] . '</a>';
|
||||
UM()->user()->cached_user[ $comment->user_id ] = array(
|
||||
'url' => um_user_profile_url(),
|
||||
'name' => um_user( 'display_name' ),
|
||||
);
|
||||
|
||||
$return = '<a href="' . esc_url( UM()->user()->cached_user[ $comment->user_id ]['url'] ) . '">' . UM()->user()->cached_user[ $comment->user_id ]['name'] . '</a>';
|
||||
|
||||
um_reset_user();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
add_filter('get_comment_author_link', 'um_comment_link_to_profile', 10000, 3 );
|
||||
add_filter( 'get_comment_author_link', 'um_comment_link_to_profile', 10000, 3 );
|
||||
|
||||
@@ -3,24 +3,6 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Field is required?
|
||||
*
|
||||
* @param $label
|
||||
* @param $data
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function um_edit_label_all_fields( $label, $data ) {
|
||||
$asterisk = UM()->options()->get( 'form_asterisk' );
|
||||
if ( $asterisk && ! empty( $data['required'] ) ) {
|
||||
$label .= '<span class="um-req" title="' . esc_attr__( 'Required', 'ultimate-member' ) . '">*</span>';
|
||||
}
|
||||
|
||||
return $label;
|
||||
}
|
||||
add_filter( 'um_edit_label_all_fields', 'um_edit_label_all_fields', 10, 2 );
|
||||
|
||||
/**
|
||||
* Outputs a oEmbed field
|
||||
*
|
||||
@@ -114,7 +96,7 @@ add_filter( 'um_profile_field_filter_hook__youtube_video', 'um_profile_field_fil
|
||||
function um_profile_field_filter_hook__spotify( $value, $data ) {
|
||||
if ( preg_match( '/https:\/\/open.spotify.com\/.*/', $value ) ) {
|
||||
if ( false !== strpos( $value, '/user/' ) ) {
|
||||
$value = '<a href="' . esc_attr( $value ) . '" target="_blank">' . esc_html( $value ) . '</a>';
|
||||
$value = '<a href="' . esc_url( $value ) . '" target="_blank">' . esc_html( $value ) . '</a>';
|
||||
} else {
|
||||
$url = str_replace( 'open.spotify.com/', 'open.spotify.com/embed/', $value );
|
||||
|
||||
@@ -162,12 +144,10 @@ add_filter( 'um_profile_field_filter_hook__vimeo_video', 'um_profile_field_filte
|
||||
* @return int|string
|
||||
*/
|
||||
function um_profile_field_filter_hook__phone( $value, $data ) {
|
||||
$value = '<a href="tel:' . esc_attr( $value ) . '" rel="nofollow" title="' . esc_attr( $data['title'] ) . '">' . esc_html( $value ) . '</a>';
|
||||
$value = '<a href="' . esc_url( 'tel:' . $value ) . '" rel="nofollow" title="' . esc_attr( $data['title'] ) . '">' . esc_html( $value ) . '</a>';
|
||||
return $value;
|
||||
}
|
||||
add_filter( 'um_profile_field_filter_hook__phone_number', 'um_profile_field_filter_hook__phone', 99, 2 );
|
||||
add_filter( 'um_profile_field_filter_hook__mobile_number', 'um_profile_field_filter_hook__phone', 99, 2 );
|
||||
|
||||
add_filter( 'um_profile_field_filter_hook__tel', 'um_profile_field_filter_hook__phone', 99, 2 );
|
||||
|
||||
/**
|
||||
* Outputs a viber link
|
||||
@@ -178,8 +158,9 @@ add_filter( 'um_profile_field_filter_hook__mobile_number', 'um_profile_field_fil
|
||||
* @return int|string
|
||||
*/
|
||||
function um_profile_field_filter_hook__viber( $value, $data ) {
|
||||
$value = str_replace('+', '', $value);
|
||||
$value = '<a href="viber://chat?number=%2B' . esc_attr( $value ) . '" target="_blank" rel="nofollow" title="' . esc_attr( $data['title'] ) . '">' . esc_html( $value ) . '</a>';
|
||||
$value = str_replace( '+', '', $value );
|
||||
$url = 'viber://chat?number=%2B' . $value;
|
||||
$value = '<a href="' . esc_url( $url, array( 'viber' ) ) . '" target="_blank" rel="nofollow" title="' . esc_attr( $data['title'] ) . '">' . esc_html( $value ) . '</a>';
|
||||
return $value;
|
||||
}
|
||||
add_filter( 'um_profile_field_filter_hook__viber', 'um_profile_field_filter_hook__viber', 99, 2 );
|
||||
@@ -194,8 +175,9 @@ add_filter( 'um_profile_field_filter_hook__viber', 'um_profile_field_filter_hook
|
||||
* @return int|string
|
||||
*/
|
||||
function um_profile_field_filter_hook__whatsapp( $value, $data ) {
|
||||
$value = str_replace('+', '', $value);
|
||||
$value = '<a href="https://api.whatsapp.com/send?phone=' . esc_attr( $value ) . '" target="_blank" rel="nofollow" title="' . esc_attr( $data['title'] ) . '">' . esc_html( $value ) . '</a>';
|
||||
$value = str_replace( '+', '', $value );
|
||||
$url = add_query_arg( array( 'phone' => $value ), 'https://api.whatsapp.com/send' );
|
||||
$value = '<a href="' . esc_url( $url ) . '" target="_blank" rel="nofollow" title="' . esc_attr( $data['title'] ) . '">' . esc_html( $value ) . '</a>';
|
||||
return $value;
|
||||
}
|
||||
add_filter( 'um_profile_field_filter_hook__whatsapp', 'um_profile_field_filter_hook__whatsapp', 99, 2 );
|
||||
@@ -391,7 +373,7 @@ function um_profile_field_filter_hook__file( $value, $data ) {
|
||||
}
|
||||
$value = '<div class="um-single-file-preview show">
|
||||
<div class="um-single-fileinfo">
|
||||
<a href="' . esc_attr( $uri ) . '" target="_blank">
|
||||
<a href="' . esc_url( $uri ) . '" target="_blank">
|
||||
<span class="icon" style="background:'. UM()->files()->get_fonticon_bg_by_ext( $file_type['ext'] ) . '"><i class="'. UM()->files()->get_fonticon_by_ext( $file_type['ext'] ) .'"></i></span>
|
||||
<span class="filename">' . esc_attr( $value ) . '</span>
|
||||
</a>
|
||||
@@ -465,11 +447,13 @@ function um_profile_field_filter_hook__( $value, $data, $type = '' ) {
|
||||
$url_rel = ( isset( $data['url_rel'] ) && 'nofollow' === $data['url_rel'] ) ? 'rel="nofollow"' : '';
|
||||
$data['url_target'] = ( isset( $data['url_target'] ) ) ? $data['url_target'] : '_blank';
|
||||
|
||||
$protocols = wp_allowed_protocols();
|
||||
if ( false === strstr( $value, 'join.skype.com' ) ) {
|
||||
$value = 'skype:' . $value . '?chat';
|
||||
$protocols[] = 'skype';
|
||||
}
|
||||
|
||||
$value = '<a href="' . esc_attr( $value ) . '" title="' . esc_attr( $alt ) . '" target="' . esc_attr( $data['url_target'] ) . '" ' . $url_rel . '>' . esc_html( $alt ) . '</a>';
|
||||
$value = '<a href="' . esc_url( $value, $protocols ) . '" title="' . esc_attr( $alt ) . '" target="' . esc_attr( $data['url_target'] ) . '" ' . $url_rel . '>' . esc_html( $alt ) . '</a>';
|
||||
} else {
|
||||
// check $value is oEmbed
|
||||
if ( 'oembed' === $data['type'] ) {
|
||||
@@ -545,7 +529,7 @@ function um_profile_field_filter_hook__( $value, $data, $type = '' ) {
|
||||
|
||||
if ( ! is_array( $value ) ) {
|
||||
if ( is_email( $value ) ) {
|
||||
$value = '<a href="mailto:' . $value . '" title="' . $value . '">' . $value . '</a>';
|
||||
$value = '<a href="' . esc_url( 'mailto:' . $value ) . '" title="' . $value . '">' . $value . '</a>';
|
||||
}
|
||||
} else {
|
||||
$value = implode( ', ', $value );
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
* Deprecated Ultimate Member hooks.
|
||||
* The place for hookdocs of the Ultimate Member hooks that have been deprecated.
|
||||
*/
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters the language locale before loading textdomain.
|
||||
*
|
||||
* @param {string} $language_locale Current language locale.
|
||||
*
|
||||
* @return {string} Maybe changed language locale.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @depecated 2.8.5 Used WordPress native `load_plugin_textdomain()`. And can be replaced via WordPress native hook 'plugin_locale'.
|
||||
* @hook um_language_locale
|
||||
*
|
||||
* @example <caption>Change UM language locale.</caption>
|
||||
* function my_um_language_locale( $language_locale ) {
|
||||
* $language_locale = 'es_ES';
|
||||
* return $language_locale;
|
||||
* }
|
||||
* add_filter( 'um_language_locale', 'my_um_language_locale' );
|
||||
*/
|
||||
|
||||
/**
|
||||
* Filters the path to the language file (*.mo).
|
||||
*
|
||||
* @param {string} $language_file Default path to the language file.
|
||||
*
|
||||
* @return {string} Language file path.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @depecated 2.8.5 Used WordPress native `load_plugin_textdomain()`. And can be replaced via WordPress native hook 'load_textdomain_mofile'.
|
||||
* @hook um_language_file
|
||||
*
|
||||
* @example <caption>Change UM language file path.</caption>
|
||||
* function my_um_language_file( $language_file ) {
|
||||
* $language_file = '{path-to-language-file}';
|
||||
* return $language_file;
|
||||
* }
|
||||
* add_filter( 'um_language_file', 'my_um_language_file' );
|
||||
*/
|
||||
@@ -870,7 +870,7 @@ function um_user_submited_display( $k, $title, $data = array(), $style = true )
|
||||
}
|
||||
|
||||
if ( ! empty( $filedata['original_name'] ) ) {
|
||||
$v = '<a class="um-preview-upload" target="_blank" href="' . esc_attr( $baseurl . um_user( 'ID' ) . '/' . $file ) . '">' . esc_html( $filedata['original_name'] ) . '</a>';
|
||||
$v = '<a class="um-preview-upload" target="_blank" href="' . esc_url( $baseurl . um_user( 'ID' ) . '/' . $file ) . '">' . esc_html( $filedata['original_name'] ) . '</a>';
|
||||
} else {
|
||||
$v = $baseurl . um_user( 'ID' ) . '/' . $file;
|
||||
}
|
||||
|
||||
+26
-3
@@ -2,12 +2,11 @@
|
||||
Author URI: https://ultimatemember.com/
|
||||
Plugin URI: https://ultimatemember.com/
|
||||
Contributors: ultimatemember, champsupertramp, nsinelnikov
|
||||
Donate link:
|
||||
Tags: community, member, membership, user-profile, user-registration
|
||||
Requires PHP: 5.6
|
||||
Requires at least: 5.5
|
||||
Tested up to: 6.4
|
||||
Stable tag: 2.8.4
|
||||
Tested up to: 6.5
|
||||
Stable tag: 2.8.5
|
||||
License: GNU Version 2 or Any Later Version
|
||||
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
||||
|
||||
@@ -167,6 +166,25 @@ No specific extensions are needed. But we highly recommended keep active these P
|
||||
|
||||
IMPORTANT: PLEASE UPDATE THE PLUGIN TO AT LEAST VERSION 2.6.7 IMMEDIATELY. VERSION 2.6.7 PATCHES SECURITY PRIVILEGE ESCALATION VULNERABILITY. PLEASE SEE [THIS ARTICLE](https://docs.ultimatemember.com/article/1866-security-incident-update-and-recommended-actions) FOR MORE INFORMATION
|
||||
|
||||
= 2.8.5 2024-04-09 =
|
||||
|
||||
**Enhancements**
|
||||
|
||||
* Added: "Hide my last login" via the Account > Privacy setting
|
||||
* Added: Exclude and Include fields for member directory searching
|
||||
* Tweak: Compatibility with WordPress 6.5
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fixed: URL attributes escaping (CVE-2024-2765)
|
||||
* Fixed: wp-admin Ultimate Member > Dashboard layouts
|
||||
* Fixed: Required fields labels
|
||||
* Fixed: Change password and update account email notifications duplicates
|
||||
* Fixed: Reset Password urlencoded username
|
||||
* Fixed: Clear media JS in wp-admin settings
|
||||
|
||||
**Cached and optimized/minified assets(JS/CSS) must be flushed/re-generated after upgrade**
|
||||
|
||||
= 2.8.4 2024-03-06 =
|
||||
|
||||
**Enhancements**
|
||||
@@ -181,6 +199,8 @@ IMPORTANT: PLEASE UPDATE THE PLUGIN TO AT LEAST VERSION 2.6.7 IMMEDIATELY. VERSI
|
||||
* Fixed: Password reset url for the approved user who didn't set their password after registration without password
|
||||
* Fixed: Conflict with WebP Uploads
|
||||
|
||||
**Cached and optimized/minified assets(JS/CSS) must be flushed/re-generated after upgrade**
|
||||
|
||||
= 2.8.3 2024-02-19 =
|
||||
|
||||
**Enhancements**
|
||||
@@ -313,6 +333,9 @@ IMPORTANT: PLEASE UPDATE THE PLUGIN TO AT LEAST VERSION 2.6.7 IMMEDIATELY. VERSI
|
||||
|
||||
== Upgrade Notice ==
|
||||
|
||||
= 2.8.5 =
|
||||
This version fixes a security related bug. Upgrade immediately.
|
||||
|
||||
= 2.8.4 =
|
||||
This version fixes a security related bug. Upgrade immediately.
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
* Plugin Name: Ultimate Member
|
||||
* Plugin URI: http://ultimatemember.com/
|
||||
* Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
|
||||
* Version: 2.8.4
|
||||
* Version: 2.8.5
|
||||
* Author: Ultimate Member
|
||||
* Author URI: http://ultimatemember.com/
|
||||
* Text Domain: ultimate-member
|
||||
|
||||
Reference in New Issue
Block a user