Members - Version 3.2.0

Version Description

Download this release

Release Info

Developer caseproof
Plugin Icon 128x128 Members
Version 3.2.0
Comparing to
See all releases

Code changes from version 3.1.7 to 3.2.0

addons/members-block-permissions/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
  /vendor
3
  /composer.lock
4
  *.map
 
2
  /vendor
3
  /composer.lock
4
  *.map
5
+ /public/js/mix-manifest.json
addons/members-block-permissions/public/js/editor.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=0)}({"+c5n":function(e,t){var n=lodash.assign;(0,wp.hooks.addFilter)("blocks.registerBlockType","members/block/permissions/register",function(e,t){return e.attributes=n(e.attributes,{blockPermissionsCondition:{type:"string"},blockPermissionsType:{type:"string"},blockPermissionsUserStatus:{type:"string"},blockPermissionsRoles:{type:"array"},blockPermissionsCap:{type:"string"},blockPermissionsMessage:{type:"string"}}),e})},0:function(e,t,n){n("pNZs"),e.exports=n("iY67")},"9tPo":function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},I1BE:function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(s=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */"),i=r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"});return[n].concat(i).concat([o]).join("\n")}var s;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<e.length;o++){var s=e[o];"number"==typeof s[0]&&r[s[0]]||(n&&!s[2]?s[2]=n:n&&(s[2]="("+s[2]+") and ("+n+")"),t.push(s))}},t}},"PDM/":function(e,t,n){var r=n("RwBp");"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n("aET+")(r,o);r.locals&&(e.exports=r.locals)},RwBp:function(e,t,n){(e.exports=n("I1BE")(!1)).push([e.i,".members-bp-memberpress-upgrade {\n\tbackground-color: #f5f5f5;\n\tpadding: 20px;\n\tmargin-bottom: 20px;\n}\n\n.members-bp-memberpress-upgrade__cta-button {\n\tbackground-color: #06429e;\n\tcolor: #fff;\n\ttext-decoration: none;\n\tborder-radius: 300px;\n\tmargin: 20px auto 0;\n\twidth: auto;\n\ttext-align: center;\n\tmax-width: 200px;\n\tpadding: 10px;\n\tdisplay: block;\n\theight: auto;\n}\n\n.members-bp-memberpress-upgrade__cta-button:hover {\n\tcolor: #fff;\n}",""])},"aET+":function(e,t,n){var r,o,i={},s=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=r.apply(this,arguments)),o}),c=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var r=function(e,t){return t?t.querySelector(e):document.querySelector(e)}.call(this,e,n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}}(),a=null,l=0,u=[],f=n("9tPo");function p(e,t){for(var n=0;n<e.length;n++){var r=e[n],o=i[r.id];if(o){o.refs++;for(var s=0;s<o.parts.length;s++)o.parts[s](r.parts[s]);for(;s<r.parts.length;s++)o.parts.push(v(r.parts[s],t))}else{var c=[];for(s=0;s<r.parts.length;s++)c.push(v(r.parts[s],t));i[r.id]={id:r.id,refs:1,parts:c}}}}function b(e,t){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],s=t.base?i[0]+t.base:i[0],c={css:i[1],media:i[2],sourceMap:i[3]};r[s]?r[s].parts.push(c):n.push(r[s]={id:s,parts:[c]})}return n}function m(e,t){var n=c(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=u[u.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),u.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=c(e.insertAt.before,n);n.insertBefore(t,o)}}function y(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=u.indexOf(e);t>=0&&u.splice(t,1)}function d(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var r=function(){0;return n.nc}();r&&(e.attrs.nonce=r)}return h(t,e.attrs),m(e,t),t}function h(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function v(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=i}if(t.singleton){var s=l++;n=a||(a=d(t)),r=P.bind(null,n,s,!1),o=P.bind(null,n,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(t,e.attrs),m(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var s=new Blob([r],{type:"text/css"}),c=e.href;e.href=URL.createObjectURL(s),c&&URL.revokeObjectURL(c)}.bind(null,n,t),o=function(){y(n),n.href&&URL.revokeObjectURL(n.href)}):(n=d(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){y(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=s()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=b(e,t);return p(n,t),function(e){for(var r=[],o=0;o<n.length;o++){var s=n[o];(c=i[s.id]).refs--,r.push(c)}e&&p(b(e,t),t);for(o=0;o<r.length;o++){var c;if(0===(c=r[o]).refs){for(var a=0;a<c.parts.length;a++)c.parts[a]();delete i[c.id]}}}};var g,w=(g=[],function(e,t){return g[e]=t,g.filter(Boolean).join("\n")});function P(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=w(t,o);else{var i=document.createTextNode(o),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(i,s[t]):e.appendChild(i)}}},iY67:function(e,t){},"mfq/":function(e,t,n){"use strict";n("PDM/");function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var a=wp.element.Component,l=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i(this,s(t).apply(this,arguments))}var n,r,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,a),n=t,(r=[{key:"render",value:function(){return React.createElement("div",{className:"members-bp-memberpress-upgrade"},React.createElement("div",{className:"members-bp-memberpress-upgrade__message"},this.props.message),React.createElement("div",{className:"members-bp-memberpress-upgrade__cta"},React.createElement("a",{href:"https://memberpress.com/plans/pricing",target:"_blank",className:"members-bp-memberpress-upgrade__cta-button"},"Upgrade to MemberPress")))}}])&&o(n.prototype,r),l&&o(n,l),t}();t.a=l},pNZs:function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.r(t);var a=wp.components.CheckboxControl,l=wp.compose.withState,u=wp.element.Component,f=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i(this,s(t).apply(this,arguments))}var n,r,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,u),n=t,(r=[{key:"render",value:function(){var e=this.props,t=this.props,n=t.setState,r=t.roleName,o=t.roleLabel,i=this.props.attributes.blockPermissionsRoles,s=void 0===i?[]:i;return React.createElement(a,{disabled:!membersBlockPermissions.userCanAssignPermissions,className:"members-bp-checklist__control",label:o,checked:s.includes(r),onChange:function(t){t&&!s.includes(r)?(s.push(r),e.setAttributes({blockPermissionsRoles:s})):!t&&s.includes(r)&&(s=s.filter(function(e){return e!==r}),e.setAttributes({blockPermissionsRoles:s})),n({blockPermissionsRoles:s})}})}}])&&o(n.prototype,r),l&&o(n,l),t}(),p=l()(f);function b(e){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return!t||"object"!==b(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}wp.components.SelectControl;var w=wp.element.Component,P=membersBlockPermissions.labels.controls.roles,O=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),h(this,v(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&g(e,t)}(t,w),n=t,(r=[{key:"render",value:function(){var e=membersBlockPermissions.roles,t=this.props;return React.createElement("div",{className:"members-bp-checklist"},React.createElement("span",{className:"components-base-control__label members-bp-checklist__label"},P.label),React.createElement("div",{className:"members-bp-checklist__panel wp-tab-panel"},e.map(function(e,n){var r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(n,!0).forEach(function(t){y(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},{roleName:e.name,roleLabel:e.label,key:"members_roles_".concat(n)},{},t);return React.createElement(p,r)})))}}])&&d(n.prototype,r),o&&d(n,o),t}();function k(e){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function S(e,t){return!t||"object"!==k(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function j(e){return(j=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var R=wp.components.SelectControl,C=wp.element.Component,x=membersBlockPermissions.labels.controls.condition,T=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),S(this,j(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(t,C),n=t,(r=[{key:"render",value:function(){var e=this.props,t=[{label:x.options.default,value:""},{label:x.options.show,value:"="},{label:x.options.hide,value:"!="}],n=e.attributes.blockPermissionsCondition;return React.createElement(R,{disabled:!membersBlockPermissions.userCanAssignPermissions,key:"blockPermissionsCondition",label:x.label,value:n,options:t,onChange:function(t){var n={blockPermissionsCondition:t};t&&!e.attributes.blockPermissionsType?(n.blockPermissionsType="user-status",e.attributes.blockPermissionsUserStatus||(n.blockPermissionsUserStatus="logged-in")):t||(n.blockPermissionsCondition=void 0,n.blockPermissionsType=void 0,n.blockPermissionsCap=void 0,n.blockPermissionsUserStatus=void 0,n.blockPermissionsRoles=void 0,n.blockPermissionsMessage=void 0),e.setAttributes(n)}})}}])&&_(n.prototype,r),o&&_(n,o),t}();function B(e){return(B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function U(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function M(e,t){return!t||"object"!==B(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var L=wp.components.RadioControl,I=wp.element.Component,D=membersBlockPermissions.labels.controls.type,z=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),M(this,A(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&N(e,t)}(t,I),n=t,(r=[{key:"render",value:function(){var e=this.props,t=[{label:D.options.userStatus,value:"user-status"},{label:D.options.role,value:"role"},{label:D.options.cap,value:"cap"},{label:D.options.paidMembership,value:"paidMembership"},{label:D.options.contentRule,value:"contentRule"}],n=e.attributes.blockPermissionsType;return React.createElement(L,{disabled:!membersBlockPermissions.userCanAssignPermissions,key:"blockPermissionsType",label:D.label,selected:n,options:t,onChange:function(t){var n={blockPermissionsType:t};"role"===t?(delete e.attributes.blockPermissionsCap,delete e.attributes.blockPermissionsUserStatus):"cap"===t?(delete e.attributes.blockPermissionsRoles,delete e.attributes.blockPermissionsUserStatus):"user-status"===t&&(e.attributes.blockPermissionsUserStatus||(n.blockPermissionsUserStatus="logged-in"),delete e.attributes.blockPermissionsCap,delete e.attributes.blockPermissionsRoles),e.setAttributes(n)}})}}])&&U(n.prototype,r),o&&U(n,o),t}();function q(e){return(q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function F(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function H(e,t){return!t||"object"!==q(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function $(e){return($=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function J(e,t){return(J=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var G=wp.compose.withState,Y=wp.element.Component,Z=wp.components.TextControl,V=membersBlockPermissions.labels,K=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),H(this,$(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&J(e,t)}(t,Y),n=t,(r=[{key:"render",value:function(){var e=this.props,t=e.setState,n=e.attributes.blockPermissionsCap;return React.createElement(Z,{disabled:!membersBlockPermissions.userCanAssignPermissions,className:"members-bp-capability__control",label:V.controls.cap.label,value:n,onChange:function(n){e.setAttributes({blockPermissionsCap:n}),t({blockPermissionsCap:n})}})}}])&&F(n.prototype,r),o&&F(n,o),t}(),Q=G()(K),W=n("mfq/");function X(e){return(X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ee(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function te(e,t){return!t||"object"!==X(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ne(e){return(ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function re(e,t){return(re=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var oe=wp.components.SelectControl,ie=wp.element.Component,se=membersBlockPermissions.labels.controls.userStatus,ce=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),te(this,ne(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&re(e,t)}(t,ie),n=t,(r=[{key:"render",value:function(){var e=this.props,t=[{label:se.options.loggedIn,value:"logged-in"},{label:se.options.loggedOut,value:"logged-out"}],n=e.attributes.blockPermissionsUserStatus;return n||(n="logged-in"),React.createElement(oe,{disabled:!membersBlockPermissions.userCanAssignPermissions,key:"blockPermissionsUserStatus",label:se.label,value:n,options:t,onChange:function(t){e.setAttributes({blockPermissionsUserStatus:t})}})}}])&&ee(n.prototype,r),o&&ee(n,o),t}();function ae(e){return(ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function le(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ue(e,t){return!t||"object"!==ae(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function fe(e){return(fe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function pe(e,t){return(pe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var be=wp.compose.withState,me=wp.element.Component,ye=wp.components.TextareaControl,de=membersBlockPermissions.labels.controls.message,he=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ue(this,fe(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&pe(e,t)}(t,me),n=t,(r=[{key:"render",value:function(){var e=this.props,t=this.props.setState,n=this.props.attributes.blockPermissionsMessage;return React.createElement(ye,{disabled:!membersBlockPermissions.userCanAssignPermissions,className:"members-bp-error__control",label:de.label,help:de.help,value:n,onChange:function(n){e.setAttributes({blockPermissionsMessage:n}),t({blockPermissionsMessage:n})}})}}])&&le(n.prototype,r),o&&le(n,o),t}(),ve=be()(he);function ge(e){return(ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function we(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Pe(e,t){return!t||"object"!==ge(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Oe(e){return(Oe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ke(e,t){return(ke=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var _e=wp.element.Component,Se=wp.components.Notice,je=membersBlockPermissions.labels,Ee=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Pe(this,Oe(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ke(e,t)}(t,_e),n=t,(r=[{key:"render",value:function(){return React.createElement("div",{className:"members-bp-notice"},React.createElement(Se,{status:"warning",isDismissible:!1},React.createElement("p",null,je.notices.notAllowed)))}}])&&we(n.prototype,r),o&&we(n,o),t}(),Re=wp.compose.createHigherOrderComponent,Ce=wp.element.Fragment,xe=wp.blockEditor.InspectorControls,Te=wp.hooks.addFilter,Be=wp.components,Ue=Be.PanelBody,Me=Be.Icon,Ae=membersBlockPermissions.labels,Ne=function(e){return React.createElement(Ce,null,React.createElement(Me,{icon:React.createElement("svg",{width:"20px","aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"users-cog",className:"svg-inline--fa fa-users-cog fa-w-20",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React.createElement("path",{fill:"currentColor",d:"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"}))}),React.createElement("div",{style:{marginLeft:"10px",position:"relative",top:"3px"}},e.title))};Te("editor.BlockEdit","members/block/permissions/edit",Re(function(e){return function(t){var n=t.attributes,r=n.blockPermissionsCondition,o=void 0===r?"":r,i=n.blockPermissionsType,s=void 0===i?"":i;return membersBlockPermissions.userCanAssignPermissions||o?React.createElement(Ce,null,React.createElement(e,t),React.createElement(xe,null,React.createElement(Ue,{title:React.createElement(Ne,{title:Ae.panel}),initialOpen:!1,className:"members-bp-controls"},membersBlockPermissions.userCanAssignPermissions?null:React.createElement(Ee,null),React.createElement(T,t),o?React.createElement(z,t):null,o&&"user-status"===s?React.createElement(ce,t):null,o&&"cap"===s?React.createElement(Q,t):null,o&&"role"===s?React.createElement(O,t):null,o&&"paidMembership"===s?React.createElement(W.a,{message:Ae.paidMembership}):null,o&&"contentRule"===s?React.createElement(W.a,{message:Ae.contentRule}):null,o&&"contentRule"!==s&&"paidMembership"!==s?React.createElement(ve,t):null))):React.createElement(e,t)}},"MembersBlockPermissionsBlockEdit"));n("+c5n")}});
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=0)}({"+c5n":function(e,t){var n=lodash.assign;(0,wp.hooks.addFilter)("blocks.registerBlockType","members/block/permissions/register",function(e,t){return e.attributes=n(e.attributes,{blockPermissionsCondition:{type:"string"},blockPermissionsType:{type:"string"},blockPermissionsUserStatus:{type:"string"},blockPermissionsRoles:{type:"array"},blockPermissionsCap:{type:"string"},blockPermissionsMessage:{type:"string"}}),e})},0:function(e,t,n){n("pNZs"),e.exports=n("iY67")},"9tPo":function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},I1BE:function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(s=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */"),i=r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"});return[n].concat(i).concat([o]).join("\n")}var s;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<e.length;o++){var s=e[o];"number"==typeof s[0]&&r[s[0]]||(n&&!s[2]?s[2]=n:n&&(s[2]="("+s[2]+") and ("+n+")"),t.push(s))}},t}},"PDM/":function(e,t,n){var r=n("RwBp");"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n("aET+")(r,o);r.locals&&(e.exports=r.locals)},RwBp:function(e,t,n){(e.exports=n("I1BE")(!1)).push([e.i,".members-bp-memberpress-upgrade {\n\tbackground-color: #f5f5f5;\n\tpadding: 20px;\n\tmargin-bottom: 20px;\n}\n\n.members-bp-memberpress-upgrade__cta-button {\n\tbackground-color: #06429e;\n\tcolor: #fff;\n\ttext-decoration: none;\n\tborder-radius: 300px;\n\tmargin: 20px auto 0;\n\twidth: auto;\n\ttext-align: center;\n\tmax-width: 200px;\n\tpadding: 10px;\n\tdisplay: block;\n\theight: auto;\n}\n\n.members-bp-memberpress-upgrade__cta-button:hover {\n\tcolor: #fff;\n}",""])},"aET+":function(e,t,n){var r,o,i={},s=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=r.apply(this,arguments)),o}),c=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var r=function(e,t){return t?t.querySelector(e):document.querySelector(e)}.call(this,e,n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}}(),a=null,l=0,u=[],f=n("9tPo");function p(e,t){for(var n=0;n<e.length;n++){var r=e[n],o=i[r.id];if(o){o.refs++;for(var s=0;s<o.parts.length;s++)o.parts[s](r.parts[s]);for(;s<r.parts.length;s++)o.parts.push(v(r.parts[s],t))}else{var c=[];for(s=0;s<r.parts.length;s++)c.push(v(r.parts[s],t));i[r.id]={id:r.id,refs:1,parts:c}}}}function b(e,t){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],s=t.base?i[0]+t.base:i[0],c={css:i[1],media:i[2],sourceMap:i[3]};r[s]?r[s].parts.push(c):n.push(r[s]={id:s,parts:[c]})}return n}function m(e,t){var n=c(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=u[u.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),u.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=c(e.insertAt.before,n);n.insertBefore(t,o)}}function y(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=u.indexOf(e);t>=0&&u.splice(t,1)}function d(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var r=function(){0;return n.nc}();r&&(e.attrs.nonce=r)}return h(t,e.attrs),m(e,t),t}function h(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function v(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=i}if(t.singleton){var s=l++;n=a||(a=d(t)),r=P.bind(null,n,s,!1),o=P.bind(null,n,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(t,e.attrs),m(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var s=new Blob([r],{type:"text/css"}),c=e.href;e.href=URL.createObjectURL(s),c&&URL.revokeObjectURL(c)}.bind(null,n,t),o=function(){y(n),n.href&&URL.revokeObjectURL(n.href)}):(n=d(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){y(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=s()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=b(e,t);return p(n,t),function(e){for(var r=[],o=0;o<n.length;o++){var s=n[o];(c=i[s.id]).refs--,r.push(c)}e&&p(b(e,t),t);for(o=0;o<r.length;o++){var c;if(0===(c=r[o]).refs){for(var a=0;a<c.parts.length;a++)c.parts[a]();delete i[c.id]}}}};var g,w=(g=[],function(e,t){return g[e]=t,g.filter(Boolean).join("\n")});function P(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=w(t,o);else{var i=document.createTextNode(o),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(i,s[t]):e.appendChild(i)}}},iY67:function(e,t){},"mfq/":function(e,t,n){"use strict";n("PDM/");function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var a=wp.element.Component,l=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i(this,s(t).apply(this,arguments))}var n,r,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,a),n=t,(r=[{key:"render",value:function(){return React.createElement("div",{className:"members-bp-memberpress-upgrade"},React.createElement("div",{className:"members-bp-memberpress-upgrade__message"},this.props.message),React.createElement("div",{className:"members-bp-memberpress-upgrade__cta"},React.createElement("a",{href:"https://memberpress.com/plans/pricing",target:"_blank",className:"members-bp-memberpress-upgrade__cta-button"},"Add MemberPress")))}}])&&o(n.prototype,r),l&&o(n,l),t}();t.a=l},pNZs:function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.r(t);var a=wp.components.CheckboxControl,l=wp.compose.withState,u=wp.element.Component,f=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i(this,s(t).apply(this,arguments))}var n,r,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,u),n=t,(r=[{key:"render",value:function(){var e=this.props,t=this.props,n=t.setState,r=t.roleName,o=t.roleLabel,i=this.props.attributes.blockPermissionsRoles,s=void 0===i?[]:i;return React.createElement(a,{disabled:!membersBlockPermissions.userCanAssignPermissions,className:"members-bp-checklist__control",label:o,checked:s.includes(r),onChange:function(t){t&&!s.includes(r)?(s.push(r),e.setAttributes({blockPermissionsRoles:s})):!t&&s.includes(r)&&(s=s.filter(function(e){return e!==r}),e.setAttributes({blockPermissionsRoles:s})),n({blockPermissionsRoles:s})}})}}])&&o(n.prototype,r),l&&o(n,l),t}(),p=l()(f);function b(e){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return!t||"object"!==b(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}wp.components.SelectControl;var w=wp.element.Component,P=membersBlockPermissions.labels.controls.roles,O=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),h(this,v(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&g(e,t)}(t,w),n=t,(r=[{key:"render",value:function(){var e=membersBlockPermissions.roles,t=this.props;return React.createElement("div",{className:"members-bp-checklist"},React.createElement("span",{className:"components-base-control__label members-bp-checklist__label"},P.label),React.createElement("div",{className:"members-bp-checklist__panel wp-tab-panel"},e.map(function(e,n){var r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(n,!0).forEach(function(t){y(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},{roleName:e.name,roleLabel:e.label,key:"members_roles_".concat(n)},{},t);return React.createElement(p,r)})))}}])&&d(n.prototype,r),o&&d(n,o),t}();function k(e){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function S(e,t){return!t||"object"!==k(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function j(e){return(j=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var R=wp.components.SelectControl,C=wp.element.Component,x=membersBlockPermissions.labels.controls.condition,T=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),S(this,j(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(t,C),n=t,(r=[{key:"render",value:function(){var e=this.props,t=[{label:x.options.default,value:""},{label:x.options.show,value:"="},{label:x.options.hide,value:"!="}],n=e.attributes.blockPermissionsCondition;return React.createElement(R,{disabled:!membersBlockPermissions.userCanAssignPermissions,key:"blockPermissionsCondition",label:x.label,value:n,options:t,onChange:function(t){var n={blockPermissionsCondition:t};t&&!e.attributes.blockPermissionsType?(n.blockPermissionsType="user-status",e.attributes.blockPermissionsUserStatus||(n.blockPermissionsUserStatus="logged-in")):t||(n.blockPermissionsCondition=void 0,n.blockPermissionsType=void 0,n.blockPermissionsCap=void 0,n.blockPermissionsUserStatus=void 0,n.blockPermissionsRoles=void 0,n.blockPermissionsMessage=void 0),e.setAttributes(n)}})}}])&&_(n.prototype,r),o&&_(n,o),t}();function B(e){return(B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function M(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function U(e,t){return!t||"object"!==B(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var L=wp.components.RadioControl,I=wp.element.Component,D=membersBlockPermissions.labels.controls.type,z=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),U(this,A(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&N(e,t)}(t,I),n=t,(r=[{key:"render",value:function(){var e=this.props,t=[{label:D.options.userStatus,value:"user-status"},{label:D.options.role,value:"role"},{label:D.options.cap,value:"cap"},{label:D.options.paidMembership,value:"paidMembership"},{label:D.options.contentRule,value:"contentRule"}],n=e.attributes.blockPermissionsType;return React.createElement(L,{disabled:!membersBlockPermissions.userCanAssignPermissions,key:"blockPermissionsType",label:D.label,selected:n,options:t,onChange:function(t){var n={blockPermissionsType:t};"role"===t?(delete e.attributes.blockPermissionsCap,delete e.attributes.blockPermissionsUserStatus):"cap"===t?(delete e.attributes.blockPermissionsRoles,delete e.attributes.blockPermissionsUserStatus):"user-status"===t&&(e.attributes.blockPermissionsUserStatus||(n.blockPermissionsUserStatus="logged-in"),delete e.attributes.blockPermissionsCap,delete e.attributes.blockPermissionsRoles),e.setAttributes(n)}})}}])&&M(n.prototype,r),o&&M(n,o),t}();function q(e){return(q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function F(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function H(e,t){return!t||"object"!==q(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function $(e){return($=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function J(e,t){return(J=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var G=wp.compose.withState,Y=wp.element.Component,Z=wp.components.TextControl,V=membersBlockPermissions.labels,K=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),H(this,$(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&J(e,t)}(t,Y),n=t,(r=[{key:"render",value:function(){var e=this.props,t=e.setState,n=e.attributes.blockPermissionsCap;return React.createElement(Z,{disabled:!membersBlockPermissions.userCanAssignPermissions,className:"members-bp-capability__control",label:V.controls.cap.label,value:n,onChange:function(n){e.setAttributes({blockPermissionsCap:n}),t({blockPermissionsCap:n})}})}}])&&F(n.prototype,r),o&&F(n,o),t}(),Q=G()(K),W=n("mfq/");function X(e){return(X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ee(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function te(e,t){return!t||"object"!==X(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ne(e){return(ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function re(e,t){return(re=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var oe=wp.components.SelectControl,ie=wp.element.Component,se=membersBlockPermissions.labels.controls.userStatus,ce=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),te(this,ne(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&re(e,t)}(t,ie),n=t,(r=[{key:"render",value:function(){var e=this.props,t=[{label:se.options.loggedIn,value:"logged-in"},{label:se.options.loggedOut,value:"logged-out"}],n=e.attributes.blockPermissionsUserStatus;return n||(n="logged-in"),React.createElement(oe,{disabled:!membersBlockPermissions.userCanAssignPermissions,key:"blockPermissionsUserStatus",label:se.label,value:n,options:t,onChange:function(t){e.setAttributes({blockPermissionsUserStatus:t})}})}}])&&ee(n.prototype,r),o&&ee(n,o),t}();function ae(e){return(ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function le(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ue(e,t){return!t||"object"!==ae(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function fe(e){return(fe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function pe(e,t){return(pe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var be=wp.compose.withState,me=wp.element.Component,ye=wp.components.TextareaControl,de=membersBlockPermissions.labels.controls.message,he=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ue(this,fe(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&pe(e,t)}(t,me),n=t,(r=[{key:"render",value:function(){var e=this.props,t=this.props.setState,n=this.props.attributes.blockPermissionsMessage;return React.createElement(ye,{disabled:!membersBlockPermissions.userCanAssignPermissions,className:"members-bp-error__control",label:de.label,help:de.help,value:n,onChange:function(n){e.setAttributes({blockPermissionsMessage:n}),t({blockPermissionsMessage:n})}})}}])&&le(n.prototype,r),o&&le(n,o),t}(),ve=be()(he);function ge(e){return(ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function we(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Pe(e,t){return!t||"object"!==ge(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Oe(e){return(Oe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ke(e,t){return(ke=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var _e=wp.element.Component,Se=wp.components.Notice,je=membersBlockPermissions.labels,Ee=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Pe(this,Oe(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ke(e,t)}(t,_e),n=t,(r=[{key:"render",value:function(){return React.createElement("div",{className:"members-bp-notice"},React.createElement(Se,{status:"warning",isDismissible:!1},React.createElement("p",null,je.notices.notAllowed)))}}])&&we(n.prototype,r),o&&we(n,o),t}(),Re=wp.compose.createHigherOrderComponent,Ce=wp.element.Fragment,xe=wp.blockEditor.InspectorControls,Te=wp.hooks.addFilter,Be=wp.components,Me=Be.PanelBody,Ue=Be.Icon,Ae=membersBlockPermissions.labels,Ne=function(e){return React.createElement(Ce,null,React.createElement(Ue,{icon:React.createElement("svg",{width:"20px","aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"users-cog",className:"svg-inline--fa fa-users-cog fa-w-20",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React.createElement("path",{fill:"currentColor",d:"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"}))}),React.createElement("div",{style:{marginLeft:"10px",position:"relative",top:"3px"}},e.title))};Te("editor.BlockEdit","members/block/permissions/edit",Re(function(e){return function(t){var n=t.attributes,r=n.blockPermissionsCondition,o=void 0===r?"":r,i=n.blockPermissionsType,s=void 0===i?"":i;return membersBlockPermissions.userCanAssignPermissions||o?React.createElement(Ce,null,React.createElement(e,t),React.createElement(xe,null,React.createElement(Me,{title:React.createElement(Ne,{title:Ae.panel}),initialOpen:!1,className:"members-bp-controls"},membersBlockPermissions.userCanAssignPermissions?null:React.createElement(Ee,null),React.createElement(T,t),o?React.createElement(z,t):null,o&&"user-status"===s?React.createElement(ce,t):null,o&&"cap"===s?React.createElement(Q,t):null,o&&"role"===s?React.createElement(O,t):null,o&&"paidMembership"===s?React.createElement(W.a,{message:Ae.paidMembership}):null,o&&"contentRule"===s?React.createElement(W.a,{message:Ae.contentRule}):null,o&&"contentRule"!==s&&"paidMembership"!==s?React.createElement(ve,t):null))):React.createElement(e,t)}},"MembersBlockPermissionsBlockEdit"));n("+c5n")}});
addons/members-block-permissions/public/js/upsell.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=1)}({1:function(e,t,n){e.exports=n("NyUW")},"9tPo":function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},I1BE:function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(a=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),i=r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"});return[n].concat(i).concat([o]).join("\n")}var a;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<e.length;o++){var a=e[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a))}},t}},NyUW:function(e,t,n){"use strict";n.r(t);var r=n("mfq/"),o=wp.compose.createHigherOrderComponent,i=wp.element.Fragment,a=wp.hooks.addFilter,c=wp.components,s=c.PanelBody,u=c.Icon,l=wp.blockEditor.InspectorControls,f=membersUpsell,p=f.title,d=f.message,m=function(e){return React.createElement(i,null,React.createElement(u,{icon:React.createElement("svg",{width:"20px","aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"users-cog",className:"svg-inline--fa fa-users-cog fa-w-20",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React.createElement("path",{fill:"currentColor",d:"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"}))}),React.createElement("div",{style:{marginLeft:"10px",position:"relative"}},e.title))};a("editor.BlockEdit","members/block/upsell",o(function(e){return function(t){return React.createElement(i,null,React.createElement(e,t),React.createElement(l,null,React.createElement(s,{title:React.createElement(m,{title:p}),initialOpen:!1,className:"members-upsell"},React.createElement(r.a,{message:d}))))}},"MembersUpsell"))},"PDM/":function(e,t,n){var r=n("RwBp");"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n("aET+")(r,o);r.locals&&(e.exports=r.locals)},RwBp:function(e,t,n){(e.exports=n("I1BE")(!1)).push([e.i,".members-bp-memberpress-upgrade {\n\tbackground-color: #f5f5f5;\n\tpadding: 20px;\n\tmargin-bottom: 20px;\n}\n\n.members-bp-memberpress-upgrade__cta-button {\n\tbackground-color: #06429e;\n\tcolor: #fff;\n\ttext-decoration: none;\n\tborder-radius: 300px;\n\tmargin: 20px auto 0;\n\twidth: auto;\n\ttext-align: center;\n\tmax-width: 200px;\n\tpadding: 10px;\n\tdisplay: block;\n\theight: auto;\n}\n\n.members-bp-memberpress-upgrade__cta-button:hover {\n\tcolor: #fff;\n}",""])},"aET+":function(e,t,n){var r,o,i={},a=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=r.apply(this,arguments)),o}),c=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var r=function(e,t){return t?t.querySelector(e):document.querySelector(e)}.call(this,e,n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}}(),s=null,u=0,l=[],f=n("9tPo");function p(e,t){for(var n=0;n<e.length;n++){var r=e[n],o=i[r.id];if(o){o.refs++;for(var a=0;a<o.parts.length;a++)o.parts[a](r.parts[a]);for(;a<r.parts.length;a++)o.parts.push(y(r.parts[a],t))}else{var c=[];for(a=0;a<r.parts.length;a++)c.push(y(r.parts[a],t));i[r.id]={id:r.id,refs:1,parts:c}}}}function d(e,t){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],a=t.base?i[0]+t.base:i[0],c={css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(c):n.push(r[a]={id:a,parts:[c]})}return n}function m(e,t){var n=c(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=l[l.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),l.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=c(e.insertAt.before,n);n.insertBefore(t,o)}}function b(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=l.indexOf(e);t>=0&&l.splice(t,1)}function v(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var r=function(){0;return n.nc}();r&&(e.attrs.nonce=r)}return h(t,e.attrs),m(e,t),t}function h(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function y(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=i}if(t.singleton){var a=u++;n=s||(s=v(t)),r=x.bind(null,n,a,!1),o=x.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(t,e.attrs),m(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var a=new Blob([r],{type:"text/css"}),c=e.href;e.href=URL.createObjectURL(a),c&&URL.revokeObjectURL(c)}.bind(null,n,t),o=function(){b(n),n.href&&URL.revokeObjectURL(n.href)}):(n=v(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){b(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=d(e,t);return p(n,t),function(e){for(var r=[],o=0;o<n.length;o++){var a=n[o];(c=i[a.id]).refs--,r.push(c)}e&&p(d(e,t),t);for(o=0;o<r.length;o++){var c;if(0===(c=r[o]).refs){for(var s=0;s<c.parts.length;s++)c.parts[s]();delete i[c.id]}}}};var g,w=(g=[],function(e,t){return g[e]=t,g.filter(Boolean).join("\n")});function x(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=w(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}},"mfq/":function(e,t,n){"use strict";n("PDM/");function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var s=wp.element.Component,u=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i(this,a(t).apply(this,arguments))}var n,r,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,s),n=t,(r=[{key:"render",value:function(){return React.createElement("div",{className:"members-bp-memberpress-upgrade"},React.createElement("div",{className:"members-bp-memberpress-upgrade__message"},this.props.message),React.createElement("div",{className:"members-bp-memberpress-upgrade__cta"},React.createElement("a",{href:"https://memberpress.com/plans/pricing",target:"_blank",className:"members-bp-memberpress-upgrade__cta-button"},"Upgrade to MemberPress")))}}])&&o(n.prototype,r),u&&o(n,u),t}();t.a=u}});
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=1)}({1:function(e,t,n){e.exports=n("NyUW")},"9tPo":function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},I1BE:function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(a=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),i=r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"});return[n].concat(i).concat([o]).join("\n")}var a;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<e.length;o++){var a=e[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a))}},t}},NyUW:function(e,t,n){"use strict";n.r(t);var r=n("mfq/"),o=wp.compose.createHigherOrderComponent,i=wp.element.Fragment,a=wp.hooks.addFilter,c=wp.components,s=c.PanelBody,u=c.Icon,l=wp.blockEditor.InspectorControls,f=membersUpsell,p=f.title,d=f.message,m=function(e){return React.createElement(i,null,React.createElement(u,{icon:React.createElement("svg",{width:"20px","aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"users-cog",className:"svg-inline--fa fa-users-cog fa-w-20",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React.createElement("path",{fill:"currentColor",d:"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"}))}),React.createElement("div",{style:{marginLeft:"10px",position:"relative"}},e.title))};a("editor.BlockEdit","members/block/upsell",o(function(e){return function(t){return React.createElement(i,null,React.createElement(e,t),React.createElement(l,null,React.createElement(s,{title:React.createElement(m,{title:p}),initialOpen:!1,className:"members-upsell"},React.createElement(r.a,{message:d}))))}},"MembersUpsell"))},"PDM/":function(e,t,n){var r=n("RwBp");"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n("aET+")(r,o);r.locals&&(e.exports=r.locals)},RwBp:function(e,t,n){(e.exports=n("I1BE")(!1)).push([e.i,".members-bp-memberpress-upgrade {\n\tbackground-color: #f5f5f5;\n\tpadding: 20px;\n\tmargin-bottom: 20px;\n}\n\n.members-bp-memberpress-upgrade__cta-button {\n\tbackground-color: #06429e;\n\tcolor: #fff;\n\ttext-decoration: none;\n\tborder-radius: 300px;\n\tmargin: 20px auto 0;\n\twidth: auto;\n\ttext-align: center;\n\tmax-width: 200px;\n\tpadding: 10px;\n\tdisplay: block;\n\theight: auto;\n}\n\n.members-bp-memberpress-upgrade__cta-button:hover {\n\tcolor: #fff;\n}",""])},"aET+":function(e,t,n){var r,o,i={},a=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=r.apply(this,arguments)),o}),c=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var r=function(e,t){return t?t.querySelector(e):document.querySelector(e)}.call(this,e,n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}}(),s=null,u=0,l=[],f=n("9tPo");function p(e,t){for(var n=0;n<e.length;n++){var r=e[n],o=i[r.id];if(o){o.refs++;for(var a=0;a<o.parts.length;a++)o.parts[a](r.parts[a]);for(;a<r.parts.length;a++)o.parts.push(y(r.parts[a],t))}else{var c=[];for(a=0;a<r.parts.length;a++)c.push(y(r.parts[a],t));i[r.id]={id:r.id,refs:1,parts:c}}}}function d(e,t){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],a=t.base?i[0]+t.base:i[0],c={css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(c):n.push(r[a]={id:a,parts:[c]})}return n}function m(e,t){var n=c(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=l[l.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),l.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=c(e.insertAt.before,n);n.insertBefore(t,o)}}function b(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=l.indexOf(e);t>=0&&l.splice(t,1)}function v(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var r=function(){0;return n.nc}();r&&(e.attrs.nonce=r)}return h(t,e.attrs),m(e,t),t}function h(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function y(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=i}if(t.singleton){var a=u++;n=s||(s=v(t)),r=x.bind(null,n,a,!1),o=x.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(t,e.attrs),m(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var a=new Blob([r],{type:"text/css"}),c=e.href;e.href=URL.createObjectURL(a),c&&URL.revokeObjectURL(c)}.bind(null,n,t),o=function(){b(n),n.href&&URL.revokeObjectURL(n.href)}):(n=v(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){b(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=d(e,t);return p(n,t),function(e){for(var r=[],o=0;o<n.length;o++){var a=n[o];(c=i[a.id]).refs--,r.push(c)}e&&p(d(e,t),t);for(o=0;o<r.length;o++){var c;if(0===(c=r[o]).refs){for(var s=0;s<c.parts.length;s++)c.parts[s]();delete i[c.id]}}}};var g,w=(g=[],function(e,t){return g[e]=t,g.filter(Boolean).join("\n")});function x(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=w(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}},"mfq/":function(e,t,n){"use strict";n("PDM/");function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var s=wp.element.Component,u=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i(this,a(t).apply(this,arguments))}var n,r,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,s),n=t,(r=[{key:"render",value:function(){return React.createElement("div",{className:"members-bp-memberpress-upgrade"},React.createElement("div",{className:"members-bp-memberpress-upgrade__message"},this.props.message),React.createElement("div",{className:"members-bp-memberpress-upgrade__cta"},React.createElement("a",{href:"https://memberpress.com/plans/pricing",target:"_blank",className:"members-bp-memberpress-upgrade__cta-button"},"Add MemberPress")))}}])&&o(n.prototype,r),u&&o(n,u),t}();t.a=u}});
addons/members-block-permissions/public/mix-manifest.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "/js/editor.js": "/js/editor.js?id=f93918b5693c8a3af062",
3
  "/css/editor.css": "/css/editor.css?id=dc3291c444832a7a271b",
4
- "/js/upsell.js": "/js/upsell.js?id=42f5821f75d3539cfa6b"
5
  }
1
  {
2
+ "/js/editor.js": "/js/editor.js?id=785a08b75992e450b535",
3
  "/css/editor.css": "/css/editor.css?id=dc3291c444832a7a271b",
4
+ "/js/upsell.js": "/js/upsell.js?id=8b6f58dc90e925926ea3"
5
  }
admin/class-notifications.php ADDED
@@ -0,0 +1,736 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Members\Admin;
3
+
4
+ if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');}
5
+
6
+ /**
7
+ * PrliNotifications.
8
+ *
9
+ * Class for logging in-plugin notifications.
10
+ * Includes:
11
+ * Notifications from our remote feed
12
+ * Plugin-related notifications (e.g. recent sales performances)
13
+ */
14
+ class Notifications {
15
+
16
+ /**
17
+ * Source of notifications content.
18
+ *
19
+ * @var string
20
+ */
21
+ const SOURCE_URL = 'https://mbr.press/hWndcw';
22
+ const SOURCE_URL_ARGS = [];
23
+
24
+ /**
25
+ * Option value.
26
+ *
27
+ * @var bool|array
28
+ */
29
+ public $option = false;
30
+
31
+ public $members_settings;
32
+
33
+ /**
34
+ * Initialize class.
35
+ */
36
+ public function init() {
37
+
38
+ add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] );
39
+ add_action( 'admin_footer', array( $this, 'admin_menu_append_count' ) );
40
+ add_action( 'admin_init', array( $this, 'schedule_fetch' ) );
41
+
42
+ add_action( 'admin_footer', [ $this, 'output' ] );
43
+
44
+ add_action( 'members_admin_notifications_update', [ $this, 'update' ] );
45
+ add_action( 'wp_ajax_members_notification_dismiss', [ $this, 'dismiss' ] );
46
+ }
47
+
48
+ /**
49
+ * Check if user has access and is enabled.
50
+ *
51
+ * @return bool
52
+ */
53
+ public static function has_access() {
54
+
55
+ $access = false;
56
+
57
+ if (
58
+ current_user_can( 'manage_options' )
59
+ && ! get_option( 'members_hide_announcements' )
60
+ ) {
61
+ $access = true;
62
+ }
63
+
64
+ return apply_filters( 'members_admin_notifications_has_access', $access );
65
+ }
66
+
67
+ /**
68
+ * Get option value.
69
+ *
70
+ * @param bool $cache Reference property cache if available.
71
+ *
72
+ * @return array
73
+ */
74
+ public function get_option( $cache = true ) {
75
+
76
+ if ( $this->option && $cache ) {
77
+ return $this->option;
78
+ }
79
+
80
+ $option = get_option( 'members_notifications', [] );
81
+
82
+ $this->option = [
83
+ 'update' => ! empty( $option['update'] ) ? $option['update'] : 0,
84
+ 'events' => ! empty( $option['events'] ) ? $option['events'] : [],
85
+ 'feed' => ! empty( $option['feed'] ) ? $option['feed'] : [],
86
+ 'dismissed' => ! empty( $option['dismissed'] ) ? $option['dismissed'] : [],
87
+ ];
88
+
89
+ return $this->option;
90
+ }
91
+
92
+ /**
93
+ * Make sure the feed is fetched when needed.
94
+ *
95
+ * @return void
96
+ */
97
+ public function schedule_fetch() {
98
+
99
+ $option = $this->get_option();
100
+
101
+ // Update notifications using async task.
102
+ if ( empty( $option['update'] ) || time() > $option['update'] + 3 * HOUR_IN_SECONDS ) {
103
+ if ( false === wp_next_scheduled( 'members_admin_notifications_update' ) ) {
104
+ wp_schedule_single_event( time() + 10, 'members_admin_notifications_update' );
105
+ }
106
+ }
107
+ }
108
+
109
+ /**
110
+ * Fetch notifications from remote feed.
111
+ *
112
+ * @return array
113
+ */
114
+ public function fetch_feed() {
115
+
116
+ $res = wp_remote_get( self::SOURCE_URL, self::SOURCE_URL_ARGS );
117
+
118
+ if ( is_wp_error( $res ) ) {
119
+ return [];
120
+ }
121
+
122
+ $body = wp_remote_retrieve_body( $res );
123
+
124
+ if ( empty( $body ) ) {
125
+ return [];
126
+ }
127
+
128
+ return $this->verify( json_decode( $body, true ) );
129
+ }
130
+
131
+ /**
132
+ * Verify notification data before it is saved.
133
+ *
134
+ * @param array $notifications Array of notifications items to verify.
135
+ *
136
+ * @return array
137
+ */
138
+ public function verify( $notifications ) {
139
+
140
+ $data = [];
141
+
142
+ if ( ! is_array( $notifications ) || empty( $notifications ) ) {
143
+ return $data;
144
+ }
145
+
146
+ $option = $this->get_option();
147
+
148
+ foreach ( $notifications as $id => $notification ) {
149
+
150
+ // The message should never be empty - if is, ignore.
151
+ if ( empty( $notification['content'] ) ) {
152
+ continue;
153
+ }
154
+
155
+ // Ignore if expired.
156
+ if ( ! empty( $notification['end'] ) && time() > strtotime( $notification['end'] ) ) {
157
+ continue;
158
+ }
159
+
160
+ // Ignore if notifcation has already been dismissed.
161
+ if ( ! empty( $option['dismissed'] ) && array_key_exists( $notification['id'], $option['dismissed'] ) ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
162
+ continue;
163
+ }
164
+
165
+ // Ignore if notification existed before installing the plugin.
166
+ // Prevents bombarding the user with notifications after activation.
167
+ $activated = get_option( 'members_activated' );
168
+
169
+ if ( empty( $activated ) ) {
170
+ $activated = time();
171
+ update_option( 'members_activated', $activated );
172
+ }
173
+
174
+ if (
175
+ ! empty( $activated ) &&
176
+ ! empty( $notification['start'] ) &&
177
+ $activated > strtotime( $notification['start'] )
178
+ ) {
179
+ continue;
180
+ }
181
+
182
+ $data[$id] = $notification;
183
+
184
+ // Check if this notification has already been saved with a timestamp
185
+ if ( ! empty( $option['feed'][$id] ) ) { // Already exists in feed, so use saved time
186
+ $data[$id]['saved'] = $option['feed'][$id]['saved'];
187
+ } else if ( ! empty( $option['events'][$id] ) ) { // Already exists in events, so use saved time
188
+ $data[$id]['saved'] = $option['events'][$id]['saved'];
189
+ } else { // Doesn't exist in feed or events, so save current time
190
+ $data[$id]['saved'] = time();
191
+ }
192
+ }
193
+
194
+ return $data;
195
+ }
196
+
197
+ /**
198
+ * Verify saved notification data for active notifications.
199
+ *
200
+ * @param array $notifications Array of notifications items to verify.
201
+ *
202
+ * @return array
203
+ */
204
+ public function verify_active( $notifications ) {
205
+
206
+ if ( ! is_array( $notifications ) || empty( $notifications ) ) {
207
+ return [];
208
+ }
209
+
210
+ // Remove notfications that are not active.
211
+ foreach ( $notifications as $key => $notification ) {
212
+ if (
213
+ ( ! empty( $notification['start'] ) && strtotime( $notification['start'] . ' America/Denver' ) < strtotime( $notification['start'] . ' America/Denver' ) ) ||
214
+ ( ! empty( $notification['end'] ) && strtotime( $notification['end'] . ' America/Denver' ) > strtotime( $notification['end'] . ' America/Denver' ) )
215
+ ) {
216
+ unset( $notifications[ $key ] );
217
+ }
218
+ }
219
+
220
+ return $notifications;
221
+ }
222
+
223
+ /**
224
+ * Get notification data.
225
+ *
226
+ * @return array
227
+ */
228
+ public function get() {
229
+
230
+ if ( ! self::has_access() ) {
231
+ return [];
232
+ }
233
+
234
+ $option = $this->get_option();
235
+
236
+ $events = ! empty( $option['events'] ) ? $this->verify_active( $option['events'] ) : array();
237
+ $feed = ! empty( $option['feed'] ) ? $this->verify_active( $option['feed'] ) : array();
238
+
239
+ $notifications = array();
240
+ $notifications['active'] = array_merge( $events, $feed );
241
+ $notifications['active'] = $this->get_notifications_with_human_readeable_start_time( $notifications['active'] );
242
+ $notifications['active'] = $this->get_notifications_with_formatted_content( $notifications['active'] );
243
+ $notifications['dismissed'] = ! empty( $option['dismissed'] ) ? $option['dismissed'] : array();
244
+ $notifications['dismissed'] = $this->get_notifications_with_human_readeable_start_time( $notifications['dismissed'] );
245
+ $notifications['dismissed'] = $this->get_notifications_with_formatted_content( $notifications['dismissed'] );
246
+
247
+ return $notifications;
248
+ }
249
+
250
+
251
+ /**
252
+ * Improve format of the content of notifications before display. By default just runs wpautop.
253
+ *
254
+ * @param array $notifications The notifications to be parsed.
255
+ *
256
+ * @return mixed
257
+ */
258
+ public function get_notifications_with_formatted_content( $notifications ) {
259
+ if ( ! is_array( $notifications ) || empty( $notifications ) ) {
260
+ return $notifications;
261
+ }
262
+
263
+ foreach ( $notifications as $key => $notification ) {
264
+ if ( ! empty( $notification['content'] ) ) {
265
+ $notifications[ $key ]['content'] = wpautop( $notification['content'] );
266
+ $notifications[ $key ]['content'] = apply_filters( 'members_notification_content_display', $notifications[ $key ]['content'] );
267
+ }
268
+ }
269
+
270
+ return $notifications;
271
+ }
272
+
273
+ /**
274
+ * Get notifications start time with human time difference
275
+ *
276
+ * @return array $notifications
277
+ */
278
+ public function get_notifications_with_human_readeable_start_time( $notifications ) {
279
+
280
+ if ( ! is_array( $notifications ) || empty( $notifications ) ) {
281
+ return;
282
+ }
283
+
284
+ foreach ( $notifications as $key => $notification ) {
285
+ if ( ! isset( $notification['start'] ) || empty( $notification['start'] ) ) {
286
+ continue;
287
+ }
288
+
289
+ // Translators: Readable time to display
290
+ $modified_start_time = sprintf( __( '%1$s ago', 'members' ), human_time_diff( strtotime( $notification['start'] ), current_time( 'timestamp' ) ) );
291
+ $notifications[ $key ]['start'] = $modified_start_time;
292
+ }
293
+
294
+ return $notifications;
295
+ }
296
+
297
+ /**
298
+ * Get notification count.
299
+ *
300
+ * @return int
301
+ */
302
+ public function get_count() {
303
+ return ! empty( $this->get()['active'] ) ? count( $this->get()['active'] ) : 0;
304
+ }
305
+
306
+ /**
307
+ * Add an event notification. This is NOT for feed notifications.
308
+ * Event notifications are for alerting the user to something internally (e.g. recent sales performances).
309
+ *
310
+ * @param array $notification Notification data.
311
+ */
312
+ public function add( $notification ) {
313
+
314
+ if ( empty( $notification['id'] ) ) {
315
+ return;
316
+ }
317
+
318
+ $option = $this->get_option();
319
+
320
+ // Already dismissed
321
+ if ( array_key_exists( $notification['id'], $option['dismissed'] ) ) {
322
+ return;
323
+ }
324
+
325
+ // Already in events
326
+ foreach ( $option['events'] as $item ) {
327
+ if ( $item['id'] === $notification['id'] ) {
328
+ return;
329
+ }
330
+ }
331
+
332
+ // Associative key is notification id.
333
+ $notification = $this->verify( [ $notification['id'] => $notification ] );
334
+
335
+ // The only thing changing here is adding the notification to the events
336
+ update_option(
337
+ 'members_notifications',
338
+ [
339
+ 'update' => $option['update'],
340
+ 'feed' => $option['feed'],
341
+ 'events' => array_merge( $notification, $option['events'] ),
342
+ 'dismissed' => $option['dismissed'],
343
+ ]
344
+ );
345
+ }
346
+
347
+ /**
348
+ * Update notification data from feed.
349
+ * This pulls the latest notifications from our remote feed.
350
+ */
351
+ public function update() {
352
+
353
+ $feed = $this->fetch_feed();
354
+ $option = $this->get_option();
355
+
356
+ update_option(
357
+ 'members_notifications',
358
+ [
359
+ 'update' => time(),
360
+ 'feed' => $feed,
361
+ 'events' => $option['events'],
362
+ 'dismissed' => $option['dismissed'],
363
+ ]
364
+ );
365
+ }
366
+
367
+ /**
368
+ * Admin area enqueues.
369
+ */
370
+ public function enqueues() {
371
+
372
+ if ( ! self::has_access() || ! members_is_admin_page() ) {
373
+ return;
374
+ }
375
+
376
+ $notifications = $this->get();
377
+
378
+ if ( empty( $notifications ) ) {
379
+ return;
380
+ }
381
+
382
+ wp_enqueue_style(
383
+ 'members-admin-notifications',
384
+ members_plugin()->uri . "css/admin-notifications.css",
385
+ [],
386
+ ''
387
+ );
388
+
389
+ wp_enqueue_script(
390
+ 'members-admin-notifications',
391
+ members_plugin()->uri . "js/admin-notifications.js",
392
+ [ 'jquery' ],
393
+ '',
394
+ true
395
+ );
396
+
397
+ wp_localize_script(
398
+ 'members-admin-notifications',
399
+ 'MembersAdminNotifications',
400
+ [
401
+ "ajax_url" => admin_url('admin-ajax.php'),
402
+ "nonce" => wp_create_nonce( "members-admin-notifications" )
403
+ ]
404
+ );
405
+ }
406
+
407
+ /**
408
+ * Admin script for adding notification count to the MemberPress admin menu list item.
409
+ */
410
+ public function admin_menu_append_count() {
411
+
412
+ $option = get_option( 'members_notifications' );
413
+ $notifications = ! empty( $option['feed'] ) ? $option['feed'] : array();
414
+ $active_notifications = $this->get()['active'];
415
+
416
+ if ( ! empty( $active_notifications ) && count( $active_notifications ) > 0 ) {
417
+ ob_start();
418
+
419
+ ?>
420
+
421
+ <span class="awaiting-mod">
422
+ <span class="pending-count" id="membersAdminMenuUnreadCount" aria-hidden="true"><?php echo count( $active_notifications ); ?></span>
423
+ <span class="comments-in-moderation-text screen-reader-text"><?php printf( _n( '%s unread message', '%s unread messages', count( $active_notifications ), 'members' ), count( $active_notifications ) ); ?></span>
424
+ </span>
425
+
426
+ <?php $admin_menu_output = ob_get_clean(); ?>
427
+
428
+ <script>
429
+ jQuery(document).ready(function($) {
430
+ $('li.toplevel_page_members .wp-menu-name').append(`<?php echo $admin_menu_output; ?>`);
431
+ });
432
+ </script>
433
+ <?php
434
+ }
435
+
436
+ if ( members_is_admin_page() ) {
437
+ ob_start();
438
+
439
+ ?>
440
+
441
+ <button id="membersAdminHeaderNotifications" class="members-notifications-button button-secondary">
442
+ <svg width="22" height="14" viewBox="0 0 22 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21.6944 6.5625C21.8981 6.85417 22 7.18229 22 7.54687V12.25C22 12.7361 21.8218 13.1493 21.4653 13.4896C21.1088 13.8299 20.6759 14 20.1667 14H1.83333C1.32407 14 0.891204 13.8299 0.534722 13.4896C0.178241 13.1493 0 12.7361 0 12.25V7.54687C0 7.18229 0.101852 6.85417 0.305556 6.5625L4.35417 0.765625C4.45602 0.644097 4.58333 0.522569 4.73611 0.401042C4.91435 0.279514 5.10532 0.182292 5.30903 0.109375C5.51273 0.0364583 5.7037 0 5.88194 0H16.1181C16.3981 0 16.6782 0.0850694 16.9583 0.255208C17.2639 0.401042 17.4931 0.571181 17.6458 0.765625L21.6944 6.5625ZM6.1875 2.33333L2.94097 7H7.63889L8.86111 9.33333H13.1389L14.3611 7H19.059L15.8125 2.33333H6.1875Z" fill="#2679C1"></path></svg>
443
+ <?php if ( self::has_access() && ! empty( $notifications ) && count( $notifications ) > 0 ) : ?>
444
+ <span id="membersAdminHeaderNotificationsCount" class="members-notifications-count"><?php echo count( $notifications ); ?></span>
445
+ <?php endif; ?>
446
+ </button>
447
+
448
+ <?php $messages_toggle_output = ob_get_clean(); ?>
449
+
450
+ <script>
451
+ jQuery(document).ready(function($) {
452
+ $('#wpbody-content .wrap > h1').append(`<?php echo $messages_toggle_output; ?>`);
453
+ });
454
+ </script>
455
+ <?php
456
+ }
457
+ }
458
+
459
+ /**
460
+ * Output notifications in MemberPress admin area.
461
+ */
462
+ public function output() {
463
+
464
+ // Only run on a Members page
465
+ if ( ! members_is_admin_page() ) {
466
+ return;
467
+ }
468
+
469
+ $notifications = $this->get();
470
+
471
+ if ( empty( $notifications['active'] ) && empty( $notifications['dismissed'] ) ) {
472
+ return;
473
+ }
474
+
475
+ $notifications_html = '<div class="active-messages">';
476
+ if ( ! empty( $notifications['active'] ) ) {
477
+ foreach ( $notifications['active'] as $notification ) {
478
+
479
+ // Buttons HTML.
480
+ $buttons_html = '';
481
+ if ( ! empty( $notification['buttons'] ) && is_array( $notification['buttons'] ) ) {
482
+ foreach ( $notification['buttons'] as $btn_type => $btn ) {
483
+ if ( empty( $btn['url'] ) || empty( $btn['text'] ) ) {
484
+ continue;
485
+ }
486
+ $buttons_html .= sprintf(
487
+ '<a href="%1$s" class="button button-%2$s"%3$s>%4$s</a>',
488
+ ! empty( $btn['url'] ) ? esc_url( $btn['url'] ) : '',
489
+ $btn_type === 'main' ? 'primary' : 'secondary',
490
+ ! empty( $btn['target'] ) && $btn['target'] === '_blank' ? ' target="_blank" rel="noopener noreferrer"' : '',
491
+ ! empty( $btn['text'] ) ? sanitize_text_field( $btn['text'] ) : ''
492
+ );
493
+ }
494
+ $buttons_html .= sprintf( '<button class="members-notice-dismiss" data-message-id="%s">%s</button>', $notification['id'], __( 'Dismiss', 'members' ) );
495
+ $buttons_html = ! empty( $buttons_html ) ? '<div class="members-notifications-buttons">' . $buttons_html . '</div>' : '';
496
+ }
497
+
498
+ $time_diff = ceil( ( time() - $notification['saved'] ) );
499
+ $time_diff_string = '';
500
+ if ( $time_diff < MINUTE_IN_SECONDS ) {
501
+ $time_diff_string = sprintf( _n( '%s second ago', '%s seconds ago', $time_diff, 'members' ), $time_diff );
502
+ } else if ( $time_diff < HOUR_IN_SECONDS ) {
503
+ $time_diff_string = sprintf( _n( '%s minute ago', '%s minutes ago', ceil( ( $time_diff / MINUTE_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / MINUTE_IN_SECONDS ) ) );
504
+ } else if ( $time_diff < DAY_IN_SECONDS ) {
505
+ $time_diff_string = sprintf( _n( '%s hour ago', '%s hours ago', ceil( ( $time_diff / HOUR_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / HOUR_IN_SECONDS ) ) );
506
+ } else if ( $time_diff < WEEK_IN_SECONDS ) {
507
+ $time_diff_string = sprintf( _n( '%s day ago', '%s days ago', ceil( ( $time_diff / DAY_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / DAY_IN_SECONDS ) ) );
508
+ } else if ( $time_diff < MONTH_IN_SECONDS ) {
509
+ $time_diff_string = sprintf( _n( '%s week ago', '%s weeks ago', ceil( ( $time_diff / WEEK_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / WEEK_IN_SECONDS ) ) );
510
+ } else if ( $time_diff < YEAR_IN_SECONDS ) {
511
+ $time_diff_string = sprintf( _n( '%s month ago', '%s months ago', ceil( ( $time_diff / MONTH_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / MONTH_IN_SECONDS ) ) );
512
+ } else {
513
+ $time_diff_string = sprintf( _n( '%s year ago', '%s years ago', ceil( ( $time_diff / YEAR_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / YEAR_IN_SECONDS ) ) );
514
+ }
515
+
516
+ // Notification HTML.
517
+ $notifications_html .= sprintf(
518
+ '<div id="members-notifications-message-%4$s" class="members-notifications-message" data-message-id="%4$s">
519
+ <div class="members-notification-icon-title">
520
+ <img src="%5$s" width="32" height="32">
521
+ <h3 class="members-notifications-title">%1$s</h3>
522
+ <time datetime="%6$s">%7$s</time>
523
+ </div>
524
+ <div class="members-notifications-content">%2$s</div>
525
+ %3$s
526
+ </div>',
527
+ ! empty( $notification['title'] ) ? sanitize_text_field( $notification['title'] ) : '',
528
+ ! empty( $notification['content'] ) ? apply_filters( 'the_content', $notification['content'] ) : '',
529
+ $buttons_html,
530
+ ! empty( $notification['id'] ) ? esc_attr( sanitize_text_field( $notification['id'] ) ) : 0,
531
+ ! empty( $notification['icon'] ) ? esc_url( sanitize_text_field( $notification['icon'] ) ) : '',
532
+ date( 'Y-m-d G:i a', $notification['saved'] ),
533
+ $time_diff_string
534
+ );
535
+ }
536
+ }
537
+ $notifications_html .= sprintf( '<div class="members-notifications-none" %s>%s</div>', empty( $notifications['active'] ) || count( $notifications['active'] ) < 1 ? '' : 'style="display: none;"', __( 'You\'re all caught up!', 'members' ) );
538
+ $notifications_html .= '</div>';
539
+
540
+ $notifications_html .= '<div class="dismissed-messages">';
541
+ if ( ! empty( $notifications['dismissed'] ) ) {
542
+ foreach ( $notifications['dismissed'] as $notification ) {
543
+
544
+ // Buttons HTML.
545
+ $buttons_html = '';
546
+ if ( ! empty( $notification['buttons'] ) && is_array( $notification['buttons'] ) ) {
547
+ foreach ( $notification['buttons'] as $btn_type => $btn ) {
548
+ if ( empty( $btn['url'] ) || empty( $btn['text'] ) ) {
549
+ continue;
550
+ }
551
+ $buttons_html .= sprintf(
552
+ '<a href="%1$s" class="button button-%2$s"%3$s>%4$s</a>',
553
+ ! empty( $btn['url'] ) ? esc_url( $btn['url'] ) : '',
554
+ $btn_type === 'main' ? 'primary' : 'secondary',
555
+ ! empty( $btn['target'] ) && $btn['target'] === '_blank' ? ' target="_blank" rel="noopener noreferrer"' : '',
556
+ ! empty( $btn['text'] ) ? sanitize_text_field( $btn['text'] ) : ''
557
+ );
558
+ }
559
+ $buttons_html .= sprintf( '<button class="members-notice-dismiss" data-message-id="%s">%s</button>', $notification['id'], __( 'Dismiss', 'members' ) );
560
+ $buttons_html = ! empty( $buttons_html ) ? '<div class="members-notifications-buttons">' . $buttons_html . '</div>' : '';
561
+ }
562
+
563
+ $time_diff = ceil( ( time() - $notification['saved'] ) );
564
+ $time_diff_string = '';
565
+ if ( $time_diff < MINUTE_IN_SECONDS ) {
566
+ $time_diff_string = sprintf( _n( '%s second ago', '%s seconds ago', $time_diff, 'members' ), $time_diff );
567
+ } else if ( $time_diff < HOUR_IN_SECONDS ) {
568
+ $time_diff_string = sprintf( _n( '%s minute ago', '%s minutes ago', ceil( ( $time_diff / MINUTE_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / MINUTE_IN_SECONDS ) ) );
569
+ } else if ( $time_diff < DAY_IN_SECONDS ) {
570
+ $time_diff_string = sprintf( _n( '%s hour ago', '%s hours ago', ceil( ( $time_diff / HOUR_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / HOUR_IN_SECONDS ) ) );
571
+ } else if ( $time_diff < WEEK_IN_SECONDS ) {
572
+ $time_diff_string = sprintf( _n( '%s day ago', '%s days ago', ceil( ( $time_diff / DAY_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / DAY_IN_SECONDS ) ) );
573
+ } else if ( $time_diff < MONTH_IN_SECONDS ) {
574
+ $time_diff_string = sprintf( _n( '%s week ago', '%s weeks ago', ceil( ( $time_diff / WEEK_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / WEEK_IN_SECONDS ) ) );
575
+ } else if ( $time_diff < YEAR_IN_SECONDS ) {
576
+ $time_diff_string = sprintf( _n( '%s month ago', '%s months ago', ceil( ( $time_diff / MONTH_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / MONTH_IN_SECONDS ) ) );
577
+ } else {
578
+ $time_diff_string = sprintf( _n( '%s year ago', '%s years ago', ceil( ( $time_diff / YEAR_IN_SECONDS ) ), 'members' ), ceil( ( $time_diff / YEAR_IN_SECONDS ) ) );
579
+ }
580
+
581
+ // Notification HTML.
582
+ $notifications_html .= sprintf(
583
+ '<div id="members-notifications-message-%4$s" class="members-notifications-message" data-message-id="%4$s">
584
+ <div class="members-notification-icon-title">
585
+ <img src="%5$s" width="32" height="32">
586
+ <h3 class="members-notifications-title">%1$s</h3>
587
+ <time datetime="%6$s">%7$s</time>
588
+ </div>
589
+ <div class="members-notifications-content">%2$s</div>
590
+ %3$s
591
+ </div>',
592
+ ! empty( $notification['title'] ) ? sanitize_text_field( $notification['title'] ) : '',
593
+ ! empty( $notification['content'] ) ? apply_filters( 'the_content', $notification['content'] ) : '',
594
+ $buttons_html,
595
+ ! empty( $notification['id'] ) ? esc_attr( sanitize_text_field( $notification['id'] ) ) : 0,
596
+ ! empty( $notification['icon'] ) ? esc_url( sanitize_text_field( $notification['icon'] ) ) : '',
597
+ date( 'Y-m-d G:i a', $notification['saved'] ),
598
+ $time_diff_string
599
+ );
600
+ }
601
+ }
602
+ $notifications_html .= '</div>';
603
+ ?>
604
+
605
+ <div id="members-notifications">
606
+
607
+ <div class="members-notifications-container">
608
+
609
+ <div class="members-notifications-top-title">
610
+ <div class="members-notifications-top-title__left">
611
+ <svg width="24" height="15" viewBox="0 0 24 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M23.6667 7.03125C23.8889 7.34375 24 7.69531 24 8.08594V13.125C24 13.6458 23.8056 14.0885 23.4167 14.4531C23.0278 14.8177 22.5556 15 22 15H2C1.44444 15 0.972222 14.8177 0.583333 14.4531C0.194444 14.0885 0 13.6458 0 13.125V8.08594C0 7.69531 0.111111 7.34375 0.333333 7.03125L4.75 0.820312C4.86111 0.690104 5 0.559896 5.16667 0.429688C5.36111 0.299479 5.56944 0.195312 5.79167 0.117188C6.01389 0.0390625 6.22222 0 6.41667 0H17.5833C17.8889 0 18.1944 0.0911458 18.5 0.273438C18.8333 0.429688 19.0833 0.611979 19.25 0.820312L23.6667 7.03125ZM6.75 2.5L3.20833 7.5H8.33333L9.66667 10H14.3333L15.6667 7.5H20.7917L17.25 2.5H6.75Z" fill="white"></path></svg>
612
+ <h3><?php _e( 'Inbox', 'members' ); ?></h3>
613
+ </div>
614
+ <div class="members-notifications-top-title__right actions">
615
+ <a href="#" id="viewDismissed"><?php _e( 'View Dismissed', 'members' ); ?></a>
616
+ <a href="#" id="viewActive"><?php _e( 'View Active', 'members' ); ?></a>
617
+ <a href="#" id="membersNotificationsClose" class="close" title="<?php _e( 'Close', 'members' ); ?>">
618
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.28409 6L11.6932 9.40909C11.8977 9.61364 12 9.86364 12 10.1591C12 10.4545 11.8977 10.7159 11.6932 10.9432L10.9432 11.6932C10.7159 11.8977 10.4545 12 10.1591 12C9.86364 12 9.61364 11.8977 9.40909 11.6932L6 8.28409L2.59091 11.6932C2.38636 11.8977 2.13636 12 1.84091 12C1.54545 12 1.28409 11.8977 1.05682 11.6932L0.306818 10.9432C0.102273 10.7159 0 10.4545 0 10.1591C0 9.86364 0.102273 9.61364 0.306818 9.40909L3.71591 6L0.306818 2.59091C0.102273 2.38636 0 2.13636 0 1.84091C0 1.54545 0.102273 1.28409 0.306818 1.05682L1.05682 0.306818C1.28409 0.102273 1.54545 0 1.84091 0C2.13636 0 2.38636 0.102273 2.59091 0.306818L6 3.71591L9.40909 0.306818C9.61364 0.102273 9.86364 0 10.1591 0C10.4545 0 10.7159 0.102273 10.9432 0.306818L11.6932 1.05682C11.8977 1.28409 12 1.54545 12 1.84091C12 2.13636 11.8977 2.38636 11.6932 2.59091L8.28409 6Z" fill="white"></path></svg>
619
+ </a>
620
+ </div>
621
+ </div>
622
+ <div class="members-notifications-header <?php echo ! empty( $notifications['active'] ) && count( $notifications['active'] ) < 10 ? 'single-digit' : ''; ?>">
623
+ <div class="members-notifications-header-bell">
624
+ <div class="members-notifications-bell">
625
+ <svg viewBox="0 0 512 512" width="30" xmlns="http://www.w3.org/2000/svg"><path fill="#777777" d="m381.7 225.9c0-97.6-52.5-130.8-101.6-138.2 0-.5.1-1 .1-1.6 0-12.3-10.9-22.1-24.2-22.1s-23.8 9.8-23.8 22.1c0 .6 0 1.1.1 1.6-49.2 7.5-102 40.8-102 138.4 0 113.8-28.3 126-66.3 158h384c-37.8-32.1-66.3-44.4-66.3-158.2z"/><path fill="#777777" d="m256.2 448c26.8 0 48.8-19.9 51.7-43h-103.4c2.8 23.1 24.9 43 51.7 43z"/></svg>
626
+ <?php if ( ! empty( $notifications['active'] ) ) : ?>
627
+ <span id="membersNotificationsCountTray" class="members-notifications-count"><?php echo count( $notifications['active'] ); ?></span>
628
+ <?php endif; ?>
629
+ </div>
630
+ <div class="members-notifications-title"><?php esc_html_e( 'Notifications', 'members' ); ?></div>
631
+ </div>
632
+ <?php if ( ! empty( $notifications['active'] ) ) : ?>
633
+ <button id="dismissAll" class="dismiss-all"><?php _e( 'Dismiss All', 'members' ); ?></button>
634
+ <?php endif; ?>
635
+ </div>
636
+
637
+ <div class="members-notifications-body">
638
+ <div class="members-notifications-messages">
639
+ <?php echo $notifications_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
640
+ </div>
641
+ </div>
642
+
643
+ </div>
644
+
645
+ </div>
646
+ <?php
647
+ }
648
+
649
+ /**
650
+ * Dismiss notification(s) via AJAX.
651
+ */
652
+ public function dismiss() {
653
+
654
+ // Run a security check.
655
+ check_ajax_referer( 'members-admin-notifications', 'nonce' );
656
+
657
+ // Check for access and required param.
658
+ if ( ! self::has_access() || empty( $_POST['id'] ) ) {
659
+ wp_send_json_error();
660
+ }
661
+
662
+ $id = sanitize_text_field( wp_unslash( $_POST['id'] ) );
663
+ $option = $this->get_option();
664
+
665
+ if ( 'all' === $id ) { // Dismiss all notifications
666
+
667
+ // Feed notifications
668
+ if ( ! empty( $option['feed'] ) ) {
669
+ foreach ( $option['feed'] as $key => $notification ) {
670
+ $option['dismissed'][$key] = $option['feed'][$key];
671
+ unset( $option['feed'][$key] );
672
+ }
673
+ }
674
+
675
+ // Event notifications
676
+ if ( ! empty( $option['events'] ) ) {
677
+ foreach ( $option['events'] as $key => $notification ) {
678
+ $option['dismissed'][$key] = $option['events'][$key];
679
+ unset( $option['events'][$key] );
680
+ }
681
+ }
682
+
683
+ } else { // Dismiss one notification
684
+
685
+ // Event notifications need a prefix to distinguish them from feed notifications
686
+ // For a naming convention, we'll use "event_{timestamp}"
687
+ // If the notification ID includes "event_", we know it's an even notification
688
+ $type = false !== strpos( $id, 'event_' ) ? 'events' : 'feed';
689
+
690
+ if( $type == 'events' ){
691
+ if( !empty($option[$type]) ){
692
+ foreach( $option[$type] as $index => $event_notification ){
693
+ if( $event_notification['id'] == $id ){
694
+ unset( $option[$type][$index] );
695
+ break;
696
+ }
697
+ }
698
+ }
699
+ }else{
700
+ if ( ! empty( $option[$type][$id] ) ) {
701
+ $option['dismissed'][$id] = $option[$type][$id];
702
+ unset( $option[$type][$id] );
703
+ }
704
+ }
705
+ }
706
+
707
+
708
+ update_option( 'members_notifications', $option );
709
+
710
+ wp_send_json_success();
711
+ }
712
+
713
+ public function dismiss_events( $type ) {
714
+
715
+ $option = $this->get_option();
716
+
717
+ // Event notifications.
718
+ if ( ! empty( $option['events'] ) ) {
719
+ $found = 0;
720
+ foreach ( $option['events'] as $key => $notification ) {
721
+ // We found event.
722
+ if( $type === $notification['type'] ){
723
+ unset($option['events'][$key]);
724
+ $found = 1;
725
+ }
726
+ }
727
+
728
+ if( $found ){
729
+ update_option( 'members_notifications', $option );
730
+ }
731
+ }
732
+ }
733
+ }
734
+
735
+ $members_notifications = new Notifications;
736
+ $members_notifications->init();
admin/class-review-prompt.php CHANGED
@@ -124,7 +124,7 @@ class ReviewPrompt {
124
  }
125
 
126
  jQuery(document).ready(function($) {
127
- $('.members-review-selection').click(function(event) {
128
  event.preventDefault();
129
  var $this = $(this);
130
  var selection = $this.data('review-selection');
124
  }
125
 
126
  jQuery(document).ready(function($) {
127
+ $('.members-review-selection').on('click', function(event) {
128
  event.preventDefault();
129
  var $this = $(this);
130
  var selection = $this.data('review-selection');
admin/class-settings.php CHANGED
@@ -218,13 +218,18 @@ final class Settings_Page {
218
  */
219
  public function admin_menu() {
220
 
221
- // Create the settings page.
 
222
  $this->settings_page = add_submenu_page( 'members', esc_html_x( 'Settings', 'admin screen', 'members' ), esc_html_x( 'Settings', 'admin screen', 'members' ), apply_filters( 'members_settings_capability', 'manage_options' ), 'members-settings', array( $this, 'settings_page' ) );
 
223
  $this->addons_page = add_submenu_page( 'members', esc_html_x( 'Add-Ons', 'admin screen', 'members' ), _x( '<span style="color: #8CBD5A;">Add-Ons</span>', 'admin screen', 'members' ), apply_filters( 'members_settings_capability', 'manage_options' ), 'members-settings&view=add-ons', array( $this, 'settings_page' ) );
 
224
  if ( ! members_is_memberpress_active() ) { // MemberPress not active
225
  $this->payments_page = add_submenu_page( 'members', esc_html_x( 'Payments', 'admin screen', 'members' ), esc_html_x( 'Payments', 'admin screen', 'members' ), apply_filters( 'members_settings_capability', 'manage_options' ), 'members-payments', array( $this, 'payments_page' ) );
 
226
  }
227
  $this->about_page = add_submenu_page( 'members', esc_html_x( 'About Us', 'admin screen', 'members' ), esc_html_x( 'About Us', 'admin screen', 'members' ), apply_filters( 'members_settings_capability', 'manage_options' ), 'members-about', array( $this, 'about_page' ) );
 
228
 
229
  if ( $this->settings_page ) {
230
 
@@ -288,7 +293,7 @@ final class Settings_Page {
288
  */
289
  public function enqueue( $hook_suffix ) {
290
 
291
- if ( $this->settings_page !== $hook_suffix )
292
  return;
293
 
294
  $view = $this->get_view( members_get_current_settings_view() );
@@ -602,14 +607,14 @@ final class Settings_Page {
602
 
603
  <div class="wrap">
604
  <h1><?php echo esc_html_x( 'About Us', 'admin screen', 'members' ); ?></h1>
605
- <div class="welcome-panel">
606
  <div class="welcome-panel-content memberpress-about">
607
  <div class="welcome-panel-column-container">
608
  <div class="mp-desc">
609
  <p style="font-weight: bold;">Hello and welcome to Members by <a href="https://memberpress.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=link_1" target="_blank">MemberPress</a>, the simplest WordPress membership and role editor plugin. Our team here at MemberPress builds software that helps you to easily add powerful membership features to your website in minutes.</p>
610
  <p>Over the years, we found that most WordPress membership plugins were bloated, buggy, slow, very hard to use and expensive. So, we started with a simple goal: build a WordPress membership plugin that’s both easy and powerful.</p>
611
  <p>Our goal is to take the pain out of creating membership sites and make it easy.</p>
612
- <p>Members is brought to you by the same team that’s behind the most powerful, full-featured membership plugin, <a href="https://memberpress.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=link_2" target="_blank">MemberPress</a>, the best Affiliate Program plugin, <a href="https://affiliateroyale.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=link_3" target="_blank">Affiliate Royale</a>, and the best Affiliate Link Management plugin on the market, <a href="https://prettylinks.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=link_4" target="_blank">Pretty Links</a>.</p>
613
  <p>So, you can see that we know a thing or two about building great products that customers love.</p>
614
  </div>
615
  <div class="mp-logo-wrap">
@@ -675,29 +680,29 @@ final class Settings_Page {
675
  </div>
676
  </div>
677
 
678
- <div class="members-plugin-card plugin-card plugin-card-affiliate-royale" style="margin-right: 0;">
679
  <div class="plugin-card-top">
680
  <div class="name column-name">
681
  <h3>
682
- <a href="https://affiliateroyale.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=affiliateroyale_icon_title" target="_blank" rel="noopener noreferrer">
683
- Affiliate Royale <img src="<?php echo members_plugin()->uri . "img/affiliate_blue-01.png"; ?>" class="plugin-icon" alt="">
684
  </a>
685
  </h3>
686
  </div>
687
  <div class="desc column-description">
688
- <p>Affiliate Royale is a full-featured Affiliate Program plugin for WordPress. Use it to start an Affiliate Program for your products to dramatically increase traffic, attention and sales.</p>
689
  </div>
690
  </div>
691
  <div class="plugin-card-bottom">
692
  <?php if ( is_plugin_active( 'affiliate-royale/affiliate-royale.php' ) ) : // Installed and active ?>
693
  <div class="column-rating column-status">Status: <span class="active">Active</span></div>
694
- <div class="column-updated"><a href="https://affiliateroyale.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=affiliateroyale_learn_more" target="_blank" class="button button-secondary">Learn More</a></div>
695
  <?php elseif ( array_key_exists( 'affiliate-royale/affiliate-royale.php', $installed_plugins ) ) : // Installed but inactive ?>
696
  <div class="column-rating column-status">Status: <span class="inactive">Inactive</span></div>
697
  <div class="column-updated"><a href="<?php echo wp_nonce_url( admin_url( 'plugins.php?action=activate&plugin=affiliate-royale/affiliate-royale.php' ), 'activate-plugin_affiliate-royale/affiliate-royale.php' ); ?>" class="button button-secondary">Activate</a></div>
698
  <?php else : // Not installed ?>
699
  <div class="column-rating column-status">Status: Not Installed</div>
700
- <div class="column-updated"><a href="https://affiliateroyale.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=affiliateroyale_install" target="_blank" class="button button-primary">Install Plugin</a></div>
701
  <?php endif; ?>
702
  </div>
703
  </div>
218
  */
219
  public function admin_menu() {
220
 
221
+ // Create the settings pages.
222
+ $this->admin_pages = array( 'toplevel_page_members', 'members_page_roles' );
223
  $this->settings_page = add_submenu_page( 'members', esc_html_x( 'Settings', 'admin screen', 'members' ), esc_html_x( 'Settings', 'admin screen', 'members' ), apply_filters( 'members_settings_capability', 'manage_options' ), 'members-settings', array( $this, 'settings_page' ) );
224
+ $this->admin_pages[] = $this->settings_page;
225
  $this->addons_page = add_submenu_page( 'members', esc_html_x( 'Add-Ons', 'admin screen', 'members' ), _x( '<span style="color: #8CBD5A;">Add-Ons</span>', 'admin screen', 'members' ), apply_filters( 'members_settings_capability', 'manage_options' ), 'members-settings&view=add-ons', array( $this, 'settings_page' ) );
226
+ $this->admin_pages[] = $this->addons_page;
227
  if ( ! members_is_memberpress_active() ) { // MemberPress not active
228
  $this->payments_page = add_submenu_page( 'members', esc_html_x( 'Payments', 'admin screen', 'members' ), esc_html_x( 'Payments', 'admin screen', 'members' ), apply_filters( 'members_settings_capability', 'manage_options' ), 'members-payments', array( $this, 'payments_page' ) );
229
+ $this->admin_pages[] = $this->payments_page;
230
  }
231
  $this->about_page = add_submenu_page( 'members', esc_html_x( 'About Us', 'admin screen', 'members' ), esc_html_x( 'About Us', 'admin screen', 'members' ), apply_filters( 'members_settings_capability', 'manage_options' ), 'members-about', array( $this, 'about_page' ) );
232
+ $this->admin_pages[] = $this->about_page;
233
 
234
  if ( $this->settings_page ) {
235
 
293
  */
294
  public function enqueue( $hook_suffix ) {
295
 
296
+ if ( ! members_is_admin_page() )
297
  return;
298
 
299
  $view = $this->get_view( members_get_current_settings_view() );
607
 
608
  <div class="wrap">
609
  <h1><?php echo esc_html_x( 'About Us', 'admin screen', 'members' ); ?></h1>
610
+ <div class="welcome-panel memberpress-welcome-panel">
611
  <div class="welcome-panel-content memberpress-about">
612
  <div class="welcome-panel-column-container">
613
  <div class="mp-desc">
614
  <p style="font-weight: bold;">Hello and welcome to Members by <a href="https://memberpress.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=link_1" target="_blank">MemberPress</a>, the simplest WordPress membership and role editor plugin. Our team here at MemberPress builds software that helps you to easily add powerful membership features to your website in minutes.</p>
615
  <p>Over the years, we found that most WordPress membership plugins were bloated, buggy, slow, very hard to use and expensive. So, we started with a simple goal: build a WordPress membership plugin that’s both easy and powerful.</p>
616
  <p>Our goal is to take the pain out of creating membership sites and make it easy.</p>
617
+ <p>Members is brought to you by the same team that’s behind the most powerful, full-featured membership plugin, <a href="https://memberpress.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=link_2" target="_blank">MemberPress</a>, the best Affiliate Program plugin, <a href="https://easyaffiliate.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=link_3" target="_blank">Easy Affiliate</a>, and the best Affiliate Link Management plugin on the market, <a href="https://prettylinks.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=link_4" target="_blank">Pretty Links</a>.</p>
618
  <p>So, you can see that we know a thing or two about building great products that customers love.</p>
619
  </div>
620
  <div class="mp-logo-wrap">
680
  </div>
681
  </div>
682
 
683
+ <div class="members-plugin-card plugin-card plugin-card-easy-affiliate" style="margin-right: 0;">
684
  <div class="plugin-card-top">
685
  <div class="name column-name">
686
  <h3>
687
+ <a href="https://easyaffiliate.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=easyaffiliate_icon_title" target="_blank" rel="noopener noreferrer">
688
+ Easy Affiliate <img src="<?php echo members_plugin()->uri . "img/bee.png"; ?>" class="plugin-icon" alt="">
689
  </a>
690
  </h3>
691
  </div>
692
  <div class="desc column-description">
693
+ <p>Easy Affiliate is a full-featured Affiliate Program plugin for WordPress. Use it to start an Affiliate Program for your products to dramatically increase traffic, attention and sales.</p>
694
  </div>
695
  </div>
696
  <div class="plugin-card-bottom">
697
  <?php if ( is_plugin_active( 'affiliate-royale/affiliate-royale.php' ) ) : // Installed and active ?>
698
  <div class="column-rating column-status">Status: <span class="active">Active</span></div>
699
+ <div class="column-updated"><a href="https://easyaffiliate.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=easyaffiliate_learn_more" target="_blank" class="button button-secondary">Learn More</a></div>
700
  <?php elseif ( array_key_exists( 'affiliate-royale/affiliate-royale.php', $installed_plugins ) ) : // Installed but inactive ?>
701
  <div class="column-rating column-status">Status: <span class="inactive">Inactive</span></div>
702
  <div class="column-updated"><a href="<?php echo wp_nonce_url( admin_url( 'plugins.php?action=activate&plugin=affiliate-royale/affiliate-royale.php' ), 'activate-plugin_affiliate-royale/affiliate-royale.php' ); ?>" class="button button-secondary">Activate</a></div>
703
  <?php else : // Not installed ?>
704
  <div class="column-rating column-status">Status: Not Installed</div>
705
+ <div class="column-updated"><a href="https://easyaffiliate.com/?utm_source=members_plugin&utm_medium=link&utm_campaign=about_us&utm_content=easyaffiliate_install" target="_blank" class="button button-primary">Install Plugin</a></div>
706
  <?php endif; ?>
707
  </div>
708
  </div>
admin/functions-admin.php CHANGED
@@ -205,7 +205,7 @@ function members_admin_header() {
205
 
206
  <script>
207
  jQuery(document).ready(function($) {
208
- $('#close-members-upgrade-header').click(function(event) {
209
  var upgradeHeader = $('#members-upgrade-header');
210
  upgradeHeader.fadeOut();
211
  $.ajax({
@@ -247,3 +247,13 @@ function members_dismiss_upgrade_header() {
247
 
248
  update_option( 'members_dismiss_upgrade_header', true );
249
  }
 
 
 
 
 
 
 
 
 
 
205
 
206
  <script>
207
  jQuery(document).ready(function($) {
208
+ $('#close-members-upgrade-header').on('click', function(event) {
209
  var upgradeHeader = $('#members-upgrade-header');
210
  upgradeHeader.fadeOut();
211
  $.ajax({
247
 
248
  update_option( 'members_dismiss_upgrade_header', true );
249
  }
250
+
251
+ /**
252
+ * Conditional to check whether we're on a Members admin page.
253
+ *
254
+ * @return boolean
255
+ */
256
+ function members_is_admin_page() {
257
+ $screen = get_current_screen();
258
+ return in_array( $screen->id, Members\Admin\Settings_Page::get_instance()->admin_pages );
259
+ }
admin/views/class-view-addons.php CHANGED
@@ -91,7 +91,7 @@ class View_Addons extends View {
91
  </div>
92
  <script>
93
  jQuery(document).ready(function($) {
94
- $('.mepr-upgrade-activate-link').click(function(e){
95
  var url = $(this).data('url');
96
  $('#mepr_cta_upgrade_link').prop('href', url);
97
  });
91
  </div>
92
  <script>
93
  jQuery(document).ready(function($) {
94
+ $('.mepr-upgrade-activate-link').on('click', function(e){
95
  var url = $(this).data('url');
96
  $('#mepr_cta_upgrade_link').prop('href', url);
97
  });
changelog.md CHANGED
@@ -1,5 +1,15 @@
1
  # Change Log
2
 
 
 
 
 
 
 
 
 
 
 
3
  ## 3.1.7 - 2021-12-30
4
 
5
  ### Fixed
1
  # Change Log
2
 
3
+ ## 3.2.0 - 2022-04-18
4
+
5
+ ### Added
6
+ - Members Notifications
7
+
8
+ ### Changed
9
+ - Converted `jQuery.fn.click()` (deprecated) to `jQuery.fn.on('click')`
10
+ - Replaced references to Affiliate Royale with Easy Affiliate
11
+ - WP Tested Up To version (5.9)
12
+
13
  ## 3.1.7 - 2021-12-30
14
 
15
  ### Fixed
css/admin-notifications.css ADDED
@@ -0,0 +1,268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #members-notifications {
2
+ position: fixed;
3
+ min-height: 48px;
4
+ margin: 0 0 14px 0;
5
+ top: 0;
6
+ width: 100%;
7
+ max-width: 440px;
8
+ max-height: 100vh;
9
+ overflow-y: scroll;
10
+ background: #FFFFFF;
11
+ box-shadow: 0px 5px 15px #0000000D;
12
+ transform: translate3d(100%, 0, 0);
13
+ transition: transform .3s ease-in-out;
14
+ z-index: -9;
15
+ visibility: hidden;
16
+ right: -9999999999px;
17
+ }
18
+
19
+ #members-notifications.visible {
20
+ transform: translate3d(0, 0, 0);
21
+ z-index: 999999;
22
+ visibility: visible;
23
+ right: 0;
24
+ }
25
+
26
+ .admin-bar #members-notifications {
27
+ top: 32px;
28
+ max-height: calc( 100vh - 32px );
29
+ }
30
+
31
+ #members-notifications * {
32
+ box-sizing: border-box;
33
+ }
34
+
35
+ #members-notifications .members-notifications-top-title {
36
+ background-color: #2679c1;
37
+ display: flex;
38
+ align-items: center;
39
+ padding: 0 16px;
40
+ }
41
+
42
+ #members-notifications .members-notifications-top-title h3 {
43
+ color: #fff;
44
+ }
45
+
46
+ #members-notifications .members-notifications-top-title > div {
47
+ flex-basis: 100%;
48
+ display: flex;
49
+ align-items: center;
50
+ }
51
+
52
+ #members-notifications .members-notifications-top-title svg {
53
+ margin-right: 10px;
54
+ margin-top: 5px;
55
+ }
56
+
57
+ #members-notifications .members-notifications-top-title .actions {
58
+ display: flex;
59
+ justify-content: flex-end;
60
+ }
61
+
62
+ #members-notifications .members-notifications-top-title .actions a {
63
+ color: #fff;
64
+ margin-right: 10px;
65
+ font-size: 14px;
66
+ text-decoration: underline;
67
+ }
68
+
69
+ #members-notifications .members-notifications-top-title .actions a.close {
70
+ text-decoration: none;
71
+ margin-right: 0;
72
+ }
73
+
74
+ #members-notifications .members-notifications-top-title .actions a.close svg {
75
+ margin-right: 0;
76
+ }
77
+
78
+ #members-notifications .members-notification-icon-title {
79
+ display: flex;
80
+ align-items: center;
81
+ }
82
+
83
+ #members-notifications .members-notification-icon-title img {
84
+ margin-right: 10px;
85
+ max-width: 32px;
86
+ }
87
+
88
+ #members-notifications .members-notification-icon-title time {
89
+ margin-left: auto;
90
+ font-size: 13px;
91
+ color: #7f899f;
92
+ min-width: 100px;
93
+ text-align: right;
94
+ }
95
+
96
+ #members-notifications .members-notifications-header {
97
+ display: flex;
98
+ align-items: center;
99
+ justify-content: space-between;
100
+ padding: 8px 16px;
101
+ border-bottom: 1px solid rgba(204, 208, 212, 0.5);
102
+ }
103
+
104
+ #members-notifications .dismiss-all {
105
+ text-decoration: underline;
106
+ color: #99a1b3;
107
+ cursor: pointer;
108
+ background: none;
109
+ border: none;
110
+ padding: 0;
111
+ }
112
+
113
+ #members-notifications .members-notifications-header-bell {
114
+ display: flex;
115
+ align-items: center;
116
+ }
117
+
118
+ #members-notifications .members-notifications-header .members-notifications-bell {
119
+ position: relative;
120
+ top: 2px;
121
+ margin-right: 10px;
122
+ }
123
+
124
+ #members-notifications .members-notifications-header .members-notifications-bell svg {
125
+ max-width: 30px;
126
+ }
127
+
128
+ #members-notifications .members-notifications-header .members-notifications-title {
129
+ font-style: normal;
130
+ font-weight: 500;
131
+ font-size: 14px;
132
+ line-height: 17px;
133
+ color: #23282D;
134
+ }
135
+
136
+ .members-notifications-button {
137
+ position: relative;
138
+ display: inline-flex !important;
139
+ align-items: center;
140
+ justify-content: center;
141
+ }
142
+
143
+ .members-notifications-button:hover {
144
+ cursor: pointer;
145
+ }
146
+
147
+ .members-notifications-count {
148
+ display: flex;
149
+ align-items: center;
150
+ justify-content: center;
151
+ position: absolute;
152
+ top: -10px;
153
+ right: -10px;
154
+ background-color: #eb5757;
155
+ color: #fff;
156
+ width: 20px;
157
+ height: 20px;
158
+ border-radius: 50%;
159
+ font-size: 10px;
160
+ }
161
+
162
+ #members-notifications .dismissed-messages,
163
+ #members-notifications #viewActive {
164
+ display: none;
165
+ }
166
+
167
+ #members-notifications .dismissed-messages .members-notice-dismiss {
168
+ display: none;
169
+ }
170
+
171
+ #members-notifications .members-notifications-header.single-digit .members-notifications-count {
172
+ font-size: 12px;
173
+ }
174
+
175
+ #members-notifications .members-notifications-body {
176
+ position: relative;
177
+ padding: 16px;
178
+ }
179
+
180
+ #members-notifications .members-notifications-messages {
181
+
182
+ }
183
+
184
+ #members-notifications .members-notifications-messages .members-notifications-message {
185
+ margin-bottom: 30px;
186
+ padding-bottom: 30px;
187
+ position: relative;
188
+ border-bottom: 1px solid rgba(204, 208, 212, 0.5);
189
+ }
190
+
191
+ #members-notifications .members-notifications-messages .active-messages .members-notifications-message:last-of-type,
192
+ #members-notifications .members-notifications-messages .dismissed-messages .members-notifications-message:last-of-type {
193
+ border-bottom: none;
194
+ margin-bottom: 0;
195
+ padding-bottom: 0;
196
+ }
197
+
198
+ #members-notifications .members-notifications-messages .members-notifications-title {
199
+ font-weight: bold;
200
+ font-size: 17px;
201
+ line-height: 17px;
202
+ margin: 0;
203
+ color: #444;
204
+ }
205
+
206
+ #members-notifications .members-notifications-messages .members-notifications-content {
207
+ font-weight: normal;
208
+ font-size: 14px;
209
+ line-height: 18px;
210
+ margin: 8px 0 41px 0;
211
+ color: #777777;
212
+ }
213
+
214
+ #members-notifications .members-notifications-messages .members-notifications-content img {
215
+ max-width: 100%;
216
+ height: auto;
217
+ }
218
+
219
+ #members-notifications .members-notifications-messages .members-notifications-buttons {
220
+ margin: -30px 80px 0 0;
221
+ display: flex;
222
+ align-items: center;
223
+ }
224
+
225
+ #members-notifications .members-notifications-messages .members-notifications-buttons a {
226
+ margin: 0 10px 0 0;
227
+ min-height: unset;
228
+ }
229
+
230
+ .members-notifications-buttons button.members-notice-dismiss {
231
+ font-size: 13px;
232
+ color: #7f899f;
233
+ background: none;
234
+ padding: 0;
235
+ border: 0;
236
+ }
237
+
238
+ #members-notifications .members-notifications-messages .members-notifications-buttons button.members-notice-dismiss:hover {
239
+ cursor: pointer;
240
+ }
241
+
242
+ #members-notifications .members-notifications-messages .members-notifications-buttons button.members-notice-dismiss[disabled] {
243
+ cursor: not-allowed;
244
+ }
245
+
246
+ @media screen and (max-width: 768px) {
247
+ #members-notifications .members-notifications-messages {
248
+ padding: 15px 50px 20px 16px;
249
+ }
250
+ #members-notifications .members-notifications-messages .members-notifications-message .members-notifications-title {
251
+ margin: 0 30px 0 0;
252
+ line-height: 22px;
253
+ }
254
+ #members-notifications .members-notifications-messages .members-notifications-message .members-notifications-content {
255
+ font-size: 16px;
256
+ line-height: 22px;
257
+ }
258
+ #members-notifications .members-notifications-messages .members-notifications-message .members-notifications-buttons {
259
+ margin: -30px 80px 0 0;
260
+ }
261
+ #members-notifications .members-notifications-messages .members-notifications-message .members-notifications-buttons a {
262
+ margin: 0;
263
+ display: table;
264
+ }
265
+ #members-notifications .members-notifications-messages .members-notifications-message .members-notifications-buttons .button-secondary {
266
+ margin-top: 6px;
267
+ }
268
+ }
css/admin.css CHANGED
@@ -147,19 +147,28 @@
147
 
148
  /* ====== Members Settings Screen. ====== */
149
 
150
- .members_page_members-settings .welcome-panel {
151
  margin-top: 0;
152
  padding: 40px 20px;
 
 
 
 
 
153
  }
154
 
155
- .members_page_members-settings .welcome-panel .about-description {
156
  margin: 20px 0;
157
  }
158
 
159
- .members_page_members-settings .welcome-panel-content {
160
  margin: 0;
161
  }
162
 
 
 
 
 
163
  @media screen and (min-width: 870px) {
164
 
165
  .members_page_members-settings .members-short-p {
147
 
148
  /* ====== Members Settings Screen. ====== */
149
 
150
+ .memberpress-welcome-panel.welcome-panel {
151
  margin-top: 0;
152
  padding: 40px 20px;
153
+ background: #fff;
154
+ }
155
+
156
+ .memberpress-welcome-panel.welcome-panel:before {
157
+ background: none;
158
  }
159
 
160
+ .memberpress-welcome-panel.welcome-panel .about-description {
161
  margin: 20px 0;
162
  }
163
 
164
+ .memberpress-welcome-panel.welcome-panel-content {
165
  margin: 0;
166
  }
167
 
168
+ .memberpress-welcome-panel.welcome-panel-content .mp-logo-wrap > a {
169
+ display: block;
170
+ }
171
+
172
  @media screen and (min-width: 870px) {
173
 
174
  .members_page_members-settings .members-short-p {
css/admin.min.css CHANGED
@@ -1 +1 @@
1
- #members-cp h2.hndle,#members-cp-side h2.hndle{border-bottom:none !important;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}#members-cp h2.hndle svg,#members-cp-side h2.hndle svg{margin-right:5px}#members-cp-side .postbox-header{border-bottom:none !important}#members-cp-side .handle-actions .handle-order-higher,#members-cp-side .handle-actions .handle-order-lower{display:none}#members-cp-side .handle-actions .handlediv{position:absolute;right:5px}.members-upgrade-header{text-align:center;padding:5px}.members-upgrade-header a{color:#f59431}.memberpress-paid-memberships{background-color:#f5f5f5;padding:50px 10px;text-align:center}.memberpress-paid-memberships a{background-color:#0e4598;display:inline-block;padding:10px 20px;border-radius:300px;color:#fff;text-decoration:none;margin-top:20px}#members-cp-side .members-tabs{position:relative}#members-cp-side .members-tab-nav{background-color:transparent;margin-bottom:20px;border-right:none !important}#members-cp-side .members-tab-nav .members-tab-title{width:33.333%;height:50px;border-right:none !important}#members-cp-side .members-tab-nav .members-tab-title a{border:0}#members-cp-side .members-tab-content h3{font-weight:bold;font-size:15px;margin-top:0;color:#000;margin-bottom:10px}#members-cp-side .members-tab-content .memberpress-paid-memberships{text-align:left;padding:20px}#members-cp-side .members-tab-content .memberpress-paid-memberships a{display:block;text-align:center}#members-cp-side .members-tabs .members-tab-nav li a i,#members-cp-side .members-tabs .members-tab-nav li[aria-selected="false"] a i{color:#555}#members-cp-side .members-tabs .members-tab-nav li a svg,#members-cp-side .members-tabs .members-tab-nav li[aria-selected="false"] a svg{fill:#555}#members-cp-side .members-tabs .members-tab-nav li[aria-selected="true"] a{background-color:transparent;border-bottom:2px solid #3582ae}#members-cp-side .members-tabs .members-tab-nav li[aria-selected="true"] a i{color:#3582ae}#members-cp-side .members-tabs .members-tab-nav li[aria-selected="true"] a svg{fill:#3582ae}.members-tab-title svg,.members-tab-title[aria-selected="false"] svg{fill:#0073aa}.members-tab-title[aria-selected="true"] svg{fill:#555}#wpcontent #members-admin-header{margin-left:-20px;padding:0;padding-left:22px;background-color:#f9f9f9;background-repeat:repeat;background-size:1200px 75px;min-height:36px;position:relative}#wpcontent #members-admin-header img.members-logo{height:90px}.members-upgrade-header #close-members-upgrade-header{position:absolute;right:20px;top:3px}.members-upgrade-header #close-members-upgrade-header:hover{cursor:pointer}.members_page_members-settings .welcome-panel{margin-top:0;padding:40px 20px}.members_page_members-settings .welcome-panel .about-description{margin:20px 0}.members_page_members-settings .welcome-panel-content{margin:0}@media screen and (min-width:870px){.members_page_members-settings .members-short-p{max-width:612px;margin-left:auto;margin-right:auto}.members_page_members-settings .welcome-panel-content{text-align:center}}.members_page_members-settings .welcome-panel .button.button-hero{margin-left:auto;margin-right:auto}.members_page_members-settings .members-svg-wrap{display:inline-block;margin:0 auto 20px}@media screen and (max-width:870px){.members_page_members-settings .welcome-panel{padding:20px}.members_page_members-settings .members-svg-wrap{float:left;margin-right:28px}.admin_page_members-settings.rtl .members-svg-wrap{float:right;margin-right:0;margin-left:28px}}.members_page_members-settings .members-svg-link{display:table-cell;text-align:center;width:128px;height:128px;background:#363b3f;color:#fff;padding:24px 16px 16px;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;border:4px solid #fff;-webkit-box-shadow:0 0 0 4px #363b3f;box-shadow:0 0 0 4px #363b3f}.members_page_members-settings .members-svg-link svg{max-width:84px;max-height:64px;width:auto;height:auto}.members-addons{display:grid;grid-template-columns:1fr 1fr;padding-right:9px}.members-addons .plugin-card-top{width:100%}.members-addon{width:100%;position:relative;float:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.members-addon .desc{margin-bottom:80px}.addon-activate{text-align:center;border:1px solid #ddd;border-radius:3px;padding:5px 10px 10px;display:inline-block;width:100px;position:absolute;right:20px;bottom:20px}.activate-toggle:hover{cursor:pointer}.activate-toggle svg{max-width:20px;position:relative;top:5px}.activate-toggle svg{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.activate-toggle svg.active{-webkit-transform:rotate(0);transform:rotate(0)}.activate-toggle svg path{fill:#ccc}.activate-toggle svg.active path{fill:#8cbd5a}.activate-toggle.processing{cursor:not-allowed;pointer-events:none;opacity:.5}.activate-toggle .action-label{display:inline-block;width:50px;text-align:left}.mepr_dummy_txns{-webkit-filter:blur(3px);filter:blur(3px);position:absolute;top:0;left:0;width:100%;z-index:5;pointer-events:none}.mepr_dummy_txns::after{background-color:rgba(0,0,0,.2);position:absolute;top:0;left:0;width:100%;height:100%;z-index:6}.mepr-upgrade-table{position:relative}.mepr-upgrade-table .mepr-upgrade{position:relative;top:100px;z-index:10;background:rgba(0,0,0,.2);width:100%;height:100%;max-width:600px;margin:0 auto;-webkit-box-shadow:0 0 30px #ccc;box-shadow:0 0 30px #ccc}.mepr-upgrade-content{background-color:#fff;padding:20px;text-align:center}.mepr-upgrade-content h2{font-size:24px}.mepr-upgrade-content h4{font-size:18px}.mepr-upgrade-content .features{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:30px;grid-row-gap:10px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:left;padding:10px}.features li:before{content:"\f147";font-family:dashicons;color:green;font-size:20px;position:relative;top:4px;margin-right:10px}.mepr-upgrade-cta{text-align:center;background-color:#f2f2f2;padding:20px}.mepr-upgrade-cta .mepr-cta-button{display:block;max-width:300px;margin:0 auto 20px;background-color:#fd9c27;color:#fff;padding:15px;font-size:18px;font-weight:bold;text-decoration:none;border-radius:300px}.members-plugin-card.plugin-card:nth-child(even){margin-right:inherit}.members-plugin-card.plugin-card:nth-child(odd){clear:none;margin-left:inherit}.members-plugin-card.plugin-card .plugin-card-top{min-height:0;padding:30px 20px}.members-plugin-card.plugin-card .plugin-icon{top:30px}.members-plugin-card.plugin-card .plugin-card-bottom .column-status{font-weight:bold}.members-plugin-card.plugin-card .plugin-card-bottom .column-status .active{color:#8cbd5a}.members-plugin-card.plugin-card .plugin-card-bottom .column-status .inactive{color:red}.members-plugin-card.plugin-card .plugin-icon{width:64px;height:auto}.plugin-icon-small{width:32px;height:auto}.members-plugin-card.plugin-card .name,.members-plugin-card.plugin-card .desc{margin-right:0;margin-left:84px}.memberpress-about .welcome-panel-column-container{display:-webkit-box;display:-ms-flexbox;display:flex}.memberpress-about .mp-logo{max-width:256px;margin:50px}.members-about-addons{display:grid;grid-template-columns:repeat(3,1fr);grid-column-gap:20px}.members-about-addons .members-plugin-card{margin:0;width:100%}.members-about-addons .members-plugin-card .name h3 a{text-decoration:none}.members-about-addons .members-plugin-card .plugin-card-bottom{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}@media only screen and (min-width:783px){.members_page_roles .column-users,.members_page_roles .column-granted_caps,.members_page_roles .column-denied_caps{width:100px;text-align:center}}.members-title-div #titlewrap input{padding:0 8px;font-size:1.7em;line-height:normal;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}.members-title-div input[name="role"]{font-size:13px;height:22px;margin:0;width:16em}#tabcapsdiv{margin-top:1em}#tabcapsdiv>.hndle{padding:10px;border-bottom:1px solid #eee}#tabcapsdiv .inside,#members-cp .inside{margin:0;padding:0}.members-cap-tabs,.members-tabs{overflow:hidden;background:#fff;background:-webkit-gradient(linear,left top,right top,from(#fafafa),color-stop(20%,#fafafa),color-stop(20%,#fff),to(#fff));background:linear-gradient(90deg,#fafafa 0,#fafafa 20%,#fff 20%,#fff 100%)}@media only screen and (max-width:782px){.members-cap-tabs,.members-tabs{background:linear-gradient(90deg,#fafafa 0,#fafafa 48px,#fff 48px,#fff 100%)}}.members-cap-tabs .members-tab-nav,.members-tabs .members-tab-nav{position:relative;float:left;list-style:none;width:20%;line-height:1em;margin:0 0 -1px 0;padding:0;background-color:#fafafa;border-right:1px solid #eee;-webkit-box-sizing:border-box;box-sizing:border-box}.members-cap-tabs .members-tab-nav li,.members-tabs .members-tab-nav li{display:block;position:relative;margin:0;padding:0;line-height:20px}.members-cap-tabs .members-tab-nav li a,.members-tabs .members-tab-nav li a{display:block;margin:0;padding:10px;line-height:20px !important;text-decoration:none;border-bottom:1px solid #eee;-webkit-box-shadow:none;box-shadow:none}.members-cap-tabs .members-tab-nav li a .dashicons,.members-tabs .members-tab-nav li a .dashicons{line-height:20px;margin-right:3px}.members-cap-tabs .members-tab-nav li[aria-selected="true"] a,.members-tabs .members-tab-nav li[aria-selected="true"] a{position:relative;font-weight:bold;color:#555;background-color:#e0e0e0}@media only screen and (max-width:782px){.members-cap-tabs .members-tab-nav,.members-tabs .members-tab-nav{width:48px}.members-cap-tabs .members-tab-nav li a .dashicons,.members-tabs .members-tab-nav li a .dashicons{width:24px;height:24px;font-size:24px;line-height:24px}.members-tab-nav li .dashicons::before,.members-tab-nav li .dashicons::before{width:24px;height:24px}.members-tab-nav li .label{overflow:hidden;position:absolute;top:-1000em;left:-1000em;width:1px;height:1px}}.members-cap-tabs .members-tab-wrap,.members-tabs .members-tab-wrap{float:left;width:80%;margin-left:-1px}@media only screen and (max-width:782px){.members-cap-tabs .members-tab-wrap,.members-tabs .members-tab-wrap{width:calc(100% - 48px)}}#members-cp .members-tab-content{padding:10px;border-left:1px solid #e5e5e5}@media only screen and (min-width:850px){#side-sortables .members-tabs{background:#fff}#side-sortables .members-tabs .members-tab-wrap{width:100%}#side-sortables .members-tabs .members-tab-nav{display:table;width:100%}#side-sortables .members-tabs .members-tab-nav li{display:table-cell;text-align:center;border-right:1px solid #eee}#side-sortables .members-tabs .members-tab-nav li:last-of-type{border-right:0}#side-sortables .members-tabs .members-tab-nav li a{padding:10px 0}#side-sortables .members-tabs .members-tab-nav .dashicons{width:24px;height:24px;font-size:24px;line-height:24px}#side-sortables .members-tabs .members-tab-nav .dashicons::before{width:24px;height:24px}#side-sortables .members-tabs .members-tab-nav .label{overflow:hidden;position:absolute;top:-1000em;left:-1000em;width:1px;height:1px}}.members-tabs .members-tabs-label{display:block !important;font-weight:bold;display:inline-block;margin-bottom:4px}.members-tabs .butterbean-control-checkbox .members-tabs-label{display:inline !important}.members-tabs .members-tabs-description{display:block;font-style:italic;margin-top:4px}.members-tabs .members-tabs-label+.members-tabs-description{margin-top:0;margin-bottom:4px}#tabcapsdiv table{border-right:0;border-top:0;border-bottom:0}#tabcapsdiv table td,#tabcapsdiv table th{padding:10px;padding-bottom:10px;border-bottom:1px solid #eee;font-size:13px;line-height:20px}#tabcapsdiv table td{padding:9px}#tabcapsdiv tbody tr:last-of-type td{border-bottom:0}#tabcapsdiv tfoot th{border-color:#eee}@media only screen and (max-width:782px){#tabcapsdiv table td,#tabcapsdiv table th{line-height:24px}}.members-roles-select .column-grant,.members-roles-select .column-deny{width:70px !important;text-align:center;display:table-cell !important;clear:none !important}.members-cap-tabs button{display:inline;margin:-4px;line-height:inherit;padding:4px 8px;border:1px solid transparent;background:transparent;border-radius:0;outline:0;-webkit-transition:all .25s ease-out;transition:all .25s ease-out}.members-cap-tabs button:hover,.members-cap-tabs button:focus{border-color:#eee;background:#fafafa;cursor:pointer}.members-cap-tabs button:active{color:#0073aa;border-color:#0073aa}.members-cap-tabs button+.dashicons{display:none;margin-top:1px;margin-bottom:-1px;line-height:inherit}.members-cap-tabs button:hover+.dashicons,.members-cap-tabs button:focus+.dashicons{display:inline-block}.members-tab-content .members-highlight{background-color:rgba(0,115,170,0.05)}.members-tab-content tbody{-webkit-transition:all 2s ease-in-out;transition:all 2s ease-in-out}.members-cp-role-list-wrap{overflow:auto;min-height:42px;max-height:200px;padding:0 .9em;border:solid 1px #dfdfdf;background-color:#fdfdfd}
1
+ #members-cp h2.hndle, #members-cp-side h2.hndle {border-bottom: none !important;justify-content: flex-start;}#members-cp h2.hndle svg, #members-cp-side h2.hndle svg {margin-right: 5px;}#members-cp-side .postbox-header {border-bottom: none !important;}#members-cp-side .handle-actions .handle-order-higher, #members-cp-side .handle-actions .handle-order-lower {display: none;}#members-cp-side .handle-actions .handlediv {position: absolute;right: 5px;}.members-upgrade-header {text-align: center;padding: 5px;}.members-upgrade-header a {color: #F59431;}.memberpress-paid-memberships {background-color: #f5f5f5;padding: 50px 10px;text-align: center;}.memberpress-paid-memberships a {background-color: #0E4598;display: inline-block;padding: 10px 20px;border-radius: 300px;color: #fff;text-decoration: none;margin-top: 20px;}#members-cp-side .members-tabs {position: relative;}#members-cp-side .members-tab-nav {background-color: transparent;margin-bottom: 20px;border-right: none !important;}#members-cp-side .members-tab-nav .members-tab-title {width: 33.333%;height: 50px;border-right: none !important;}#members-cp-side .members-tab-nav .members-tab-title a {border: none;}#members-cp-side .members-tab-content h3 {font-weight: bold;font-size: 15px;margin-top: 0;color: #000;margin-bottom: 10px;}#members-cp-side .members-tab-content .memberpress-paid-memberships {text-align: left;padding: 20px;}#members-cp-side .members-tab-content .memberpress-paid-memberships a {display: block;text-align: center;}#members-cp-side .members-tabs .members-tab-nav li a i, #members-cp-side .members-tabs .members-tab-nav li[aria-selected="false"] a i {color: #555;}#members-cp-side .members-tabs .members-tab-nav li a svg, #members-cp-side .members-tabs .members-tab-nav li[aria-selected="false"] a svg {fill: #555;}#members-cp-side .members-tabs .members-tab-nav li[aria-selected="true"] a {background-color: transparent;border-bottom: 2px solid #3582AE;}#members-cp-side .members-tabs .members-tab-nav li[aria-selected="true"] a i {color: #3582AE;}#members-cp-side .members-tabs .members-tab-nav li[aria-selected="true"] a svg {fill: #3582AE;}.members-tab-title svg, .members-tab-title[aria-selected="false"] svg {fill: #0073aa;}.members-tab-title[aria-selected="true"] svg {fill: #555;}#wpcontent #members-admin-header {margin-left: -20px;padding: 0;padding-left: 22px;background-color: #f9f9f9;background-repeat: repeat;background-size: 1200px 75px;min-height: 36px;position: relative;}#wpcontent #members-admin-header img.members-logo {height: 90px;}.members-upgrade-header #close-members-upgrade-header {position: absolute;right: 20px;top: 3px;}.members-upgrade-header #close-members-upgrade-header:hover {cursor: pointer;}.memberpress-welcome-panel.welcome-panel {margin-top: 0;padding: 40px 20px;background: #fff;}.memberpress-welcome-panel.welcome-panel:before {background: none;}.memberpress-welcome-panel.welcome-panel .about-description {margin: 20px 0;}.memberpress-welcome-panel.welcome-panel-content {margin: 0;}.memberpress-welcome-panel.welcome-panel-content .mp-logo-wrap > a {display: block;}@media screen and (min-width: 870px) {.members_page_members-settings .members-short-p {max-width: 612px;margin-left: auto;margin-right: auto;}.members_page_members-settings .welcome-panel-content {text-align: center;}}.members_page_members-settings .welcome-panel .button.button-hero {margin-left: auto;margin-right: auto;}.members_page_members-settings .members-svg-wrap {display: inline-block;margin: 0 auto 20px;}@media screen and (max-width: 870px) {.members_page_members-settings .welcome-panel {padding: 20px;}.members_page_members-settings .members-svg-wrap {float: left;margin-right: 28px;}.admin_page_members-settings.rtl .members-svg-wrap {float: right;margin-right: 0;margin-left: 28px;}}.members_page_members-settings .members-svg-link {display: table-cell;text-align: center;width: 128px;height: 128px;background: #363b3f;color: #fff;padding: 24px 16px 16px;border-radius: 50%;box-sizing: border-box;border: 4px solid #ffffff;box-shadow: 0 0 0 4px #363b3f;}.members_page_members-settings .members-svg-link svg {max-width: 84px;max-height: 64px;width: auto;height: auto;}.members-addons {display: grid;grid-template-columns: 1fr 1fr;padding-right: 9px;}.members-addons .plugin-card-top {width: 100%;}.members-addon {width: 100%;position: relative;float: none;display: flex;align-items: center;}.members-addon .desc {margin-bottom: 80px;}.addon-activate {text-align: center;border: 1px solid #ddd;border-radius: 3px;padding: 5px 10px 10px;display: inline-block;width: 100px;position: absolute;right: 20px;bottom: 20px;}.activate-toggle:hover {cursor: pointer;}.activate-toggle svg {max-width: 20px;position: relative;top: 5px;}.activate-toggle svg {transform: rotate(180deg);}.activate-toggle svg.active {transform: rotate(0);}.activate-toggle svg path {fill: #cccccc;}.activate-toggle svg.active path {fill: #8CBD5A;}.activate-toggle.processing {cursor: not-allowed;pointer-events: none;opacity: 0.5;}.activate-toggle .action-label {display: inline-block;width: 50px;text-align: left;}.mepr_dummy_txns {filter: blur(3px);position: absolute;top: 0;left: 0;width: 100%;z-index: 5;pointer-events: none;}.mepr_dummy_txns::after {background-color: rgba(0,0,0,.2);position: absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 6;}.mepr-upgrade-table {position: relative;}.mepr-upgrade-table .mepr-upgrade {position: relative;top: 100px;z-index: 10;background: rgba( 0,0,0,.2 );width: 100%;height: 100%;max-width: 600px;margin: 0 auto;box-shadow: 0 0 30px #ccc;}.mepr-upgrade-content {background-color: #fff;padding: 20px;text-align: center;}.mepr-upgrade-content h2 {font-size: 24px;}.mepr-upgrade-content h4 {font-size: 18px;}.mepr-upgrade-content .features {display: grid;grid-template-columns: 1fr 1fr;grid-column-gap: 30px;grid-row-gap: 10px;align-items: center;justify-content: center;text-align: left;padding: 10px;}.features li:before {content: "\f147";font-family: dashicons;color: green;font-size: 20px;position: relative;top: 4px;margin-right: 10px;}.mepr-upgrade-cta {text-align: center;background-color: #f2f2f2;padding: 20px;}.mepr-upgrade-cta .mepr-cta-button {display: block;max-width: 300px;margin: 0 auto 20px;background-color: #FD9C27;color: #fff;padding: 15px;font-size: 18px;font-weight: bold;text-decoration: none;border-radius: 300px;}.members-plugin-card.plugin-card:nth-child(even) {margin-right: inherit;}.members-plugin-card.plugin-card:nth-child(odd) {clear: none;margin-left: inherit;}.members-plugin-card.plugin-card .plugin-card-top {min-height: 0;padding: 30px 20px;}.members-plugin-card.plugin-card .plugin-icon {top: 30px;}.members-plugin-card.plugin-card .plugin-card-bottom .column-status {font-weight: bold;}.members-plugin-card.plugin-card .plugin-card-bottom .column-status .active {color: #8CBD5A;}.members-plugin-card.plugin-card .plugin-card-bottom .column-status .inactive {color: red;}.members-plugin-card.plugin-card .plugin-icon {width: 64px;height: auto;}.plugin-icon-small {width: 32px;height: auto;}.members-plugin-card.plugin-card .name, .members-plugin-card.plugin-card .desc {margin-right: 0;margin-left: 84px;}.memberpress-about .welcome-panel-column-container {display: flex;}.memberpress-about .mp-logo {max-width: 256px;margin: 50px;}.members-about-addons {display: grid;grid-template-columns: repeat(3, 1fr);grid-column-gap: 20px;}.members-about-addons .members-plugin-card {margin: 0;width: 100%;}.members-about-addons .members-plugin-card .name h3 a {text-decoration: none;}.members-about-addons .members-plugin-card .plugin-card-bottom {display: flex;align-items: center;justify-content: space-between;}@media only screen and ( min-width: 783px ) {.members_page_roles .column-users, .members_page_roles .column-granted_caps, .members_page_roles .column-denied_caps {width: 100px;text-align: center;}}.members-title-div #titlewrap input {padding: 0 8px;font-size: 1.7em;line-height: normal;height: 1.7em;width: 100%;outline: none;margin: 0 0 3px;background-color: #fff;}.members-title-div input[name="role"] {font-size: 13px;height: 22px;margin: 0;width: 16em;}#tabcapsdiv {margin-top: 1em;}#tabcapsdiv > .hndle {padding: 10px;border-bottom: 1px solid #eee;}#tabcapsdiv .inside, #members-cp .inside {margin: 0;padding: 0;}.members-cap-tabs, .members-tabs {overflow: hidden;background: #fff;background: linear-gradient( 90deg, #fafafa 0%, #fafafa 20%, #fff 20%, #fff 100% );}@media only screen and ( max-width: 782px ) {.members-cap-tabs, .members-tabs {background: linear-gradient( 90deg, #fafafa 0%, #fafafa 48px, #fff 48px, #fff 100% );}}.members-cap-tabs .members-tab-nav, .members-tabs .members-tab-nav {position: relative;float: left;list-style: none;width: 20%;line-height: 1em;margin: 0 0 -1px 0;padding: 0;background-color: #fafafa;border-right: 1px solid #eee;box-sizing: border-box;}.members-cap-tabs .members-tab-nav li, .members-tabs .members-tab-nav li {display: block;position: relative;margin: 0;padding: 0;line-height: 20px;}.members-cap-tabs .members-tab-nav li a, .members-tabs .members-tab-nav li a {display: block;margin: 0;padding: 10px;line-height: 20px !important;text-decoration: none;border-bottom: 1px solid #eee;box-shadow: none;}.members-cap-tabs .members-tab-nav li a .dashicons, .members-tabs .members-tab-nav li a .dashicons {line-height: 20px;margin-right: 3px;}.members-cap-tabs .members-tab-nav li[aria-selected="true"] a, .members-tabs .members-tab-nav li[aria-selected="true"] a {position: relative;font-weight: bold;color: #555;background-color: #e0e0e0;}@media only screen and ( max-width: 782px ) {.members-cap-tabs .members-tab-nav, .members-tabs .members-tab-nav {width: 48px;}.members-cap-tabs .members-tab-nav li a .dashicons, .members-tabs .members-tab-nav li a .dashicons {width: 24px;height: 24px;font-size: 24px;line-height: 24px;}.members-tab-nav li .dashicons::before, .members-tab-nav li .dashicons::before {width: 24px;height: 24px;}.members-tab-nav li .label {overflow: hidden;position: absolute;top: -1000em;left: -1000em;width: 1px;height: 1px;}}.members-cap-tabs .members-tab-wrap, .members-tabs .members-tab-wrap {float: left;width: 80%;margin-left: -1px;}@media only screen and ( max-width: 782px ) {.members-cap-tabs .members-tab-wrap, .members-tabs .members-tab-wrap {width: calc( 100% - 48px );}}#members-cp .members-tab-content {padding: 10px;border-left: 1px solid #e5e5e5;}@media only screen and ( min-width: 850px ) {#side-sortables .members-tabs {background: #fff;}#side-sortables .members-tabs .members-tab-wrap {width: 100%;}#side-sortables .members-tabs .members-tab-nav {display: table;width: 100%;}#side-sortables .members-tabs .members-tab-nav li {display: table-cell;text-align: center;border-right: 1px solid #eee;}#side-sortables .members-tabs .members-tab-nav li:last-of-type {border-right: none;}#side-sortables .members-tabs .members-tab-nav li a {padding: 10px 0;}#side-sortables .members-tabs .members-tab-nav .dashicons {width: 24px;height: 24px;font-size: 24px;line-height: 24px;}#side-sortables .members-tabs .members-tab-nav .dashicons::before {width: 24px;height: 24px;}#side-sortables .members-tabs .members-tab-nav .label {overflow: hidden;position: absolute;top: -1000em;left: -1000em;width: 1px;height: 1px;}}.members-tabs .members-tabs-label {display : block !important;font-weight : bold;display : inline-block;margin-bottom : 4px;}.members-tabs .butterbean-control-checkbox .members-tabs-label {display: inline !important;}.members-tabs .members-tabs-description {display : block;font-style : italic;margin-top : 4px;}.members-tabs .members-tabs-label + .members-tabs-description {margin-top : 0;margin-bottom : 4px;}#tabcapsdiv table {border-right: none;border-top: none;border-bottom: none;}#tabcapsdiv table td, #tabcapsdiv table th {padding: 10px;padding-bottom: 10px;border-bottom: 1px solid #eee;font-size: 13px;line-height: 20px;}#tabcapsdiv table td {padding: 9px;}#tabcapsdiv tbody tr:last-of-type td {border-bottom: none;}#tabcapsdiv tfoot th {border-color: #eee;}@media only screen and ( max-width: 782px ) {#tabcapsdiv table td, #tabcapsdiv table th {line-height: 24px;}}.members-roles-select .column-grant, .members-roles-select .column-deny {width: 70px !important;text-align: center;display: table-cell !important;clear: none !important;}.members-cap-tabs button {display: inline;margin: -4px;line-height: inherit;padding: 4px 8px;border: 1px solid transparent;background: transparent;border-radius: 0;outline: none;-webkit-transition: all 0.25s ease-out;-moz-transition: all 0.25s ease-out;-o-transition: all 0.25s ease-out;transition: all 0.25s ease-out;}.members-cap-tabs button:hover, .members-cap-tabs button:focus {border-color: #eee;background: #fafafa;cursor: pointer;}.members-cap-tabs button:active {color: #0073aa;border-color: #0073aa;}.members-cap-tabs button + .dashicons {display: none;margin-top: 1px;margin-bottom: -1px;line-height: inherit;}.members-cap-tabs button:hover + .dashicons, .members-cap-tabs button:focus + .dashicons {display: inline-block;}.members-tab-content .members-highlight {background-color: rgba( 0, 115, 170, 0.05 );}.members-tab-content tbody {-webkit-transition: all 2s ease-in-out;-moz-transition: all 2s ease-in-out;-o-transition: all 2s ease-in-out;transition: all 2s ease-in-out;}.members-cp-role-list-wrap {overflow: auto;min-height: 42px;max-height: 200px;padding: 0 0.9em;border: solid 1px rgb(223, 223, 223);background-color: rgb(253, 253, 253);}
img/bee.png ADDED
Binary file
js/admin-notifications.js ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function($) {
2
+
3
+ $('#membersAdminHeaderNotifications').on('click', function(e) {
4
+ e.preventDefault();
5
+ $('#members-notifications').toggleClass('visible');
6
+ $('#caseproofFlyoutButton').trigger('click');
7
+ });
8
+ $('#membersNotificationsClose').on('click', function(e) {
9
+ e.preventDefault();
10
+ $('#members-notifications').removeClass('visible');
11
+ });
12
+
13
+ var viewDismissed = $('#viewDismissed');
14
+ var viewActive = $('#viewActive');
15
+ var dismissedMessages = $('.dismissed-messages');
16
+ var activeMessages = $('.active-messages');
17
+
18
+ viewDismissed.on('click', function(event) {
19
+ event.preventDefault();
20
+ dismissedMessages.show();
21
+ activeMessages.hide();
22
+ viewActive.show();
23
+ viewDismissed.hide();
24
+ });
25
+ viewActive.on('click', function(event) {
26
+ event.preventDefault();
27
+ dismissedMessages.hide();
28
+ activeMessages.show();
29
+ viewActive.hide();
30
+ viewDismissed.show();
31
+ });
32
+
33
+ $('body').on('click', '.members-notice-dismiss', function(event) {
34
+
35
+ event.preventDefault();
36
+
37
+ var $this = $(this);
38
+ var messageId = $this.data('message-id');
39
+ var message = $('#members-notifications-message-' + messageId);
40
+ var countEl = $('#membersAdminMenuUnreadCount');
41
+ var mainCountEl = $('#membersAdminHeaderNotificationsCount');
42
+ var trayCountEl = $('#membersNotificationsCountTray');
43
+ var count = parseInt(mainCountEl.html());
44
+ var adminMenuCount = $('#membersAdminMenuUnreadCount');
45
+
46
+ var data = {
47
+ action: 'members_notification_dismiss',
48
+ nonce: MembersAdminNotifications.nonce,
49
+ id: messageId,
50
+ };
51
+
52
+ $this.prop('disabled', 'disabled');
53
+ message.fadeOut();
54
+
55
+ $.post( MembersAdminNotifications.ajax_url, data, function( res ) {
56
+
57
+ if ( ! res.success ) {
58
+ console.debug( res );
59
+ } else {
60
+ message.prependTo(dismissedMessages);
61
+ message.show();
62
+ count--;
63
+
64
+ if ( count < 0 ) {
65
+ count = 0;
66
+ countEl.hide();
67
+ mainCountEl.hide();
68
+ trayCountEl.hide();
69
+ adminMenuCount.closest('.awaiting-mod').remove();
70
+ } else if ( 0 == count ) {
71
+ countEl.hide();
72
+ mainCountEl.hide();
73
+ trayCountEl.hide();
74
+ $('.members-notifications-none').show();
75
+ $('.dismiss-all').hide();
76
+ adminMenuCount.closest('.awaiting-mod').remove();
77
+ } else if ( count < 10 ) {
78
+ countEl.addClass('single-digit');
79
+ countEl.html('(' + count + ')');
80
+ mainCountEl.html(count);
81
+ trayCountEl.html(count);
82
+ adminMenuCount.html(count);
83
+ } else {
84
+ countEl.html('(' + count + ')');
85
+ mainCountEl.html(count);
86
+ trayCountEl.html(count);
87
+ adminMenuCount.html(count);
88
+ }
89
+ }
90
+
91
+ } ).fail( function( xhr, textStatus, e ) {
92
+
93
+ console.debug( xhr.responseText );
94
+ message.show('Message could not be dismissed.');
95
+ } );
96
+ });
97
+
98
+ $('body').on('click', '.dismiss-all' ,function(event) {
99
+
100
+ event.preventDefault();
101
+
102
+ var $this = $(this);
103
+ var mainCountEl = $('#membersAdminHeaderNotificationsCount');
104
+ var trayCountEl = $('#membersNotificationsCountTray');
105
+ var count = parseInt(mainCountEl.html());
106
+ var adminMenuCount = $('#membersAdminMenuUnreadCount');
107
+
108
+ var data = {
109
+ action: 'members_notification_dismiss',
110
+ nonce: MembersAdminNotifications.nonce,
111
+ id: 'all',
112
+ };
113
+
114
+ $this.prop('disabled', 'disabled');
115
+
116
+ $.post( MembersAdminNotifications.ajax_url, data, function( res ) {
117
+
118
+ if ( ! res.success ) {
119
+ console.debug( res );
120
+ } else {
121
+ mainCountEl.hide();
122
+ trayCountEl.hide();
123
+ adminMenuCount.closest('.awaiting-mod').remove();
124
+ $('.members-notifications-none').show();
125
+ $('.dismiss-all').hide();
126
+
127
+ $.each($('.active-messages .members-notifications-message'), function(i, el) {
128
+ $(el).appendTo(dismissedMessages);
129
+ });
130
+ }
131
+
132
+ } ).fail( function( xhr, textStatus, e ) {
133
+
134
+ console.debug( xhr.responseText );
135
+ message.show('Messages could not be dismissed.');
136
+ } );
137
+ });
138
+ });
js/edit-post.js CHANGED
@@ -12,7 +12,8 @@
12
  jQuery( '.members-tab-nav :first-child' ).attr( 'aria-selected', 'true' );
13
 
14
  // When a tab nav item is clicked.
15
- jQuery( '.members-tab-nav li a' ).click(
 
16
  function( j ) {
17
 
18
  // Prevent the default browser action when a link is clicked.
12
  jQuery( '.members-tab-nav :first-child' ).attr( 'aria-selected', 'true' );
13
 
14
  // When a tab nav item is clicked.
15
+ jQuery( '.members-tab-nav li a' ).on(
16
+ 'click',
17
  function( j ) {
18
 
19
  // Prevent the default browser action when a link is clicked.
js/edit-post.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(".members-tabs .members-tab-content").hide(),jQuery(".members-tabs .members-tab-content:first-child").show(),jQuery(".members-tab-nav :first-child").attr("aria-selected","true"),jQuery(".members-tab-nav li a").click(function(e){e.preventDefault();var t=jQuery(this).attr("href");jQuery(this).parents(".members-tabs").find(".members-tab-content").hide(),jQuery(this).parents(".members-tabs").find(t).show(),jQuery(this).parents(".members-tabs").find(".members-tab-title").attr("aria-selected","false"),jQuery(this).parent().attr("aria-selected","true")});
1
+ jQuery(".members-tabs .members-tab-content").hide(),jQuery(".members-tabs .members-tab-content:first-child").show(),jQuery(".members-tab-nav :first-child").attr("aria-selected","true"),jQuery(".members-tab-nav li a").on("click",function(e){e.preventDefault();var t=jQuery(this).attr("href");jQuery(this).parents(".members-tabs").find(".members-tab-content").hide(),jQuery(this).parents(".members-tabs").find(t).show(),jQuery(this).parents(".members-tabs").find(".members-tab-title").attr("aria-selected","false"),jQuery(this).parent().attr("aria-selected","true")});
js/edit-role.js CHANGED
@@ -3,7 +3,8 @@ jQuery( document ).ready( function() {
3
  /* ====== Delete Role Link (on Roles and Edit Role screens) ====== */
4
 
5
  // When the delete role link is clicked, give a "AYS?" popup to confirm.
6
- jQuery( '.members-delete-role-link' ).click(
 
7
  function() {
8
  return window.confirm( members_i18n.ays_delete_role );
9
  }
@@ -155,7 +156,8 @@ jQuery( document ).ready( function() {
155
  jQuery( '.members-which-tab' ).text( jQuery( '.members-tab-nav :first-child a' ).text() );
156
 
157
  // When a tab nav item is clicked.
158
- jQuery( '.members-tab-nav li a' ).click(
 
159
  function( j ) {
160
 
161
  // Prevent the default browser action when a link is clicked.
@@ -351,7 +353,8 @@ jQuery( document ).ready( function() {
351
  ); // .keypress()
352
 
353
  // When the new cap button is clicked.
354
- jQuery( '#members-add-new-cap' ).click(
 
355
  function() {
356
 
357
  // Get the new cap value.
3
  /* ====== Delete Role Link (on Roles and Edit Role screens) ====== */
4
 
5
  // When the delete role link is clicked, give a "AYS?" popup to confirm.
6
+ jQuery( '.members-delete-role-link' ).on(
7
+ 'click',
8
  function() {
9
  return window.confirm( members_i18n.ays_delete_role );
10
  }
156
  jQuery( '.members-which-tab' ).text( jQuery( '.members-tab-nav :first-child a' ).text() );
157
 
158
  // When a tab nav item is clicked.
159
+ jQuery( '.members-tab-nav li a' ).on(
160
+ 'click',
161
  function( j ) {
162
 
163
  // Prevent the default browser action when a link is clicked.
353
  ); // .keypress()
354
 
355
  // When the new cap button is clicked.
356
+ jQuery( '#members-add-new-cap' ).on(
357
+ 'click',
358
  function() {
359
 
360
  // Get the new cap value.
js/edit-role.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(){function r(e){e=e.toLowerCase().trim().replace(/<.*?>/g,"").replace(/\s/g,"_").replace(/[^a-zA-Z0-9_]/g,""),jQuery(".role-slug").text(e)}jQuery(".members-delete-role-link").click(function(){return window.confirm(members_i18n.ays_delete_role)}),jQuery('input[name="role_name"]').keyup(function(){jQuery('input[name="role"]').val()||r(this.value)}),jQuery('input[name="role"], .role-ok-button').hide(),jQuery(document).on("click",".role-edit-button.closed",function(){jQuery(this).removeClass("closed").addClass("open").text(members_i18n.button_role_ok),jQuery('input[name="role"]').show(),jQuery('input[name="role"]').trigger("focus"),jQuery('input[name="role"]').attr("value",jQuery(".role-slug").text())}),jQuery(document).on("click",".role-edit-button.open",function(){jQuery(this).removeClass("open").addClass("closed").text(members_i18n.button_role_edit),jQuery('input[name="role"]').hide();var e=jQuery('input[name="role"]').val();r(e||jQuery('input[name="role_name"]').val())}),jQuery('input[name="role"]').keypress(function(e){if(13===e.keyCode)return jQuery(".role-edit-button").click().trigger("focus"),e.preventDefault(),!1}),jQuery('.users_page_role-new input[name="role_name"]').val()||jQuery(".users_page_role-new #publish").prop("disabled",!0),jQuery('.users_page_role-new input[name="role_name"]').on("input",function(){jQuery(this).val()?jQuery(".users_page_role-new #publish").prop("disabled",!1):jQuery(".users_page_role-new #publish").prop("disabled",!0)});var t=wp.template("members-cap-section"),a=wp.template("members-cap-control");function e(){var e=jQuery("#members-tab-all input[data-grant-cap]:checked").length,r=jQuery("#members-tab-all input[data-deny-cap]:checked").length,t=jQuery('#members-tab-custom input[name="grant-new-caps[]"]:checked').length,a=jQuery('#members-tab-custom input[name="deny-new-caps[]"]:checked').length;jQuery("#submitdiv .granted-count").text(e+t),jQuery("#submitdiv .denied-count").text(r+a)}"undefined"!=typeof members_sections&&"undefined"!=typeof members_controls&&(_.each(members_sections,function(e){jQuery(".members-tab-wrap").append(t(e))}),_.each(members_controls,function(e){jQuery("#members-tab-"+e.section+" tbody").append(a(e))})),jQuery(".members-cap-tabs .members-tab-content").hide(),jQuery(".members-cap-tabs .members-tab-content:first-child").show(),jQuery(".members-tab-nav :first-child").attr("aria-selected","true"),jQuery(".members-which-tab").text(jQuery(".members-tab-nav :first-child a").text()),jQuery(".members-tab-nav li a").click(function(e){e.preventDefault();var r=jQuery(this).attr("href");jQuery(this).parents(".members-cap-tabs").find(".members-tab-content").hide(),jQuery(this).parents(".members-cap-tabs").find(r).show(),jQuery(this).parents(".members-cap-tabs").find(".members-tab-title").attr("aria-selected","false"),jQuery(this).parent().attr("aria-selected","true"),jQuery(".members-which-tab").text(jQuery(this).text())}),e(),jQuery(document).on("change",".members-cap-checklist input[data-grant-cap], .members-cap-checklist input[data-deny-cap]",function(){!function(e){var r="grant",t="deny";jQuery(e).attr("data-deny-cap")&&(r="deny",t="grant");var a=jQuery(e).attr("data-"+r+"-cap");jQuery(e).prop("checked")?(jQuery("input[data-"+r+'-cap="'+a+'"]').not(e).prop("checked",!0),jQuery("input[data-"+t+'-cap="'+a+'"]').prop("checked",!1)):jQuery("input[data-"+r+'-cap="'+a+'"]').not(e).prop("checked",!1)}(this),e()}),jQuery(document).on("click",".editable-role .members-cap-checklist button",function(){var e=jQuery(this).closest(".members-cap-checklist"),r=jQuery(e).find("input[data-grant-cap]"),t=jQuery(e).find("input[data-deny-cap]");jQuery(r).prop("checked")?(jQuery(r).prop("checked",!1),jQuery(t).prop("checked",!0).change()):jQuery(t).prop("checked")?(jQuery(r).prop("checked",!1),jQuery(t).prop("checked",!1).change()):jQuery(r).prop("checked",!0).change()}),jQuery(document).on("mouseenter",".editable-role .members-cap-checklist button",function(){jQuery(".members-cap-checklist button:focus").not(this).blur()}),postboxes.add_postbox_toggles(pagenow),jQuery("#newcapdiv button.handlediv").attr("type","button"),jQuery("#members-add-new-cap").prop("disabled",!0),jQuery("#members-new-cap-field").on("input",function(){-1===jQuery.inArray(jQuery(this).val(),members_i18n.hidden_caps)?jQuery("#members-add-new-cap").prop("disabled",!1):jQuery("#members-add-new-cap").prop("disabled",!0)}),jQuery("#members-new-cap-field").keypress(function(e){if(13===e.keyCode)return jQuery("#members-add-new-cap").click(),e.preventDefault(),!1}),jQuery("#members-add-new-cap").click(function(){var e=jQuery("#members-new-cap-field").val();if(e=e.trim().replace(/<.*?>/g,"").replace(/\s/g,"_").replace(/[^a-zA-Z0-9_]/g,"")){if(-1!==jQuery.inArray(jQuery(this).val(),members_i18n.hidden_caps))return;jQuery('a[href="#members-tab-custom"]').trigger("click"),members_i18n.label_grant_cap=members_i18n.label_grant_cap.replace(/%s/g,"<code>"+e+"</code>"),members_i18n.label_deny_cap=members_i18n.label_deny_cap.replace(/%s/g,"<code>"+e+"</code>");var r={cap:e,readonly:"",name:{grant:"grant-new-caps[]",deny:"deny-new-caps[]"},is_granted_cap:!0,is_denied_cap:!1,label:{cap:e,grant:members_i18n.label_grant_cap,deny:members_i18n.label_deny_cap}};jQuery("#members-tab-custom tbody").prepend(a(r));var t=jQuery('[data-grant-cap="'+e+'"]').parents(".members-cap-checklist");jQuery(t).addClass("members-highlight"),setTimeout(function(){jQuery(t).removeClass("members-highlight")},500),jQuery("#members-new-cap-field").val(""),jQuery("#members-add-new-cap").prop("disabled",!0),jQuery('.members-cap-checklist input[data-grant-cap="'+e+'"]').trigger("change")}})});
1
+ jQuery(document).ready(function(){function e(e){e=e.toLowerCase().trim().replace(/<.*?>/g,"").replace(/\s/g,"_").replace(/[^a-zA-Z0-9_]/g,""),jQuery(".role-slug").text(e)}jQuery(".members-delete-role-link").on("click",function(){return window.confirm(members_i18n.ays_delete_role)}),jQuery('input[name="role_name"]').keyup(function(){jQuery('input[name="role"]').val()||e(this.value)}),jQuery('input[name="role"], .role-ok-button').hide(),jQuery(document).on("click",".role-edit-button.closed",function(){jQuery(this).removeClass("closed").addClass("open").text(members_i18n.button_role_ok),jQuery('input[name="role"]').show(),jQuery('input[name="role"]').trigger("focus"),jQuery('input[name="role"]').attr("value",jQuery(".role-slug").text())}),jQuery(document).on("click",".role-edit-button.open",function(){jQuery(this).removeClass("open").addClass("closed").text(members_i18n.button_role_edit),jQuery('input[name="role"]').hide();var r=jQuery('input[name="role"]').val();e(r||jQuery('input[name="role_name"]').val())}),jQuery('input[name="role"]').keypress(function(e){if(13===e.keyCode)return jQuery(".role-edit-button").click().trigger("focus"),e.preventDefault(),!1}),jQuery('.users_page_role-new input[name="role_name"]').val()||jQuery(".users_page_role-new #publish").prop("disabled",!0),jQuery('.users_page_role-new input[name="role_name"]').on("input",function(){jQuery(this).val()?jQuery(".users_page_role-new #publish").prop("disabled",!1):jQuery(".users_page_role-new #publish").prop("disabled",!0)});var r=wp.template("members-cap-section"),t=wp.template("members-cap-control");function a(){var e=jQuery("#members-tab-all input[data-grant-cap]:checked").length,r=jQuery("#members-tab-all input[data-deny-cap]:checked").length,t=jQuery('#members-tab-custom input[name="grant-new-caps[]"]:checked').length,a=jQuery('#members-tab-custom input[name="deny-new-caps[]"]:checked').length;jQuery("#submitdiv .granted-count").text(e+t),jQuery("#submitdiv .denied-count").text(r+a)}"undefined"!=typeof members_sections&&"undefined"!=typeof members_controls&&(_.each(members_sections,function(e){jQuery(".members-tab-wrap").append(r(e))}),_.each(members_controls,function(e){jQuery("#members-tab-"+e.section+" tbody").append(t(e))})),jQuery(".members-cap-tabs .members-tab-content").hide(),jQuery(".members-cap-tabs .members-tab-content:first-child").show(),jQuery(".members-tab-nav :first-child").attr("aria-selected","true"),jQuery(".members-which-tab").text(jQuery(".members-tab-nav :first-child a").text()),jQuery(".members-tab-nav li a").on("click",function(e){e.preventDefault();var r=jQuery(this).attr("href");jQuery(this).parents(".members-cap-tabs").find(".members-tab-content").hide(),jQuery(this).parents(".members-cap-tabs").find(r).show(),jQuery(this).parents(".members-cap-tabs").find(".members-tab-title").attr("aria-selected","false"),jQuery(this).parent().attr("aria-selected","true"),jQuery(".members-which-tab").text(jQuery(this).text())}),a(),jQuery(document).on("change",".members-cap-checklist input[data-grant-cap], .members-cap-checklist input[data-deny-cap]",function(){!function(e){var r="grant",t="deny";jQuery(e).attr("data-deny-cap")&&(r="deny",t="grant");var a=jQuery(e).attr("data-"+r+"-cap");jQuery(e).prop("checked")?(jQuery("input[data-"+r+'-cap="'+a+'"]').not(e).prop("checked",!0),jQuery("input[data-"+t+'-cap="'+a+'"]').prop("checked",!1)):jQuery("input[data-"+r+'-cap="'+a+'"]').not(e).prop("checked",!1)}(this),a()}),jQuery(document).on("click",".editable-role .members-cap-checklist button",function(){var e=jQuery(this).closest(".members-cap-checklist"),r=jQuery(e).find("input[data-grant-cap]"),t=jQuery(e).find("input[data-deny-cap]");jQuery(r).prop("checked")?(jQuery(r).prop("checked",!1),jQuery(t).prop("checked",!0).change()):jQuery(t).prop("checked")?(jQuery(r).prop("checked",!1),jQuery(t).prop("checked",!1).change()):jQuery(r).prop("checked",!0).change()}),jQuery(document).on("mouseenter",".editable-role .members-cap-checklist button",function(){jQuery(".members-cap-checklist button:focus").not(this).blur()}),postboxes.add_postbox_toggles(pagenow),jQuery("#newcapdiv button.handlediv").attr("type","button"),jQuery("#members-add-new-cap").prop("disabled",!0),jQuery("#members-new-cap-field").on("input",function(){-1===jQuery.inArray(jQuery(this).val(),members_i18n.hidden_caps)?jQuery("#members-add-new-cap").prop("disabled",!1):jQuery("#members-add-new-cap").prop("disabled",!0)}),jQuery("#members-new-cap-field").keypress(function(e){if(13===e.keyCode)return jQuery("#members-add-new-cap").click(),e.preventDefault(),!1}),jQuery("#members-add-new-cap").on("click",function(){var e=jQuery("#members-new-cap-field").val();if(e=e.trim().replace(/<.*?>/g,"").replace(/\s/g,"_").replace(/[^a-zA-Z0-9_]/g,"")){if(-1!==jQuery.inArray(jQuery(this).val(),members_i18n.hidden_caps))return;jQuery('a[href="#members-tab-custom"]').trigger("click"),members_i18n.label_grant_cap=members_i18n.label_grant_cap.replace(/%s/g,"<code>"+e+"</code>"),members_i18n.label_deny_cap=members_i18n.label_deny_cap.replace(/%s/g,"<code>"+e+"</code>");var r={cap:e,readonly:"",name:{grant:"grant-new-caps[]",deny:"deny-new-caps[]"},is_granted_cap:!0,is_denied_cap:!1,label:{cap:e,grant:members_i18n.label_grant_cap,deny:members_i18n.label_deny_cap}};jQuery("#members-tab-custom tbody").prepend(t(r));var a=jQuery('[data-grant-cap="'+e+'"]').parents(".members-cap-checklist");jQuery(a).addClass("members-highlight"),setTimeout(function(){jQuery(a).removeClass("members-highlight")},500),jQuery("#members-new-cap-field").val(""),jQuery("#members-add-new-cap").prop("disabled",!0),jQuery('.members-cap-checklist input[data-grant-cap="'+e+'"]').trigger("change")}})});
js/settings.js CHANGED
@@ -28,7 +28,7 @@ jQuery( document ).ready( function($) {
28
  }
29
  );
30
 
31
- $('.activate-addon').click(function(e) {
32
  var $this = $(this);
33
  var addon = $this.data('addon');
34
  $this.addClass('processing');
28
  }
29
  );
30
 
31
+ $('.activate-addon').on('click', function(e) {
32
  var $this = $(this);
33
  var addon = $this.data('addon');
34
  $this.addClass('processing');
js/settings.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(s){!1===jQuery('[name="members_settings[content_permissions]"]').prop("checked")&&jQuery('[name="members_settings[content_permissions]"]').parents("tr").next("tr").hide(),!1===jQuery('[name="members_settings[private_feed]"]').prop("checked")&&jQuery('[name="members_settings[private_feed]"]').parents("tr").next("tr").hide(),jQuery('[name="members_settings[content_permissions]"], [name="members_settings[private_feed]"]').on("change",function(){jQuery(this).prop("checked")?jQuery(this).parents("tr").next("tr").show("slow"):jQuery(this).parents("tr").next("tr").hide("slow")}),s(".activate-addon").click(function(e){var n=s(this),t=n.data("addon");n.addClass("processing"),s.ajax({url:ajaxurl,type:"POST",data:{action:"mbrs_toggle_addon",nonce:membersAddons.nonce,addon:t}}).done(function(e){n.find(".action-label").html(e.data.action_label);var t=n.find("svg");t.removeClass(),t.addClass(e.data.status)}).fail(function(e){alert(e.data.msg)}).always(function(e){n.removeClass("processing")})})});
1
+ jQuery(document).ready(function(e){!1===jQuery('[name="members_settings[content_permissions]"]').prop("checked")&&jQuery('[name="members_settings[content_permissions]"]').parents("tr").next("tr").hide(),!1===jQuery('[name="members_settings[private_feed]"]').prop("checked")&&jQuery('[name="members_settings[private_feed]"]').parents("tr").next("tr").hide(),jQuery('[name="members_settings[content_permissions]"], [name="members_settings[private_feed]"]').on("change",function(){jQuery(this).prop("checked")?jQuery(this).parents("tr").next("tr").show("slow"):jQuery(this).parents("tr").next("tr").hide("slow")}),e(".activate-addon").on("click",function(t){var n=e(this),s=n.data("addon");n.addClass("processing"),e.ajax({url:ajaxurl,type:"POST",data:{action:"mbrs_toggle_addon",nonce:membersAddons.nonce,addon:s}}).done(function(e){n.find(".action-label").html(e.data.action_label);var t=n.find("svg");t.removeClass(),t.addClass(e.data.status)}).fail(function(e){alert(e.data.msg)}).always(function(e){n.removeClass("processing")})})});
members.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Members
4
  * Plugin URI: https://memberpress.com/plugins/members
5
  * Description: A user and role management plugin that puts you in full control of your site's permissions. This plugin allows you to edit your roles and their capabilities, clone existing roles, assign multiple roles per user, block post content, or even make your site completely private.
6
- * Version: 3.1.7
7
  * Author: MemberPress
8
  * Author URI: https://memberpress.com
9
  * Text Domain: members
@@ -222,6 +222,9 @@ final class Members_Plugin {
222
  // Plugin settings.
223
  require_once( $this->dir . 'admin/class-settings.php' );
224
 
 
 
 
225
  // User management.
226
  require_once( $this->dir . 'admin/class-manage-users.php' );
227
  require_once( $this->dir . 'admin/class-user-edit.php' );
@@ -330,6 +333,9 @@ final class Members_Plugin {
330
  if ( empty( $flag ) ) {
331
  set_transient( 'members_30days_flag', true, 30 * DAY_IN_SECONDS );
332
  }
 
 
 
333
  }
334
 
335
  /**
@@ -449,7 +455,7 @@ final class Members_Plugin {
449
 
450
  public function block_editor_assets() {
451
  $active_addons = get_option( 'members_active_addons', array() );
452
- if ( ! in_array( 'members-block-permissions', $active_addons ) ) {
453
  wp_enqueue_script( 'block-editor-mp-upsell', plugin_dir_url( __FILE__ ) . '/addons/members-block-permissions/public/js/upsell.js' , array(
454
  'wp-compose',
455
  'wp-element',
3
  * Plugin Name: Members
4
  * Plugin URI: https://memberpress.com/plugins/members
5
  * Description: A user and role management plugin that puts you in full control of your site's permissions. This plugin allows you to edit your roles and their capabilities, clone existing roles, assign multiple roles per user, block post content, or even make your site completely private.
6
+ * Version: 3.2.0
7
  * Author: MemberPress
8
  * Author URI: https://memberpress.com
9
  * Text Domain: members
222
  // Plugin settings.
223
  require_once( $this->dir . 'admin/class-settings.php' );
224
 
225
+ // Notifications
226
+ require_once( $this->dir . 'admin/class-notifications.php' );
227
+
228
  // User management.
229
  require_once( $this->dir . 'admin/class-manage-users.php' );
230
  require_once( $this->dir . 'admin/class-user-edit.php' );
333
  if ( empty( $flag ) ) {
334
  set_transient( 'members_30days_flag', true, 30 * DAY_IN_SECONDS );
335
  }
336
+ if ( empty( get_option( 'members_activated' ) ) ) {
337
+ update_option( 'members_activated', time() );
338
+ }
339
  }
340
 
341
  /**
455
 
456
  public function block_editor_assets() {
457
  $active_addons = get_option( 'members_active_addons', array() );
458
+ if ( ! in_array( 'members-block-permissions', $active_addons ) && ! members_is_memberpress_active() ) {
459
  wp_enqueue_script( 'block-editor-mp-upsell', plugin_dir_url( __FILE__ ) . '/addons/members-block-permissions/public/js/upsell.js' , array(
460
  'wp-compose',
461
  'wp-element',
readme.txt CHANGED
@@ -4,9 +4,9 @@ Contributors: supercleanse
4
  Donate link: https://memberpress.com/plugins/members
5
  Tags: memberpress, member-type, access-control, permissions, members-only, security, membership-plan, memberships, roles, capabilities, editor, users, security, access, permission, protect, restrict content, blocks
6
  Requires at least: 4.7
7
- Tested up to: 5.8
8
  Requires PHP: 5.6
9
- Stable tag: 3.1.7
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
4
  Donate link: https://memberpress.com/plugins/members
5
  Tags: memberpress, member-type, access-control, permissions, members-only, security, membership-plan, memberships, roles, capabilities, editor, users, security, access, permission, protect, restrict content, blocks
6
  Requires at least: 4.7
7
+ Tested up to: 5.9
8
  Requires PHP: 5.6
9
+ Stable tag: 3.2.0
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12