WP User Avatar - Version 4.1.3

Version Description

  • Added navigation menu protection.
  • Added Elementor content restriction.
  • Added Beaver Builder content restriction.
  • Added support for discounting subscription first payment.
  • Added support for purchase note.
  • Added support for checking active subscription via PHP.
  • Fixed bug where new order creation with missing payment method failed.
  • Fixed couple of date/time related query bugs.
  • Fixed bug where cancelled one-time subscription was still active.
  • Fixed bug where non-completed order email receipt can be sent.
Download this release

Release Info

Developer Collizo4sky
Plugin Icon 128x128 WP User Avatar
Version 4.1.3
Comparing to
See all releases

Code changes from version 4.1.2 to 4.1.3

Files changed (50) hide show
  1. assets/css/admin.min.css +1 -1
  2. assets/css/admin/admin.css +4 -0
  3. assets/images/cards-icon.svg +1 -1
  4. assets/images/paypal-icon.svg +1 -1
  5. changelog.txt +12 -0
  6. languages/wp-user-avatar.pot +404 -299
  7. readme.txt +15 -17
  8. src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php +5 -0
  9. src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php +2 -0
  10. src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php +4 -1
  11. src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php +1 -0
  12. src/Admin/SettingsPages/Membership/views/add-edit-coupon.php +12 -1
  13. src/Admin/SettingsPages/Membership/views/add-edit-plan.php +6 -0
  14. src/ContentProtection/CapabilityCheck.php +48 -0
  15. src/ContentProtection/ElementorRestriction.php +272 -0
  16. src/ContentProtection/Init.php +3 -0
  17. src/ContentProtection/NavMenuProtection.php +135 -0
  18. src/ContentProtection/SettingsPage.php +43 -2
  19. src/ContentProtection/views/include.elementor-protection.php +9 -0
  20. src/ContentProtection/views/include.menu-protection.php +9 -0
  21. src/ContentProtection/views/include.view.php +23 -0
  22. src/ContentProtection/views/view.access-condition.php +2 -2
  23. src/DBUpdates.php +12 -1
  24. src/Functions/GlobalFunctions.php +0 -1
  25. src/Functions/MSFunctions.php +19 -0
  26. src/Membership/Controllers/CheckoutController.php +2 -0
  27. src/Membership/Emails/AbstractMembershipEmail.php +6 -1
  28. src/Membership/Emails/EmailDataTrait.php +3 -1
  29. src/Membership/Models/Coupon/CouponEntity.php +13 -0
  30. src/Membership/Models/Coupon/CouponType.php +9 -0
  31. src/Membership/Models/Customer/CustomerEntity.php +0 -1
  32. src/Membership/Models/Order/OrderEntity.php +11 -0
  33. src/Membership/Models/Plan/PlanEntity.php +3 -0
  34. src/Membership/Models/Subscription/SubscriptionEntity.php +9 -2
  35. src/Membership/PaymentMethods/Stripe/PaymentHelpers.php +33 -1
  36. src/Membership/PaymentMethods/Stripe/Stripe.php +67 -12
  37. src/Membership/Repositories/CouponRepository.php +2 -2
  38. src/Membership/Repositories/PlanRepository.php +4 -0
  39. src/Membership/Services/OrderService.php +3 -3
  40. src/ShortcodeParser/MyAccount/view-order.tmpl.php +7 -1
  41. third-party/vendor/autoload.php +1 -1
  42. third-party/vendor/composer/autoload_real.php +7 -7
  43. third-party/vendor/composer/autoload_static.php +4 -4
  44. third-party/vendor/composer/installed.json +6 -6
  45. third-party/vendor/composer/installed.php +1 -1
  46. third-party/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php +35 -18
  47. third-party/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php +14 -0
  48. third-party/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php +5 -3
  49. third-party/vendor/scoper-autoload.php +2 -2
  50. wp-user-avatar.php +2 -2
assets/css/admin.min.css CHANGED
@@ -1 +1 @@
1
- .ppress-admin #ppress-membership-customer-content .postbox-header,.ppress-admin #ppress-membership-order-content .postbox-header,.ppress-admin #ppress-membership-subscription-content .postbox-header,.ppress-admin .handle-actions{display:none}.ppress-admin .postbox .hndle{cursor:default!important}.ppress-admin #ppress-membership-customer-content .inside,.ppress-admin #ppress-membership-customer-subscriptions .inside,.ppress-admin #ppress-membership-item-content .inside,.ppress-admin #ppress-membership-order-content .inside,.ppress-admin #ppress-membership-subscription-content .inside,.ppress-admin #ppress-membership-subscription-payments .inside{margin:0;padding:0;display:block!important}.ppress-admin .ppress-membership-customer-details,.ppress-admin .ppress-membership-order-details,.ppress-admin .ppress-membership-subscription-details{padding:30px}.ppress-admin .ppress-membership-customer-details p,.ppress-admin .ppress-membership-order-details p,.ppress-admin .ppress-membership-subscription-details p{color:#777}.ppress-admin #ppress-membership-order-subscription a,.ppress-admin .ppress-membership-order-details p a,.ppress-membership-customer-details .ppress-customer-stats-wrapper a{text-decoration:none}.ppress-admin #poststuff h2.ppress-metabox-data-heading,.ppress-admin .ppress-metabox-meta-data{margin:0;font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",sans-serif;font-weight:400}.ppress-admin #poststuff h2.ppress-metabox-data-heading{font-size:21px;line-height:1.2;text-shadow:1px 1px 1px #fff;padding:0}.ppress-admin .ppress-metabox-meta-data{line-height:1.8em;font-size:16px}.ppress-admin .ppress-metabox-data-column-container{display:flex;flex-wrap:nowrap}.ppress-admin .ppress-metabox-data-column{width:50%;padding-left:0;padding-right:30px}.ppress-admin .ppress-metabox-data-column:last-of-type{padding-left:30px;padding-right:0}.ppview .postbox .ppress-metabox-data-column input:not([type=checkbox]):not([type=radio]),.ppview .postbox .ppress-metabox-data-column select{width:100%!important}.ppress-admin .ppress-metabox-data-column h3{font-size:14px;color:#333;margin:1.33em 0 0}.ppress-admin .ppress-metabox-data-column p{padding:0!important;margin:9px 0 0}.ppress-admin .ppress-metabox-data-column a.edit_address{width:14px;height:0;padding:14px 0 0;margin:0 0 0 6px;overflow:hidden;position:relative;color:#999;border:0;float:right}.ppress-admin .ppress-metabox-data-column a.edit_address::after{position:absolute;top:0;left:0;text-align:center;vertical-align:top;line-height:14px;font-size:14px;font-weight:400;font-family:Dashicons;content:""}.ppress-admin .ppress-metabox-data-column .ppress_edit_address_wrap{display:none}.ppress-admin #poststuff #ppress-membership-item-content h2{padding:15px 30px;margin:0;font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,sans-serif;font-size:21px;font-weight:400;line-height:1.2;text-shadow:1px 1px 1px #fff}.ppress-admin #ppress-submetabox-items table th{text-align:left;padding:1em;font-weight:400;color:#999;background:#f8f8f8;border-top:0;user-select:none;font-size:14px;line-height:20px}.ppress-admin #ppress-submetabox-items table{background:#fff;width:100%;border-collapse:collapse}.ppress-admin #ppress-submetabox-items table th:first-child{padding-left:30px}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-item-column-price,.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-item-column-total,.ppress-admin #ppress-submetabox-items table th.ppress-submetabox-item-column-price,.ppress-admin #ppress-submetabox-items table th.ppress-submetabox-item-column-total{width:100px;text-align:right}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-action,.ppress-admin #ppress-submetabox-items table th.ppress-submetabox-item-column-action{width:5%;text-align:left}.ppress-admin #ppress-submetabox-items table td:first-child{padding-left:30px}.ppress-admin #ppress-submetabox-items table td{padding:1.5em 1em 1em;text-align:left;line-height:1.5em;vertical-align:top;border-bottom:1px solid #f8f8f8}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-sub-total td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-tax td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-total td{border-bottom:0}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-sub-total td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-tax td,.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-total,.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-total-label{text-align:right}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-border td{padding:0;border:0}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts .coupon-wrap{float:left;text-align:left}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts .coupon-wrap .coupons-label{display:inline-block;margin-bottom:5px;margin-right:2px;font-weight:600;font-size:12px}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts .coupon-wrap .coupon-code{display:inline-block;position:relative;padding:3px 10px;background-color:#f7f7f7;border:1px solid #aaa;box-shadow:0 1px 0#dfdfdf;border-radius:4px;margin-right:5px;margin-top:5px;text-decoration:none;color:#888;font-size:12px;line-height:16px}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-actions{border-top:1px solid #ddd;background:#f8f8f8;text-align:right}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-actions .order-refund{float:left}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-actions .message{font-style:italic;display:inline-block;line-height:28px}.ppress-admin #ppress-membership-item-content .ppress-submetabox-items-column-actions .ppress-hint-tooltip{text-align:left}.ppress-admin .ppress-notes li{padding:0 10px}.ppress-admin .ppress-notes li .ppress-note-content{background:#efefef;padding:10px;position:relative}.ppress-admin .ppress-notes li .ppress-note-content p{margin:0;padding:0}.ppress-admin .ppress-notes li .ppress-note-content:after{content:"";display:block;position:absolute;bottom:-10px;left:20px;width:0;height:0;border-color:#efefef transparent;border-style:solid;border-width:10px 10px 0 0}.ppress-admin .ppress-notes p.ppress-note-meta{padding:10px;color:#999;margin:0;font-size:11px}.ppress-admin .ppress-notes p.ppress-note-meta .ppress-note-date{border-bottom:1px dotted #fff}.ppress-admin .ppress-notes p.ppress-note-meta a{color:#a00}#ppress-membership-order-notes.postbox .inside{padding:0 0 10px}.ppress-admin .ppress-membership-order-details .ppress-order-badge{font-size:12px;font-weight:600;padding:6px 8px;margin-left:5px;border-radius:9999px;vertical-align:middle;background-color:rgb(220 252 231);color:rgb(22 101 52);line-height:2.30769231;text-shadow:none}.ppress-order-item-modal-wrap{width:100%;max-width:500px}.ppress-admin .ppress-order-item-modal-wrap label{display:block;font-weight:700}.ppress-admin .ppress-order-item-modal-wrap input,.ppress-admin .ppress-order-item-modal-wrap select{width:100%;max-width:100%}.ppress-admin .select2-container .select2-dropdown{z-index:900000!important}.ppress-membership-customer-details .ppress-customer-info .ppress-customer-info{min-height:185px}.ppress-membership-customer-details .ppress-customer-info{display:flex;flex-wrap:wrap}.ppress-membership-customer-details .ppress-customer-info .ppress-avatar-wrap{max-width:250px;width:35%}.ppress-membership-customer-details .ppress-customer-info .ppress-customer-main-wrapper{width:60%;padding:0 10px;box-sizing:border-box}.ppress-membership-customer-details .ppress-customer-info span.customer-name{margin-bottom:6px;font-size:24px;font-weight:600}.ppress-membership-customer-details .ppress-customer-info .ppress-customer-main-wrapper span:not(.customer-name):not([class*=select2]):not([class*=selection]){display:block;padding:3px;color:#777}.ppress-membership-customer-details .ppress-customer-info .customer-user-id span,.ppview .wp-list-table tr:hover .post-state{display:inline-block}.ppress-membership-customer-details .ppress-customer-info .ppres-customer-edit-link{text-align:center}.ppress-membership-customer-details .ppress-customer-info .ppress-avatar-wrap img{width:100%;height:auto;border-radius:5px}.ppress-membership-customer-details .ppress-customer-info .mb-form-field label{font-weight:500}.ppress-membership-customer-details .ppress-customer-info .mb-form-field label a{font-weight:400}.ppress-membership-customer-details .ppress-customer-stats-wrapper{margin:20px auto 10px;text-align:center;border-top:1px solid #eee;padding:30px 0 0}.ppress-membership-customer-details .ppress-customer-stats-wrapper ul{display:flex;margin:0;list-style:none}.ppress-membership-customer-details .ppress-customer-stats-wrapper li{font-size:14px;margin-bottom:0;width:50%}.ppress-membership-customer-details .ppress-customer-stats-wrapper .dashicons{color:#888;margin-top:-2px}#adminmenu ul>li:not(:last-child) a[href$="page=ppress-config"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-content-protection"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-customers"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-directories"]:after{border-bottom:1px solid rgba(255,255,255,.2);display:block;float:left;margin:13px -15px 8px;content:"";width:calc(100% + 30px)}@media screen and (max-width:782px){#adminmenu ul>li:not(:last-child) a[href$="page=ppress-config"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-content-protection"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-customers"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-directories"]:after{margin:20px -20px 8px;width:calc(100% + 40px)}}#adminmenu li[class*=ppress-] ul>li:nth-last-child(2):after{margin-left:0}#adminmenu li[class*=ppress-] ul.wp-submenu-wrap li,#ppress-available-shortcodes-jbox .ppclearfix:after{clear:both}.ppress-admin .ppress-checklist{background-color:#fbfbfd;margin-top:-10px;margin-bottom:20px;position:relative;box-sizing:border-box;padding:30px}.ppress-admin .ppress-checklist div{text-align:center!important}.ppress-admin .ppress-checklist h2{font-size:32px;line-height:40px;padding-bottom:10px;margin:0}.ppress-admin .ppress-checklist-teaser{font-size:18px;color:#97a3b4;margin:10px 0}.ppress-admin .ppress-checklist-dashboard-steps,.profile-press-design-gateway .pp-half-first-thumb.responsive-image{text-align:center}.ppress-admin .ppress-checklist-dashboard-steps ul{display:flex;flex-wrap:wrap;justify-content:center;margin-top:40px;margin-bottom:0}.ppress-admin .ppress-checklist-dashboard-steps ul li{width:185px;height:210px;margin:0 15px 30px;opacity:.85}.ppress-admin .ppress-checklist a{background-color:transparent;color:#326ee0;text-decoration:none}.ppress-admin .ppress-checklist-dashboard-steps ul li a{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;justify-content:center;height:100%;text-align:center;border:1px solid #c6cbd0;border-radius:3px;text-decoration:none;position:relative}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done a{border-color:#0175ff}.ppress-admin .ppress-checklist-dashboard-steps ul li a svg{display:block;margin:auto;padding-top:10px;width:60px}.ppress-admin .ppress-checklist-dashboard-steps ul li a span{margin:0 10px 20px;font-size:14px;font-weight:600}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done a span{color:#001f4d}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done a:after{content:"";width:20px;height:20px;background-color:#06d478;background-image:url(../../assets/images/icon-checkmark.svg);background-repeat:no-repeat;background-size:15px;background-position:50%;position:absolute;right:3px;top:3px;border-radius:100%}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done a .svg-color{fill:#0175ff}.ppress-admin .ppress-checklist-dashboard-steps ul li a:hover{border-color:#001f4d}.ppress-admin .ppress-checklist-dashboard-steps ul li a:hover .svg-color{fill:#001f4d}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done{pointer-events:none}.pp-dnd-form-builder-wrap #titlediv span.shortcode input,.ppSCB-margin-r #titlediv span.shortcode input{font-size:12px;border:0;box-shadow:none;padding:4px 8px;margin:0;background:0 0;color:#fff}.pp-dnd-form-builder-wrap #titlediv span.shortcode,.ppSCB-margin-r #titlediv span.shortcode{display:block;margin:2px 0}.pp-form-listing .pp_forms th#shortcode{width:33%}.pp-form-listing .pp_forms th#title{width:35%}.pp-add-new-form-wrapper .profile-press-design-gateway{width:100%;max-width:700px}.pp-half-meta-inner .pp-half-meta h2{font-size:24px!important}.pp-add-new-form-wrapper .profile-press-design-gateway-inner .responsive-image img{width:100%;height:auto}.pp-add-new-form-wrapper .pp-hald-first{float:left;width:50%;text-align:center;padding:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-decoration:none;color:#555}.pp-add-new-form-wrapper .pp-hald-first a{color:initial;text-decoration:none}.pp-add-new-form-wrapper .pp-builder-select-active{border:2px solid #3498db}.pp-add-new-form-wrapper .pp-half-meta-inner{background:#fff;padding:20px;position:relative;cursor:pointer}.profile-press-design-gateway .pp-half-first-thumb.responsive-image img{width:70px;height:70px;padding:20px}.pp-add-new-form-wrapper .pp-builder-create-btn{background:#3498db;padding:20px;width:100%;border:0;font-weight:400;text-transform:uppercase;color:#fff;font-family:"Work Sans",sans-serif;font-size:20px;border-bottom:3px solid #2980b9;cursor:pointer}.pp-add-new-form-wrapper .pp-half-meta p{font-size:17px;line-height:1.5;margin-top:20px}.pp-add-new-form-wrapper .pp-builder-create-btn:focus{border-bottom:2px solid #2980b9}.ppview .postbox .wp-editor-wrap,.ppview .postbox input[type=number],.ppview .postbox input[type=text],.ppview .postbox select,.ppview .postbox textarea,.ppview input[type=password]{width:550px!important;max-width:550px!important}#ppContentProtectionContent .col select,.ppress-admin .ppview .postbox .ppress-subscription-plan-payment-links input,.ppview .postbox [id*=email_content-wrap].wp-editor-wrap{width:100%!important;max-width:100%!important}.pp-form-listing .pp_forms input.shortcode-in-list-table{width:100%!important;max-width:260px;border:0}.ppSCB .pp-form-builder-shortcodes-btn{text-align:right;float:right}#ppress-available-shortcodes-jbox{width:100%;max-width:600px}#ppress-available-shortcodes-jbox *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased}#ppress-available-shortcodes-jbox input#ppress_shortcode_inserter_search{width:100%;height:28px;margin:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-list-wrapper{padding:10px 20px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-name{font-weight:700;font-size:15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:inline}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item-btn{width:32%;display:inline;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item-btn a{float:right;margin-top:10px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item{width:68%;float:left}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item-wrap{display:block;padding-top:5px}#ppress-available-shortcodes-jbox .ppclearfix:after,#ppress-available-shortcodes-jbox .ppclearfix:before{content:" ";display:table}#ppress-available-shortcodes-jbox .jBox-title{font-size:16px;margin:0}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item-wrap{border-bottom:1px solid #d3d3d3;padding-bottom:10px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-desc{margin:5px 0 10px;font-size:14px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attributes-wrap{margin:8px 0 21px;border:1px solid #e5e5e5;border-left:0;border-right:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);color:#515151;width:100%;box-sizing:border-box}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-label{width:38%;display:inline-block;box-sizing:border-box;font-size:13px;font-weight:600;float:left;background:#f9f9f9;vertical-align:top;border:0;border-top:1px solid #f2f2f2;padding:25px 20px 18px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-field:first-child,.ppress-builder-shortcode-attribute-row:first-child .ppress-builder-shortcode-attribute-label{border-top:none}#ppress-available-shortcodes-jbox .jBox-content{background-color:#f5f5f5}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-field{vertical-align:top;border:0;width:62%;box-sizing:border-box;border-top:1px solid #f2f2f2;padding:15px 20px;float:left;background:#fff}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-row:after{content:"";display:table;clear:both}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-row{border:1px solid #e5e5e5;border-top:0;border-bottom:0}#ppress-available-shortcodes-jbox .ppress-shortcode-inserter-builder-field:not([type=checkbox]){width:100%}#ppress-available-shortcodes-jbox .ppress-shortcode-inserter-builder-field[type=checkbox]{margin:10px 0}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-clipboard-form{padding:0 0 12px}#ppress-available-shortcodes-jbox #ppress-builder-shortcode-preview-field{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.45;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);font-family:Consolas,Monaco,monospace;width:100%;padding:18px;font-size:12.5px;margin:0 5px 9px 0;text-align:center;background:#fff}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-btn.button{width:100%}#ppress-available-shortcodes-jbox .ppress-shortcode-inserter-back{cursor:pointer;margin:0 6px 0 0}.ppSCB .pp-form-builder-shortcodes-btn a:before{font-family:dashicons;content:"";padding-right:2px;vertical-align:middle;display:inline-block}.pp-form-listing .pp_formsinput[readonly]{background-color:#eee;margin:1px}.ppview .custom-field-anchor{width:30px;border-right:1px solid #e1e1e1;text-align:center!important}.ppview tbody tr td.custom-field-anchor{cursor:move}.ppview table#pp_contact_info tbody tr:hover,.ppview table.custom_profile_fields tbody tr:hover{background-color:#e3e3e3}.pp_circle_green,.pp_circle_red{border-radius:100%;height:2px;margin:5px 15px;padding:5px;width:2px}.pp_circle_green{background:green}.pp_circle_red{background:red}.wp_csa_view.pp-license .banner{position:absolute;left:10%;display:block;margin:10px 5px 20px;width:600px;height:60px;border:1px solid #8a1;font:400 30px/60px Rye;text-align:center;color:#451;background:#9b2;border-radius:4px;box-shadow:0 0 30px rgba(0,0,0,.15) inset,0 6px 10px rgba(0,0,0,.15)}.wp_csa_view.pp-license .banner::after,.wp_csa_view.pp-license .banner::before{content:"";position:absolute;top:24px;display:block;width:40px;height:0;border:30px solid #9b2;border-bottom-color:#94b81e}.wp_csa_view.pp-license .banner::before{left:-70px;border-right:20px solid #791;border-left-color:transparent;transform:rotate(-5deg)}.wp_csa_view.pp-license .banner::after{left:auto;right:-70px;border-left:20px solid #791;border-right:30px solid transparent;transform:rotate(5deg)}.ppview .pp-settings-wrap{display:flex;border:1px solid #c8d7e1;margin-top:5px}.ppview .pp-settings-wrap .dashicons{padding-top:2px;margin-right:5px}.ppview .pp-settings-wrap h2.nav-tab-wrapper{flex:1;border-bottom:none;padding:0;background:#f7f8fa;border-right:1px solid #c8d7e1}.ppview .pp-settings-wrap h2.nav-tab-wrapper a{float:none;display:block;margin:0;border:0;padding:15px;background:#f7f8fa;font-weight:500;border-bottom:1px solid #c8d7e1}.ppview .pp-settings-wrap h2.nav-tab-wrapper a.nav-tab-active{background:#fff!important;border-right:1px solid #c8d7e1;width:99%;color:#2e4453}.ppview .pp-settings-wrap .metabox-holder{flex:3;padding-left:3%;padding-right:10px;background:#fff}.ppview .pp-settings-wrap .pp-tab-settings .postbox{border:0;box-shadow:none}.ppview .pp-settings-wrap .metabox-holder h3.hndle{padding:12px;cursor:default;border-top:1px solid #eee;border-bottom:1px solid #eee}.ppview .pp-settings-wrap .postbox:first-child h3.hndle{border-top:none!important}#pp-sub-bar .pp-clear,.pp-add-new-form-wrapper .pp-optin-clear,.pp-add-new-form-wrapper .pp-template-clear{clear:both}#pp-sub-bar .pp-clear:after,.pp-add-new-form-wrapper .pp-optin-clear:after,.pp-add-new-form-wrapper .pp-template-clear:after{clear:both;content:".";display:block;height:0;line-height:0;overflow:auto;visibility:hidden;zoom:1}#pp-sub-bar .pp-new-toolbar{min-height:38px;padding:10px;background:#fff;margin-bottom:20px;border:1px solid #dedede;box-sizing:content-box;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#pp-sub-bar .pp-new-toolbar h4{color:#222;font-size:18px;font-weight:600;margin:8px 0 0;padding:0;float:left}#pp-sub-bar .pp-new-toolbar ul{float:right;list-style:none;padding:0;margin:10px 0 0}#pp-sub-bar .pp-new-toolbar ul li{list-style:none;padding:0;margin:0;float:left}#pp-sub-bar .pp-new-toolbar ul li a{color:#0085ba;text-decoration:none;text-transform:uppercase;font-size:13px;letter-spacing:1px;padding:21px 15px 22px;outline:0!important}#pp-sub-bar .pp-new-toolbar ul li a.pp-type-active,#pp-sub-bar .pp-new-toolbar ul li a:hover{color:#fff;background:#007cba}.pp-add-new-form-wrapper .pp-form-new-list .pp-dash-spinner{visibility:hidden;float:none;margin-right:0;margin-left:0}.pp-add-new-form-wrapper .pp-error{color:red;font-size:13px;font-weight:600;vertical-align:middle;display:inline-block;margin-top:-3px}.pp-add-new-form-wrapper .pp-input-error{border-color:red!important;-webkit-box-shadow:0 0 2px rgba(255,0,0,.8)!important;box-shadow:0 0 2px rgba(255,0,0,.8)!important}.pp-add-new-form-wrapper .pp-form-new-list{height:38px;padding:10px;background:#fff;margin-bottom:20px;border:1px solid #dedede;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}.pp-add-new-form-wrapper .pp-form-new-list h4{color:#222;font-size:18px;font-weight:600;text-shadow:0 1px rgba(255,255,255,.25);margin:2px 0 0;padding:0}.pp-add-new-form-wrapper .pp-form-new-list strong{font-size:16px;vertical-align:middle}.pp-add-new-form-wrapper .pp-form-new-list input,.pp-add-new-form-wrapper .pp-form-new-list select{position:relative;top:1px;margin-left:5px;margin-right:10px;font-size:16px;font-weight:300;width:350px;height:32px}.pp-add-new-form-wrapper .ppress-premium-flag{position:absolute;top:-8px;right:-8px;width:90px;height:81px;background-image:url(../../images/themes/premium-theme.png);background-size:90px 81px;transform:rotate(70deg)}.pp-add-new-form-wrapper .pp-optin-theme{cursor:pointer;float:left;margin:0 4% 4%0;position:relative;width:30.66666666667%;border:1px solid #dedede;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#ppContentProtectionContent .actions a:hover,#ppContentProtectionContent .col a:hover,.pp-add-new-form-wrapper .pp-optin-theme a{text-decoration:none}.pp-add-new-form-wrapper .pp-optin-theme:nth-child(3n){margin-right:0}.pp-add-new-form-wrapper .pp-optin-theme.pp-last-theme{margin-right:0}.pp-add-new-form-wrapper .pp-optin-theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.pp-add-new-form-wrapper .pp-optin-theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.pp-add-new-form-wrapper .pp-optin-theme .pp-optin-theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.pp-add-new-form-wrapper .pp-optin-theme .pp-optin-theme-actions{position:absolute;bottom:0;right:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-left:1px solid rgba(0,0,0,.05)}.pp-add-new-form-wrapper .pp-optin-theme-screenshot img{height:100%;position:absolute;left:0;top:0;width:100%;-webkit-transform:translateZ(0);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}#pp-sub-bar .pp-new-toolbar .pp-melange-jbox{margin:0 0 0-18px;font-size:18px;cursor:pointer}.pp-form-listing.pp-forms .wp-list-table .column-date{width:145px}.pp-form-listing.pp-user-profiles th#title{width:30%}.pp-form-listing.pp-user-profiles th#date{width:20%}.pp-form-buider-settings-popup-container *{box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.pp-form-buider-settings-popup-container{position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(51,51,51,.95);padding:20px}.pp-form-buider-settings-popup-content{background-color:#fefefe;margin:5%auto;border:1px solid #888;width:100%;max-width:600px}.pp-form-buider-settings-popup-header{-webkit-font-smoothing:antialiased;align-items:center;border-bottom:1px solid #e6e6e6;box-sizing:border-box;display:flex;font-variant-ligatures:none;outline:0;padding:15px;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-dnd-form-builder-wrap span.pp-form-buider-settings-field-type,.pp-form-buider-settings-popup-container span.pp-form-buider-settings-field-type,.pp-form-buider-settings-popup-header h3{-webkit-font-smoothing:antialiased;box-sizing:border-box;color:#333;font-family:Arial,sans-serif;font-stretch:normal;font-style:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal;margin:0;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-header h3{border-width:0;display:block;font-size:15px;font-weight:700;line-height:30px;overflow:hidden;padding:0;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.pp-form-buider-settings-popup-container .pp-actions-left{display:flex;align-items:center;margin-left:10px;margin-right:auto}.pp-dnd-form-builder-wrap span.pp-form-buider-settings-field-type,.pp-form-buider-settings-popup-container span.pp-form-buider-settings-field-type{background-color:#f2f2f2;border:2px solid transparent;border-radius:13px;cursor:default;display:inline-block;font-size:12px;font-weight:500;height:26px;letter-spacing:-.25px;line-height:22px;min-width:40px;padding:0 16px;text-align:center}.pp-dnd-form-builder-wrap span.pp-form-buider-settings-field-type.field-bar-title{margin-top:3px;margin-left:5px;padding:0 8px;font-size:11px}.pp-form-buider-settings-popup-container .pp-actions-right{display:flex;align-items:center;margin-left:auto;margin-right:0}.pp-form-buider-settings-popup-body .pp-form-buider-settings-popup-tab-content,.pp-form-buider-settings-popup-body .pp-form-buider-settings-popup-tabs,.pp-form-buider-settings-popup-body a.pp-form-buider-settings-popup-tab-menu{-webkit-font-smoothing:antialiased;box-sizing:border-box;font-variant-ligatures:none;outline:0;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-body .pp-form-buider-settings-popup-tabs{border-top:0 solid #e6e6e6;display:flex;list-style:none;margin:0;padding:0 30px}.pp-form-buider-settings-popup-body a.pp-form-buider-settings-popup-tab-menu{border-bottom:2px solid transparent;box-shadow:none;color:#888;cursor:pointer;font-size:12px;font-weight:500;line-height:22px;margin:0 10px;outline:0 transparent;padding:14px 0 12px;text-decoration:none;text-transform:uppercase}.pp-form-buider-settings-popup-body a.pp-form-buider-settings-popup-tab-menu.active{color:#333;border-bottom-color:#333}.pp-form-buider-settings-popup-body .pp-form-buider-settings-popup-tab-content{border-top:1px solid #e6e6e6;display:block;margin-top:-1px;padding:30px}.pp-form-buider-settings-popup-tab-content .pp-form-row{flex-direction:row;flex-wrap:wrap;width:100%;display:flex;margin-bottom:30px}.pp-form-buider-settings-popup-tab-content .pp-form-row:last-child{margin-bottom:0}.pp-form-buider-settings-popup-tab-content .pp-form-column{display:flex;flex-direction:column;flex-basis:100%;flex:1;padding-left:15px;padding-right:15px}pp-form-buider-settings-popup-tab-content .pp-form-double-column{display:flex;flex-direction:column;flex-basis:100%;flex:2}.pp-form-control-icon-picker{cursor:pointer}.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body .pp-form-control,.pp-form-buider-settings-popup-container label.pp-label{-webkit-font-smoothing:antialiased;box-sizing:border-box;color:#333;font-family:Arial,sans-serif;font-stretch:normal;font-style:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-weight:500;letter-spacing:-.25px;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-container label.pp-label{border-width:0;display:block;font-size:14px;line-height:22px;margin:0 0 5px;padding:0;cursor:pointer;vertical-align:middle}.pp-form-buider-settings-popup-container .pp-form-control-description{-webkit-font-smoothing:antialiased;box-sizing:border-box;color:#888;display:block;font-size:13px;font-variant-ligatures:none;font-weight:400;line-height:22px;margin-top:5px;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body .pp-form-control{background-color:#fff;background-image:none;border:1px solid #ddd;border-radius:4px;box-shadow:none;display:inline-block;font-size:15px;height:40px;line-height:20px;margin:0;outline:0;padding:9px 14px;transition-delay:0s;transition-duration:.3s;transition-property:all;transition-timing-function:ease-in-out}.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body .pp-form-control[type=checkbox],.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body .pp-form-control[type=radio]{height:1rem}.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body select.pp-form-control{background-image:url(../../images/frontend/arrow-down.png);background-position:right 20px center;background-repeat:no-repeat;background-size:10px auto;-webkit-appearance:none;-moz-appearance:none;appearance:none}.pp-form-buider-settings-popup-content .pp-form-control:not([type=checkbox]){width:100%!important;max-width:100%!important}.pp-form-buider-settings-popup-content .pp-form-buider-settings-popup-footer{-webkit-font-smoothing:antialiased;align-items:center;border-top:1px solid #e6e6e6;box-sizing:border-box;display:flex;font-variant-ligatures:none;outline:0;padding:30px;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-content textarea.pp-form-control{max-width:100%;min-height:100px;resize:vertical;line-height:20px}.pp-form-buider-settings-popup-container .pp-form-buider-settings-field-close-btn{color:#aaa;float:right;font-size:28px;font-weight:700}.pp-form-buider-settings-popup-container .pp-form-buider-settings-field-close-btn:focus,.pp-form-buider-settings-popup-container .pp-form-buider-settings-field-close-btn:hover{color:#000;text-decoration:none;cursor:pointer}.ppSCB-tab-box-div .CodeMirror{width:100%!important;border:0;height:617px}.ppSCB-tab-box-div .form-table th{padding:20px 0}.pp_edit_form #titlediv div#titlewrap #title{width:80%!important}#titlewrap input.ppSCB-save-btn{margin:0 10px 5px;vertical-align:top;height:35px}.ppSCB-margin-r input[type=text],.ppSCB-margin-r select,.ppSCB-margin-r textarea{max-width:500px!important;width:100%!important}#post-body-content .form-table textarea.wp-editor-area,.remove_white_styling #post-body-content .form-table textarea.wp-editor-area,textarea.wp-editor-area{max-width:100%!important;width:100%!important}.ppSCB-tab-content{max-width:840px}#ppSettings.ppSCB-tab-content{padding:0 15px 15px}#ppSettings .ppSCB-tab-content-header{font-size:14px;background:#f5f5f5;padding:8px 5px;color:#333;margin:1em 0}.ppSCB-margin-r{margin-top:10px;margin-right:460px}.ppSCB-clear-both{clear:both}.ppSCB-margin-r h2.nav-tab-wrapper{border-bottom:0!important;padding-bottom:0!important;padding-left:0!important}.ppSCB-margin-r h2 .nav-tab{font-size:13px;line-height:25px;font-weight:400;padding:4px 10px!important;border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0}.ppSCB-margin-r .nav-tab-active,.ppSCB-margin-r .nav-tab-active:hover{background:#fff;font-weight:700!important;border-bottom:0;border-top:2px solid #1a9ac9;color:#0073aa}.ppSCB-margin-r .ppSCB-tab-box{float:left;width:100%}.ppSCB-margin-r .ppSCB-tab-box-div{background:#fff;border:1px solid #ccc;min-height:617px;padding:0}.ppSCB-margin-r .ppSCB-sidebar{float:right;border:1px solid #ccc;background:#fff;margin-right:-460px;width:440px;min-height:700.6px}.ppSCB-margin-r.passwordReset .ppSCB-sidebar{min-height:684.4px}.ppSCB-margin-r .ppSCB-sidebar h2{font-size:16px;text-align:center;color:#888;line-height:24px}.ppSCB-margin-r .ppSCB-sidebar iframe{width:100%!important;height:100%!important;min-height:649px}.ppSCB-margin-r .ppSCB-sidebar h3{border-bottom:1px solid #eee;margin:0;padding:10px;line-height:1.4;text-align:center;font-size:18px}.ppSCB-margin-r input.shortcode-in-list-table{float:right;width:250px!important;background:#fff;border:3px solid #eee;font-weight:400;font-size:15px;padding:4px 10px;line-height:normal}.ppSCB-margin-r .ppSCB-preview-h-left,.ppSCB-margin-r .ppSCB-preview-h-right{text-align:center;display:inline-block;width:49%;padding:14px 1.1px;cursor:pointer}.ppSCB-margin-r .ppSCB-preview-h-left h3,.ppSCB-margin-r .ppSCB-preview-h-right h3{display:inline;border:0;font-size:14px}.ppSCB-margin-r .ppSCB-preview-header{border-bottom:1px solid #eee}.ppSCB-margin-r .ppSCB-preview-active{background:#eee;color:#fff!important;border:0}.ppSCB #titlediv div#titlewrap #title{max-width:80%!important}.ppress-email-editor-wrap{margin:0;padding:0}.ppress-email-editor-wrap .pp-email-editor-tab{border-bottom:1px solid #ddd;margin:0;padding:0}.ppress-email-editor-wrap .pp-email-editor-tablinks{padding:8px 15px;color:#666;background-color:#fff;border:0;margin:0;cursor:pointer}.ppress-email-editor-wrap .pp-email-editor-tabcontent{border:1px solid #ddd;border-top:0;display:none}.ppress-email-editor-wrap .pp-email-editor-tablinks.ecode{margin-left:31px}.ppress-email-editor-wrap .pp-email-editor-tablinks.eactive{border:1px solid #ddd;border-bottom:0;margin-bottom:-1px;padding-bottom:9px}.ppress-email-editor-wrap .pp-email-editor-tabcontent.epreview{padding:10px 10px 8px;margin:0;max-height:450px;overflow:scroll}.wrap.ppview .pp-settings-wrap .CodeMirror{height:300px;width:600px}.ppview #social_login_settings .CodeMirror{height:230px}.wrap.ppview .pp-settings-wrap .ppress-email-editor-wrap .pp-email-editor-tabcontent .CodeMirror{height:400px;width:600px;border-top:0;padding:0 5px}.ppview .pp-custom-field-notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 10px;padding:1px 12px;display:block;border-left-color:#00a0d2;position:relative;clear:left}.ppview .pp-custom-field-notice p{margin:.5em 0;padding:2px 5px}.ppress_settings_data .pp-email-notification-status{margin-right:18px;font-size:28px;line-height:22px;color:#a00;float:left;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.ppress_settings_data .pp-email-notification-status.pp-is-active{color:#46b450}.ppress_settings_data .pp-email-notifications th.column-title.column-primary{padding-left:48px}.ppress_settings_data .pp-email-notifications .pp-email-configure span{line-height:24px}.ppress_settings_data .pp-email-notifications .column-configure{width:60px;text-align:center}.remove_white_styling #post-body-content .form-table input[type=password],.remove_white_styling #post-body-content .form-table input[type=text],.remove_white_styling #post-body-content .form-table select,.remove_white_styling #post-body-content .form-table textarea{max-width:630px!important;width:100%!important}.pp-below-text-field-success{background:#46b450;color:#fff;padding:2px 5px;width:100%;box-sizing:border-box}.remove_white_styling #post-body-content textarea{min-height:200px}.pp-custom-fields.remove_white_styling #post-body-content textarea{min-height:50px}.ppress-below-text-field-error{background:#ca4a1f;color:#fff;padding:2px 5px;width:100%;box-sizing:border-box}.ppress-placeholder-tags{overflow:scroll;height:300px;width:100%;margin:10px 0}.ppress-placeholder-tags tbody tr:first-of-type{background-color:#efefef}.ppress-placeholder-tags tbody tr th{padding:15px}.ppress-settings-page-notice{background:#ddd9;padding:15px}.ppress-hint-tooltip{display:inline;font-weight:400}#logs textarea.ppress-error-log-textarea{width:100%!important;max-width:100%!important;min-height:300px!important;color:rgba(51,51,51,.78)!important}.pp-custom-fields #post-body-content textarea{width:100%;min-height:initial}#ppContentProtectionContent .badge{-webkit-font-smoothing:antialiased;background:#a5b2bd;border-radius:2px;color:#fff;display:inline-block;font-size:11px;font-style:normal;font-weight:700;line-height:10px;padding:4px 5px;text-transform:uppercase;vertical-align:text-top;-webkit-transition:background-color .25s ease-in-out;-o-transition:background-color .25s ease-in-out;transition:background-color .25s ease-in-out}#ppContentProtectionContent{margin:1em 0 2em}#ppContentProtectionContent.actions .facet{padding-right:35px}#ppContentProtectionContent .condAction{background:#f9fafa;border:1px solid #d6dde3;border-radius:3px}#ppContentProtectionContent .facet{zoom:1;position:relative;padding:15px 30px 10px 20px}#ppContentProtectionContent .facet:after,#ppContentProtectionContent .facet:before{display:table;content:"";line-height:0}#ppContentProtectionContent .facet:after{clear:both}#ppContentProtectionContent .col{width:48%;float:none;box-sizing:border-box;display:inline-block}#ppContentProtectionContent .col input{margin-right:5px;width:184px}#ppContentProtectionContent .col:last-child{margin-right:0}#ppContentProtectionContent .col a{line-height:28px}#ppContentProtectionContent .input-append>input{margin-right:0}#ppContentProtectionContent .regex input[type=text],.ppress-admin .ppress-checkout-fields .widget.open .widget-inside{display:block}#ppContentProtectionContent .timeframe input,#ppContentProtectionContent .timeframe select{display:inline-block;float:none}#ppContentProtectionContent .timeframe input{width:40px}#ppContentProtectionContent .timeframe select{width:80px}#ppContentProtectionContent .icon-circle-minus{color:#a5b2bd}#ppContentProtectionContent .actions{position:absolute;right:10px;top:17px;border:1px solid #a5b2bd;border-radius:50%}#ppContentProtectionContent .actions a{margin:0;text-decoration:none}#ppContentProtectionContent .and{border-bottom:1px dashed #d6dde3;margin:.5em 0 1.7em;text-align:center}#ppContentProtectionContent .and a,#ppContentProtectionContent .and em,#ppContentProtectionContent .and label{background:#fff;font-size:1.2em;font-style:normal;margin:0 10px;padding:0 10px;position:relative;top:9px}#ppContentProtectionContent .and label{cursor:pointer;display:inline-block;top:12px}#ppContentProtectionContent .and a{left:-6.5px}#ppContentProtectionContent .actions a:hover .icon-circle-minus,#ppContentProtectionContent .and em{color:#4f5d6b}#ppContentProtectionContent .and input{margin:0}#ppContentProtectionContent .or{color:#93a1af;font-weight:500;margin-left:-21px;left:50%;position:absolute;top:-6px;background:#f9fafa;font-size:1.2em;padding:0 10px}#ppContentProtectionContent .add-or>.add{background:#f9fafa;font-size:1.2em;padding:0 10px;left:-6.5px;position:relative;top:-9px}#ppContentProtectionContent .add-or{text-align:center}#ppContentProtectionContent .facetList>.facet:first-child>.badge{display:none!important}#ppContentProtectionContent #workflowConditions .facetList .facet select{min-height:32px}#ppContentProtectionContent #workflowConditions .col input.select2-search__field{margin:0;min-height:0}#ppContentProtectionContent #workflowConditions .select2 li{margin-bottom:0}#post-body-content .content_protection .column-title{width:32%}#post-body-content .content_protection .column-content{width:43%}#post-body-content .content_protection .access{width:25%}.ppress-extensions-items-wrap *{box-sizing:border-box}.ppress-extensions-items-wrap .ppress-extensions-header{padding:20px 0 10px;border-bottom:2px solid #e8e8eb;margin:0 0 30px;display:flex;align-items:center}.ppress-extensions-items-wrap .ppress-extensions-header-buttons{flex:1 0}.ppress-extensions-items-wrap .ppress-extensions-button{height:35px;font-size:14px;padding:0 18px;margin-right:10px}.ppress-extensions-items-wrap .ppress-extensions-items-row{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap;margin-right:-.5rem;margin-left:-.5rem}.ppress-extensions-items-wrap .ppress-extension-item-wrap{box-sizing:border-box;flex:0 0 auto;padding:.5rem;flex-basis:100%;max-width:100%}@media only screen and (min-width:782px){.ppress-extensions-items-wrap .ppress-extension-item-wrap{flex-basis:50%;max-width:50%}}@media only screen and (min-width:1042px){.ppress-extensions-items-wrap .ppress-extension-item-wrap{flex-basis:33.33333333%;max-width:33.33333333%}}.ppress-extensions-items-wrap .ppress-extension-item-card{height:100%;border:1px solid #e8e8eb;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.05);color:#141b38;display:flex;flex-direction:column}.ppress-extensions-items-wrap .ppress-extension-card-body{padding:30px 30px 20px;flex:1}.ppress-extensions-items-wrap .ppress-extension-card-body.ppress-unavailable{opacity:.5}.ppress-extensions-items-wrap .ppress-extension-card-header{display:flex;align-items:center;font-size:18px;font-weight:600;margin-bottom:16px}.ppress-extensions-items-wrap .ppress-extension-card-header .dashicons,.ppress-extensions-items-wrap .ppress-extension-card-header svg{width:35px;height:35px;margin-right:10px;font-size:35px}.ppress-extensions-items-wrap .ppress-extension-card-description{color:#434960;font-size:15px;line-height:22px}.ppress-extensions-items-wrap .ppress-extension-card-learn-more{margin-top:10px}.ppress-extensions-items-wrap .ppress-extension-card-footer{border:2px solid #fff;background-color:#f9f9fa;padding:12px;min-height:43px}.ppress-extensions-items-wrap .ppress-extension-card-install-activate{display:flex;align-items:center;justify-content:flex-end;height:30px;position:relative}.ppress-extensions-items-wrap .ppress-extension-card-install-activate .ppress-extension-card-status{font-weight:600;font-size:14px}.ppress-extensions-items-wrap .ppress-extension-use-switch{position:relative;cursor:pointer;background-color:#5a5a5a;border-radius:15px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;display:inline-block;margin:-2px 0 0 5px;width:36px;height:20px}.ppress-extensions-items-wrap .ppress-extension-card-install-activate input[type=checkbox]:checked+.ppress-extension-use-switch{background-color:#007cba}.ppress-extensions-items-wrap .ppress-extension-card-install-activate input[type=checkbox]{position:absolute;top:auto;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;white-space:nowrap}.ppress-extensions-items-wrap .ppress-extension-card-install-activate input[type=checkbox]:checked+.ppress-extension-use-switch:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}.ppress-extensions-items-wrap .ppress-extension-use-switch:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;border-radius:50%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ppress-extensions-items-wrap .ppress-extension-card-learn-more .no-underline{text-decoration:none}.ppress-extensions-items-wrap .ppress-extensions-upgrade-cta{display:flex;align-items:center;justify-content:flex-end}.ppress-extensions-items-wrap .ppress-extension-status{font-weight:700;color:#393f4c}.ppress-extensions-items-wrap .ppress-extension-status span{color:#777;font-weight:600}.ppress-extensions-upsell-wrap{margin-top:10px;padding:20px;background:#fff;border-left:3px solid #007cba;line-height:1.5;font-size:14px}.ppress-extensions-upsell-wrap .notice-content{display:-webkit-box;display:-ms-flexbox;display:flex}.ppress-extensions-upsell-wrap .ppress-extensions-upsell-button{flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;margin-left:auto;border-width:1px 1px 2px;border-radius:3px;cursor:pointer;display:inline-block;font-size:14px;text-decoration:none;margin-top:0;line-height:1}.ppress-extensions-upsell-wrap .ppress-extensions-upsell-button a{padding:5px 15px}.ppress-extensions-upsell-wrap .ppress-extensions-upsell-highlight{font-weight:700;color:#007cba}.ppress-admin .ppress-admin-banner{background-color:#326ee0;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative;top:0;width:100%;padding:15px}.ppress-admin .ppress-admin-wrap{margin-bottom:10px}.ppress-admin .ppress-admin-banner.ppress-pro{padding:15px 15px 0}.ppress-admin .ppress-admin-banner.ppress-pro.ppress-no-submenu{padding-bottom:15px}.ppress-admin .wrap{padding-left:20px;margin:0 20px 0 2px}.wp-admin.ppress-admin #wpcontent{padding:0}.ppress-admin .ppress-admin-banner__logo{padding:0 0 15px;display:block}.ppress-admin .ppress-admin-banner__logo img{width:140px;height:auto;float:left;margin-top:20px;padding-left:15px}.ppress-admin .ppress-admin-banner__helplinks{float:right;padding:10px 20px 20px}.ppress-admin .ppress-admin-banner__helplinks a{color:rgba(255,255,255,.92);text-decoration:none}.ppress-admin .ppress-admin-banner__helplinks a.ppress-active{background:#fff;padding:5px;color:#326ee0;border-radius:4px}.ppress-admin .ppress-admin-banner__helplinks>span{padding-right:15px}.ppress-admin div#screen-meta-links{position:absolute;right:0;z-index:9}.ppress-admin .ppress-nav-tab-wrapper{padding:0;margin:10px 16px 0;border-bottom:0}.ppress-admin .ppress-nav-tab-wrapper .ppress-nav-tab{display:block;font-weight:500;padding:5px 12px;text-decoration:none;border:1px solid transparent;background-color:transparent;color:rgba(255,255,255,.92);margin:0}.ppress-admin .ppress-nav-tab-wrapper .ppress-nav-tab.ppress-nav-active{background-color:#fff;color:#2d3559;border-color:#fff;border-radius:4px 4px 0 0}.ppress-admin-banner.ppress-not-pro{padding-bottom:0}.ppress-admin .ppress-no-submenu .ppress-nav-tab-wrapper,.ppress-admin .ppress_checkout_fields div#widgets-right .widgets-holder-wrap{margin-top:0}.ppress-admin-banner .ppress-header-menus{margin-top:10px}.ppress-admin .ppress-admin-wrap+.wrap h2{font-size:21px;font-weight:500}.ppress-admin .ppress-admin-wrap .subsubsub{background:#fff;font-size:14px;padding:0 32px;margin-top:0;float:none;text-align:left}.ppress-admin .ppress-admin-wrap .subsubsub a{color:#1d2327;display:block;font-weight:600;padding:8px 12px}.ppress-admin .ppress-admin-wrap .subsubsub a.ppress-current{color:#326ee0}.ppress-admin.wp-core-ui .wrap a.ppress-link{display:block;margin-top:10px;font-size:1em}.ppress-admin.wp-core-ui .wrap a.ppress-link svg{width:1.2em;margin:0 .2em;height:1.4em;vertical-align:middle;fill:currentcolor}.ppview .pp-alert-notice,.profile-php .pp-alert-success{background:#fff;border:1px solid #c3c4c7;border-left-width:4px;box-shadow:rgba(0,0,0,.04)0 1px 1px 0;margin:5px 2px;padding:1px 12px;border-left-color:#d63638}.profile-php .pp-alert-success{border-left-color:#72aee6;padding:8px 10px}.ppview .pp-alert-notice-info{border-left-color:#72aee6}.ppview .pp-alert-notice p,.profile-php .pp2fa-up-notice p{margin:.5em 0;padding:2px}.profile-php .ppmyac-2fa-recovery-codes-wrap pre{background:#fff;max-width:150px;border:1px solid #c3c4c7;width:100%;text-align:center;padding:10px 20px;margin-bottom:20px;line-height:1.8;overflow:auto}.ppress-admin .subscription_plan .manage-column.column-name{width:25%}.ppress-admin .subscription_plan .manage-column.column-status{width:10%}.ppress-admin .subscription_plan .manage-column.column-checkout_url{width:20%}.ppress-admin .ppress_checkout_fields .widget-liquid-left{width:50%;padding:0 10px 0 0;box-sizing:border-box}.ppress-admin .ppress_checkout_fields .widget-liquid-left:last-of-type{padding-right:0}.ppress-admin #poststuff.ppress_checkout_fields h2{font-size:1.3em}.ppress-admin .ppress-checkout-fields{min-height:50px;border:2px dashed #eee;padding:20px}.ppress-admin .ppress-checkout-add-field select{margin:0 10px;width:50%;vertical-align:baseline}.ppress-admin .ppress-checkout-fields .widget-inside input,.ppress-admin .ppress-checkout-fields .widget-inside select{width:100%;display:block}.ppress-admin .ppress_checkout_fields .ppress-submit-wrap{text-align:right;padding:0 0 1em}.ppress-admin .ppress_checkout_fields .ppress-submit-wrap .button{min-height:35px;padding:0 15px}.ppress-admin .ppress-checkout-fields .sortable-placeholder{padding:20px;border:1px dashed #c3c4c7;margin-bottom:20px}.ppress_payment_methods #post-body-content .form-table .ppress-payment-methods-wrap th,.ppress_taxes #post-body-content .form-table .ppress-tax-rates-wrap th{padding:10px}.ppress_payment_methods .ppress-payment-methods-wrap .ppress-payment-method-icon,.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-table-actions .ppress-tax-rate-icon{background:#aaa;border-radius:50%!important;padding:2px 2px 4px;color:#fff}.ppress_payment_methods .ppress-payment-methods-wrap .ppress-payment-method-icon.ico-yes{background:#2271b1}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap td.ppress-payment-method-table-title{font-weight:700}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-sort{text-align:center;width:.5em!important;cursor:move}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-title{width:15em!important}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-actions{width:1em!important}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-enabled{width:5em!important}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-subscription-support{width:8em!important;text-align:center}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap tr:nth-child(odd) td{background:#f9f9f9}.ppress_payment_methods.ppress-payment-methods-list .postbox .inside{padding:0!important;margin:0!important}.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-table-actions{width:1.5em!important}.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-table-rate{width:2.5em!important}.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-table-tax-name{width:12em!important}.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-icon{cursor:pointer}.ppress_taxes .ppress-tax-rates-wrap table tbody tr{background-color:#f9f9f9}.ppview .ppress-admin-status-badge{padding:2px 7px;border-radius:4px;background:#ececec;display:inline-flex;align-items:center}.ppview .ppress-admin-status-badge__icon{opacity:.8;margin:0-2px 0 2px}.ppview .ppress-admin-status-badge--failed,.ppview .ppress-admin-status-badge--failing{color:#ac3d3d;background:#ffd6d6}.ppview .ppress-admin-status-badge--failed .ppress-admin-status-badge__icon{margin-left:0;margin-top:-1px}.ppview .ppress-admin-status-badge--active,.ppview .ppress-admin-status-badge--completed{color:#017d5c;background:#e5f5f0}.ppview .ppress-admin-status-badge--complete .ppress-admin-status-badge__icon{margin-left:0}.ppview .ppress-admin-status-badge--pending{color:#7d6e01;background:#f5f2e5}.ppress-admin-status-badge--processing,.ppress-admin-status-badge--trialling{color:#015a7d;background:#e5f1f5}.ppview .order.ppview th.column-order_total{width:8%}.ppview .order.ppview th.column-status{width:12%}.ppview .order.ppview th.column-plan{width:15%}.ppview .order.ppview th.column-date_created{width:14%}.ppview .order.ppview th.column-payment_method{width:12%}#ppress-filters{padding:10px;margin:0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}#ppress-filters .filter-items{display:flex;align-items:center;flex-wrap:wrap;gap:6px;float:none;flex-grow:1}#ppress-filters .filter-items .ppress-date-range-options{display:inline-block;margin:10px 0}#ppress-filters>p{color:#757575}#ppress-filters input[type=number],#ppress-filters input[type=text].ppress_datepicker{max-width:105px}#ppress-filters .button-secondary,#ppress-filters input[type=number]{margin-bottom:0}#ppress-filters .search-form{margin:0}@media screen and (max-width:480px){#ppress-filters span{margin:2px 0}}#ppress-advanced-filters{position:relative}#ppress-advanced-filters .inside{z-index:99;position:absolute;top:29px;right:0;border:1px solid #e0e0e0;padding:0;background:#fff;box-shadow:0 3px 5px rgba(0,0,0,.2);min-width:285px;opacity:0;visibility:hidden}#ppress-advanced-filters fieldset{display:block;padding:10px 15px 15px;margin:10px 0}#ppress-advanced-filters fieldset:not(:last-of-type){border-bottom:1px solid #e0e0e0}#ppress-advanced-filters fieldset:last-of-type{padding-bottom:5px}#ppress-advanced-filters fieldset.ppress-add-on-filters div,#ppress-advanced-filters fieldset.ppress-add-on-filters label,#ppress-advanced-filters fieldset.ppress-add-on-filters p,#ppress-advanced-filters fieldset.ppress-add-on-filters span{display:block;margin-bottom:2px}#ppress-advanced-filters div.ppress-select-chosen:not(:last-child){margin-bottom:10px}#ppress-advanced-filters.open .ppress-advanced-filters-button{background:#e0e0e0;border-color:#949494;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}#ppress-advanced-filters.open .inside{visibility:visible;opacity:1;transition:opacity .2s ease-in}.ppress_datepicker{height:29px}.ppress-from-to-wrapper input{width:105px;margin:0;position:relative;z-index:1}.ppress-from-to-wrapper input[name*=start],.ppress-from-to-wrapper input[name=filter_from]{border-top-right-radius:0;border-bottom-right-radius:0}.ppress-from-to-wrapper input[name*=end],.ppress-from-to-wrapper input[name=filter_to]{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.ppress-from-to-wrapper span#ppress-end-date-wrap{margin-left:-4px}.ppress-from-to-wrapper input:focus{z-index:2;position:relative}.ppview .wp-list-table .post-state{display:none}.ppview .subscription.ppview .ppress-line-header{display:block;font-weight:500}.ppview .subscription.ppview .ppress-line-note{display:block;font-size:12px}.ppview .subscription.ppview .ppress-line-header a{font-weight:400}.ppview .subscription.ppview th.column-initial_payment,.ppview .subscription.ppview th.column-renewal_date{width:14%}.ppview .subscription.ppview th.column-plan{width:20%}.ppview .subscription.ppview th.column-status{width:12%}.ppress-admin .ppview .ppress_customers th#customer_last_login{width:13%}.ppress-admin .ppview .ppress_customers th#customer_since{width:14%}.ppress-admin .ppview .ppress_customers th#customer_email{width:17%}.ppress-admin .ppview .ppress_customers th#customer_subscriptions{width:16%}.ppress-report-charts-container *{box-sizing:border-box}.ppress-report-charts-container{width:100%}.ppress-report-charts-container dl.ppress-report-chart-top-card-item-wrap{display:grid;overflow:hidden;margin-top:1.25rem;background-color:#fff;border-radius:.5rem;border-color:#e5e7eb;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border-left-width:1px;border-top-width:0;grid-template-columns:repeat(4,1fr)}.ppress-report-charts-container .ppress-report-chart-top-card-item{padding:24px;border-right:1px solid #e5e7eb}.ppress-report-charts-container dt.ppress-report-chart-top-card-item-header{color:#6b7280;font-size:1rem;line-height:1.5rem;font-weight:400}.ppress-report-charts-container dd.ppress-report-chart-top-card-item-content-wrap{display:flex;margin:4px 0 12px;justify-content:space-between;align-items:baseline}.ppress-report-charts-container .ppress-report-chart-top-card-item-content{display:flex;color:#111827;font-size:1.5rem;line-height:2rem;font-weight:600;align-items:baseline}.ppress-report-charts-container .ppress-report-chart-top-card-item:last-child{border-right:0}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-content-wrap p.ppress-report-chart-bottom-card-item-trend.negative{color:#991b1b}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-wrap{display:grid;margin-top:1.25rem;gap:1.25rem;grid-template-columns:repeat(2,minmax(0,1fr))}.ppress-report-charts-container .ppress-report-chart-bottom-card-item{overflow:hidden;position:relative;background-color:#fff;border-radius:.5rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);padding:1.5rem}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-chart{margin:0;margin-top:1.5rem}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-header p{color:#6b7280;font-size:.875rem;line-height:1.25rem;font-weight:500;overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-content-wrap{display:flex;padding-bottom:0;margin:0;align-items:baseline}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-content-wrap p{color:#111827;font-size:1.5rem;line-height:2rem;font-weight:600;margin:0}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-content-wrap p.ppress-report-chart-bottom-card-item-trend{display:flex;margin-left:.5rem;color:#059669;font-size:.875rem;line-height:1.25rem;font-weight:600;align-items:baseline}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-view-more-block{position:absolute;right:0;left:0;bottom:0;background-color:#f9fafb;padding:1rem 1.5rem;font-size:.875rem;line-height:1.25rem}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-view-more-block a{font-weight:500;text-decoration:none}
1
+ .ppress-admin #ppress-membership-customer-content .postbox-header,.ppress-admin #ppress-membership-order-content .postbox-header,.ppress-admin #ppress-membership-subscription-content .postbox-header,.ppress-admin .handle-actions{display:none}.ppress-admin .postbox .hndle{cursor:default!important}.ppress-admin #ppress-membership-customer-content .inside,.ppress-admin #ppress-membership-customer-subscriptions .inside,.ppress-admin #ppress-membership-item-content .inside,.ppress-admin #ppress-membership-order-content .inside,.ppress-admin #ppress-membership-subscription-content .inside,.ppress-admin #ppress-membership-subscription-payments .inside{margin:0;padding:0;display:block!important}.ppress-admin .ppress-membership-customer-details,.ppress-admin .ppress-membership-order-details,.ppress-admin .ppress-membership-subscription-details{padding:30px}.ppress-admin .ppress-membership-customer-details p,.ppress-admin .ppress-membership-order-details p,.ppress-admin .ppress-membership-subscription-details p{color:#777}.ppress-admin #ppress-membership-order-subscription a,.ppress-admin .ppress-membership-order-details p a,.ppress-membership-customer-details .ppress-customer-stats-wrapper a{text-decoration:none}.ppress-admin #poststuff h2.ppress-metabox-data-heading,.ppress-admin .ppress-metabox-meta-data{margin:0;font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",sans-serif;font-weight:400}.ppress-admin #poststuff h2.ppress-metabox-data-heading{font-size:21px;line-height:1.2;text-shadow:1px 1px 1px #fff;padding:0}.ppress-admin .ppress-metabox-meta-data{line-height:1.8em;font-size:16px}.ppress-admin .ppress-metabox-data-column-container{display:flex;flex-wrap:nowrap}.ppress-admin .ppress-metabox-data-column{width:50%;padding-left:0;padding-right:30px}.ppress-admin .ppress-metabox-data-column:last-of-type{padding-left:30px;padding-right:0}.ppview .postbox .ppress-metabox-data-column input:not([type=checkbox]):not([type=radio]),.ppview .postbox .ppress-metabox-data-column select{width:100%!important}.ppress-admin .ppress-metabox-data-column h3{font-size:14px;color:#333;margin:1.33em 0 0}.ppress-admin .ppress-metabox-data-column p{padding:0!important;margin:9px 0 0}.ppress-admin .ppress-metabox-data-column a.edit_address{width:14px;height:0;padding:14px 0 0;margin:0 0 0 6px;overflow:hidden;position:relative;color:#999;border:0;float:right}.ppress-admin .ppress-metabox-data-column a.edit_address::after{position:absolute;top:0;left:0;text-align:center;vertical-align:top;line-height:14px;font-size:14px;font-weight:400;font-family:Dashicons;content:""}.ppress-admin .ppress-metabox-data-column .ppress_edit_address_wrap{display:none}.ppress-admin #poststuff #ppress-membership-item-content h2{padding:15px 30px;margin:0;font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,sans-serif;font-size:21px;font-weight:400;line-height:1.2;text-shadow:1px 1px 1px #fff}.ppress-admin #ppress-submetabox-items table th{text-align:left;padding:1em;font-weight:400;color:#999;background:#f8f8f8;border-top:0;user-select:none;font-size:14px;line-height:20px}.ppress-admin #ppress-submetabox-items table{background:#fff;width:100%;border-collapse:collapse}.ppress-admin #ppress-submetabox-items table th:first-child{padding-left:30px}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-item-column-price,.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-item-column-total,.ppress-admin #ppress-submetabox-items table th.ppress-submetabox-item-column-price,.ppress-admin #ppress-submetabox-items table th.ppress-submetabox-item-column-total{width:100px;text-align:right}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-action,.ppress-admin #ppress-submetabox-items table th.ppress-submetabox-item-column-action{width:5%;text-align:left}.ppress-admin #ppress-submetabox-items table td:first-child{padding-left:30px}.ppress-admin #ppress-submetabox-items table td{padding:1.5em 1em 1em;text-align:left;line-height:1.5em;vertical-align:top;border-bottom:1px solid #f8f8f8}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-sub-total td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-tax td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-total td{border-bottom:0}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-sub-total td,.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-tax td,.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-total,.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-total-label{text-align:right}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-border td{padding:0;border:0}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts .coupon-wrap{float:left;text-align:left}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts .coupon-wrap .coupons-label{display:inline-block;margin-bottom:5px;margin-right:2px;font-weight:600;font-size:12px}.ppress-admin #ppress-submetabox-items table .ppress-submetabox-items-row-discounts .coupon-wrap .coupon-code{display:inline-block;position:relative;padding:3px 10px;background-color:#f7f7f7;border:1px solid #aaa;box-shadow:0 1px 0#dfdfdf;border-radius:4px;margin-right:5px;margin-top:5px;text-decoration:none;color:#888;font-size:12px;line-height:16px}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-actions{border-top:1px solid #ddd;background:#f8f8f8;text-align:right}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-actions .order-refund{float:left}.ppress-admin #ppress-submetabox-items table td.ppress-submetabox-items-column-actions .message{font-style:italic;display:inline-block;line-height:28px}.ppress-admin #ppress-membership-item-content .ppress-submetabox-items-column-actions .ppress-hint-tooltip{text-align:left}.ppress-admin .ppress-notes li{padding:0 10px}.ppress-admin .ppress-notes li .ppress-note-content{background:#efefef;padding:10px;position:relative}.ppress-admin .ppress-notes li .ppress-note-content p{margin:0;padding:0}.ppress-admin .ppress-notes li .ppress-note-content:after{content:"";display:block;position:absolute;bottom:-10px;left:20px;width:0;height:0;border-color:#efefef transparent;border-style:solid;border-width:10px 10px 0 0}.ppress-admin .ppress-notes p.ppress-note-meta{padding:10px;color:#999;margin:0;font-size:11px}.ppress-admin .ppress-notes p.ppress-note-meta .ppress-note-date{border-bottom:1px dotted #fff}.ppress-admin .ppress-notes p.ppress-note-meta a{color:#a00}#ppress-membership-order-notes.postbox .inside{padding:0 0 10px}.ppress-admin .ppress-membership-order-details .ppress-order-badge{font-size:12px;font-weight:600;padding:6px 8px;margin-left:5px;border-radius:9999px;vertical-align:middle;background-color:rgb(220 252 231);color:rgb(22 101 52);line-height:2.30769231;text-shadow:none}.ppress-order-item-modal-wrap{width:100%;max-width:500px}.ppress-admin .ppress-order-item-modal-wrap label{display:block;font-weight:700}.ppress-admin .ppress-order-item-modal-wrap input,.ppress-admin .ppress-order-item-modal-wrap select{width:100%;max-width:100%}.ppress-admin .select2-container .select2-dropdown{z-index:900000!important}.ppress-membership-customer-details .ppress-customer-info .ppress-customer-info{min-height:185px}.ppress-membership-customer-details .ppress-customer-info{display:flex;flex-wrap:wrap}.ppress-membership-customer-details .ppress-customer-info .ppress-avatar-wrap{max-width:250px;width:35%}.ppress-membership-customer-details .ppress-customer-info .ppress-customer-main-wrapper{width:60%;padding:0 10px;box-sizing:border-box}.ppress-membership-customer-details .ppress-customer-info span.customer-name{margin-bottom:6px;font-size:24px;font-weight:600}.ppress-membership-customer-details .ppress-customer-info .ppress-customer-main-wrapper span:not(.customer-name):not([class*=select2]):not([class*=selection]){display:block;padding:3px;color:#777}.ppress-membership-customer-details .ppress-customer-info .customer-user-id span,.ppview .wp-list-table tr:hover .post-state{display:inline-block}.ppress-membership-customer-details .ppress-customer-info .ppres-customer-edit-link{text-align:center}.ppress-membership-customer-details .ppress-customer-info .ppress-avatar-wrap img{width:100%;height:auto;border-radius:5px}.ppress-membership-customer-details .ppress-customer-info .mb-form-field label{font-weight:500}.ppress-membership-customer-details .ppress-customer-info .mb-form-field label a{font-weight:400}.ppress-membership-customer-details .ppress-customer-stats-wrapper{margin:20px auto 10px;text-align:center;border-top:1px solid #eee;padding:30px 0 0}.ppress-membership-customer-details .ppress-customer-stats-wrapper ul{display:flex;margin:0;list-style:none}.ppress-membership-customer-details .ppress-customer-stats-wrapper li{font-size:14px;margin-bottom:0;width:50%}.ppress-membership-customer-details .ppress-customer-stats-wrapper .dashicons{color:#888;margin-top:-2px}#adminmenu ul>li:not(:last-child) a[href$="page=ppress-config"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-content-protection"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-customers"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-directories"]:after{border-bottom:1px solid rgba(255,255,255,.2);display:block;float:left;margin:13px -15px 8px;content:"";width:calc(100% + 30px)}@media screen and (max-width:782px){#adminmenu ul>li:not(:last-child) a[href$="page=ppress-config"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-content-protection"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-customers"]:after,#adminmenu ul>li:not(:last-child) a[href$="page=ppress-directories"]:after{margin:20px -20px 8px;width:calc(100% + 40px)}}#adminmenu li[class*=ppress-] ul>li:nth-last-child(2):after{margin-left:0}#adminmenu li[class*=ppress-] ul.wp-submenu-wrap li,#ppress-available-shortcodes-jbox .ppclearfix:after{clear:both}.ppress-admin .ppress-checklist{background-color:#fbfbfd;margin-top:-10px;margin-bottom:20px;position:relative;box-sizing:border-box;padding:30px}.ppress-admin .ppress-checklist div{text-align:center!important}.ppress-admin .ppress-checklist h2{font-size:32px;line-height:40px;padding-bottom:10px;margin:0}.ppress-admin .ppress-checklist-teaser{font-size:18px;color:#97a3b4;margin:10px 0}.ppress-admin .ppress-checklist-dashboard-steps,.profile-press-design-gateway .pp-half-first-thumb.responsive-image{text-align:center}.ppress-admin .ppress-checklist-dashboard-steps ul{display:flex;flex-wrap:wrap;justify-content:center;margin-top:40px;margin-bottom:0}.ppress-admin .ppress-checklist-dashboard-steps ul li{width:185px;height:210px;margin:0 15px 30px;opacity:.85}.ppress-admin .ppress-checklist a{background-color:transparent;color:#326ee0;text-decoration:none}.ppress-admin .ppress-checklist-dashboard-steps ul li a{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;justify-content:center;height:100%;text-align:center;border:1px solid #c6cbd0;border-radius:3px;text-decoration:none;position:relative}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done a{border-color:#0175ff}.ppress-admin .ppress-checklist-dashboard-steps ul li a svg{display:block;margin:auto;padding-top:10px;width:60px}.ppress-admin .ppress-checklist-dashboard-steps ul li a span{margin:0 10px 20px;font-size:14px;font-weight:600}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done a span{color:#001f4d}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done a:after{content:"";width:20px;height:20px;background-color:#06d478;background-image:url(../../assets/images/icon-checkmark.svg);background-repeat:no-repeat;background-size:15px;background-position:50%;position:absolute;right:3px;top:3px;border-radius:100%}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done a .svg-color{fill:#0175ff}.ppress-admin .ppress-checklist-dashboard-steps ul li a:hover{border-color:#001f4d}.ppress-admin .ppress-checklist-dashboard-steps ul li a:hover .svg-color{fill:#001f4d}.ppress-admin .ppress-checklist-dashboard-steps ul li.ppress-checklist-done{pointer-events:none}.pp-dnd-form-builder-wrap #titlediv span.shortcode input,.ppSCB-margin-r #titlediv span.shortcode input{font-size:12px;border:0;box-shadow:none;padding:4px 8px;margin:0;background:0 0;color:#fff}.pp-dnd-form-builder-wrap #titlediv span.shortcode,.ppSCB-margin-r #titlediv span.shortcode{display:block;margin:2px 0}.pp-form-listing .pp_forms th#shortcode{width:33%}.pp-form-listing .pp_forms th#title{width:35%}.pp-add-new-form-wrapper .profile-press-design-gateway{width:100%;max-width:700px}.pp-half-meta-inner .pp-half-meta h2{font-size:24px!important}.pp-add-new-form-wrapper .profile-press-design-gateway-inner .responsive-image img{width:100%;height:auto}.pp-add-new-form-wrapper .pp-hald-first{float:left;width:50%;text-align:center;padding:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-decoration:none;color:#555}.pp-add-new-form-wrapper .pp-hald-first a{color:initial;text-decoration:none}.pp-add-new-form-wrapper .pp-builder-select-active{border:2px solid #3498db}.pp-add-new-form-wrapper .pp-half-meta-inner{background:#fff;padding:20px;position:relative;cursor:pointer}.profile-press-design-gateway .pp-half-first-thumb.responsive-image img{width:70px;height:70px;padding:20px}.pp-add-new-form-wrapper .pp-builder-create-btn{background:#3498db;padding:20px;width:100%;border:0;font-weight:400;text-transform:uppercase;color:#fff;font-family:"Work Sans",sans-serif;font-size:20px;border-bottom:3px solid #2980b9;cursor:pointer}.pp-add-new-form-wrapper .pp-half-meta p{font-size:17px;line-height:1.5;margin-top:20px}.pp-add-new-form-wrapper .pp-builder-create-btn:focus{border-bottom:2px solid #2980b9}.ppview .postbox .wp-editor-wrap,.ppview .postbox input[type=number],.ppview .postbox input[type=text],.ppview .postbox select,.ppview .postbox textarea,.ppview input[type=password]{width:550px!important;max-width:550px!important}#ppContentProtectionContent .col select,.ppress-admin .ppview .postbox .ppress-subscription-plan-payment-links input,.ppview .postbox [id*=email_content-wrap].wp-editor-wrap{width:100%!important;max-width:100%!important}.pp-form-listing .pp_forms input.shortcode-in-list-table{width:100%!important;max-width:260px;border:0}.ppSCB .pp-form-builder-shortcodes-btn{text-align:right;float:right}#ppress-available-shortcodes-jbox{width:100%;max-width:600px}#ppress-available-shortcodes-jbox *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased}#ppress-available-shortcodes-jbox input#ppress_shortcode_inserter_search{width:100%;height:28px;margin:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-list-wrapper{padding:10px 20px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-name{font-weight:700;font-size:15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:inline}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item-btn{width:32%;display:inline;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item-btn a{float:right;margin-top:10px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item{width:68%;float:left}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item-wrap{display:block;padding-top:5px}#ppress-available-shortcodes-jbox .ppclearfix:after,#ppress-available-shortcodes-jbox .ppclearfix:before{content:" ";display:table}#ppress-available-shortcodes-jbox .jBox-title{font-size:16px;margin:0}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-item-wrap{border-bottom:1px solid #d3d3d3;padding-bottom:10px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-desc{margin:5px 0 10px;font-size:14px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attributes-wrap{margin:8px 0 21px;border:1px solid #e5e5e5;border-left:0;border-right:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);color:#515151;width:100%;box-sizing:border-box}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-label{width:38%;display:inline-block;box-sizing:border-box;font-size:13px;font-weight:600;float:left;background:#f9f9f9;vertical-align:top;border:0;border-top:1px solid #f2f2f2;padding:25px 20px 18px}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-field:first-child,.ppress-builder-shortcode-attribute-row:first-child .ppress-builder-shortcode-attribute-label{border-top:none}#ppress-available-shortcodes-jbox .jBox-content{background-color:#f5f5f5}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-field{vertical-align:top;border:0;width:62%;box-sizing:border-box;border-top:1px solid #f2f2f2;padding:15px 20px;float:left;background:#fff}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-row:after{content:"";display:table;clear:both}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-attribute-row{border:1px solid #e5e5e5;border-top:0;border-bottom:0}#ppress-available-shortcodes-jbox .ppress-shortcode-inserter-builder-field:not([type=checkbox]){width:100%}#ppress-available-shortcodes-jbox .ppress-shortcode-inserter-builder-field[type=checkbox]{margin:10px 0}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-clipboard-form{padding:0 0 12px}#ppress-available-shortcodes-jbox #ppress-builder-shortcode-preview-field{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.45;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);font-family:Consolas,Monaco,monospace;width:100%;padding:18px;font-size:12.5px;margin:0 5px 9px 0;text-align:center;background:#fff}#ppress-available-shortcodes-jbox .ppress-builder-shortcode-btn.button{width:100%}#ppress-available-shortcodes-jbox .ppress-shortcode-inserter-back{cursor:pointer;margin:0 6px 0 0}.ppSCB .pp-form-builder-shortcodes-btn a:before{font-family:dashicons;content:"";padding-right:2px;vertical-align:middle;display:inline-block}.pp-form-listing .pp_formsinput[readonly]{background-color:#eee;margin:1px}.ppview .custom-field-anchor{width:30px;border-right:1px solid #e1e1e1;text-align:center!important}.ppview tbody tr td.custom-field-anchor{cursor:move}.ppview table#pp_contact_info tbody tr:hover,.ppview table.custom_profile_fields tbody tr:hover{background-color:#e3e3e3}.pp_circle_green,.pp_circle_red{border-radius:100%;height:2px;margin:5px 15px;padding:5px;width:2px}.pp_circle_green{background:green}.pp_circle_red{background:red}.wp_csa_view.pp-license .banner{position:absolute;left:10%;display:block;margin:10px 5px 20px;width:600px;height:60px;border:1px solid #8a1;font:400 30px/60px Rye;text-align:center;color:#451;background:#9b2;border-radius:4px;box-shadow:0 0 30px rgba(0,0,0,.15) inset,0 6px 10px rgba(0,0,0,.15)}.wp_csa_view.pp-license .banner::after,.wp_csa_view.pp-license .banner::before{content:"";position:absolute;top:24px;display:block;width:40px;height:0;border:30px solid #9b2;border-bottom-color:#94b81e}.wp_csa_view.pp-license .banner::before{left:-70px;border-right:20px solid #791;border-left-color:transparent;transform:rotate(-5deg)}.wp_csa_view.pp-license .banner::after{left:auto;right:-70px;border-left:20px solid #791;border-right:30px solid transparent;transform:rotate(5deg)}.ppview .pp-settings-wrap{display:flex;border:1px solid #c8d7e1;margin-top:5px}.ppview .pp-settings-wrap .dashicons{padding-top:2px;margin-right:5px}.ppview .pp-settings-wrap h2.nav-tab-wrapper{flex:1;border-bottom:none;padding:0;background:#f7f8fa;border-right:1px solid #c8d7e1}.ppview .pp-settings-wrap h2.nav-tab-wrapper a{float:none;display:block;margin:0;border:0;padding:15px;background:#f7f8fa;font-weight:500;border-bottom:1px solid #c8d7e1}.ppview .pp-settings-wrap h2.nav-tab-wrapper a.nav-tab-active{background:#fff!important;border-right:1px solid #c8d7e1;width:99%;color:#2e4453}.ppview .pp-settings-wrap .metabox-holder{flex:3;padding-left:3%;padding-right:10px;background:#fff}.ppview .pp-settings-wrap .pp-tab-settings .postbox{border:0;box-shadow:none}.ppview .pp-settings-wrap .metabox-holder h3.hndle{padding:12px;cursor:default;border-top:1px solid #eee;border-bottom:1px solid #eee}.ppview .pp-settings-wrap .postbox:first-child h3.hndle{border-top:none!important}#pp-sub-bar .pp-clear,.pp-add-new-form-wrapper .pp-optin-clear,.pp-add-new-form-wrapper .pp-template-clear{clear:both}#pp-sub-bar .pp-clear:after,.pp-add-new-form-wrapper .pp-optin-clear:after,.pp-add-new-form-wrapper .pp-template-clear:after{clear:both;content:".";display:block;height:0;line-height:0;overflow:auto;visibility:hidden;zoom:1}#pp-sub-bar .pp-new-toolbar{min-height:38px;padding:10px;background:#fff;margin-bottom:20px;border:1px solid #dedede;box-sizing:content-box;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#pp-sub-bar .pp-new-toolbar h4{color:#222;font-size:18px;font-weight:600;margin:8px 0 0;padding:0;float:left}#pp-sub-bar .pp-new-toolbar ul{float:right;list-style:none;padding:0;margin:10px 0 0}#pp-sub-bar .pp-new-toolbar ul li{list-style:none;padding:0;margin:0;float:left}#pp-sub-bar .pp-new-toolbar ul li a{color:#0085ba;text-decoration:none;text-transform:uppercase;font-size:13px;letter-spacing:1px;padding:21px 15px 22px;outline:0!important}#pp-sub-bar .pp-new-toolbar ul li a.pp-type-active,#pp-sub-bar .pp-new-toolbar ul li a:hover{color:#fff;background:#007cba}.pp-add-new-form-wrapper .pp-form-new-list .pp-dash-spinner{visibility:hidden;float:none;margin-right:0;margin-left:0}.pp-add-new-form-wrapper .pp-error{color:red;font-size:13px;font-weight:600;vertical-align:middle;display:inline-block;margin-top:-3px}.pp-add-new-form-wrapper .pp-input-error{border-color:red!important;-webkit-box-shadow:0 0 2px rgba(255,0,0,.8)!important;box-shadow:0 0 2px rgba(255,0,0,.8)!important}.pp-add-new-form-wrapper .pp-form-new-list{height:38px;padding:10px;background:#fff;margin-bottom:20px;border:1px solid #dedede;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}.pp-add-new-form-wrapper .pp-form-new-list h4{color:#222;font-size:18px;font-weight:600;text-shadow:0 1px rgba(255,255,255,.25);margin:2px 0 0;padding:0}.pp-add-new-form-wrapper .pp-form-new-list strong{font-size:16px;vertical-align:middle}.pp-add-new-form-wrapper .pp-form-new-list input,.pp-add-new-form-wrapper .pp-form-new-list select{position:relative;top:1px;margin-left:5px;margin-right:10px;font-size:16px;font-weight:300;width:350px;height:32px}.pp-add-new-form-wrapper .ppress-premium-flag{position:absolute;top:-8px;right:-8px;width:90px;height:81px;background-image:url(../../images/themes/premium-theme.png);background-size:90px 81px;transform:rotate(70deg)}.pp-add-new-form-wrapper .pp-optin-theme{cursor:pointer;float:left;margin:0 4% 4%0;position:relative;width:30.66666666667%;border:1px solid #dedede;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#ppContentProtectionContent .actions a:hover,#ppContentProtectionContent .col a:hover,.pp-add-new-form-wrapper .pp-optin-theme a{text-decoration:none}.pp-add-new-form-wrapper .pp-optin-theme:nth-child(3n){margin-right:0}.pp-add-new-form-wrapper .pp-optin-theme.pp-last-theme{margin-right:0}.pp-add-new-form-wrapper .pp-optin-theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.pp-add-new-form-wrapper .pp-optin-theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.pp-add-new-form-wrapper .pp-optin-theme .pp-optin-theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.pp-add-new-form-wrapper .pp-optin-theme .pp-optin-theme-actions{position:absolute;bottom:0;right:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-left:1px solid rgba(0,0,0,.05)}.pp-add-new-form-wrapper .pp-optin-theme-screenshot img{height:100%;position:absolute;left:0;top:0;width:100%;-webkit-transform:translateZ(0);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}#pp-sub-bar .pp-new-toolbar .pp-melange-jbox{margin:0 0 0-18px;font-size:18px;cursor:pointer}.pp-form-listing.pp-forms .wp-list-table .column-date{width:145px}.pp-form-listing.pp-user-profiles th#title{width:30%}.pp-form-listing.pp-user-profiles th#date{width:20%}.pp-form-buider-settings-popup-container *{box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.pp-form-buider-settings-popup-container{position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(51,51,51,.95);padding:20px}.pp-form-buider-settings-popup-content{background-color:#fefefe;margin:5%auto;border:1px solid #888;width:100%;max-width:600px}.pp-form-buider-settings-popup-header{-webkit-font-smoothing:antialiased;align-items:center;border-bottom:1px solid #e6e6e6;box-sizing:border-box;display:flex;font-variant-ligatures:none;outline:0;padding:15px;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-dnd-form-builder-wrap span.pp-form-buider-settings-field-type,.pp-form-buider-settings-popup-container span.pp-form-buider-settings-field-type,.pp-form-buider-settings-popup-header h3{-webkit-font-smoothing:antialiased;box-sizing:border-box;color:#333;font-family:Arial,sans-serif;font-stretch:normal;font-style:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal;margin:0;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-header h3{border-width:0;display:block;font-size:15px;font-weight:700;line-height:30px;overflow:hidden;padding:0;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.pp-form-buider-settings-popup-container .pp-actions-left{display:flex;align-items:center;margin-left:10px;margin-right:auto}.pp-dnd-form-builder-wrap span.pp-form-buider-settings-field-type,.pp-form-buider-settings-popup-container span.pp-form-buider-settings-field-type{background-color:#f2f2f2;border:2px solid transparent;border-radius:13px;cursor:default;display:inline-block;font-size:12px;font-weight:500;height:26px;letter-spacing:-.25px;line-height:22px;min-width:40px;padding:0 16px;text-align:center}.pp-dnd-form-builder-wrap span.pp-form-buider-settings-field-type.field-bar-title{margin-top:3px;margin-left:5px;padding:0 8px;font-size:11px}.pp-form-buider-settings-popup-container .pp-actions-right{display:flex;align-items:center;margin-left:auto;margin-right:0}.pp-form-buider-settings-popup-body .pp-form-buider-settings-popup-tab-content,.pp-form-buider-settings-popup-body .pp-form-buider-settings-popup-tabs,.pp-form-buider-settings-popup-body a.pp-form-buider-settings-popup-tab-menu{-webkit-font-smoothing:antialiased;box-sizing:border-box;font-variant-ligatures:none;outline:0;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-body .pp-form-buider-settings-popup-tabs{border-top:0 solid #e6e6e6;display:flex;list-style:none;margin:0;padding:0 30px}.pp-form-buider-settings-popup-body a.pp-form-buider-settings-popup-tab-menu{border-bottom:2px solid transparent;box-shadow:none;color:#888;cursor:pointer;font-size:12px;font-weight:500;line-height:22px;margin:0 10px;outline:0 transparent;padding:14px 0 12px;text-decoration:none;text-transform:uppercase}.pp-form-buider-settings-popup-body a.pp-form-buider-settings-popup-tab-menu.active{color:#333;border-bottom-color:#333}.pp-form-buider-settings-popup-body .pp-form-buider-settings-popup-tab-content{border-top:1px solid #e6e6e6;display:block;margin-top:-1px;padding:30px}.pp-form-buider-settings-popup-tab-content .pp-form-row{flex-direction:row;flex-wrap:wrap;width:100%;display:flex;margin-bottom:30px}.pp-form-buider-settings-popup-tab-content .pp-form-row:last-child{margin-bottom:0}.pp-form-buider-settings-popup-tab-content .pp-form-column{display:flex;flex-direction:column;flex-basis:100%;flex:1;padding-left:15px;padding-right:15px}pp-form-buider-settings-popup-tab-content .pp-form-double-column{display:flex;flex-direction:column;flex-basis:100%;flex:2}.pp-form-control-icon-picker{cursor:pointer}.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body .pp-form-control,.pp-form-buider-settings-popup-container label.pp-label{-webkit-font-smoothing:antialiased;box-sizing:border-box;color:#333;font-family:Arial,sans-serif;font-stretch:normal;font-style:normal;font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-weight:500;letter-spacing:-.25px;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-container label.pp-label{border-width:0;display:block;font-size:14px;line-height:22px;margin:0 0 5px;padding:0;cursor:pointer;vertical-align:middle}.pp-form-buider-settings-popup-container .pp-form-control-description{-webkit-font-smoothing:antialiased;box-sizing:border-box;color:#888;display:block;font-size:13px;font-variant-ligatures:none;font-weight:400;line-height:22px;margin-top:5px;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body .pp-form-control{background-color:#fff;background-image:none;border:1px solid #ddd;border-radius:4px;box-shadow:none;display:inline-block;font-size:15px;height:40px;line-height:20px;margin:0;outline:0;padding:9px 14px;transition-delay:0s;transition-duration:.3s;transition-property:all;transition-timing-function:ease-in-out}.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body .pp-form-control[type=checkbox],.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body .pp-form-control[type=radio]{height:1rem}.pp-form-buider-settings-popup-container .pp-form-buider-settings-popup-body select.pp-form-control{background-image:url(../../images/frontend/arrow-down.png);background-position:right 20px center;background-repeat:no-repeat;background-size:10px auto;-webkit-appearance:none;-moz-appearance:none;appearance:none}.pp-form-buider-settings-popup-content .pp-form-control:not([type=checkbox]){width:100%!important;max-width:100%!important}.pp-form-buider-settings-popup-content .pp-form-buider-settings-popup-footer{-webkit-font-smoothing:antialiased;align-items:center;border-top:1px solid #e6e6e6;box-sizing:border-box;display:flex;font-variant-ligatures:none;outline:0;padding:30px;text-rendering:optimizelegibility;text-shadow:rgba(0,0,0,.01)0 0 1px}.pp-form-buider-settings-popup-content textarea.pp-form-control{max-width:100%;min-height:100px;resize:vertical;line-height:20px}.pp-form-buider-settings-popup-container .pp-form-buider-settings-field-close-btn{color:#aaa;float:right;font-size:28px;font-weight:700}.pp-form-buider-settings-popup-container .pp-form-buider-settings-field-close-btn:focus,.pp-form-buider-settings-popup-container .pp-form-buider-settings-field-close-btn:hover{color:#000;text-decoration:none;cursor:pointer}.ppSCB-tab-box-div .CodeMirror{width:100%!important;border:0;height:617px}.ppSCB-tab-box-div .form-table th{padding:20px 0}.pp_edit_form #titlediv div#titlewrap #title{width:80%!important}#titlewrap input.ppSCB-save-btn{margin:0 10px 5px;vertical-align:top;height:35px}.ppSCB-margin-r input[type=text],.ppSCB-margin-r select,.ppSCB-margin-r textarea{max-width:500px!important;width:100%!important}#post-body-content .form-table textarea.wp-editor-area,.remove_white_styling #post-body-content .form-table textarea.wp-editor-area,textarea.wp-editor-area{max-width:100%!important;width:100%!important}.ppSCB-tab-content{max-width:840px}#ppSettings.ppSCB-tab-content{padding:0 15px 15px}#ppSettings .ppSCB-tab-content-header{font-size:14px;background:#f5f5f5;padding:8px 5px;color:#333;margin:1em 0}.ppSCB-margin-r{margin-top:10px;margin-right:460px}.ppSCB-clear-both{clear:both}.ppSCB-margin-r h2.nav-tab-wrapper{border-bottom:0!important;padding-bottom:0!important;padding-left:0!important}.ppSCB-margin-r h2 .nav-tab{font-size:13px;line-height:25px;font-weight:400;padding:4px 10px!important;border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0}.ppSCB-margin-r .nav-tab-active,.ppSCB-margin-r .nav-tab-active:hover{background:#fff;font-weight:700!important;border-bottom:0;border-top:2px solid #1a9ac9;color:#0073aa}.ppSCB-margin-r .ppSCB-tab-box{float:left;width:100%}.ppSCB-margin-r .ppSCB-tab-box-div{background:#fff;border:1px solid #ccc;min-height:617px;padding:0}.ppSCB-margin-r .ppSCB-sidebar{float:right;border:1px solid #ccc;background:#fff;margin-right:-460px;width:440px;min-height:700.6px}.ppSCB-margin-r.passwordReset .ppSCB-sidebar{min-height:684.4px}.ppSCB-margin-r .ppSCB-sidebar h2{font-size:16px;text-align:center;color:#888;line-height:24px}.ppSCB-margin-r .ppSCB-sidebar iframe{width:100%!important;height:100%!important;min-height:649px}.ppSCB-margin-r .ppSCB-sidebar h3{border-bottom:1px solid #eee;margin:0;padding:10px;line-height:1.4;text-align:center;font-size:18px}.ppSCB-margin-r input.shortcode-in-list-table{float:right;width:250px!important;background:#fff;border:3px solid #eee;font-weight:400;font-size:15px;padding:4px 10px;line-height:normal}.ppSCB-margin-r .ppSCB-preview-h-left,.ppSCB-margin-r .ppSCB-preview-h-right{text-align:center;display:inline-block;width:49%;padding:14px 1.1px;cursor:pointer}.ppSCB-margin-r .ppSCB-preview-h-left h3,.ppSCB-margin-r .ppSCB-preview-h-right h3{display:inline;border:0;font-size:14px}.ppSCB-margin-r .ppSCB-preview-header{border-bottom:1px solid #eee}.ppSCB-margin-r .ppSCB-preview-active{background:#eee;color:#fff!important;border:0}.ppSCB #titlediv div#titlewrap #title{max-width:80%!important}.ppress-email-editor-wrap{margin:0;padding:0}.ppress-email-editor-wrap .pp-email-editor-tab{border-bottom:1px solid #ddd;margin:0;padding:0}.ppress-email-editor-wrap .pp-email-editor-tablinks{padding:8px 15px;color:#666;background-color:#fff;border:0;margin:0;cursor:pointer}.ppress-email-editor-wrap .pp-email-editor-tabcontent{border:1px solid #ddd;border-top:0;display:none}.ppress-email-editor-wrap .pp-email-editor-tablinks.ecode{margin-left:31px}.ppress-email-editor-wrap .pp-email-editor-tablinks.eactive{border:1px solid #ddd;border-bottom:0;margin-bottom:-1px;padding-bottom:9px}.ppress-email-editor-wrap .pp-email-editor-tabcontent.epreview{padding:10px 10px 8px;margin:0;max-height:450px;overflow:scroll}.wrap.ppview .pp-settings-wrap .CodeMirror{height:300px;width:600px}.ppview #social_login_settings .CodeMirror{height:230px}.wrap.ppview .pp-settings-wrap .ppress-email-editor-wrap .pp-email-editor-tabcontent .CodeMirror{height:400px;width:600px;border-top:0;padding:0 5px}.ppview .pp-custom-field-notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 10px;padding:1px 12px;display:block;border-left-color:#00a0d2;position:relative;clear:left}.ppview .pp-custom-field-notice p{margin:.5em 0;padding:2px 5px}.ppress_settings_data .pp-email-notification-status{margin-right:18px;font-size:28px;line-height:22px;color:#a00;float:left;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.ppress_settings_data .pp-email-notification-status.pp-is-active{color:#46b450}.ppress_settings_data .pp-email-notifications th.column-title.column-primary{padding-left:48px}.ppress_settings_data .pp-email-notifications .pp-email-configure span{line-height:24px}.ppress_settings_data .pp-email-notifications .column-configure{width:60px;text-align:center}.remove_white_styling #post-body-content .form-table input[type=password],.remove_white_styling #post-body-content .form-table input[type=text],.remove_white_styling #post-body-content .form-table select,.remove_white_styling #post-body-content .form-table textarea{max-width:630px!important;width:100%!important}.pp-below-text-field-success{background:#46b450;color:#fff;padding:2px 5px;width:100%;box-sizing:border-box}.remove_white_styling #post-body-content textarea{min-height:200px}.pp-custom-fields.remove_white_styling #post-body-content textarea{min-height:50px}.ppress-below-text-field-error{background:#ca4a1f;color:#fff;padding:2px 5px;width:100%;box-sizing:border-box}.ppress-placeholder-tags{overflow:scroll;height:300px;width:100%;margin:10px 0}.ppress-placeholder-tags tbody tr:first-of-type{background-color:#efefef}.ppress-placeholder-tags tbody tr th{padding:15px}.ppress-settings-page-notice{background:#ddd9;padding:15px}.ppress-hint-tooltip{display:inline;font-weight:400}#logs textarea.ppress-error-log-textarea{width:100%!important;max-width:100%!important;min-height:300px!important;color:rgba(51,51,51,.78)!important}.pp-custom-fields #post-body-content textarea{width:100%;min-height:initial}#ppContentProtectionContent .badge{-webkit-font-smoothing:antialiased;background:#a5b2bd;border-radius:2px;color:#fff;display:inline-block;font-size:11px;font-style:normal;font-weight:700;line-height:10px;padding:4px 5px;text-transform:uppercase;vertical-align:text-top;-webkit-transition:background-color .25s ease-in-out;-o-transition:background-color .25s ease-in-out;transition:background-color .25s ease-in-out}#ppContentProtectionContent{margin:1em 0 2em}#ppContentProtectionContent.actions .facet{padding-right:35px}#ppContentProtectionContent .condAction{background:#f9fafa;border:1px solid #d6dde3;border-radius:3px}#ppContentProtectionContent .facet{zoom:1;position:relative;padding:15px 30px 10px 20px}#ppContentProtectionContent .facet:after,#ppContentProtectionContent .facet:before{display:table;content:"";line-height:0}#ppContentProtectionContent .facet:after{clear:both}#ppContentProtectionContent .col{width:48%;float:none;box-sizing:border-box;display:inline-block}#ppContentProtectionContent .col input{margin-right:5px;width:184px}#ppContentProtectionContent .col:last-child{margin-right:0}#ppContentProtectionContent .col a{line-height:28px}#ppContentProtectionContent .input-append>input{margin-right:0}#ppContentProtectionContent .regex input[type=text],.ppress-admin .ppress-checkout-fields .widget.open .widget-inside{display:block}#ppContentProtectionContent .timeframe input,#ppContentProtectionContent .timeframe select{display:inline-block;float:none}#ppContentProtectionContent .timeframe input{width:40px}#ppContentProtectionContent .timeframe select{width:80px}#ppContentProtectionContent .icon-circle-minus{color:#a5b2bd}#ppContentProtectionContent .actions{position:absolute;right:10px;top:17px;border:1px solid #a5b2bd;border-radius:50%}#ppContentProtectionContent .actions a{margin:0;text-decoration:none}#ppContentProtectionContent .and{border-bottom:1px dashed #d6dde3;margin:.5em 0 1.7em;text-align:center}#ppContentProtectionContent .and a,#ppContentProtectionContent .and em,#ppContentProtectionContent .and label{background:#fff;font-size:1.2em;font-style:normal;margin:0 10px;padding:0 10px;position:relative;top:9px}#ppContentProtectionContent .and label{cursor:pointer;display:inline-block;top:12px}#ppContentProtectionContent .and a{left:-6.5px}#ppContentProtectionContent .actions a:hover .icon-circle-minus,#ppContentProtectionContent .and em{color:#4f5d6b}#ppContentProtectionContent .and input{margin:0}#ppContentProtectionContent .or{color:#93a1af;font-weight:500;margin-left:-21px;left:50%;position:absolute;top:-6px;background:#f9fafa;font-size:1.2em;padding:0 10px}#ppContentProtectionContent .add-or>.add{background:#f9fafa;font-size:1.2em;padding:0 10px;left:-6.5px;position:relative;top:-9px}#ppContentProtectionContent .add-or{text-align:center}#ppContentProtectionContent .facetList>.facet:first-child>.badge{display:none!important}#ppContentProtectionContent #workflowConditions .facetList .facet select{min-height:32px}#ppContentProtectionContent #workflowConditions .col input.select2-search__field{margin:0;min-height:0}#ppContentProtectionContent #workflowConditions .select2 li{margin-bottom:0}#post-body-content .content_protection .column-title{width:32%}#post-body-content .content_protection .column-content{width:43%}#post-body-content .content_protection .access{width:25%}.ppress-extensions-items-wrap *{box-sizing:border-box}.ppress-extensions-items-wrap .ppress-extensions-header{padding:20px 0 10px;border-bottom:2px solid #e8e8eb;margin:0 0 30px;display:flex;align-items:center}.ppress-extensions-items-wrap .ppress-extensions-header-buttons{flex:1 0}.ppress-extensions-items-wrap .ppress-extensions-button{height:35px;font-size:14px;padding:0 18px;margin-right:10px}.ppress-extensions-items-wrap .ppress-extensions-items-row{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap;margin-right:-.5rem;margin-left:-.5rem}.ppress-extensions-items-wrap .ppress-extension-item-wrap{box-sizing:border-box;flex:0 0 auto;padding:.5rem;flex-basis:100%;max-width:100%}@media only screen and (min-width:782px){.ppress-extensions-items-wrap .ppress-extension-item-wrap{flex-basis:50%;max-width:50%}}@media only screen and (min-width:1042px){.ppress-extensions-items-wrap .ppress-extension-item-wrap{flex-basis:33.33333333%;max-width:33.33333333%}}.ppress-extensions-items-wrap .ppress-extension-item-card{height:100%;border:1px solid #e8e8eb;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.05);color:#141b38;display:flex;flex-direction:column}.ppress-extensions-items-wrap .ppress-extension-card-body{padding:30px 30px 20px;flex:1}.ppress-extensions-items-wrap .ppress-extension-card-body.ppress-unavailable{opacity:.5}.ppress-extensions-items-wrap .ppress-extension-card-header{display:flex;align-items:center;font-size:18px;font-weight:600;margin-bottom:16px}.ppress-extensions-items-wrap .ppress-extension-card-header .dashicons,.ppress-extensions-items-wrap .ppress-extension-card-header svg{width:35px;height:35px;margin-right:10px;font-size:35px}.ppress-extensions-items-wrap .ppress-extension-card-description{color:#434960;font-size:15px;line-height:22px}.ppress-extensions-items-wrap .ppress-extension-card-learn-more{margin-top:10px}.ppress-extensions-items-wrap .ppress-extension-card-footer{border:2px solid #fff;background-color:#f9f9fa;padding:12px;min-height:43px}.ppress-extensions-items-wrap .ppress-extension-card-install-activate{display:flex;align-items:center;justify-content:flex-end;height:30px;position:relative}.ppress-extensions-items-wrap .ppress-extension-card-install-activate .ppress-extension-card-status{font-weight:600;font-size:14px}.ppress-extensions-items-wrap .ppress-extension-use-switch{position:relative;cursor:pointer;background-color:#5a5a5a;border-radius:15px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;display:inline-block;margin:-2px 0 0 5px;width:36px;height:20px}.ppress-extensions-items-wrap .ppress-extension-card-install-activate input[type=checkbox]:checked+.ppress-extension-use-switch{background-color:#007cba}.ppress-extensions-items-wrap .ppress-extension-card-install-activate input[type=checkbox]{position:absolute;top:auto;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;white-space:nowrap}.ppress-extensions-items-wrap .ppress-extension-card-install-activate input[type=checkbox]:checked+.ppress-extension-use-switch:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}.ppress-extensions-items-wrap .ppress-extension-use-switch:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;border-radius:50%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ppress-extensions-items-wrap .ppress-extension-card-learn-more .no-underline{text-decoration:none}.ppress-extensions-items-wrap .ppress-extensions-upgrade-cta{display:flex;align-items:center;justify-content:flex-end}.ppress-extensions-items-wrap .ppress-extension-status{font-weight:700;color:#393f4c}.ppress-extensions-items-wrap .ppress-extension-status span{color:#777;font-weight:600}.ppress-extensions-upsell-wrap{margin-top:10px;padding:20px;background:#fff;border-left:3px solid #007cba;line-height:1.5;font-size:14px}.ppress-extensions-upsell-wrap .notice-content{display:-webkit-box;display:-ms-flexbox;display:flex}.ppress-extensions-upsell-wrap .ppress-extensions-upsell-button{flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;margin-left:auto;border-width:1px 1px 2px;border-radius:3px;cursor:pointer;display:inline-block;font-size:14px;text-decoration:none;margin-top:0;line-height:1}.ppress-extensions-upsell-wrap .ppress-extensions-upsell-button a{padding:5px 15px}.ppress-extensions-upsell-wrap .ppress-extensions-upsell-highlight{font-weight:700;color:#007cba}.ppress-admin .ppress-admin-banner{background-color:#326ee0;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative;top:0;width:100%;padding:15px}.ppress-admin .ppress-admin-wrap{margin-bottom:10px}.ppress-admin .ppress-admin-banner.ppress-pro{padding:15px 15px 0}.ppress-admin .ppress-admin-banner.ppress-pro.ppress-no-submenu{padding-bottom:15px}.ppress-admin .wrap{padding-left:20px;margin:0 20px 0 2px}.wp-admin.ppress-admin #wpcontent{padding:0}.ppress-admin .ppress-admin-banner__logo{padding:0 0 15px;display:block}.ppress-admin .ppress-admin-banner__logo img{width:140px;height:auto;float:left;margin-top:20px;padding-left:15px}.ppress-admin .ppress-admin-banner__helplinks{float:right;padding:10px 20px 20px}.ppress-admin .ppress-admin-banner__helplinks a{color:rgba(255,255,255,.92);text-decoration:none}.ppress-admin .ppress-admin-banner__helplinks a.ppress-active{background:#fff;padding:5px;color:#326ee0;border-radius:4px}.ppress-admin .ppress-admin-banner__helplinks>span{padding-right:15px}.ppress-admin div#screen-meta-links{position:absolute;right:0;z-index:9}.ppress-admin .ppress-nav-tab-wrapper{padding:0;margin:10px 16px 0;border-bottom:0}.ppress-admin .ppress-nav-tab-wrapper .ppress-nav-tab{display:block;font-weight:500;padding:5px 12px;text-decoration:none;border:1px solid transparent;background-color:transparent;color:rgba(255,255,255,.92);margin:0}.ppress-admin .ppress-nav-tab-wrapper .ppress-nav-tab.ppress-nav-active{background-color:#fff;color:#2d3559;border-color:#fff;border-radius:4px 4px 0 0}.ppress-admin-banner.ppress-not-pro{padding-bottom:0}.ppress-admin .ppress-no-submenu .ppress-nav-tab-wrapper,.ppress-admin .ppress_checkout_fields div#widgets-right .widgets-holder-wrap{margin-top:0}.ppress-admin-banner .ppress-header-menus{margin-top:10px}.ppress-admin .ppress-admin-wrap+.wrap h2{font-size:21px;font-weight:500}.ppress-admin .ppress-admin-wrap .subsubsub{background:#fff;font-size:14px;padding:0 32px;margin-top:0;float:none;text-align:left}.ppress-admin .ppress-admin-wrap .subsubsub a{color:#1d2327;display:block;font-weight:600;padding:8px 12px}.ppress-admin .ppress-admin-wrap .subsubsub a.ppress-current{color:#326ee0}.ppress-admin.wp-core-ui .wrap a.ppress-link{display:block;margin-top:10px;font-size:1em}.ppress-admin.wp-core-ui .wrap a.ppress-link svg{width:1.2em;margin:0 .2em;height:1.4em;vertical-align:middle;fill:currentcolor}.ppview .pp-alert-notice,.profile-php .pp-alert-success{background:#fff;border:1px solid #c3c4c7;border-left-width:4px;box-shadow:rgba(0,0,0,.04)0 1px 1px 0;margin:5px 2px;padding:1px 12px;border-left-color:#d63638}.profile-php .pp-alert-success{border-left-color:#72aee6;padding:8px 10px}.ppview .pp-alert-notice-info{border-left-color:#72aee6}.ppview .pp-alert-notice p,.profile-php .pp2fa-up-notice p{margin:.5em 0;padding:2px}.profile-php .ppmyac-2fa-recovery-codes-wrap pre{background:#fff;max-width:150px;border:1px solid #c3c4c7;width:100%;text-align:center;padding:10px 20px;margin-bottom:20px;line-height:1.8;overflow:auto}.ppress-admin .subscription_plan .manage-column.column-name{width:25%}.ppress-admin .subscription_plan .manage-column.column-status{width:10%}.ppress-admin .subscription_plan .manage-column.column-checkout_url{width:20%}.ppress-admin .ppress_checkout_fields .widget-liquid-left{width:50%;padding:0 10px 0 0;box-sizing:border-box}.ppress-admin .ppress_checkout_fields .widget-liquid-left:last-of-type{padding-right:0}.ppress-admin #poststuff.ppress_checkout_fields h2{font-size:1.3em}.ppress-admin .ppress-checkout-fields{min-height:50px;border:2px dashed #eee;padding:20px}.ppress-admin .ppress-checkout-add-field select{margin:0 10px;width:50%;vertical-align:baseline}.ppress-admin .ppress-checkout-fields .widget-inside input,.ppress-admin .ppress-checkout-fields .widget-inside select{width:100%;display:block}.ppress-admin .ppress_checkout_fields .ppress-submit-wrap{text-align:right;padding:0 0 1em}.ppress-admin .ppress_checkout_fields .ppress-submit-wrap .button{min-height:35px;padding:0 15px}.ppress-admin .ppress-checkout-fields .sortable-placeholder{padding:20px;border:1px dashed #c3c4c7;margin-bottom:20px}.ppress_payment_methods #post-body-content .form-table .ppress-payment-methods-wrap th,.ppress_taxes #post-body-content .form-table .ppress-tax-rates-wrap th{padding:10px}.ppress_payment_methods .ppress-payment-methods-wrap .ppress-payment-method-icon,.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-table-actions .ppress-tax-rate-icon{background:#aaa;border-radius:50%!important;padding:2px 2px 4px;color:#fff}.ppress_payment_methods .ppress-payment-methods-wrap .ppress-payment-method-icon.ico-yes{background:#2271b1}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap td.ppress-payment-method-table-title{font-weight:700}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-sort{text-align:center;width:.5em!important;cursor:move}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-title{width:15em!important}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-actions{width:1em!important}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-enabled{width:5em!important}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap .ppress-payment-method-table-subscription-support{width:8em!important;text-align:center}.ppress_payment_methods #post-body-content .ppress-payment-methods-wrap tr:nth-child(odd) td{background:#f9f9f9}.ppress_payment_methods.ppress-payment-methods-list .postbox .inside{padding:0!important;margin:0!important}.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-table-actions{width:1.5em!important}.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-table-rate{width:2.5em!important}.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-table-tax-name{width:12em!important}.ppress_taxes .ppress-tax-rates-wrap .ppress-tax-rate-icon{cursor:pointer}.ppress_taxes .ppress-tax-rates-wrap table tbody tr{background-color:#f9f9f9}.ppview .ppress-admin-status-badge{padding:2px 7px;border-radius:4px;background:#ececec;display:inline-flex;align-items:center}.ppview .ppress-admin-status-badge__icon{opacity:.8;margin:0-2px 0 2px}.ppview .ppress-admin-status-badge--failed,.ppview .ppress-admin-status-badge--failing{color:#ac3d3d;background:#ffd6d6}.ppview .ppress-admin-status-badge--failed .ppress-admin-status-badge__icon{margin-left:0;margin-top:-1px}.ppview .ppress-admin-status-badge--active,.ppview .ppress-admin-status-badge--completed{color:#017d5c;background:#e5f5f0}.ppview .ppress-admin-status-badge--complete .ppress-admin-status-badge__icon{margin-left:0}.ppview .ppress-admin-status-badge--pending{color:#7d6e01;background:#f5f2e5}.ppress-admin-status-badge--processing,.ppress-admin-status-badge--trialling{color:#015a7d;background:#e5f1f5}.ppview .order.ppview th.column-order_total{width:8%}.ppview .order.ppview th.column-status{width:12%}.ppview .order.ppview th.column-plan{width:15%}.ppview .order.ppview th.column-date_created{width:14%}.ppview .order.ppview th.column-payment_method{width:12%}#ppress-filters{padding:10px;margin:0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}#ppress-filters .filter-items{display:flex;align-items:center;flex-wrap:wrap;gap:6px;float:none;flex-grow:1}#ppress-filters .filter-items .ppress-date-range-options{display:inline-block;margin:10px 0}#ppress-filters>p{color:#757575}#ppress-filters input[type=number],#ppress-filters input[type=text].ppress_datepicker{max-width:105px}#ppress-filters .button-secondary,#ppress-filters input[type=number]{margin-bottom:0}#ppress-filters .search-form{margin:0}@media screen and (max-width:480px){#ppress-filters span{margin:2px 0}}#ppress-advanced-filters{position:relative}#ppress-advanced-filters .inside{z-index:99;position:absolute;top:29px;right:0;border:1px solid #e0e0e0;padding:0;background:#fff;box-shadow:0 3px 5px rgba(0,0,0,.2);min-width:285px;opacity:0;visibility:hidden}#ppress-advanced-filters fieldset{display:block;padding:10px 15px 15px;margin:10px 0}#ppress-advanced-filters fieldset:not(:last-of-type){border-bottom:1px solid #e0e0e0}#ppress-advanced-filters fieldset:last-of-type{padding-bottom:5px}#ppress-advanced-filters fieldset.ppress-add-on-filters div,#ppress-advanced-filters fieldset.ppress-add-on-filters label,#ppress-advanced-filters fieldset.ppress-add-on-filters p,#ppress-advanced-filters fieldset.ppress-add-on-filters span{display:block;margin-bottom:2px}#ppress-advanced-filters div.ppress-select-chosen:not(:last-child){margin-bottom:10px}#ppress-advanced-filters.open .ppress-advanced-filters-button{background:#e0e0e0;border-color:#949494;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}#ppress-advanced-filters.open .inside{visibility:visible;opacity:1;transition:opacity .2s ease-in}.ppress_datepicker{height:29px}.ppress-from-to-wrapper input{width:105px;margin:0;position:relative;z-index:1}.ppress-from-to-wrapper input[name*=start],.ppress-from-to-wrapper input[name=filter_from]{border-top-right-radius:0;border-bottom-right-radius:0}.ppress-from-to-wrapper input[name*=end],.ppress-from-to-wrapper input[name=filter_to]{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.ppress-from-to-wrapper span#ppress-end-date-wrap{margin-left:-4px}.ppress-from-to-wrapper input:focus{z-index:2;position:relative}.ppview .wp-list-table .post-state{display:none}.ppview .subscription.ppview .ppress-line-header{display:block;font-weight:500}.ppview .subscription.ppview .ppress-line-note{display:block;font-size:12px}.ppview .subscription.ppview .ppress-line-header a{font-weight:400}.ppview .subscription.ppview th.column-initial_payment,.ppview .subscription.ppview th.column-renewal_date{width:14%}.ppview .subscription.ppview th.column-plan{width:20%}.ppview .subscription.ppview th.column-status{width:12%}.ppress-admin .ppview .ppress_customers th#customer_last_login{width:13%}.ppress-admin .ppview .ppress_customers th#customer_since{width:14%}.ppress-admin .ppview .ppress_customers th#customer_email{width:17%}.ppress-admin .ppview .ppress_customers th#customer_subscriptions{width:16%}.ppress-admin .ppview th#coupon_code{width:18%}.ppress-report-charts-container *{box-sizing:border-box}.ppress-report-charts-container{width:100%}.ppress-report-charts-container dl.ppress-report-chart-top-card-item-wrap{display:grid;overflow:hidden;margin-top:1.25rem;background-color:#fff;border-radius:.5rem;border-color:#e5e7eb;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border-left-width:1px;border-top-width:0;grid-template-columns:repeat(4,1fr)}.ppress-report-charts-container .ppress-report-chart-top-card-item{padding:24px;border-right:1px solid #e5e7eb}.ppress-report-charts-container dt.ppress-report-chart-top-card-item-header{color:#6b7280;font-size:1rem;line-height:1.5rem;font-weight:400}.ppress-report-charts-container dd.ppress-report-chart-top-card-item-content-wrap{display:flex;margin:4px 0 12px;justify-content:space-between;align-items:baseline}.ppress-report-charts-container .ppress-report-chart-top-card-item-content{display:flex;color:#111827;font-size:1.5rem;line-height:2rem;font-weight:600;align-items:baseline}.ppress-report-charts-container .ppress-report-chart-top-card-item:last-child{border-right:0}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-content-wrap p.ppress-report-chart-bottom-card-item-trend.negative{color:#991b1b}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-wrap{display:grid;margin-top:1.25rem;gap:1.25rem;grid-template-columns:repeat(2,minmax(0,1fr))}.ppress-report-charts-container .ppress-report-chart-bottom-card-item{overflow:hidden;position:relative;background-color:#fff;border-radius:.5rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);padding:1.5rem}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-chart{margin:0;margin-top:1.5rem}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-header p{color:#6b7280;font-size:.875rem;line-height:1.25rem;font-weight:500;overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-content-wrap{display:flex;padding-bottom:0;margin:0;align-items:baseline}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-content-wrap p{color:#111827;font-size:1.5rem;line-height:2rem;font-weight:600;margin:0}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-content-wrap p.ppress-report-chart-bottom-card-item-trend{display:flex;margin-left:.5rem;color:#059669;font-size:.875rem;line-height:1.25rem;font-weight:600;align-items:baseline}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-view-more-block{position:absolute;right:0;left:0;bottom:0;background-color:#f9fafb;padding:1rem 1.5rem;font-size:.875rem;line-height:1.25rem}.ppress-report-charts-container .ppress-report-chart-bottom-card-item-view-more-block a{font-weight:500;text-decoration:none}
assets/css/admin/admin.css CHANGED
@@ -2437,6 +2437,10 @@ textarea.wp-editor-area {
2437
  width: 16%;
2438
  }
2439
 
 
 
 
 
2440
  /* ProfilePress Report */
2441
  .ppress-report-charts-container * {
2442
  box-sizing: border-box;
2437
  width: 16%;
2438
  }
2439
 
2440
+ .ppress-admin .ppview th#coupon_code {
2441
+ width: 18%;
2442
+ }
2443
+
2444
  /* ProfilePress Report */
2445
  .ppress-report-charts-container * {
2446
  box-sizing: border-box;
assets/images/cards-icon.svg CHANGED
@@ -1 +1 @@
1
- <svg fill="none" height="43" viewBox="0 0 245 43" width="245" xmlns="http://www.w3.org/2000/svg"><path d="m177.3 3.7h-54.8v34.8h54.8z" fill="#fff"/><path d="m176.4 32.8h-53v4.7h53z" fill="#fcb316"/><path d="m176.4 4.6h-53v4.7h53z" fill="#10357f"/><path d="m144.6 14.6-5.5 13h-3.6l-2.7-10.4c-.2-.6-.3-.9-.8-1.1-.8-.4-2.2-.9-3.3-1.1l.1-.4h5.7c.7 0 1.4.5 1.6 1.3l1.4 7.6 3.5-8.9zm13.9 8.8c0-3.4-4.8-3.6-4.7-5.2 0-.5.5-1 1.4-1.1.5-.1 1.8-.1 3.3.6l.6-2.8c-.8-.3-1.9-.6-3.2-.6-3.3 0-5.7 1.8-5.7 4.3 0 1.9 1.7 2.9 3 3.6 1.3.6 1.8 1.1 1.8 1.6 0 .9-1 1.3-2 1.3-1.7 0-2.7-.5-3.5-.8l-.6 2.9c.8.4 2.2.7 3.8.7 3.5-.1 5.8-1.8 5.8-4.5zm8.9 4.2h3.1l-2.7-13h-2.9c-.7 0-1.2.4-1.4 1l-5.1 12.1h3.5l.7-1.9h4.3zm-3.8-4.6 1.8-4.9 1 4.9zm-14.2-8.4-2.8 13h-3.4l2.8-13z" fill="#10357f"/><path d="m243.9 4.3h-52.2v33.2h52.2z" fill="#fff"/><path d="m243.7 22.8s-14.3 10.1-40.4 14.6h40.4z" fill="#ee7623"/><g fill="#231f20"><path d="m243.9 4.2h-52.4v33.6h52.6v-33.6zm-.2.3v32.8h-51.8c0-.4 0-32.5 0-32.8z"/><path d="m196.1 14.4h-2.1v7.6h2.2c1.2 0 2-.3 2.7-.9.9-.7 1.4-1.8 1.4-2.9-.1-2.2-1.8-3.8-4.2-3.8zm1.8 5.7c-.5.4-1.1.6-2 .6h-.4v-5h.4c1 0 1.5.2 2 .6.5.5.8 1.2.8 1.9 0 .8-.3 1.5-.8 1.9z"/><path d="m202.4 14.4h-1.5v7.6h1.5z"/><path d="m206 17.4c-.9-.3-1.2-.5-1.2-1s.5-.8 1.1-.8c.4 0 .8.2 1.2.6l.8-1c-.6-.6-1.4-.8-2.2-.8-1.3 0-2.4.9-2.4 2.2 0 1 .5 1.6 1.9 2.1.6.2.9.3 1 .4.3.2.4.5.4.8 0 .6-.5 1.1-1.2 1.1s-1.3-.4-1.6-1l-1 .9c.7 1 1.5 1.4 2.6 1.4 1.5 0 2.6-1 2.6-2.5.2-1.3-.3-1.8-2-2.4z"/><path d="m208.7 18.2c0 2.2 1.8 4 4 4 .6 0 1.2-.1 1.9-.4v-1.8c-.6.6-1.1.8-1.8.8-1.5 0-2.6-1.1-2.6-2.6s1.1-2.6 2.5-2.6c.7 0 1.2.3 1.9.9v-1.7c-.7-.3-1.2-.5-1.8-.5-2.3 0-4.1 1.7-4.1 3.9z"/><path d="m226.3 19.5-2-5.1h-1.6l3.2 7.8h.8l3.3-7.8h-1.6z"/><path d="m230.6 22h4.2v-1.2h-2.7v-2.1h2.6v-1.3h-2.6v-1.7h2.7v-1.3h-4.2z"/><path d="m240.7 16.7c0-1.4-1-2.2-2.7-2.2h-2.2v7.5h1.5v-3h.2l2.1 3.1h1.8l-2.4-3.2c1.1-.3 1.7-1.1 1.7-2.2zm-3 1.2h-.4v-2.3h.5c.9 0 1.4.4 1.4 1.1 0 .8-.5 1.2-1.5 1.2z"/></g><path d="m223.1 18.2c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4z" fill="#ee7623"/><path d="m241.5 14.6c0-.1-.1-.2-.3-.2h-.2v.6h.2v-.3l.2.3h.2l-.2-.3c.1 0 .1 0 .1-.1zm-.3.1v-.2c.1 0 .1 0 .1.1 0 0 0 .1-.1.1z" fill="#231f20"/><path d="m241.3 14.1c-.3 0-.6.3-.6.6s.3.6.6.6.6-.3.6-.6-.3-.6-.6-.6zm0 1.1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5c-.1.3-.3.5-.5.5z" fill="#231f20"/><path d="m41.6 42.3v-6.6h-5l-2.6-2.9-2.6 2.9h-16.5v-13.3h-5.30002l6.60002-15h6.4l2.3 5.1v-5.1h7.9l1.4 3.9 1.4-3.9h6.1v-6.699999h-41.6000244v41.599999zm-4.1-8.3h4.2l-5.5-5.9 5.5-5.8h-4.1l-3.4 3.7-3.4-3.7h-4.2l5.5 5.8-5.5 5.9h4.1l3.4-3.8zm.9-5.8 3.2 3.4v-6.8zm-18.6 3.1v-1.8h6.6v-2.6h-6.6v-1.8h6.7v-2.7h-9.9v11.6h9.9v-2.7zm18.7-10.6h3.1v-11.6h-4.9l-2.6 7.2-2.6-7.2h-5v11.6h3.1v-8.1l3 8.1h2.8l3-8.2v8.2zm-15.5 0h3.6l-5.1-11.6h-4.1l-5.1 11.6h3.5l1-2.3h5.2zm-2.1-4.9h-3.2l1.6-3.8z" fill="#0071ce"/><path d="m88.7 9.5h-14.3v23.5h14.3z" fill="#ff5f00"/><path d="m75.9001 21.3c0-4.6 2.1-9 5.7-11.7-6.5-5.1-15.9-3.9-21 2.5s-3.9 15.9 2.5 21c5.4 4.2 13 4.2 18.5 0-3.6-3-5.7-7.3-5.7-11.8z" fill="#eb001b"/><path d="m104.3 30.5v-.5h.2v-.1h-.5v.1h.2zm1 0v-.6h-.2l-.2.4-.2-.4h-.1v.6h.1v-.5l.2.4h.1l.2-.4z" fill="#f79e1b"/><path d="m105.8 21.3c0 8.3-6.6 14.9-14.9 14.9-3.4 0-6.6-1.2-9.2-3.2 6.5-5.1 7.6-14.4 2.5-21-.8-1-1.5-1.7-2.5-2.5 6.5-5.1 15.9-3.9 21 2.5 1.9 2.6 3.1 5.9 3.1 9.3z" fill="#f79e1b"/></svg>
1
+ <svg fill="none" height="43" viewBox="0 0 245 43" width="245" xmlns="http://www.w3.org/2000/svg"><path d="M177.3 3.7h-54.8v34.8h54.8z" fill="#fff"/><path d="M176.4 32.8h-53v4.7h53z" fill="#fcb316"/><path d="M176.4 4.6h-53v4.7h53zm-31.8 10-5.5 13h-3.6l-2.7-10.4c-.2-.6-.3-.9-.8-1.1-.8-.4-2.2-.9-3.3-1.1l.1-.4h5.7c.7 0 1.4.5 1.6 1.3l1.4 7.6 3.5-8.9zm13.9 8.8c0-3.4-4.8-3.6-4.7-5.2 0-.5.5-1 1.4-1.1.5-.1 1.8-.1 3.3.6l.6-2.8c-.8-.3-1.9-.6-3.2-.6-3.3 0-5.7 1.8-5.7 4.3 0 1.9 1.7 2.9 3 3.6 1.3.6 1.8 1.1 1.8 1.6 0 .9-1 1.3-2 1.3-1.7 0-2.7-.5-3.5-.8l-.6 2.9c.8.4 2.2.7 3.8.7 3.5-.1 5.8-1.8 5.8-4.5zm8.9 4.2h3.1l-2.7-13h-2.9c-.7 0-1.2.4-1.4 1l-5.1 12.1h3.5l.7-1.9h4.3zm-3.8-4.6 1.8-4.9 1 4.9zm-14.2-8.4-2.8 13h-3.4l2.8-13z" fill="#10357f"/><path d="M243.9 4.3h-52.2v33.2h52.2z" fill="#fff"/><path d="M243.7 22.8s-14.3 10.1-40.4 14.6h40.4z" fill="#ee7623"/><g fill="#231f20"><path d="M243.9 4.2h-52.4v33.6h52.6V4.2zm-.2.3v32.8h-51.8V4.5z"/><path d="M196.1 14.4H194V22h2.2c1.2 0 2-.3 2.7-.9.9-.7 1.4-1.8 1.4-2.9-.1-2.2-1.8-3.8-4.2-3.8zm1.8 5.7c-.5.4-1.1.6-2 .6h-.4v-5h.4c1 0 1.5.2 2 .6.5.5.8 1.2.8 1.9 0 .8-.3 1.5-.8 1.9zm4.5-5.7h-1.5V22h1.5zm3.6 3c-.9-.3-1.2-.5-1.2-1s.5-.8 1.1-.8c.4 0 .8.2 1.2.6l.8-1c-.6-.6-1.4-.8-2.2-.8-1.3 0-2.4.9-2.4 2.2 0 1 .5 1.6 1.9 2.1.6.2.9.3 1 .4.3.2.4.5.4.8 0 .6-.5 1.1-1.2 1.1s-1.3-.4-1.6-1l-1 .9c.7 1 1.5 1.4 2.6 1.4 1.5 0 2.6-1 2.6-2.5.2-1.3-.3-1.8-2-2.4zm2.7.8c0 2.2 1.8 4 4 4 .6 0 1.2-.1 1.9-.4V20c-.6.6-1.1.8-1.8.8-1.5 0-2.6-1.1-2.6-2.6s1.1-2.6 2.5-2.6c.7 0 1.2.3 1.9.9v-1.7c-.7-.3-1.2-.5-1.8-.5-2.3 0-4.1 1.7-4.1 3.9zm17.6 1.3-2-5.1h-1.6l3.2 7.8h.8l3.3-7.8h-1.6zm4.3 2.5h4.2v-1.2h-2.7v-2.1h2.6v-1.3h-2.6v-1.7h2.7v-1.3h-4.2zm10.1-5.3c0-1.4-1-2.2-2.7-2.2h-2.2V22h1.5v-3h.2l2.1 3.1h1.8l-2.4-3.2c1.1-.3 1.7-1.1 1.7-2.2zm-3 1.2h-.4v-2.3h.5c.9 0 1.4.4 1.4 1.1 0 .8-.5 1.2-1.5 1.2z"/></g><path d="M223.1 18.2c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4z" fill="#ee7623"/><path d="M241.5 14.6c0-.1-.1-.2-.3-.2h-.2v.6h.2v-.3l.2.3h.2l-.2-.3c.1 0 .1 0 .1-.1zm-.3.1v-.2c.1 0 .1 0 .1.1 0 0 0 .1-.1.1z" fill="#231f20"/><path d="M241.3 14.1c-.3 0-.6.3-.6.6s.3.6.6.6.6-.3.6-.6-.3-.6-.6-.6zm0 1.1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5c-.1.3-.3.5-.5.5z" fill="#231f20"/><path d="M41.6 42.3v-6.6h-5L34 32.8l-2.6 2.9H14.9V22.4H9.6l6.6-15h6.4l2.3 5.1V7.4h7.9l1.4 3.9 1.4-3.9h6.1V.7H.1v41.6zM37.5 34h4.2l-5.5-5.9 5.5-5.8h-4.1L34.2 26l-3.4-3.7h-4.2l5.5 5.8-5.5 5.9h4.1l3.4-3.8zm.9-5.8 3.2 3.4v-6.8zm-18.6 3.1v-1.8h6.6v-2.6h-6.6v-1.8h6.7v-2.7h-9.9V34h9.9v-2.7zm18.7-10.6h3.1V9.1h-4.9l-2.6 7.2-2.6-7.2h-5v11.6h3.1v-8.1l3 8.1h2.8l3-8.2v8.2zm-15.5 0h3.6L21.5 9.1h-4.1l-5.1 11.6h3.5l1-2.3H22zm-2.1-4.9h-3.2l1.6-3.8z" fill="#0071ce"/><path d="M88.7 9.5H74.4V33h14.3z" fill="#ff5f00"/><path d="M75.9 21.3c0-4.6 2.1-9 5.7-11.7-6.5-5.1-15.9-3.9-21 2.5s-3.9 15.9 2.5 21c5.4 4.2 13 4.2 18.5 0-3.6-3-5.7-7.3-5.7-11.8z" fill="#eb001b"/><path d="M104.3 30.5V30h.2v-.1h-.5v.1h.2zm1 0v-.6h-.2l-.2.4-.2-.4h-.1v.6h.1V30l.2.4h.1l.2-.4zm.5-9.2c0 8.3-6.6 14.9-14.9 14.9-3.4 0-6.6-1.2-9.2-3.2 6.5-5.1 7.6-14.4 2.5-21-.8-1-1.5-1.7-2.5-2.5 6.5-5.1 15.9-3.9 21 2.5 1.9 2.6 3.1 5.9 3.1 9.3z" fill="#f79e1b"/></svg>
assets/images/paypal-icon.svg CHANGED
@@ -1 +1 @@
1
- <svg fill="none" height="31" viewBox="0 0 124 31" width="124" xmlns="http://www.w3.org/2000/svg"><g fill="#253b80"><path d="m46.211 6.749h-6.839c-.468 0-.866.34-.939.802l-2.766 17.537c-.055.346.213.658.564.658h3.265c.468 0 .866-.34.939-.803l.746-4.73c.072-.463.471-.803.938-.803h2.165c4.505 0 7.105-2.18 7.784-6.5.306-1.89.013-3.375-.872-4.415-.972-1.142-2.696-1.746-4.985-1.746zm.789 6.405c-.374 2.454-2.249 2.454-4.062 2.454h-1.032l.724-4.583c.043-.277.283-.481.563-.481h.473c1.235 0 2.4 0 3.002.704.359.42.469 1.044.332 1.906z"/><path d="m66.654 13.075h-3.275c-.279 0-.52.204-.563.481l-.145.916-.229-.332c-.709-1.029-2.29-1.373-3.868-1.373-3.619 0-6.71 2.741-7.312 6.586-.313 1.918.132 3.752 1.22 5.031.998 1.176 2.426 1.666 4.125 1.666 2.916 0 4.533-1.875 4.533-1.875l-.146.91c-.055.348.213.66.562.66h2.95c.469 0 .865-.34.939-.803l1.77-11.209c.056-.345-.211-.658-.561-.658zm-4.565 6.374c-.316 1.871-1.801 3.127-3.695 3.127-.951 0-1.711-.305-2.199-.883-.484-.574-.668-1.391-.514-2.301.295-1.855 1.805-3.152 3.67-3.152.93 0 1.686.309 2.184.892.499.589.697 1.411.554 2.317z"/><path d="m84.096 13.075h-3.291c-.314 0-.609.156-.787.417l-4.539 6.686-1.924-6.425c-.121-.402-.492-.678-.912-.678h-3.234c-.393 0-.666.384-.541.754l3.625 10.638-3.408 4.811c-.268.379.002.9.465.9h3.287c.312 0 .604-.152.781-.408l10.946-15.8c.262-.378-.007-.895-.468-.895z"/></g><path d="m94.992 6.749h-6.84c-.467 0-.865.34-.938.802l-2.766 17.537c-.055.346.213.658.562.658h3.51c.326 0 .605-.238.656-.562l.785-4.971c.072-.463.471-.803.938-.803h2.164c4.506 0 7.105-2.18 7.785-6.5.307-1.89.012-3.375-.873-4.415-.971-1.142-2.694-1.746-4.983-1.746zm.789 6.405c-.373 2.454-2.248 2.454-4.062 2.454h-1.031l.725-4.583c.043-.277.281-.481.562-.481h.473c1.234 0 2.4 0 3.002.704.359.42.468 1.044.331 1.906z" fill="#179bd7"/><path d="m115.434 13.075h-3.273c-.281 0-.52.204-.562.481l-.145.916-.23-.332c-.709-1.029-2.289-1.373-3.867-1.373-3.619 0-6.709 2.741-7.311 6.586-.312 1.918.131 3.752 1.219 5.031 1 1.176 2.426 1.666 4.125 1.666 2.916 0 4.533-1.875 4.533-1.875l-.146.91c-.055.348.213.66.564.66h2.949c.467 0 .865-.34.938-.803l1.771-11.209c.054-.345-.214-.658-.565-.658zm-4.565 6.374c-.314 1.871-1.801 3.127-3.695 3.127-.949 0-1.711-.305-2.199-.883-.484-.574-.666-1.391-.514-2.301.297-1.855 1.805-3.152 3.67-3.152.93 0 1.686.309 2.184.892.501.589.699 1.411.554 2.317z" fill="#179bd7"/><path d="m119.295 7.23-2.807 17.858c-.055.346.213.658.562.658h2.822c.469 0 .867-.34.939-.803l2.768-17.536c.055-.346-.213-.659-.562-.659h-3.16c-.279.001-.519.205-.562.482z" fill="#179bd7"/><path d="m7.26597 29.154.523-3.322-1.165-.027h-5.563l3.866-24.513c.012-.074.051-.143.108-.192s.13-.076.206-.076h9.38003c3.114 0 5.263.648 6.385 1.927.526.6.861 1.227 1.023 1.917.17.724.173 1.589.007 2.644l-.012.077v.676l.526.298c.443.235.795.504 1.065.812.45.513.741 1.165.864 1.938.127.795.085 1.741-.123 2.812-.24 1.232-.628 2.305-1.152 3.183-.482.809-1.096 1.48-1.825 2-.696.494-1.523.869-2.458 1.109-.906.236-1.939.355-3.072.355h-.73c-.522 0-1.029.188-1.427.525-.399.344-.663.814-.744 1.328l-.055.299-.924 5.855-.042.215c-.011.068-.03.102-.058.125-.025.021-.061.035-.096.035z" fill="#253b80"/><path d="m23.048 7.667c-.028.179-.06.362-.096.55-1.237 6.351-5.469 8.545-10.874 8.545h-2.75198c-.661 0-1.218.48-1.321 1.132l-1.409 8.936-.399 2.533c-.067.428.263.814.695.814h4.88098c.578 0 1.069-.42 1.16-.99l.048-.248.919-5.832.059-.32c.09-.572.582-.992 1.16-.992h.73c4.729 0 8.431-1.92 9.513-7.476.452-2.321.218-4.259-.978-5.622-.362-.411-.811-.752-1.336-1.03z" fill="#179bd7"/><path d="m21.754 7.151c-.189-.055-.384-.105-.584-.15-.201-.044-.407-.083-.619-.117-.742-.12-1.555-.177-2.426-.177h-7.352c-.181 0-.353.041-.507.115-.339.163-.59099.484-.65199.877l-1.56401 9.906-.045.289c.103-.652.66-1.132 1.321-1.132h2.752c5.405 0 9.637-2.195 10.874-8.545.037-.188.068-.371.096-.55-.313-.166-.652-.308-1.017-.429-.09-.03-.183-.059-.277-.087z" fill="#222d65"/><path d="m9.61399 7.699c.061-.393.313-.714.65201-.876.155-.074.326-.115.507-.115h7.352c.871 0 1.684.057 2.426.177.212.034.418.073.619.117.2.045.395.095.584.15.094.028.187.057.278.086.365.121.704.264 1.017.429.368-2.347-.003-3.945-1.272-5.392-1.399-1.593-3.924-2.275-7.155-2.275h-9.38001c-.66 0-1.223.48-1.325 1.133l-3.90700118 24.765c-.07700002.49.30100018.932.79500018.932h5.791001l1.454-9.225z" fill="#253b80"/></svg>
1
+ <svg fill="none" height="31" viewBox="0 0 124 31" width="124" xmlns="http://www.w3.org/2000/svg"><path d="M46.211 6.749h-6.839a.95.95 0 0 0-.939.802l-2.766 17.537a.57.57 0 0 0 .564.658h3.265a.95.95 0 0 0 .939-.803l.746-4.73a.95.95 0 0 1 .938-.803h2.165c4.505 0 7.105-2.18 7.784-6.5.306-1.89.013-3.375-.872-4.415-.972-1.142-2.696-1.746-4.985-1.746zM47 13.154c-.374 2.454-2.249 2.454-4.062 2.454h-1.032l.724-4.583a.57.57 0 0 1 .563-.481h.473c1.235 0 2.4 0 3.002.704.359.42.469 1.044.332 1.906zm19.654-.079h-3.275a.57.57 0 0 0-.563.481l-.145.916-.229-.332c-.709-1.029-2.29-1.373-3.868-1.373-3.619 0-6.71 2.741-7.312 6.586-.313 1.918.132 3.752 1.22 5.031.998 1.176 2.426 1.666 4.125 1.666 2.916 0 4.533-1.875 4.533-1.875l-.146.91a.57.57 0 0 0 .562.66h2.95a.95.95 0 0 0 .939-.803l1.77-11.209a.568.568 0 0 0-.561-.658zm-4.565 6.374c-.316 1.871-1.801 3.127-3.695 3.127-.951 0-1.711-.305-2.199-.883-.484-.574-.668-1.391-.514-2.301.295-1.855 1.805-3.152 3.67-3.152.93 0 1.686.309 2.184.892.499.589.697 1.411.554 2.317zm22.007-6.374h-3.291a.954.954 0 0 0-.787.417l-4.539 6.686-1.924-6.425a.953.953 0 0 0-.912-.678h-3.234a.57.57 0 0 0-.541.754l3.625 10.638-3.408 4.811a.57.57 0 0 0 .465.9h3.287a.949.949 0 0 0 .781-.408l10.946-15.8a.57.57 0 0 0-.468-.895z" fill="#253b80"/><path d="M94.992 6.749h-6.84a.95.95 0 0 0-.938.802l-2.766 17.537a.569.569 0 0 0 .562.658h3.51a.665.665 0 0 0 .656-.562l.785-4.971a.95.95 0 0 1 .938-.803h2.164c4.506 0 7.105-2.18 7.785-6.5.307-1.89.012-3.375-.873-4.415-.971-1.142-2.694-1.746-4.983-1.746zm.789 6.405c-.373 2.454-2.248 2.454-4.062 2.454h-1.031l.725-4.583a.568.568 0 0 1 .562-.481h.473c1.234 0 2.4 0 3.002.704.359.42.468 1.044.331 1.906zm19.653-.079h-3.273a.567.567 0 0 0-.562.481l-.145.916-.23-.332c-.709-1.029-2.289-1.373-3.867-1.373-3.619 0-6.709 2.741-7.311 6.586-.312 1.918.131 3.752 1.219 5.031 1 1.176 2.426 1.666 4.125 1.666 2.916 0 4.533-1.875 4.533-1.875l-.146.91a.57.57 0 0 0 .564.66h2.949a.95.95 0 0 0 .938-.803l1.771-11.209a.571.571 0 0 0-.565-.658zm-4.565 6.374c-.314 1.871-1.801 3.127-3.695 3.127-.949 0-1.711-.305-2.199-.883-.484-.574-.666-1.391-.514-2.301.297-1.855 1.805-3.152 3.67-3.152.93 0 1.686.309 2.184.892.501.589.699 1.411.554 2.317zm8.426-12.219-2.807 17.858a.569.569 0 0 0 .562.658h2.822c.469 0 .867-.34.939-.803l2.768-17.536a.57.57 0 0 0-.562-.659h-3.16a.571.571 0 0 0-.562.482z" fill="#179bd7"/><path d="m7.266 29.154.523-3.322-1.165-.027H1.061L4.927 1.292a.316.316 0 0 1 .314-.268h9.38c3.114 0 5.263.648 6.385 1.927.526.6.861 1.227 1.023 1.917.17.724.173 1.589.007 2.644l-.012.077v.676l.526.298a3.69 3.69 0 0 1 1.065.812c.45.513.741 1.165.864 1.938.127.795.085 1.741-.123 2.812-.24 1.232-.628 2.305-1.152 3.183a6.547 6.547 0 0 1-1.825 2c-.696.494-1.523.869-2.458 1.109-.906.236-1.939.355-3.072.355h-.73c-.522 0-1.029.188-1.427.525a2.21 2.21 0 0 0-.744 1.328l-.055.299-.924 5.855-.042.215c-.011.068-.03.102-.058.125a.155.155 0 0 1-.096.035z" fill="#253b80"/><path d="M23.048 7.667c-.028.179-.06.362-.096.55-1.237 6.351-5.469 8.545-10.874 8.545H9.326c-.661 0-1.218.48-1.321 1.132L6.596 26.83l-.399 2.533a.704.704 0 0 0 .695.814h4.881c.578 0 1.069-.42 1.16-.99l.048-.248.919-5.832.059-.32c.09-.572.582-.992 1.16-.992h.73c4.729 0 8.431-1.92 9.513-7.476.452-2.321.218-4.259-.978-5.622a4.667 4.667 0 0 0-1.336-1.03z" fill="#179bd7"/><path d="M21.754 7.151a9.757 9.757 0 0 0-1.203-.267 15.284 15.284 0 0 0-2.426-.177h-7.352a1.172 1.172 0 0 0-1.159.992L8.05 17.605l-.045.289a1.336 1.336 0 0 1 1.321-1.132h2.752c5.405 0 9.637-2.195 10.874-8.545.037-.188.068-.371.096-.55a6.594 6.594 0 0 0-1.017-.429 9.045 9.045 0 0 0-.277-.087z" fill="#222d65"/><path d="M9.614 7.699a1.169 1.169 0 0 1 1.159-.991h7.352c.871 0 1.684.057 2.426.177a9.757 9.757 0 0 1 1.481.353c.365.121.704.264 1.017.429.368-2.347-.003-3.945-1.272-5.392C20.378.682 17.853 0 14.622 0h-9.38c-.66 0-1.223.48-1.325 1.133L.01 25.898a.806.806 0 0 0 .795.932h5.791l1.454-9.225z" fill="#253b80"/></svg>
changelog.txt CHANGED
@@ -1,5 +1,17 @@
1
  == Changelog ==
2
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  = 4.1.2 =
4
  * Added "ppress_disable_google_fonts" filter to disable google fonts globally.
5
  * Added Oxygen builder compatibility to Admin Bar Control.
1
  == Changelog ==
2
 
3
+ = 4.1.3 =
4
+ * Added [navigation menu protection](https://profilepress.com/article/wordpress-navigation-menu-restriction/).
5
+ * Added [Elementor content restriction](https://profilepress.com/article/restrict-elementor-sections-widgets/).
6
+ * Added [Beaver Builder content restriction](https://profilepress.com/article/restrict-content-beaver-builder-visibility/).
7
+ * Added support for discounting subscription first payment.
8
+ * Added support for [purchase note](https://profilepress.com/article/plan-purchase-note/?ref=changelog).
9
+ * Added support for [checking active subscription via PHP](https://profilepress.com/article/php-check-user-has-active-subscription/).
10
+ * Fixed bug where new order creation with missing payment method failed.
11
+ * Fixed couple of date/time related query bugs.
12
+ * Fixed bug where cancelled one-time subscription was still active.
13
+ * Fixed bug where non-completed order email receipt can be sent.
14
+
15
  = 4.1.2 =
16
  * Added "ppress_disable_google_fonts" filter to disable google fonts globally.
17
  * Added Oxygen builder compatibility to Admin Bar Control.
languages/wp-user-avatar.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the ProfilePress package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: ProfilePress 4.1.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-avatar\n"
7
- "POT-Creation-Date: 2022-08-27 15:11:00+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -722,8 +722,8 @@ msgstr ""
722
  #: src/Admin/SettingsPages/FormList.php:241
723
  #: src/Admin/SettingsPages/FormList.php:317
724
  #: src/Admin/SettingsPages/GeneralSettings.php:139
725
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:77
726
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:196
727
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:263
728
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:112
729
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:259
@@ -1510,12 +1510,12 @@ msgstr ""
1510
 
1511
  #: src/Admin/SettingsPages/EmailSettings/EmailSettingsPage.php:133
1512
  #: src/Admin/SettingsPages/EmailSettings/EmailSettingsPage.php:149
1513
- #: src/Membership/Emails/EmailDataTrait.php:37
1514
  msgid "URL to reset password."
1515
  msgstr ""
1516
 
1517
  #: src/Admin/SettingsPages/EmailSettings/EmailSettingsPage.php:134
1518
- #: src/Membership/Emails/EmailDataTrait.php:38
1519
  msgid "URL to login."
1520
  msgstr ""
1521
 
@@ -1890,7 +1890,7 @@ msgid "Date"
1890
  msgstr ""
1891
 
1892
  #: src/Admin/SettingsPages/FormList.php:240
1893
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:66
1894
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:86
1895
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:108
1896
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:65
@@ -2240,8 +2240,8 @@ msgid "Redirect Default Edit Profile"
2240
  msgstr ""
2241
 
2242
  #: src/Admin/SettingsPages/GeneralSettings.php:298
2243
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:74
2244
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:197
2245
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:74
2246
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:173
2247
  #: src/ContentProtection/WPListTable.php:93
@@ -2423,6 +2423,7 @@ msgid "Check to allow homepage to be accessible by everyone."
2423
  msgstr ""
2424
 
2425
  #: src/Admin/SettingsPages/GeneralSettings.php:461
 
2426
  #: src/ContentProtection/Frontend/PostContent.php:66
2427
  #: src/RegisterActivation/Base.php:131
2428
  msgid "You are unauthorized to view this page."
@@ -2712,28 +2713,28 @@ msgstr ""
2712
  msgid "Checkout Fields"
2713
  msgstr ""
2714
 
2715
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:23
2716
  msgid "No coupon code found."
2717
  msgstr ""
2718
 
2719
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:30
2720
  #: src/Functions/custom-settings-api.php:873
2721
  msgid "Code"
2722
  msgstr ""
2723
 
2724
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:31
2725
  #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:47
2726
  #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:48
2727
  #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:35
2728
- #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:111
2729
  msgid "Discount"
2730
  msgstr ""
2731
 
2732
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:32
2733
  msgid "Redemptions"
2734
  msgstr ""
2735
 
2736
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:33
2737
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:56
2738
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:32
2739
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:52
@@ -2745,83 +2746,98 @@ msgstr ""
2745
  msgid "Status"
2746
  msgstr ""
2747
 
2748
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:34
2749
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:68
2750
  #: src/ShortcodeParser/MyAccount/view-subscription.tmpl.php:75
2751
  msgid "Start Date"
2752
  msgstr ""
2753
 
2754
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:35
2755
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:78
2756
  msgid "End Date"
2757
  msgstr ""
2758
 
2759
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:70
2760
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:198
2761
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:70
2762
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:174
2763
  #: src/ContentProtection/WPListTable.php:89
2764
  msgid "Deactivate"
2765
  msgstr ""
2766
 
2767
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:118
2768
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:87
 
 
 
 
 
 
 
 
 
 
2769
  msgid "Unlimited"
2770
  msgstr ""
2771
 
2772
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:129
2773
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:109
2774
  #: src/Membership/Models/Customer/CustomerStatus.php:13
2775
  #: src/Membership/Models/Subscription/SubscriptionStatus.php:17
2776
  msgid "Active"
2777
  msgstr ""
2778
 
2779
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:131
2780
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:111
2781
  #: src/Membership/Models/Customer/CustomerStatus.php:14
2782
  msgid "Inactive"
2783
  msgstr ""
2784
 
2785
- #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:135
2786
  #: src/Membership/Models/Subscription/SubscriptionStatus.php:19
2787
  msgid "Expired"
2788
  msgstr ""
2789
 
2790
  #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:49
2791
  #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:40
 
 
 
 
 
2792
  msgid "Coupon Application"
2793
  msgstr ""
2794
 
2795
- #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:54
2796
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:97
2797
  msgid "%s cannot be empty."
2798
  msgstr ""
2799
 
2800
- #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:81
2801
- #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:105
2802
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:56
2803
  msgid "Coupons"
2804
  msgstr ""
2805
 
2806
- #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:84
2807
  msgid "Add a Coupon"
2808
  msgstr ""
2809
 
2810
- #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:88
2811
  msgid "Edit Coupon"
2812
  msgstr ""
2813
 
2814
- #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:129
2815
  #: src/Admin/SettingsPages/Membership/CustomersPage/SettingsPage.php:259
2816
  #: src/Admin/SettingsPages/Membership/OrdersPage/SettingsPage.php:476
2817
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:150
2818
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SettingsPage.php:165
2819
  #: src/ContentProtection/SettingsPage.php:160
2820
  #: src/Themes/DragDrop/AbstractTheme.php:114
2821
  msgid "Changes saved."
2822
  msgstr ""
2823
 
2824
- #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:150
2825
  msgid "Add New Coupon"
2826
  msgstr ""
2827
 
@@ -2864,7 +2880,7 @@ msgstr ""
2864
 
2865
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:317
2866
  #: src/Admin/SettingsPages/Membership/DashboardPage/SettingsPage.php:264
2867
- #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:346
2868
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:314
2869
  msgctxt "date filter"
2870
  msgid "From"
@@ -2872,7 +2888,7 @@ msgstr ""
2872
 
2873
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:320
2874
  #: src/Admin/SettingsPages/Membership/DashboardPage/SettingsPage.php:267
2875
- #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:349
2876
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:317
2877
  msgctxt "date filter"
2878
  msgid "To"
@@ -2880,14 +2896,14 @@ msgstr ""
2880
 
2881
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:325
2882
  #: src/Admin/SettingsPages/Membership/DashboardPage/SettingsPage.php:283
2883
- #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:375
2884
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:331
2885
  msgid "Filter"
2886
  msgstr ""
2887
 
2888
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:329
2889
  #: src/Admin/SettingsPages/Membership/DashboardPage/SettingsPage.php:287
2890
- #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:379
2891
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:335
2892
  msgid "Clear"
2893
  msgstr ""
@@ -3102,13 +3118,14 @@ msgstr ""
3102
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:51
3103
  #: src/Admin/SettingsPages/Membership/views/customers/subcriptions-metabox.php:19
3104
  #: src/Admin/SettingsPages/Membership/views/orders/add-edit-order.php:114
 
3105
  #: src/ShortcodeParser/MyAccount/view-subscription.tmpl.php:63
3106
  msgid "Plan"
3107
  msgstr ""
3108
 
3109
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:55
3110
  #: src/Admin/SettingsPages/Membership/views/subscriptions/sub-payments-metabox.php:19
3111
- #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:131
3112
  #: src/ShortcodeParser/MyAccount/view-subscription.tmpl.php:117
3113
  #: src/templates/checkout/form-checkout-sidebar.php:107
3114
  msgid "Total"
@@ -3116,7 +3133,7 @@ msgstr ""
3116
 
3117
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:57
3118
  #: src/Admin/SettingsPages/Membership/OrdersPage/SettingsPage.php:531
3119
- #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:70
3120
  msgid "Payment Method"
3121
  msgstr ""
3122
 
@@ -3138,20 +3155,20 @@ msgstr ""
3138
  msgid "Resend Order Receipt"
3139
  msgstr ""
3140
 
3141
- #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:335
3142
  msgid "All Modes"
3143
  msgstr ""
3144
 
3145
- #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:356
3146
  msgid "All Payment Methods"
3147
  msgstr ""
3148
 
3149
- #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:367
3150
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:323
3151
  msgid "All Customers"
3152
  msgstr ""
3153
 
3154
- #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:388
3155
  msgid "Search Orders"
3156
  msgstr ""
3157
 
@@ -3194,7 +3211,7 @@ msgstr ""
3194
 
3195
  #: src/Admin/SettingsPages/Membership/OrdersPage/SettingsPage.php:526
3196
  #: src/ShortcodeParser/MyAccount/orders.tmpl.php:57
3197
- #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:58
3198
  msgid "Order Status"
3199
  msgstr ""
3200
 
@@ -3358,8 +3375,8 @@ msgid "Checkout page not found"
3358
  msgstr ""
3359
 
3360
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:42
3361
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:127
3362
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:56
3363
  msgid "Membership Plans"
3364
  msgstr ""
3365
 
@@ -3377,81 +3394,81 @@ msgid "Edit Plan"
3377
  msgstr ""
3378
 
3379
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:90
3380
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:22
3381
  #: src/Admin/SettingsPages/Membership/views/orders/order-item-metabox.php:26
3382
  msgid "Price"
3383
  msgstr ""
3384
 
3385
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:91
3386
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:31
3387
  msgid "Billing Frequency"
3388
  msgstr ""
3389
 
3390
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:92
3391
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:37
3392
  msgid "Subscription Length"
3393
  msgstr ""
3394
 
3395
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:172
3396
  msgid "Add New Plan"
3397
  msgstr ""
3398
 
3399
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:201
3400
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:215
3401
- msgid "month"
3402
- msgstr ""
3403
-
3404
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:202
3405
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:216
3406
- msgid "week"
3407
  msgstr ""
3408
 
3409
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:203
3410
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:217
3411
- msgid "day"
3412
  msgstr ""
3413
 
3414
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:204
3415
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:218
3416
- msgid "quarter"
3417
  msgstr ""
3418
 
3419
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:205
3420
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:219
3421
- msgid "every 6 months"
3422
  msgstr ""
3423
 
3424
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:206
3425
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:220
3426
- msgid "year"
3427
  msgstr ""
3428
 
3429
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:207
3430
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:221
 
 
 
 
 
3431
  msgid "one-time"
3432
  msgstr ""
3433
 
3434
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:237
3435
  msgid "months"
3436
  msgstr ""
3437
 
3438
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:238
3439
  msgid "for"
3440
  msgstr ""
3441
 
3442
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:239
3443
  msgid " and a %s signup fee"
3444
  msgstr ""
3445
 
3446
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:240
3447
  msgid "Renews indefinitely"
3448
  msgstr ""
3449
 
3450
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:241
3451
  msgid "Never expires"
3452
  msgstr ""
3453
 
3454
- #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:242
3455
  msgid "Includes a %s free trial"
3456
  msgstr ""
3457
 
@@ -3598,7 +3615,7 @@ msgstr ""
3598
 
3599
  #: src/Admin/SettingsPages/Membership/TaxSettings/SettingsPage.php:113
3600
  #: src/Admin/SettingsPages/Membership/views/orders/eu-vat-sidebar.php:46
3601
- #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:136
3602
  #: src/templates/checkout/form-billing-fields.php:47
3603
  msgid "VAT Number"
3604
  msgstr ""
@@ -3664,52 +3681,56 @@ msgstr ""
3664
  msgid "A description of this coupon."
3665
  msgstr ""
3666
 
3667
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:42
 
 
 
 
3668
  msgid "To new purchases only"
3669
  msgstr ""
3670
 
3671
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:43
3672
  msgid "To existing purchase (upgrades)"
3673
  msgstr ""
3674
 
3675
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:44
3676
  msgid "To both new and existing purchases"
3677
  msgstr ""
3678
 
3679
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:47
3680
  msgid "Select where members can apply this coupon."
3681
  msgstr ""
3682
 
3683
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:62
3684
  msgid "Select membership plans this coupon can only be applied to. Leave blank for all plans."
3685
  msgstr ""
3686
 
3687
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:70
3688
  msgid "Enter the date that this coupon will be valid from. Leave blank for no start date. (UTC %s)"
3689
  msgstr ""
3690
 
3691
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:80
3692
  msgid "Enter the date that this coupon will expire on. Leave blank for no end date. (UTC %s)"
3693
  msgstr ""
3694
 
3695
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:88
3696
  msgid "Maximum Redemptions "
3697
  msgstr ""
3698
 
3699
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:89
3700
  msgid "Limit the total amount of redemptions for this coupon. Leave blank for unlimited."
3701
  msgstr ""
3702
 
3703
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:104
3704
  msgid "Coupon Details"
3705
  msgstr ""
3706
 
3707
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:115
3708
  msgid "Redemption Settings"
3709
  msgstr ""
3710
 
3711
- #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:126
3712
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:97
3713
  #: src/Admin/SettingsPages/Membership/views/customers/view-customer.php:48
3714
  #: src/Admin/SettingsPages/Membership/views/orders/add-edit-order.php:38
3715
  #: src/Admin/SettingsPages/Membership/views/subscriptions/add-edit-subscription.php:42
@@ -3725,60 +3746,69 @@ msgstr ""
3725
  msgid "A description of this plan. This will be displayed on the checkout page."
3726
  msgstr ""
3727
 
 
 
 
 
 
3728
  #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:23
 
 
 
 
3729
  msgid "The price of this membership plan. Enter 0 to make this plan free."
3730
  msgstr ""
3731
 
3732
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:39
3733
  msgid "Renew indefinitely until member cancels"
3734
  msgstr ""
3735
 
3736
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:40
3737
  msgid "Fixed number of payments"
3738
  msgstr ""
3739
 
3740
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:46
3741
  msgid "Total Payments"
3742
  msgstr ""
3743
 
3744
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:47
3745
  msgid "The total number of recurring billing cycles including the trial period (if applicable). Keep in mind that once a member has completed the last payment, the subscription will not expire — essentially giving them lifetime access."
3746
  msgstr ""
3747
 
3748
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:52
3749
  #: src/templates/checkout/form-checkout-sidebar.php:65
3750
  msgid "Signup Fee"
3751
  msgstr ""
3752
 
3753
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:53
3754
  msgid "Optional signup fee to charge subscribers for the first billing cycle."
3755
  msgstr ""
3756
 
3757
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:59
3758
  msgid "Free Trial"
3759
  msgstr ""
3760
 
3761
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:60
3762
  msgid "Allow members free access for a specified duration of time before charging them."
3763
  msgstr ""
3764
 
3765
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:75
3766
  msgid "Plan Details"
3767
  msgstr ""
3768
 
3769
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:86
3770
  msgid "Subscription Settings"
3771
  msgstr ""
3772
 
3773
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:107
3774
  msgid "Summary"
3775
  msgstr ""
3776
 
3777
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:121
3778
  msgid "Order Links"
3779
  msgstr ""
3780
 
3781
- #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:127
3782
  msgid "Checkout link:"
3783
  msgstr ""
3784
 
@@ -3842,7 +3872,7 @@ msgstr ""
3842
  #: src/Admin/SettingsPages/Membership/views/orders/order-data-metabox.php:110
3843
  #: src/ShortcodeParser/MyAccount/MyAccountTag.php:75
3844
  #: src/ShortcodeParser/MyAccount/billing-details.tmpl.php:17
3845
- #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:74
3846
  #: src/templates/checkout/form-billing-fields.php:36
3847
  msgid "Billing Address"
3848
  msgstr ""
@@ -3957,7 +3987,7 @@ msgid "Validated"
3957
  msgstr ""
3958
 
3959
  #: src/Admin/SettingsPages/Membership/views/orders/eu-vat-sidebar.php:52
3960
- #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:125
3961
  msgid "Reverse Charged"
3962
  msgstr ""
3963
 
@@ -4032,7 +4062,7 @@ msgid "Item"
4032
  msgstr ""
4033
 
4034
  #: src/Admin/SettingsPages/Membership/views/orders/order-item-metabox.php:43
4035
- #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:106
4036
  #: src/templates/checkout/form-checkout-sidebar.php:71
4037
  msgid "Subtotal"
4038
  msgstr ""
@@ -4157,7 +4187,7 @@ msgid "Renewal Date:"
4157
  msgstr ""
4158
 
4159
  #: src/Admin/SettingsPages/Membership/views/subscriptions/data-metabox.php:133
4160
- #: src/Membership/Models/Subscription/SubscriptionEntity.php:343
4161
  msgid "Lifetime"
4162
  msgstr ""
4163
 
@@ -4891,6 +4921,68 @@ msgstr ""
4891
  msgid "Selected %s Archive Pages"
4892
  msgstr ""
4893
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4894
  #: src/ContentProtection/SettingsPage.php:42
4895
  #: src/ContentProtection/SettingsPage.php:60
4896
  msgid "Content Protection"
@@ -4913,6 +5005,20 @@ msgid "Title cannot be empty."
4913
  msgstr ""
4914
 
4915
  #: src/ContentProtection/SettingsPage.php:181
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4916
  msgid "Add a Protection Rule"
4917
  msgstr ""
4918
 
@@ -4924,11 +5030,6 @@ msgstr ""
4924
  msgid "Protected Contents"
4925
  msgstr ""
4926
 
4927
- #: src/ContentProtection/WPListTable.php:196
4928
- #: src/ContentProtection/views/view.access-condition.php:33
4929
- msgid "Everyone"
4930
- msgstr ""
4931
-
4932
  #: src/ContentProtection/WPListTable.php:199
4933
  #: src/ContentProtection/views/view.access-condition.php:34
4934
  msgid "Logged in users"
@@ -4943,6 +5044,14 @@ msgstr ""
4943
  msgid "%s plan"
4944
  msgstr ""
4945
 
 
 
 
 
 
 
 
 
4946
  #: src/ContentProtection/views/include.shortcode-doc-sidebar.php:5
4947
  msgid "To restrict contents in a post or page, we provide the below shortcode. %sLearn more%s"
4948
  msgstr ""
@@ -4963,11 +5072,11 @@ msgstr ""
4963
  msgid "Access Condition"
4964
  msgstr ""
4965
 
4966
- #: src/ContentProtection/views/include.view.php:50
4967
- msgid "Restrict Content Shortcode"
4968
  msgstr ""
4969
 
4970
- #: src/ContentProtection/views/include.view.php:75
4971
  msgid "Add title"
4972
  msgstr ""
4973
 
@@ -4988,7 +5097,7 @@ msgid "Select specific users that can access content"
4988
  msgstr ""
4989
 
4990
  #: src/ContentProtection/views/view.access-condition.php:83
4991
- msgid "What happens when users without access tries to view content?"
4992
  msgstr ""
4993
 
4994
  #: src/ContentProtection/views/view.access-condition.php:88
@@ -5003,14 +5112,6 @@ msgstr ""
5003
  msgid "Message to show to unauthorized users"
5004
  msgstr ""
5005
 
5006
- #: src/ContentProtection/views/view.access-condition.php:101
5007
- msgid "Global Restrict Access Message"
5008
- msgstr ""
5009
-
5010
- #: src/ContentProtection/views/view.access-condition.php:102
5011
- msgid "Custom message"
5012
- msgstr ""
5013
-
5014
  #: src/ContentProtection/views/view.access-condition.php:103
5015
  msgid "Post Excerpt"
5016
  msgstr ""
@@ -5100,655 +5201,655 @@ msgstr ""
5100
  msgid "Error: The file you uploaded is not accepted on our website."
5101
  msgstr ""
5102
 
5103
- #: src/Functions/MSFunctions.php:80
5104
  msgid "United States (US) dollar"
5105
  msgstr ""
5106
 
5107
- #: src/Functions/MSFunctions.php:81
5108
  msgid "Euro"
5109
  msgstr ""
5110
 
5111
- #: src/Functions/MSFunctions.php:82
5112
  msgid "Pound sterling"
5113
  msgstr ""
5114
 
5115
- #: src/Functions/MSFunctions.php:83
5116
  msgid "United Arab Emirates dirham"
5117
  msgstr ""
5118
 
5119
- #: src/Functions/MSFunctions.php:84
5120
  msgid "Afghan afghani"
5121
  msgstr ""
5122
 
5123
- #: src/Functions/MSFunctions.php:85
5124
  msgid "Albanian lek"
5125
  msgstr ""
5126
 
5127
- #: src/Functions/MSFunctions.php:86
5128
  msgid "Armenian dram"
5129
  msgstr ""
5130
 
5131
- #: src/Functions/MSFunctions.php:87
5132
  msgid "Netherlands Antillean guilder"
5133
  msgstr ""
5134
 
5135
- #: src/Functions/MSFunctions.php:88
5136
  msgid "Angolan kwanza"
5137
  msgstr ""
5138
 
5139
- #: src/Functions/MSFunctions.php:89
5140
  msgid "Argentine peso"
5141
  msgstr ""
5142
 
5143
- #: src/Functions/MSFunctions.php:90
5144
  msgid "Australian dollar"
5145
  msgstr ""
5146
 
5147
- #: src/Functions/MSFunctions.php:91
5148
  msgid "Aruban florin"
5149
  msgstr ""
5150
 
5151
- #: src/Functions/MSFunctions.php:92
5152
  msgid "Azerbaijani manat"
5153
  msgstr ""
5154
 
5155
- #: src/Functions/MSFunctions.php:93
5156
  msgid "Bosnia and Herzegovina convertible mark"
5157
  msgstr ""
5158
 
5159
- #: src/Functions/MSFunctions.php:94
5160
  msgid "Barbadian dollar"
5161
  msgstr ""
5162
 
5163
- #: src/Functions/MSFunctions.php:95
5164
  msgid "Bangladeshi taka"
5165
  msgstr ""
5166
 
5167
- #: src/Functions/MSFunctions.php:96
5168
  msgid "Bulgarian lev"
5169
  msgstr ""
5170
 
5171
- #: src/Functions/MSFunctions.php:97
5172
  msgid "Bahraini dinar"
5173
  msgstr ""
5174
 
5175
- #: src/Functions/MSFunctions.php:98
5176
  msgid "Burundian franc"
5177
  msgstr ""
5178
 
5179
- #: src/Functions/MSFunctions.php:99
5180
  msgid "Bermudian dollar"
5181
  msgstr ""
5182
 
5183
- #: src/Functions/MSFunctions.php:100
5184
  msgid "Brunei dollar"
5185
  msgstr ""
5186
 
5187
- #: src/Functions/MSFunctions.php:101
5188
  msgid "Bolivian boliviano"
5189
  msgstr ""
5190
 
5191
- #: src/Functions/MSFunctions.php:102
5192
  msgid "Brazilian real"
5193
  msgstr ""
5194
 
5195
- #: src/Functions/MSFunctions.php:103
5196
  msgid "Bahamian dollar"
5197
  msgstr ""
5198
 
5199
- #: src/Functions/MSFunctions.php:104
5200
  msgid "Bitcoin"
5201
  msgstr ""
5202
 
5203
- #: src/Functions/MSFunctions.php:105
5204
  msgid "Bhutanese ngultrum"
5205
  msgstr ""
5206
 
5207
- #: src/Functions/MSFunctions.php:106
5208
  msgid "Botswana pula"
5209
  msgstr ""
5210
 
5211
- #: src/Functions/MSFunctions.php:107
5212
  msgid "Belarusian ruble (old)"
5213
  msgstr ""
5214
 
5215
- #: src/Functions/MSFunctions.php:108
5216
  msgid "Belarusian ruble"
5217
  msgstr ""
5218
 
5219
- #: src/Functions/MSFunctions.php:109
5220
  msgid "Belize dollar"
5221
  msgstr ""
5222
 
5223
- #: src/Functions/MSFunctions.php:110
5224
  msgid "Canadian dollar"
5225
  msgstr ""
5226
 
5227
- #: src/Functions/MSFunctions.php:111
5228
  msgid "Congolese franc"
5229
  msgstr ""
5230
 
5231
- #: src/Functions/MSFunctions.php:112
5232
  msgid "Swiss franc"
5233
  msgstr ""
5234
 
5235
- #: src/Functions/MSFunctions.php:113
5236
  msgid "Chilean peso"
5237
  msgstr ""
5238
 
5239
- #: src/Functions/MSFunctions.php:114
5240
  msgid "Chinese yuan"
5241
  msgstr ""
5242
 
5243
- #: src/Functions/MSFunctions.php:115
5244
  msgid "Colombian peso"
5245
  msgstr ""
5246
 
5247
- #: src/Functions/MSFunctions.php:116
5248
  msgid "Costa Rican col&oacute;n"
5249
  msgstr ""
5250
 
5251
- #: src/Functions/MSFunctions.php:117
5252
  msgid "Cuban convertible peso"
5253
  msgstr ""
5254
 
5255
- #: src/Functions/MSFunctions.php:118
5256
  msgid "Cuban peso"
5257
  msgstr ""
5258
 
5259
- #: src/Functions/MSFunctions.php:119
5260
  msgid "Cape Verdean escudo"
5261
  msgstr ""
5262
 
5263
- #: src/Functions/MSFunctions.php:120
5264
  msgid "Czech koruna"
5265
  msgstr ""
5266
 
5267
- #: src/Functions/MSFunctions.php:121
5268
  msgid "Djiboutian franc"
5269
  msgstr ""
5270
 
5271
- #: src/Functions/MSFunctions.php:122
5272
  msgid "Danish krone"
5273
  msgstr ""
5274
 
5275
- #: src/Functions/MSFunctions.php:123
5276
  msgid "Dominican peso"
5277
  msgstr ""
5278
 
5279
- #: src/Functions/MSFunctions.php:124
5280
  msgid "Algerian dinar"
5281
  msgstr ""
5282
 
5283
- #: src/Functions/MSFunctions.php:125
5284
  msgid "Egyptian pound"
5285
  msgstr ""
5286
 
5287
- #: src/Functions/MSFunctions.php:126
5288
  msgid "Eritrean nakfa"
5289
  msgstr ""
5290
 
5291
- #: src/Functions/MSFunctions.php:127
5292
  msgid "Ethiopian birr"
5293
  msgstr ""
5294
 
5295
- #: src/Functions/MSFunctions.php:128
5296
  msgid "Fijian dollar"
5297
  msgstr ""
5298
 
5299
- #: src/Functions/MSFunctions.php:129
5300
  msgid "Falkland Islands pound"
5301
  msgstr ""
5302
 
5303
- #: src/Functions/MSFunctions.php:130
5304
  msgid "Georgian lari"
5305
  msgstr ""
5306
 
5307
- #: src/Functions/MSFunctions.php:131
5308
  msgid "Guernsey pound"
5309
  msgstr ""
5310
 
5311
- #: src/Functions/MSFunctions.php:132
5312
  msgid "Ghana cedi"
5313
  msgstr ""
5314
 
5315
- #: src/Functions/MSFunctions.php:133
5316
  msgid "Gibraltar pound"
5317
  msgstr ""
5318
 
5319
- #: src/Functions/MSFunctions.php:134
5320
  msgid "Gambian dalasi"
5321
  msgstr ""
5322
 
5323
- #: src/Functions/MSFunctions.php:135
5324
  msgid "Guinean franc"
5325
  msgstr ""
5326
 
5327
- #: src/Functions/MSFunctions.php:136
5328
  msgid "Guatemalan quetzal"
5329
  msgstr ""
5330
 
5331
- #: src/Functions/MSFunctions.php:137
5332
  msgid "Guyanese dollar"
5333
  msgstr ""
5334
 
5335
- #: src/Functions/MSFunctions.php:138
5336
  msgid "Hong Kong dollar"
5337
  msgstr ""
5338
 
5339
- #: src/Functions/MSFunctions.php:139
5340
  msgid "Honduran lempira"
5341
  msgstr ""
5342
 
5343
- #: src/Functions/MSFunctions.php:140
5344
  msgid "Croatian kuna"
5345
  msgstr ""
5346
 
5347
- #: src/Functions/MSFunctions.php:141
5348
  msgid "Haitian gourde"
5349
  msgstr ""
5350
 
5351
- #: src/Functions/MSFunctions.php:142
5352
  msgid "Hungarian forint"
5353
  msgstr ""
5354
 
5355
- #: src/Functions/MSFunctions.php:143
5356
  msgid "Indonesian rupiah"
5357
  msgstr ""
5358
 
5359
- #: src/Functions/MSFunctions.php:144
5360
  msgid "Israeli new shekel"
5361
  msgstr ""
5362
 
5363
- #: src/Functions/MSFunctions.php:145
5364
  msgid "Manx pound"
5365
  msgstr ""
5366
 
5367
- #: src/Functions/MSFunctions.php:146
5368
  msgid "Indian rupee"
5369
  msgstr ""
5370
 
5371
- #: src/Functions/MSFunctions.php:147
5372
  msgid "Iraqi dinar"
5373
  msgstr ""
5374
 
5375
- #: src/Functions/MSFunctions.php:148
5376
  msgid "Iranian rial"
5377
  msgstr ""
5378
 
5379
- #: src/Functions/MSFunctions.php:149
5380
  msgid "Iranian toman"
5381
  msgstr ""
5382
 
5383
- #: src/Functions/MSFunctions.php:150
5384
  msgid "Icelandic kr&oacute;na"
5385
  msgstr ""
5386
 
5387
- #: src/Functions/MSFunctions.php:151
5388
  msgid "Jersey pound"
5389
  msgstr ""
5390
 
5391
- #: src/Functions/MSFunctions.php:152
5392
  msgid "Jamaican dollar"
5393
  msgstr ""
5394
 
5395
- #: src/Functions/MSFunctions.php:153
5396
  msgid "Jordanian dinar"
5397
  msgstr ""
5398
 
5399
- #: src/Functions/MSFunctions.php:154
5400
  msgid "Japanese yen"
5401
  msgstr ""
5402
 
5403
- #: src/Functions/MSFunctions.php:155
5404
  msgid "Kenyan shilling"
5405
  msgstr ""
5406
 
5407
- #: src/Functions/MSFunctions.php:156
5408
  msgid "Kyrgyzstani som"
5409
  msgstr ""
5410
 
5411
- #: src/Functions/MSFunctions.php:157
5412
  msgid "Cambodian riel"
5413
  msgstr ""
5414
 
5415
- #: src/Functions/MSFunctions.php:158
5416
  msgid "Comorian franc"
5417
  msgstr ""
5418
 
5419
- #: src/Functions/MSFunctions.php:159
5420
  msgid "North Korean won"
5421
  msgstr ""
5422
 
5423
- #: src/Functions/MSFunctions.php:160
5424
  msgid "South Korean won"
5425
  msgstr ""
5426
 
5427
- #: src/Functions/MSFunctions.php:161
5428
  msgid "Kuwaiti dinar"
5429
  msgstr ""
5430
 
5431
- #: src/Functions/MSFunctions.php:162
5432
  msgid "Cayman Islands dollar"
5433
  msgstr ""
5434
 
5435
- #: src/Functions/MSFunctions.php:163
5436
  msgid "Kazakhstani tenge"
5437
  msgstr ""
5438
 
5439
- #: src/Functions/MSFunctions.php:164
5440
  msgid "Lao kip"
5441
  msgstr ""
5442
 
5443
- #: src/Functions/MSFunctions.php:165
5444
  msgid "Lebanese pound"
5445
  msgstr ""
5446
 
5447
- #: src/Functions/MSFunctions.php:166
5448
  msgid "Sri Lankan rupee"
5449
  msgstr ""
5450
 
5451
- #: src/Functions/MSFunctions.php:167
5452
  msgid "Liberian dollar"
5453
  msgstr ""
5454
 
5455
- #: src/Functions/MSFunctions.php:168
5456
  msgid "Lesotho loti"
5457
  msgstr ""
5458
 
5459
- #: src/Functions/MSFunctions.php:169
5460
  msgid "Libyan dinar"
5461
  msgstr ""
5462
 
5463
- #: src/Functions/MSFunctions.php:170
5464
  msgid "Moroccan dirham"
5465
  msgstr ""
5466
 
5467
- #: src/Functions/MSFunctions.php:171
5468
  msgid "Moldovan leu"
5469
  msgstr ""
5470
 
5471
- #: src/Functions/MSFunctions.php:172
5472
  msgid "Malagasy ariary"
5473
  msgstr ""
5474
 
5475
- #: src/Functions/MSFunctions.php:173
5476
  msgid "Macedonian denar"
5477
  msgstr ""
5478
 
5479
- #: src/Functions/MSFunctions.php:174
5480
  msgid "Burmese kyat"
5481
  msgstr ""
5482
 
5483
- #: src/Functions/MSFunctions.php:175
5484
  msgid "Mongolian t&ouml;gr&ouml;g"
5485
  msgstr ""
5486
 
5487
- #: src/Functions/MSFunctions.php:176
5488
  msgid "Macanese pataca"
5489
  msgstr ""
5490
 
5491
- #: src/Functions/MSFunctions.php:177
5492
  msgid "Mauritanian ouguiya"
5493
  msgstr ""
5494
 
5495
- #: src/Functions/MSFunctions.php:178
5496
  msgid "Mauritian rupee"
5497
  msgstr ""
5498
 
5499
- #: src/Functions/MSFunctions.php:179
5500
  msgid "Maldivian rufiyaa"
5501
  msgstr ""
5502
 
5503
- #: src/Functions/MSFunctions.php:180
5504
  msgid "Malawian kwacha"
5505
  msgstr ""
5506
 
5507
- #: src/Functions/MSFunctions.php:181
5508
  msgid "Mexican peso"
5509
  msgstr ""
5510
 
5511
- #: src/Functions/MSFunctions.php:182
5512
  msgid "Malaysian ringgit"
5513
  msgstr ""
5514
 
5515
- #: src/Functions/MSFunctions.php:183
5516
  msgid "Mozambican metical"
5517
  msgstr ""
5518
 
5519
- #: src/Functions/MSFunctions.php:184
5520
  msgid "Namibian dollar"
5521
  msgstr ""
5522
 
5523
- #: src/Functions/MSFunctions.php:185
5524
  msgid "Nigerian naira"
5525
  msgstr ""
5526
 
5527
- #: src/Functions/MSFunctions.php:186
5528
  msgid "Nicaraguan c&oacute;rdoba"
5529
  msgstr ""
5530
 
5531
- #: src/Functions/MSFunctions.php:187
5532
  msgid "Norwegian krone"
5533
  msgstr ""
5534
 
5535
- #: src/Functions/MSFunctions.php:188
5536
  msgid "Nepalese rupee"
5537
  msgstr ""
5538
 
5539
- #: src/Functions/MSFunctions.php:189
5540
  msgid "New Zealand dollar"
5541
  msgstr ""
5542
 
5543
- #: src/Functions/MSFunctions.php:190
5544
  msgid "Omani rial"
5545
  msgstr ""
5546
 
5547
- #: src/Functions/MSFunctions.php:191
5548
  msgid "Panamanian balboa"
5549
  msgstr ""
5550
 
5551
- #: src/Functions/MSFunctions.php:192
5552
  msgid "Sol"
5553
  msgstr ""
5554
 
5555
- #: src/Functions/MSFunctions.php:193
5556
  msgid "Papua New Guinean kina"
5557
  msgstr ""
5558
 
5559
- #: src/Functions/MSFunctions.php:194
5560
  msgid "Philippine peso"
5561
  msgstr ""
5562
 
5563
- #: src/Functions/MSFunctions.php:195
5564
  msgid "Pakistani rupee"
5565
  msgstr ""
5566
 
5567
- #: src/Functions/MSFunctions.php:196
5568
  msgid "Polish z&#x142;oty"
5569
  msgstr ""
5570
 
5571
- #: src/Functions/MSFunctions.php:197
5572
  msgid "Transnistrian ruble"
5573
  msgstr ""
5574
 
5575
- #: src/Functions/MSFunctions.php:198
5576
  msgid "Paraguayan guaran&iacute;"
5577
  msgstr ""
5578
 
5579
- #: src/Functions/MSFunctions.php:199
5580
  msgid "Qatari riyal"
5581
  msgstr ""
5582
 
5583
- #: src/Functions/MSFunctions.php:200
5584
  msgid "Romanian leu"
5585
  msgstr ""
5586
 
5587
- #: src/Functions/MSFunctions.php:201
5588
  msgid "Serbian dinar"
5589
  msgstr ""
5590
 
5591
- #: src/Functions/MSFunctions.php:202
5592
  msgid "Russian ruble"
5593
  msgstr ""
5594
 
5595
- #: src/Functions/MSFunctions.php:203
5596
  msgid "Rwandan franc"
5597
  msgstr ""
5598
 
5599
- #: src/Functions/MSFunctions.php:204
5600
  msgid "Saudi riyal"
5601
  msgstr ""
5602
 
5603
- #: src/Functions/MSFunctions.php:205
5604
  msgid "Solomon Islands dollar"
5605
  msgstr ""
5606
 
5607
- #: src/Functions/MSFunctions.php:206
5608
  msgid "Seychellois rupee"
5609
  msgstr ""
5610
 
5611
- #: src/Functions/MSFunctions.php:207
5612
  msgid "Sudanese pound"
5613
  msgstr ""
5614
 
5615
- #: src/Functions/MSFunctions.php:208
5616
  msgid "Swedish krona"
5617
  msgstr ""
5618
 
5619
- #: src/Functions/MSFunctions.php:209
5620
  msgid "Singapore dollar"
5621
  msgstr ""
5622
 
5623
- #: src/Functions/MSFunctions.php:210
5624
  msgid "Saint Helena pound"
5625
  msgstr ""
5626
 
5627
- #: src/Functions/MSFunctions.php:211
5628
  msgid "Sierra Leonean leone"
5629
  msgstr ""
5630
 
5631
- #: src/Functions/MSFunctions.php:212
5632
  msgid "Somali shilling"
5633
  msgstr ""
5634
 
5635
- #: src/Functions/MSFunctions.php:213
5636
  msgid "Surinamese dollar"
5637
  msgstr ""
5638
 
5639
- #: src/Functions/MSFunctions.php:214
5640
  msgid "South Sudanese pound"
5641
  msgstr ""
5642
 
5643
- #: src/Functions/MSFunctions.php:215
5644
  msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe dobra"
5645
  msgstr ""
5646
 
5647
- #: src/Functions/MSFunctions.php:216
5648
  msgid "Syrian pound"
5649
  msgstr ""
5650
 
5651
- #: src/Functions/MSFunctions.php:217
5652
  msgid "Swazi lilangeni"
5653
  msgstr ""
5654
 
5655
- #: src/Functions/MSFunctions.php:218
5656
  msgid "Thai baht"
5657
  msgstr ""
5658
 
5659
- #: src/Functions/MSFunctions.php:219
5660
  msgid "Tajikistani somoni"
5661
  msgstr ""
5662
 
5663
- #: src/Functions/MSFunctions.php:220
5664
  msgid "Turkmenistan manat"
5665
  msgstr ""
5666
 
5667
- #: src/Functions/MSFunctions.php:221
5668
  msgid "Tunisian dinar"
5669
  msgstr ""
5670
 
5671
- #: src/Functions/MSFunctions.php:222
5672
  msgid "Tongan pa&#x2bb;anga"
5673
  msgstr ""
5674
 
5675
- #: src/Functions/MSFunctions.php:223
5676
  msgid "Turkish lira"
5677
  msgstr ""
5678
 
5679
- #: src/Functions/MSFunctions.php:224
5680
  msgid "Trinidad and Tobago dollar"
5681
  msgstr ""
5682
 
5683
- #: src/Functions/MSFunctions.php:225
5684
  msgid "New Taiwan dollar"
5685
  msgstr ""
5686
 
5687
- #: src/Functions/MSFunctions.php:226
5688
  msgid "Tanzanian shilling"
5689
  msgstr ""
5690
 
5691
- #: src/Functions/MSFunctions.php:227
5692
  msgid "Ukrainian hryvnia"
5693
  msgstr ""
5694
 
5695
- #: src/Functions/MSFunctions.php:228
5696
  msgid "Ugandan shilling"
5697
  msgstr ""
5698
 
5699
- #: src/Functions/MSFunctions.php:229
5700
  msgid "Uruguayan peso"
5701
  msgstr ""
5702
 
5703
- #: src/Functions/MSFunctions.php:230
5704
  msgid "Uzbekistani som"
5705
  msgstr ""
5706
 
5707
- #: src/Functions/MSFunctions.php:231
5708
  msgid "Venezuelan bol&iacute;var"
5709
  msgstr ""
5710
 
5711
- #: src/Functions/MSFunctions.php:232
5712
  msgid "Bol&iacute;var soberano"
5713
  msgstr ""
5714
 
5715
- #: src/Functions/MSFunctions.php:233
5716
  msgid "Vietnamese &#x111;&#x1ed3;ng"
5717
  msgstr ""
5718
 
5719
- #: src/Functions/MSFunctions.php:234
5720
  msgid "Vanuatu vatu"
5721
  msgstr ""
5722
 
5723
- #: src/Functions/MSFunctions.php:235
5724
  msgid "Samoan t&#x101;l&#x101;"
5725
  msgstr ""
5726
 
5727
- #: src/Functions/MSFunctions.php:236
5728
  msgid "Central African CFA franc"
5729
  msgstr ""
5730
 
5731
- #: src/Functions/MSFunctions.php:237
5732
  msgid "East Caribbean dollar"
5733
  msgstr ""
5734
 
5735
- #: src/Functions/MSFunctions.php:238
5736
  msgid "West African CFA franc"
5737
  msgstr ""
5738
 
5739
- #: src/Functions/MSFunctions.php:239
5740
  msgid "CFP franc"
5741
  msgstr ""
5742
 
5743
- #: src/Functions/MSFunctions.php:240
5744
  msgid "Yemeni rial"
5745
  msgstr ""
5746
 
5747
- #: src/Functions/MSFunctions.php:241
5748
  msgid "South African rand"
5749
  msgstr ""
5750
 
5751
- #: src/Functions/MSFunctions.php:242
5752
  msgid "Zambian kwacha"
5753
  msgstr ""
5754
 
@@ -14343,17 +14444,17 @@ msgid "Username is invalid because it uses illegal characters"
14343
  msgstr ""
14344
 
14345
  #: src/Membership/Emails/EmailDataTrait.php:10
14346
- #: src/Membership/Emails/EmailDataTrait.php:45
14347
  msgid "Email address of the customer."
14348
  msgstr ""
14349
 
14350
  #: src/Membership/Emails/EmailDataTrait.php:11
14351
- #: src/Membership/Emails/EmailDataTrait.php:46
14352
  msgid "First name of the customer."
14353
  msgstr ""
14354
 
14355
  #: src/Membership/Emails/EmailDataTrait.php:12
14356
- #: src/Membership/Emails/EmailDataTrait.php:47
14357
  msgid "Last name of the customer."
14358
  msgstr ""
14359
 
@@ -14402,43 +14503,47 @@ msgid "Order payment method."
14402
  msgstr ""
14403
 
14404
  #: src/Membership/Emails/EmailDataTrait.php:24
14405
- #: src/Membership/Emails/EmailDataTrait.php:54
 
 
 
 
14406
  msgid "Name or title of this website."
14407
  msgstr ""
14408
 
14409
- #: src/Membership/Emails/EmailDataTrait.php:26
14410
  msgid "Your business name as defined in %sSettings%s."
14411
  msgstr ""
14412
 
14413
- #: src/Membership/Emails/EmailDataTrait.php:30
14414
  msgid "Your business address as defined in %sSettings%s."
14415
  msgstr ""
14416
 
14417
- #: src/Membership/Emails/EmailDataTrait.php:34
14418
  msgid "Your business Tax ID as defined in %sSettings%s."
14419
  msgstr ""
14420
 
14421
- #: src/Membership/Emails/EmailDataTrait.php:48
14422
  msgid "Subscription ID."
14423
  msgstr ""
14424
 
14425
- #: src/Membership/Emails/EmailDataTrait.php:49
14426
  msgid "URL to view subscription."
14427
  msgstr ""
14428
 
14429
- #: src/Membership/Emails/EmailDataTrait.php:50
14430
  msgid "URL to re-subscribe to the subscription plan."
14431
  msgstr ""
14432
 
14433
- #: src/Membership/Emails/EmailDataTrait.php:51
14434
  msgid "Name or title of subscription plan."
14435
  msgstr ""
14436
 
14437
- #: src/Membership/Emails/EmailDataTrait.php:52
14438
  msgid "The recurring amount of the subscription."
14439
  msgstr ""
14440
 
14441
- #: src/Membership/Emails/EmailDataTrait.php:53
14442
  msgid "The expiration or renewal date for the subscription."
14443
  msgstr ""
14444
 
@@ -14451,7 +14556,7 @@ msgid "Payment %s has been fully refunded in %s."
14451
  msgstr ""
14452
 
14453
  #: src/Membership/Models/Order/OrderEntity.php:240
14454
- #: src/Membership/Models/Subscription/SubscriptionEntity.php:465
14455
  msgid "payment method"
14456
  msgstr ""
14457
 
@@ -14522,7 +14627,7 @@ msgstr ""
14522
  msgid "One-time purchase"
14523
  msgstr ""
14524
 
14525
- #: src/Membership/Models/Subscription/SubscriptionEntity.php:468
14526
  msgid "Subscription changed from %s to %s by %s"
14527
  msgstr ""
14528
 
@@ -14639,7 +14744,7 @@ msgstr ""
14639
  msgid "Pay as you go pricing: 2%% per-transaction fee + Stripe fees. Remove the 2%% fee by %supgrading to premium%s."
14640
  msgstr ""
14641
 
14642
- #: src/Membership/PaymentMethods/Stripe/PaymentHelpers.php:22
14643
  msgid "Setup Fee"
14644
  msgstr ""
14645
 
@@ -14768,19 +14873,19 @@ msgstr ""
14768
  msgid "Credit card"
14769
  msgstr ""
14770
 
14771
- #: src/Membership/PaymentMethods/Stripe/Stripe.php:689
14772
  msgid "No payment method found. Please try again."
14773
  msgstr ""
14774
 
14775
- #: src/Membership/PaymentMethods/Stripe/Stripe.php:823
14776
  msgid "Refund request is pending"
14777
  msgstr ""
14778
 
14779
- #: src/Membership/PaymentMethods/Stripe/Stripe.php:826
14780
  msgid "Refund request failed"
14781
  msgstr ""
14782
 
14783
- #: src/Membership/PaymentMethods/Stripe/Stripe.php:829
14784
  msgid "Refund request failed. Status: %s"
14785
  msgstr ""
14786
 
@@ -15253,7 +15358,7 @@ msgstr ""
15253
  msgid "Item Description"
15254
  msgstr ""
15255
 
15256
- #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:64
15257
  msgid "Order Type"
15258
  msgstr ""
15259
 
2
  # This file is distributed under the same license as the ProfilePress package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: ProfilePress 4.1.3\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-avatar\n"
7
+ "POT-Creation-Date: 2022-09-05 15:51:08+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
722
  #: src/Admin/SettingsPages/FormList.php:241
723
  #: src/Admin/SettingsPages/FormList.php:317
724
  #: src/Admin/SettingsPages/GeneralSettings.php:139
725
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:78
726
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:201
727
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:263
728
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:112
729
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:259
1510
 
1511
  #: src/Admin/SettingsPages/EmailSettings/EmailSettingsPage.php:133
1512
  #: src/Admin/SettingsPages/EmailSettings/EmailSettingsPage.php:149
1513
+ #: src/Membership/Emails/EmailDataTrait.php:38
1514
  msgid "URL to reset password."
1515
  msgstr ""
1516
 
1517
  #: src/Admin/SettingsPages/EmailSettings/EmailSettingsPage.php:134
1518
+ #: src/Membership/Emails/EmailDataTrait.php:39
1519
  msgid "URL to login."
1520
  msgstr ""
1521
 
1890
  msgstr ""
1891
 
1892
  #: src/Admin/SettingsPages/FormList.php:240
1893
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:67
1894
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:86
1895
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:108
1896
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:65
2240
  msgstr ""
2241
 
2242
  #: src/Admin/SettingsPages/GeneralSettings.php:298
2243
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:75
2244
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:202
2245
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:74
2246
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:173
2247
  #: src/ContentProtection/WPListTable.php:93
2423
  msgstr ""
2424
 
2425
  #: src/Admin/SettingsPages/GeneralSettings.php:461
2426
+ #: src/ContentProtection/ElementorRestriction.php:251
2427
  #: src/ContentProtection/Frontend/PostContent.php:66
2428
  #: src/RegisterActivation/Base.php:131
2429
  msgid "You are unauthorized to view this page."
2713
  msgid "Checkout Fields"
2714
  msgstr ""
2715
 
2716
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:24
2717
  msgid "No coupon code found."
2718
  msgstr ""
2719
 
2720
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:31
2721
  #: src/Functions/custom-settings-api.php:873
2722
  msgid "Code"
2723
  msgstr ""
2724
 
2725
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:32
2726
  #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:47
2727
  #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:48
2728
  #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:35
2729
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:117
2730
  msgid "Discount"
2731
  msgstr ""
2732
 
2733
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:33
2734
  msgid "Redemptions"
2735
  msgstr ""
2736
 
2737
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:34
2738
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:56
2739
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:32
2740
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:52
2746
  msgid "Status"
2747
  msgstr ""
2748
 
2749
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:35
2750
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:78
2751
  #: src/ShortcodeParser/MyAccount/view-subscription.tmpl.php:75
2752
  msgid "Start Date"
2753
  msgstr ""
2754
 
2755
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:36
2756
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:88
2757
  msgid "End Date"
2758
  msgstr ""
2759
 
2760
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:71
2761
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:203
2762
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:70
2763
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:174
2764
  #: src/ContentProtection/WPListTable.php:89
2765
  msgid "Deactivate"
2766
  msgstr ""
2767
 
2768
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:82
2769
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:42
2770
+ msgid "Recurring"
2771
+ msgstr ""
2772
+
2773
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:82
2774
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:43
2775
+ msgid "One-time"
2776
+ msgstr ""
2777
+
2778
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:123
2779
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:97
2780
  msgid "Unlimited"
2781
  msgstr ""
2782
 
2783
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:134
2784
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:109
2785
  #: src/Membership/Models/Customer/CustomerStatus.php:13
2786
  #: src/Membership/Models/Subscription/SubscriptionStatus.php:17
2787
  msgid "Active"
2788
  msgstr ""
2789
 
2790
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:136
2791
  #: src/Admin/SettingsPages/Membership/PlansPage/PlanWPListTable.php:111
2792
  #: src/Membership/Models/Customer/CustomerStatus.php:14
2793
  msgid "Inactive"
2794
  msgstr ""
2795
 
2796
+ #: src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php:140
2797
  #: src/Membership/Models/Subscription/SubscriptionStatus.php:19
2798
  msgid "Expired"
2799
  msgstr ""
2800
 
2801
  #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:49
2802
  #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:40
2803
+ msgid "Coupon Type"
2804
+ msgstr ""
2805
+
2806
+ #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:50
2807
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:50
2808
  msgid "Coupon Application"
2809
  msgstr ""
2810
 
2811
+ #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:55
2812
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:97
2813
  msgid "%s cannot be empty."
2814
  msgstr ""
2815
 
2816
+ #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:83
2817
+ #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:107
2818
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:56
2819
  msgid "Coupons"
2820
  msgstr ""
2821
 
2822
+ #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:86
2823
  msgid "Add a Coupon"
2824
  msgstr ""
2825
 
2826
+ #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:90
2827
  msgid "Edit Coupon"
2828
  msgstr ""
2829
 
2830
+ #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:131
2831
  #: src/Admin/SettingsPages/Membership/CustomersPage/SettingsPage.php:259
2832
  #: src/Admin/SettingsPages/Membership/OrdersPage/SettingsPage.php:476
2833
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:151
2834
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SettingsPage.php:165
2835
  #: src/ContentProtection/SettingsPage.php:160
2836
  #: src/Themes/DragDrop/AbstractTheme.php:114
2837
  msgid "Changes saved."
2838
  msgstr ""
2839
 
2840
+ #: src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php:152
2841
  msgid "Add New Coupon"
2842
  msgstr ""
2843
 
2880
 
2881
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:317
2882
  #: src/Admin/SettingsPages/Membership/DashboardPage/SettingsPage.php:264
2883
+ #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:349
2884
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:314
2885
  msgctxt "date filter"
2886
  msgid "From"
2888
 
2889
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:320
2890
  #: src/Admin/SettingsPages/Membership/DashboardPage/SettingsPage.php:267
2891
+ #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:352
2892
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:317
2893
  msgctxt "date filter"
2894
  msgid "To"
2896
 
2897
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:325
2898
  #: src/Admin/SettingsPages/Membership/DashboardPage/SettingsPage.php:283
2899
+ #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:378
2900
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:331
2901
  msgid "Filter"
2902
  msgstr ""
2903
 
2904
  #: src/Admin/SettingsPages/Membership/CustomersPage/CustomerWPListTable.php:329
2905
  #: src/Admin/SettingsPages/Membership/DashboardPage/SettingsPage.php:287
2906
+ #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:382
2907
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:335
2908
  msgid "Clear"
2909
  msgstr ""
3118
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:51
3119
  #: src/Admin/SettingsPages/Membership/views/customers/subcriptions-metabox.php:19
3120
  #: src/Admin/SettingsPages/Membership/views/orders/add-edit-order.php:114
3121
+ #: src/ContentProtection/NavMenuProtection.php:90
3122
  #: src/ShortcodeParser/MyAccount/view-subscription.tmpl.php:63
3123
  msgid "Plan"
3124
  msgstr ""
3125
 
3126
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:55
3127
  #: src/Admin/SettingsPages/Membership/views/subscriptions/sub-payments-metabox.php:19
3128
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:137
3129
  #: src/ShortcodeParser/MyAccount/view-subscription.tmpl.php:117
3130
  #: src/templates/checkout/form-checkout-sidebar.php:107
3131
  msgid "Total"
3133
 
3134
  #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:57
3135
  #: src/Admin/SettingsPages/Membership/OrdersPage/SettingsPage.php:531
3136
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:76
3137
  msgid "Payment Method"
3138
  msgstr ""
3139
 
3155
  msgid "Resend Order Receipt"
3156
  msgstr ""
3157
 
3158
+ #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:338
3159
  msgid "All Modes"
3160
  msgstr ""
3161
 
3162
+ #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:359
3163
  msgid "All Payment Methods"
3164
  msgstr ""
3165
 
3166
+ #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:370
3167
  #: src/Admin/SettingsPages/Membership/SubscriptionsPage/SubscriptionWPListTable.php:323
3168
  msgid "All Customers"
3169
  msgstr ""
3170
 
3171
+ #: src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php:391
3172
  msgid "Search Orders"
3173
  msgstr ""
3174
 
3211
 
3212
  #: src/Admin/SettingsPages/Membership/OrdersPage/SettingsPage.php:526
3213
  #: src/ShortcodeParser/MyAccount/orders.tmpl.php:57
3214
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:64
3215
  msgid "Order Status"
3216
  msgstr ""
3217
 
3375
  msgstr ""
3376
 
3377
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:42
3378
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:128
3379
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:66
3380
  msgid "Membership Plans"
3381
  msgstr ""
3382
 
3394
  msgstr ""
3395
 
3396
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:90
3397
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:28
3398
  #: src/Admin/SettingsPages/Membership/views/orders/order-item-metabox.php:26
3399
  msgid "Price"
3400
  msgstr ""
3401
 
3402
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:91
3403
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:37
3404
  msgid "Billing Frequency"
3405
  msgstr ""
3406
 
3407
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:92
3408
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:43
3409
  msgid "Subscription Length"
3410
  msgstr ""
3411
 
3412
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:173
3413
  msgid "Add New Plan"
3414
  msgstr ""
3415
 
 
 
 
 
 
3416
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:202
3417
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:216
3418
+ msgid "month"
3419
  msgstr ""
3420
 
3421
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:203
3422
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:217
3423
+ msgid "week"
3424
  msgstr ""
3425
 
3426
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:204
3427
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:218
3428
+ msgid "day"
3429
  msgstr ""
3430
 
3431
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:205
3432
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:219
3433
+ msgid "quarter"
3434
  msgstr ""
3435
 
3436
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:206
3437
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:220
3438
+ msgid "every 6 months"
3439
  msgstr ""
3440
 
3441
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:207
3442
  #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:221
3443
+ msgid "year"
3444
+ msgstr ""
3445
+
3446
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:208
3447
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:222
3448
  msgid "one-time"
3449
  msgstr ""
3450
 
3451
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:238
3452
  msgid "months"
3453
  msgstr ""
3454
 
3455
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:239
3456
  msgid "for"
3457
  msgstr ""
3458
 
3459
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:240
3460
  msgid " and a %s signup fee"
3461
  msgstr ""
3462
 
3463
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:241
3464
  msgid "Renews indefinitely"
3465
  msgstr ""
3466
 
3467
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:242
3468
  msgid "Never expires"
3469
  msgstr ""
3470
 
3471
+ #: src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php:243
3472
  msgid "Includes a %s free trial"
3473
  msgstr ""
3474
 
3615
 
3616
  #: src/Admin/SettingsPages/Membership/TaxSettings/SettingsPage.php:113
3617
  #: src/Admin/SettingsPages/Membership/views/orders/eu-vat-sidebar.php:46
3618
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:142
3619
  #: src/templates/checkout/form-billing-fields.php:47
3620
  msgid "VAT Number"
3621
  msgstr ""
3681
  msgid "A description of this coupon."
3682
  msgstr ""
3683
 
3684
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:45
3685
+ msgid "Selecting \"One-time\" applies the coupon discount only to the first payment while \"Recurring\" applies the discount to all payments."
3686
+ msgstr ""
3687
+
3688
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:52
3689
  msgid "To new purchases only"
3690
  msgstr ""
3691
 
3692
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:53
3693
  msgid "To existing purchase (upgrades)"
3694
  msgstr ""
3695
 
3696
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:54
3697
  msgid "To both new and existing purchases"
3698
  msgstr ""
3699
 
3700
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:57
3701
  msgid "Select where members can apply this coupon."
3702
  msgstr ""
3703
 
3704
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:72
3705
  msgid "Select membership plans this coupon can only be applied to. Leave blank for all plans."
3706
  msgstr ""
3707
 
3708
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:80
3709
  msgid "Enter the date that this coupon will be valid from. Leave blank for no start date. (UTC %s)"
3710
  msgstr ""
3711
 
3712
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:90
3713
  msgid "Enter the date that this coupon will expire on. Leave blank for no end date. (UTC %s)"
3714
  msgstr ""
3715
 
3716
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:98
3717
  msgid "Maximum Redemptions "
3718
  msgstr ""
3719
 
3720
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:99
3721
  msgid "Limit the total amount of redemptions for this coupon. Leave blank for unlimited."
3722
  msgstr ""
3723
 
3724
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:115
3725
  msgid "Coupon Details"
3726
  msgstr ""
3727
 
3728
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:126
3729
  msgid "Redemption Settings"
3730
  msgstr ""
3731
 
3732
+ #: src/Admin/SettingsPages/Membership/views/add-edit-coupon.php:137
3733
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:103
3734
  #: src/Admin/SettingsPages/Membership/views/customers/view-customer.php:48
3735
  #: src/Admin/SettingsPages/Membership/views/orders/add-edit-order.php:38
3736
  #: src/Admin/SettingsPages/Membership/views/subscriptions/add-edit-subscription.php:42
3746
  msgid "A description of this plan. This will be displayed on the checkout page."
3747
  msgstr ""
3748
 
3749
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:22
3750
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:59
3751
+ msgid "Purchase Note"
3752
+ msgstr ""
3753
+
3754
  #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:23
3755
+ msgid "Enter an optional note or special instructions to send the customer after purchase. These will be added to the order receipt."
3756
+ msgstr ""
3757
+
3758
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:29
3759
  msgid "The price of this membership plan. Enter 0 to make this plan free."
3760
  msgstr ""
3761
 
3762
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:45
3763
  msgid "Renew indefinitely until member cancels"
3764
  msgstr ""
3765
 
3766
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:46
3767
  msgid "Fixed number of payments"
3768
  msgstr ""
3769
 
3770
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:52
3771
  msgid "Total Payments"
3772
  msgstr ""
3773
 
3774
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:53
3775
  msgid "The total number of recurring billing cycles including the trial period (if applicable). Keep in mind that once a member has completed the last payment, the subscription will not expire — essentially giving them lifetime access."
3776
  msgstr ""
3777
 
3778
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:58
3779
  #: src/templates/checkout/form-checkout-sidebar.php:65
3780
  msgid "Signup Fee"
3781
  msgstr ""
3782
 
3783
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:59
3784
  msgid "Optional signup fee to charge subscribers for the first billing cycle."
3785
  msgstr ""
3786
 
3787
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:65
3788
  msgid "Free Trial"
3789
  msgstr ""
3790
 
3791
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:66
3792
  msgid "Allow members free access for a specified duration of time before charging them."
3793
  msgstr ""
3794
 
3795
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:81
3796
  msgid "Plan Details"
3797
  msgstr ""
3798
 
3799
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:92
3800
  msgid "Subscription Settings"
3801
  msgstr ""
3802
 
3803
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:113
3804
  msgid "Summary"
3805
  msgstr ""
3806
 
3807
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:127
3808
  msgid "Order Links"
3809
  msgstr ""
3810
 
3811
+ #: src/Admin/SettingsPages/Membership/views/add-edit-plan.php:133
3812
  msgid "Checkout link:"
3813
  msgstr ""
3814
 
3872
  #: src/Admin/SettingsPages/Membership/views/orders/order-data-metabox.php:110
3873
  #: src/ShortcodeParser/MyAccount/MyAccountTag.php:75
3874
  #: src/ShortcodeParser/MyAccount/billing-details.tmpl.php:17
3875
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:80
3876
  #: src/templates/checkout/form-billing-fields.php:36
3877
  msgid "Billing Address"
3878
  msgstr ""
3987
  msgstr ""
3988
 
3989
  #: src/Admin/SettingsPages/Membership/views/orders/eu-vat-sidebar.php:52
3990
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:131
3991
  msgid "Reverse Charged"
3992
  msgstr ""
3993
 
4062
  msgstr ""
4063
 
4064
  #: src/Admin/SettingsPages/Membership/views/orders/order-item-metabox.php:43
4065
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:112
4066
  #: src/templates/checkout/form-checkout-sidebar.php:71
4067
  msgid "Subtotal"
4068
  msgstr ""
4187
  msgstr ""
4188
 
4189
  #: src/Admin/SettingsPages/Membership/views/subscriptions/data-metabox.php:133
4190
+ #: src/Membership/Models/Subscription/SubscriptionEntity.php:350
4191
  msgid "Lifetime"
4192
  msgstr ""
4193
 
4921
  msgid "Selected %s Archive Pages"
4922
  msgstr ""
4923
 
4924
+ #: src/ContentProtection/ElementorRestriction.php:38
4925
+ msgid "ProfilePress Content Restriction"
4926
+ msgstr ""
4927
+
4928
+ #: src/ContentProtection/ElementorRestriction.php:52
4929
+ msgid "Target Audience"
4930
+ msgstr ""
4931
+
4932
+ #: src/ContentProtection/ElementorRestriction.php:56
4933
+ #: src/ContentProtection/WPListTable.php:196
4934
+ #: src/ContentProtection/views/view.access-condition.php:33
4935
+ msgid "Everyone"
4936
+ msgstr ""
4937
+
4938
+ #: src/ContentProtection/ElementorRestriction.php:57
4939
+ msgid "Logged-in Users"
4940
+ msgstr ""
4941
+
4942
+ #: src/ContentProtection/ElementorRestriction.php:58
4943
+ msgid "Logged-out Users"
4944
+ msgstr ""
4945
+
4946
+ #: src/ContentProtection/ElementorRestriction.php:68
4947
+ msgid "Restrict to Membership Plans"
4948
+ msgstr ""
4949
+
4950
+ #: src/ContentProtection/ElementorRestriction.php:92
4951
+ msgid "Restrict to User Roles"
4952
+ msgstr ""
4953
+
4954
+ #: src/ContentProtection/ElementorRestriction.php:119
4955
+ msgid "Alternate Content"
4956
+ msgstr ""
4957
+
4958
+ #: src/ContentProtection/ElementorRestriction.php:120
4959
+ msgid "The message to show when the main content is restricted."
4960
+ msgstr ""
4961
+
4962
+ #: src/ContentProtection/ElementorRestriction.php:124
4963
+ msgid "Show Nothing"
4964
+ msgstr ""
4965
+
4966
+ #: src/ContentProtection/ElementorRestriction.php:125
4967
+ #: src/ContentProtection/views/view.access-condition.php:101
4968
+ msgid "Global Restrict Access Message"
4969
+ msgstr ""
4970
+
4971
+ #: src/ContentProtection/ElementorRestriction.php:126
4972
+ #: src/ContentProtection/ElementorRestriction.php:140
4973
+ #: src/ContentProtection/views/view.access-condition.php:102
4974
+ msgid "Custom Message"
4975
+ msgstr ""
4976
+
4977
+ #: src/ContentProtection/ElementorRestriction.php:141
4978
+ msgid "This message will be shown as an alternate of your content"
4979
+ msgstr ""
4980
+
4981
+ #: src/ContentProtection/ElementorRestriction.php:142
4982
+ #: src/ContentProtection/ElementorRestriction.php:244
4983
+ msgid "This content is restricted!"
4984
+ msgstr ""
4985
+
4986
  #: src/ContentProtection/SettingsPage.php:42
4987
  #: src/ContentProtection/SettingsPage.php:60
4988
  msgid "Content Protection"
5005
  msgstr ""
5006
 
5007
  #: src/ContentProtection/SettingsPage.php:181
5008
+ #: src/ContentProtection/views/include.view.php:51
5009
+ msgid "Restrict Content Shortcode"
5010
+ msgstr ""
5011
+
5012
+ #: src/ContentProtection/SettingsPage.php:190
5013
+ msgid "WordPress Menu Protection"
5014
+ msgstr ""
5015
+
5016
+ #: src/ContentProtection/SettingsPage.php:202
5017
+ #: src/ContentProtection/views/include.view.php:72
5018
+ msgid "Elementor Restriction"
5019
+ msgstr ""
5020
+
5021
+ #: src/ContentProtection/SettingsPage.php:222
5022
  msgid "Add a Protection Rule"
5023
  msgstr ""
5024
 
5030
  msgid "Protected Contents"
5031
  msgstr ""
5032
 
 
 
 
 
 
5033
  #: src/ContentProtection/WPListTable.php:199
5034
  #: src/ContentProtection/views/view.access-condition.php:34
5035
  msgid "Logged in users"
5044
  msgid "%s plan"
5045
  msgstr ""
5046
 
5047
+ #: src/ContentProtection/views/include.elementor-protection.php:5
5048
+ msgid "Want to control the visibility of Elementor sections, containers and widgets based on user roles, logged-in status and membership plans? %sLearn how to%s"
5049
+ msgstr ""
5050
+
5051
+ #: src/ContentProtection/views/include.menu-protection.php:5
5052
+ msgid "Want to control the visibility of WordPress navigation menus based on user roles, logged-in status and membership plans? %sLearn how to%s"
5053
+ msgstr ""
5054
+
5055
  #: src/ContentProtection/views/include.shortcode-doc-sidebar.php:5
5056
  msgid "To restrict contents in a post or page, we provide the below shortcode. %sLearn more%s"
5057
  msgstr ""
5072
  msgid "Access Condition"
5073
  msgstr ""
5074
 
5075
+ #: src/ContentProtection/views/include.view.php:61
5076
+ msgid "WordPress Menu Restriction"
5077
  msgstr ""
5078
 
5079
+ #: src/ContentProtection/views/include.view.php:98
5080
  msgid "Add title"
5081
  msgstr ""
5082
 
5097
  msgstr ""
5098
 
5099
  #: src/ContentProtection/views/view.access-condition.php:83
5100
+ msgid "What happens when users without access try to view the content?"
5101
  msgstr ""
5102
 
5103
  #: src/ContentProtection/views/view.access-condition.php:88
5112
  msgid "Message to show to unauthorized users"
5113
  msgstr ""
5114
 
 
 
 
 
 
 
 
 
5115
  #: src/ContentProtection/views/view.access-condition.php:103
5116
  msgid "Post Excerpt"
5117
  msgstr ""
5201
  msgid "Error: The file you uploaded is not accepted on our website."
5202
  msgstr ""
5203
 
5204
+ #: src/Functions/MSFunctions.php:81
5205
  msgid "United States (US) dollar"
5206
  msgstr ""
5207
 
5208
+ #: src/Functions/MSFunctions.php:82
5209
  msgid "Euro"
5210
  msgstr ""
5211
 
5212
+ #: src/Functions/MSFunctions.php:83
5213
  msgid "Pound sterling"
5214
  msgstr ""
5215
 
5216
+ #: src/Functions/MSFunctions.php:84
5217
  msgid "United Arab Emirates dirham"
5218
  msgstr ""
5219
 
5220
+ #: src/Functions/MSFunctions.php:85
5221
  msgid "Afghan afghani"
5222
  msgstr ""
5223
 
5224
+ #: src/Functions/MSFunctions.php:86
5225
  msgid "Albanian lek"
5226
  msgstr ""
5227
 
5228
+ #: src/Functions/MSFunctions.php:87
5229
  msgid "Armenian dram"
5230
  msgstr ""
5231
 
5232
+ #: src/Functions/MSFunctions.php:88
5233
  msgid "Netherlands Antillean guilder"
5234
  msgstr ""
5235
 
5236
+ #: src/Functions/MSFunctions.php:89
5237
  msgid "Angolan kwanza"
5238
  msgstr ""
5239
 
5240
+ #: src/Functions/MSFunctions.php:90
5241
  msgid "Argentine peso"
5242
  msgstr ""
5243
 
5244
+ #: src/Functions/MSFunctions.php:91
5245
  msgid "Australian dollar"
5246
  msgstr ""
5247
 
5248
+ #: src/Functions/MSFunctions.php:92
5249
  msgid "Aruban florin"
5250
  msgstr ""
5251
 
5252
+ #: src/Functions/MSFunctions.php:93
5253
  msgid "Azerbaijani manat"
5254
  msgstr ""
5255
 
5256
+ #: src/Functions/MSFunctions.php:94
5257
  msgid "Bosnia and Herzegovina convertible mark"
5258
  msgstr ""
5259
 
5260
+ #: src/Functions/MSFunctions.php:95
5261
  msgid "Barbadian dollar"
5262
  msgstr ""
5263
 
5264
+ #: src/Functions/MSFunctions.php:96
5265
  msgid "Bangladeshi taka"
5266
  msgstr ""
5267
 
5268
+ #: src/Functions/MSFunctions.php:97
5269
  msgid "Bulgarian lev"
5270
  msgstr ""
5271
 
5272
+ #: src/Functions/MSFunctions.php:98
5273
  msgid "Bahraini dinar"
5274
  msgstr ""
5275
 
5276
+ #: src/Functions/MSFunctions.php:99
5277
  msgid "Burundian franc"
5278
  msgstr ""
5279
 
5280
+ #: src/Functions/MSFunctions.php:100
5281
  msgid "Bermudian dollar"
5282
  msgstr ""
5283
 
5284
+ #: src/Functions/MSFunctions.php:101
5285
  msgid "Brunei dollar"
5286
  msgstr ""
5287
 
5288
+ #: src/Functions/MSFunctions.php:102
5289
  msgid "Bolivian boliviano"
5290
  msgstr ""
5291
 
5292
+ #: src/Functions/MSFunctions.php:103
5293
  msgid "Brazilian real"
5294
  msgstr ""
5295
 
5296
+ #: src/Functions/MSFunctions.php:104
5297
  msgid "Bahamian dollar"
5298
  msgstr ""
5299
 
5300
+ #: src/Functions/MSFunctions.php:105
5301
  msgid "Bitcoin"
5302
  msgstr ""
5303
 
5304
+ #: src/Functions/MSFunctions.php:106
5305
  msgid "Bhutanese ngultrum"
5306
  msgstr ""
5307
 
5308
+ #: src/Functions/MSFunctions.php:107
5309
  msgid "Botswana pula"
5310
  msgstr ""
5311
 
5312
+ #: src/Functions/MSFunctions.php:108
5313
  msgid "Belarusian ruble (old)"
5314
  msgstr ""
5315
 
5316
+ #: src/Functions/MSFunctions.php:109
5317
  msgid "Belarusian ruble"
5318
  msgstr ""
5319
 
5320
+ #: src/Functions/MSFunctions.php:110
5321
  msgid "Belize dollar"
5322
  msgstr ""
5323
 
5324
+ #: src/Functions/MSFunctions.php:111
5325
  msgid "Canadian dollar"
5326
  msgstr ""
5327
 
5328
+ #: src/Functions/MSFunctions.php:112
5329
  msgid "Congolese franc"
5330
  msgstr ""
5331
 
5332
+ #: src/Functions/MSFunctions.php:113
5333
  msgid "Swiss franc"
5334
  msgstr ""
5335
 
5336
+ #: src/Functions/MSFunctions.php:114
5337
  msgid "Chilean peso"
5338
  msgstr ""
5339
 
5340
+ #: src/Functions/MSFunctions.php:115
5341
  msgid "Chinese yuan"
5342
  msgstr ""
5343
 
5344
+ #: src/Functions/MSFunctions.php:116
5345
  msgid "Colombian peso"
5346
  msgstr ""
5347
 
5348
+ #: src/Functions/MSFunctions.php:117
5349
  msgid "Costa Rican col&oacute;n"
5350
  msgstr ""
5351
 
5352
+ #: src/Functions/MSFunctions.php:118
5353
  msgid "Cuban convertible peso"
5354
  msgstr ""
5355
 
5356
+ #: src/Functions/MSFunctions.php:119
5357
  msgid "Cuban peso"
5358
  msgstr ""
5359
 
5360
+ #: src/Functions/MSFunctions.php:120
5361
  msgid "Cape Verdean escudo"
5362
  msgstr ""
5363
 
5364
+ #: src/Functions/MSFunctions.php:121
5365
  msgid "Czech koruna"
5366
  msgstr ""
5367
 
5368
+ #: src/Functions/MSFunctions.php:122
5369
  msgid "Djiboutian franc"
5370
  msgstr ""
5371
 
5372
+ #: src/Functions/MSFunctions.php:123
5373
  msgid "Danish krone"
5374
  msgstr ""
5375
 
5376
+ #: src/Functions/MSFunctions.php:124
5377
  msgid "Dominican peso"
5378
  msgstr ""
5379
 
5380
+ #: src/Functions/MSFunctions.php:125
5381
  msgid "Algerian dinar"
5382
  msgstr ""
5383
 
5384
+ #: src/Functions/MSFunctions.php:126
5385
  msgid "Egyptian pound"
5386
  msgstr ""
5387
 
5388
+ #: src/Functions/MSFunctions.php:127
5389
  msgid "Eritrean nakfa"
5390
  msgstr ""
5391
 
5392
+ #: src/Functions/MSFunctions.php:128
5393
  msgid "Ethiopian birr"
5394
  msgstr ""
5395
 
5396
+ #: src/Functions/MSFunctions.php:129
5397
  msgid "Fijian dollar"
5398
  msgstr ""
5399
 
5400
+ #: src/Functions/MSFunctions.php:130
5401
  msgid "Falkland Islands pound"
5402
  msgstr ""
5403
 
5404
+ #: src/Functions/MSFunctions.php:131
5405
  msgid "Georgian lari"
5406
  msgstr ""
5407
 
5408
+ #: src/Functions/MSFunctions.php:132
5409
  msgid "Guernsey pound"
5410
  msgstr ""
5411
 
5412
+ #: src/Functions/MSFunctions.php:133
5413
  msgid "Ghana cedi"
5414
  msgstr ""
5415
 
5416
+ #: src/Functions/MSFunctions.php:134
5417
  msgid "Gibraltar pound"
5418
  msgstr ""
5419
 
5420
+ #: src/Functions/MSFunctions.php:135
5421
  msgid "Gambian dalasi"
5422
  msgstr ""
5423
 
5424
+ #: src/Functions/MSFunctions.php:136
5425
  msgid "Guinean franc"
5426
  msgstr ""
5427
 
5428
+ #: src/Functions/MSFunctions.php:137
5429
  msgid "Guatemalan quetzal"
5430
  msgstr ""
5431
 
5432
+ #: src/Functions/MSFunctions.php:138
5433
  msgid "Guyanese dollar"
5434
  msgstr ""
5435
 
5436
+ #: src/Functions/MSFunctions.php:139
5437
  msgid "Hong Kong dollar"
5438
  msgstr ""
5439
 
5440
+ #: src/Functions/MSFunctions.php:140
5441
  msgid "Honduran lempira"
5442
  msgstr ""
5443
 
5444
+ #: src/Functions/MSFunctions.php:141
5445
  msgid "Croatian kuna"
5446
  msgstr ""
5447
 
5448
+ #: src/Functions/MSFunctions.php:142
5449
  msgid "Haitian gourde"
5450
  msgstr ""
5451
 
5452
+ #: src/Functions/MSFunctions.php:143
5453
  msgid "Hungarian forint"
5454
  msgstr ""
5455
 
5456
+ #: src/Functions/MSFunctions.php:144
5457
  msgid "Indonesian rupiah"
5458
  msgstr ""
5459
 
5460
+ #: src/Functions/MSFunctions.php:145
5461
  msgid "Israeli new shekel"
5462
  msgstr ""
5463
 
5464
+ #: src/Functions/MSFunctions.php:146
5465
  msgid "Manx pound"
5466
  msgstr ""
5467
 
5468
+ #: src/Functions/MSFunctions.php:147
5469
  msgid "Indian rupee"
5470
  msgstr ""
5471
 
5472
+ #: src/Functions/MSFunctions.php:148
5473
  msgid "Iraqi dinar"
5474
  msgstr ""
5475
 
5476
+ #: src/Functions/MSFunctions.php:149
5477
  msgid "Iranian rial"
5478
  msgstr ""
5479
 
5480
+ #: src/Functions/MSFunctions.php:150
5481
  msgid "Iranian toman"
5482
  msgstr ""
5483
 
5484
+ #: src/Functions/MSFunctions.php:151
5485
  msgid "Icelandic kr&oacute;na"
5486
  msgstr ""
5487
 
5488
+ #: src/Functions/MSFunctions.php:152
5489
  msgid "Jersey pound"
5490
  msgstr ""
5491
 
5492
+ #: src/Functions/MSFunctions.php:153
5493
  msgid "Jamaican dollar"
5494
  msgstr ""
5495
 
5496
+ #: src/Functions/MSFunctions.php:154
5497
  msgid "Jordanian dinar"
5498
  msgstr ""
5499
 
5500
+ #: src/Functions/MSFunctions.php:155
5501
  msgid "Japanese yen"
5502
  msgstr ""
5503
 
5504
+ #: src/Functions/MSFunctions.php:156
5505
  msgid "Kenyan shilling"
5506
  msgstr ""
5507
 
5508
+ #: src/Functions/MSFunctions.php:157
5509
  msgid "Kyrgyzstani som"
5510
  msgstr ""
5511
 
5512
+ #: src/Functions/MSFunctions.php:158
5513
  msgid "Cambodian riel"
5514
  msgstr ""
5515
 
5516
+ #: src/Functions/MSFunctions.php:159
5517
  msgid "Comorian franc"
5518
  msgstr ""
5519
 
5520
+ #: src/Functions/MSFunctions.php:160
5521
  msgid "North Korean won"
5522
  msgstr ""
5523
 
5524
+ #: src/Functions/MSFunctions.php:161
5525
  msgid "South Korean won"
5526
  msgstr ""
5527
 
5528
+ #: src/Functions/MSFunctions.php:162
5529
  msgid "Kuwaiti dinar"
5530
  msgstr ""
5531
 
5532
+ #: src/Functions/MSFunctions.php:163
5533
  msgid "Cayman Islands dollar"
5534
  msgstr ""
5535
 
5536
+ #: src/Functions/MSFunctions.php:164
5537
  msgid "Kazakhstani tenge"
5538
  msgstr ""
5539
 
5540
+ #: src/Functions/MSFunctions.php:165
5541
  msgid "Lao kip"
5542
  msgstr ""
5543
 
5544
+ #: src/Functions/MSFunctions.php:166
5545
  msgid "Lebanese pound"
5546
  msgstr ""
5547
 
5548
+ #: src/Functions/MSFunctions.php:167
5549
  msgid "Sri Lankan rupee"
5550
  msgstr ""
5551
 
5552
+ #: src/Functions/MSFunctions.php:168
5553
  msgid "Liberian dollar"
5554
  msgstr ""
5555
 
5556
+ #: src/Functions/MSFunctions.php:169
5557
  msgid "Lesotho loti"
5558
  msgstr ""
5559
 
5560
+ #: src/Functions/MSFunctions.php:170
5561
  msgid "Libyan dinar"
5562
  msgstr ""
5563
 
5564
+ #: src/Functions/MSFunctions.php:171
5565
  msgid "Moroccan dirham"
5566
  msgstr ""
5567
 
5568
+ #: src/Functions/MSFunctions.php:172
5569
  msgid "Moldovan leu"
5570
  msgstr ""
5571
 
5572
+ #: src/Functions/MSFunctions.php:173
5573
  msgid "Malagasy ariary"
5574
  msgstr ""
5575
 
5576
+ #: src/Functions/MSFunctions.php:174
5577
  msgid "Macedonian denar"
5578
  msgstr ""
5579
 
5580
+ #: src/Functions/MSFunctions.php:175
5581
  msgid "Burmese kyat"
5582
  msgstr ""
5583
 
5584
+ #: src/Functions/MSFunctions.php:176
5585
  msgid "Mongolian t&ouml;gr&ouml;g"
5586
  msgstr ""
5587
 
5588
+ #: src/Functions/MSFunctions.php:177
5589
  msgid "Macanese pataca"
5590
  msgstr ""
5591
 
5592
+ #: src/Functions/MSFunctions.php:178
5593
  msgid "Mauritanian ouguiya"
5594
  msgstr ""
5595
 
5596
+ #: src/Functions/MSFunctions.php:179
5597
  msgid "Mauritian rupee"
5598
  msgstr ""
5599
 
5600
+ #: src/Functions/MSFunctions.php:180
5601
  msgid "Maldivian rufiyaa"
5602
  msgstr ""
5603
 
5604
+ #: src/Functions/MSFunctions.php:181
5605
  msgid "Malawian kwacha"
5606
  msgstr ""
5607
 
5608
+ #: src/Functions/MSFunctions.php:182
5609
  msgid "Mexican peso"
5610
  msgstr ""
5611
 
5612
+ #: src/Functions/MSFunctions.php:183
5613
  msgid "Malaysian ringgit"
5614
  msgstr ""
5615
 
5616
+ #: src/Functions/MSFunctions.php:184
5617
  msgid "Mozambican metical"
5618
  msgstr ""
5619
 
5620
+ #: src/Functions/MSFunctions.php:185
5621
  msgid "Namibian dollar"
5622
  msgstr ""
5623
 
5624
+ #: src/Functions/MSFunctions.php:186
5625
  msgid "Nigerian naira"
5626
  msgstr ""
5627
 
5628
+ #: src/Functions/MSFunctions.php:187
5629
  msgid "Nicaraguan c&oacute;rdoba"
5630
  msgstr ""
5631
 
5632
+ #: src/Functions/MSFunctions.php:188
5633
  msgid "Norwegian krone"
5634
  msgstr ""
5635
 
5636
+ #: src/Functions/MSFunctions.php:189
5637
  msgid "Nepalese rupee"
5638
  msgstr ""
5639
 
5640
+ #: src/Functions/MSFunctions.php:190
5641
  msgid "New Zealand dollar"
5642
  msgstr ""
5643
 
5644
+ #: src/Functions/MSFunctions.php:191
5645
  msgid "Omani rial"
5646
  msgstr ""
5647
 
5648
+ #: src/Functions/MSFunctions.php:192
5649
  msgid "Panamanian balboa"
5650
  msgstr ""
5651
 
5652
+ #: src/Functions/MSFunctions.php:193
5653
  msgid "Sol"
5654
  msgstr ""
5655
 
5656
+ #: src/Functions/MSFunctions.php:194
5657
  msgid "Papua New Guinean kina"
5658
  msgstr ""
5659
 
5660
+ #: src/Functions/MSFunctions.php:195
5661
  msgid "Philippine peso"
5662
  msgstr ""
5663
 
5664
+ #: src/Functions/MSFunctions.php:196
5665
  msgid "Pakistani rupee"
5666
  msgstr ""
5667
 
5668
+ #: src/Functions/MSFunctions.php:197
5669
  msgid "Polish z&#x142;oty"
5670
  msgstr ""
5671
 
5672
+ #: src/Functions/MSFunctions.php:198
5673
  msgid "Transnistrian ruble"
5674
  msgstr ""
5675
 
5676
+ #: src/Functions/MSFunctions.php:199
5677
  msgid "Paraguayan guaran&iacute;"
5678
  msgstr ""
5679
 
5680
+ #: src/Functions/MSFunctions.php:200
5681
  msgid "Qatari riyal"
5682
  msgstr ""
5683
 
5684
+ #: src/Functions/MSFunctions.php:201
5685
  msgid "Romanian leu"
5686
  msgstr ""
5687
 
5688
+ #: src/Functions/MSFunctions.php:202
5689
  msgid "Serbian dinar"
5690
  msgstr ""
5691
 
5692
+ #: src/Functions/MSFunctions.php:203
5693
  msgid "Russian ruble"
5694
  msgstr ""
5695
 
5696
+ #: src/Functions/MSFunctions.php:204
5697
  msgid "Rwandan franc"
5698
  msgstr ""
5699
 
5700
+ #: src/Functions/MSFunctions.php:205
5701
  msgid "Saudi riyal"
5702
  msgstr ""
5703
 
5704
+ #: src/Functions/MSFunctions.php:206
5705
  msgid "Solomon Islands dollar"
5706
  msgstr ""
5707
 
5708
+ #: src/Functions/MSFunctions.php:207
5709
  msgid "Seychellois rupee"
5710
  msgstr ""
5711
 
5712
+ #: src/Functions/MSFunctions.php:208
5713
  msgid "Sudanese pound"
5714
  msgstr ""
5715
 
5716
+ #: src/Functions/MSFunctions.php:209
5717
  msgid "Swedish krona"
5718
  msgstr ""
5719
 
5720
+ #: src/Functions/MSFunctions.php:210
5721
  msgid "Singapore dollar"
5722
  msgstr ""
5723
 
5724
+ #: src/Functions/MSFunctions.php:211
5725
  msgid "Saint Helena pound"
5726
  msgstr ""
5727
 
5728
+ #: src/Functions/MSFunctions.php:212
5729
  msgid "Sierra Leonean leone"
5730
  msgstr ""
5731
 
5732
+ #: src/Functions/MSFunctions.php:213
5733
  msgid "Somali shilling"
5734
  msgstr ""
5735
 
5736
+ #: src/Functions/MSFunctions.php:214
5737
  msgid "Surinamese dollar"
5738
  msgstr ""
5739
 
5740
+ #: src/Functions/MSFunctions.php:215
5741
  msgid "South Sudanese pound"
5742
  msgstr ""
5743
 
5744
+ #: src/Functions/MSFunctions.php:216
5745
  msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe dobra"
5746
  msgstr ""
5747
 
5748
+ #: src/Functions/MSFunctions.php:217
5749
  msgid "Syrian pound"
5750
  msgstr ""
5751
 
5752
+ #: src/Functions/MSFunctions.php:218
5753
  msgid "Swazi lilangeni"
5754
  msgstr ""
5755
 
5756
+ #: src/Functions/MSFunctions.php:219
5757
  msgid "Thai baht"
5758
  msgstr ""
5759
 
5760
+ #: src/Functions/MSFunctions.php:220
5761
  msgid "Tajikistani somoni"
5762
  msgstr ""
5763
 
5764
+ #: src/Functions/MSFunctions.php:221
5765
  msgid "Turkmenistan manat"
5766
  msgstr ""
5767
 
5768
+ #: src/Functions/MSFunctions.php:222
5769
  msgid "Tunisian dinar"
5770
  msgstr ""
5771
 
5772
+ #: src/Functions/MSFunctions.php:223
5773
  msgid "Tongan pa&#x2bb;anga"
5774
  msgstr ""
5775
 
5776
+ #: src/Functions/MSFunctions.php:224
5777
  msgid "Turkish lira"
5778
  msgstr ""
5779
 
5780
+ #: src/Functions/MSFunctions.php:225
5781
  msgid "Trinidad and Tobago dollar"
5782
  msgstr ""
5783
 
5784
+ #: src/Functions/MSFunctions.php:226
5785
  msgid "New Taiwan dollar"
5786
  msgstr ""
5787
 
5788
+ #: src/Functions/MSFunctions.php:227
5789
  msgid "Tanzanian shilling"
5790
  msgstr ""
5791
 
5792
+ #: src/Functions/MSFunctions.php:228
5793
  msgid "Ukrainian hryvnia"
5794
  msgstr ""
5795
 
5796
+ #: src/Functions/MSFunctions.php:229
5797
  msgid "Ugandan shilling"
5798
  msgstr ""
5799
 
5800
+ #: src/Functions/MSFunctions.php:230
5801
  msgid "Uruguayan peso"
5802
  msgstr ""
5803
 
5804
+ #: src/Functions/MSFunctions.php:231
5805
  msgid "Uzbekistani som"
5806
  msgstr ""
5807
 
5808
+ #: src/Functions/MSFunctions.php:232
5809
  msgid "Venezuelan bol&iacute;var"
5810
  msgstr ""
5811
 
5812
+ #: src/Functions/MSFunctions.php:233
5813
  msgid "Bol&iacute;var soberano"
5814
  msgstr ""
5815
 
5816
+ #: src/Functions/MSFunctions.php:234
5817
  msgid "Vietnamese &#x111;&#x1ed3;ng"
5818
  msgstr ""
5819
 
5820
+ #: src/Functions/MSFunctions.php:235
5821
  msgid "Vanuatu vatu"
5822
  msgstr ""
5823
 
5824
+ #: src/Functions/MSFunctions.php:236
5825
  msgid "Samoan t&#x101;l&#x101;"
5826
  msgstr ""
5827
 
5828
+ #: src/Functions/MSFunctions.php:237
5829
  msgid "Central African CFA franc"
5830
  msgstr ""
5831
 
5832
+ #: src/Functions/MSFunctions.php:238
5833
  msgid "East Caribbean dollar"
5834
  msgstr ""
5835
 
5836
+ #: src/Functions/MSFunctions.php:239
5837
  msgid "West African CFA franc"
5838
  msgstr ""
5839
 
5840
+ #: src/Functions/MSFunctions.php:240
5841
  msgid "CFP franc"
5842
  msgstr ""
5843
 
5844
+ #: src/Functions/MSFunctions.php:241
5845
  msgid "Yemeni rial"
5846
  msgstr ""
5847
 
5848
+ #: src/Functions/MSFunctions.php:242
5849
  msgid "South African rand"
5850
  msgstr ""
5851
 
5852
+ #: src/Functions/MSFunctions.php:243
5853
  msgid "Zambian kwacha"
5854
  msgstr ""
5855
 
14444
  msgstr ""
14445
 
14446
  #: src/Membership/Emails/EmailDataTrait.php:10
14447
+ #: src/Membership/Emails/EmailDataTrait.php:46
14448
  msgid "Email address of the customer."
14449
  msgstr ""
14450
 
14451
  #: src/Membership/Emails/EmailDataTrait.php:11
14452
+ #: src/Membership/Emails/EmailDataTrait.php:47
14453
  msgid "First name of the customer."
14454
  msgstr ""
14455
 
14456
  #: src/Membership/Emails/EmailDataTrait.php:12
14457
+ #: src/Membership/Emails/EmailDataTrait.php:48
14458
  msgid "Last name of the customer."
14459
  msgstr ""
14460
 
14503
  msgstr ""
14504
 
14505
  #: src/Membership/Emails/EmailDataTrait.php:24
14506
+ msgid "The purchase note of ordered plan."
14507
+ msgstr ""
14508
+
14509
+ #: src/Membership/Emails/EmailDataTrait.php:25
14510
+ #: src/Membership/Emails/EmailDataTrait.php:55
14511
  msgid "Name or title of this website."
14512
  msgstr ""
14513
 
14514
+ #: src/Membership/Emails/EmailDataTrait.php:27
14515
  msgid "Your business name as defined in %sSettings%s."
14516
  msgstr ""
14517
 
14518
+ #: src/Membership/Emails/EmailDataTrait.php:31
14519
  msgid "Your business address as defined in %sSettings%s."
14520
  msgstr ""
14521
 
14522
+ #: src/Membership/Emails/EmailDataTrait.php:35
14523
  msgid "Your business Tax ID as defined in %sSettings%s."
14524
  msgstr ""
14525
 
14526
+ #: src/Membership/Emails/EmailDataTrait.php:49
14527
  msgid "Subscription ID."
14528
  msgstr ""
14529
 
14530
+ #: src/Membership/Emails/EmailDataTrait.php:50
14531
  msgid "URL to view subscription."
14532
  msgstr ""
14533
 
14534
+ #: src/Membership/Emails/EmailDataTrait.php:51
14535
  msgid "URL to re-subscribe to the subscription plan."
14536
  msgstr ""
14537
 
14538
+ #: src/Membership/Emails/EmailDataTrait.php:52
14539
  msgid "Name or title of subscription plan."
14540
  msgstr ""
14541
 
14542
+ #: src/Membership/Emails/EmailDataTrait.php:53
14543
  msgid "The recurring amount of the subscription."
14544
  msgstr ""
14545
 
14546
+ #: src/Membership/Emails/EmailDataTrait.php:54
14547
  msgid "The expiration or renewal date for the subscription."
14548
  msgstr ""
14549
 
14556
  msgstr ""
14557
 
14558
  #: src/Membership/Models/Order/OrderEntity.php:240
14559
+ #: src/Membership/Models/Subscription/SubscriptionEntity.php:472
14560
  msgid "payment method"
14561
  msgstr ""
14562
 
14627
  msgid "One-time purchase"
14628
  msgstr ""
14629
 
14630
+ #: src/Membership/Models/Subscription/SubscriptionEntity.php:475
14631
  msgid "Subscription changed from %s to %s by %s"
14632
  msgstr ""
14633
 
14744
  msgid "Pay as you go pricing: 2%% per-transaction fee + Stripe fees. Remove the 2%% fee by %supgrading to premium%s."
14745
  msgstr ""
14746
 
14747
+ #: src/Membership/PaymentMethods/Stripe/PaymentHelpers.php:54
14748
  msgid "Setup Fee"
14749
  msgstr ""
14750
 
14873
  msgid "Credit card"
14874
  msgstr ""
14875
 
14876
+ #: src/Membership/PaymentMethods/Stripe/Stripe.php:723
14877
  msgid "No payment method found. Please try again."
14878
  msgstr ""
14879
 
14880
+ #: src/Membership/PaymentMethods/Stripe/Stripe.php:878
14881
  msgid "Refund request is pending"
14882
  msgstr ""
14883
 
14884
+ #: src/Membership/PaymentMethods/Stripe/Stripe.php:881
14885
  msgid "Refund request failed"
14886
  msgstr ""
14887
 
14888
+ #: src/Membership/PaymentMethods/Stripe/Stripe.php:884
14889
  msgid "Refund request failed. Status: %s"
14890
  msgstr ""
14891
 
15358
  msgid "Item Description"
15359
  msgstr ""
15360
 
15361
+ #: src/ShortcodeParser/MyAccount/view-order.tmpl.php:70
15362
  msgid "Order Type"
15363
  msgstr ""
15364
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: membership, ecommerce, user registration, user profile, stripe, paypal, lo
5
  Requires at least: 5.3
6
  Requires PHP: 7.1.8
7
  Tested up to: 6.0
8
- Stable tag: 4.1.2
9
  License: GPLv2 or later
10
 
11
  Paid membership plugin: accept payments, sell subscriptions, restrict content, user registration, frontend login form, user profile & member directory.
@@ -69,6 +69,8 @@ Never start from scratch again. ProfilePress comes with several beautiful, custo
69
 
70
  ProfilePress gives you fine-grained control over what content your users can see based on your [protection rules](https://profilepress.com/article/adding-content-protection-rules/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) and [shortcodes](https://profilepress.com/article/wordpress-content-restriction-shortcodes/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion). You can restrict content including pages, child pages, posts, custom post types, categories, tags and custom taxonomies based on their membership plans, user roles, usernames, and logged-in status.
71
 
 
 
72
  = Detailed eCommerce Reports =
73
 
74
  We provide a complete reports section where you can Keep track of your earnings, refunds, sales, and more. You can view reports for any period or drill down to specific membership plans.
@@ -144,6 +146,18 @@ No. You can create and manage your forms, user profiles, and member directories
144
 
145
  == Changelog ==
146
 
 
 
 
 
 
 
 
 
 
 
 
 
147
  = 4.1.2 =
148
  * Added "ppress_disable_google_fonts" filter to disable google fonts globally.
149
  * Added Oxygen builder compatibility to Admin Bar Control.
@@ -151,20 +165,4 @@ No. You can create and manage your forms, user profiles, and member directories
151
  * Fixed bug where content protection failed to identify some posts/pages.
152
  * Fixed date related output and queries.
153
 
154
- = 4.1.1 =
155
- * Fixed bug with Stripe webhook 404ing.
156
-
157
- = 4.1.0 =
158
- * Pro: [PayPal Checkout addon](https://profilepress.com/addons/paypal/?ref=changelog) is live.
159
- * Pro: Added &mdash as default select options for [profile custom fields](https://profilepress.com/addons/custom-fields/?ref=changelog).
160
- * Added order refund support from single order admin page.
161
- * Added payment method icons to checkout page.
162
- * Added filter to remove billing custom fields in default WP user profile
163
- * Added filter to disable D&D custom html sanitization
164
- * Fixed bug with free trial subscriptions getting expired early.
165
- * Fixed: Duplicate entry '0' for key 'user_id' when recalculating stat.
166
- * Fixed jQuery deprecated syntax errors.
167
- * Fixed fatal error caused when loading billing address fields in builder.
168
- * Fixed contextual state display bugs.
169
-
170
  See the [changelog file](https://plugins.svn.wordpress.org/wp-user-avatar/trunk/changelog.txt) for full change log information.
5
  Requires at least: 5.3
6
  Requires PHP: 7.1.8
7
  Tested up to: 6.0
8
+ Stable tag: 4.1.3
9
  License: GPLv2 or later
10
 
11
  Paid membership plugin: accept payments, sell subscriptions, restrict content, user registration, frontend login form, user profile & member directory.
69
 
70
  ProfilePress gives you fine-grained control over what content your users can see based on your [protection rules](https://profilepress.com/article/adding-content-protection-rules/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion) and [shortcodes](https://profilepress.com/article/wordpress-content-restriction-shortcodes/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion). You can restrict content including pages, child pages, posts, custom post types, categories, tags and custom taxonomies based on their membership plans, user roles, usernames, and logged-in status.
71
 
72
+ You can also control the visibility of [navigation menus](https://profilepress.com/article/wordpress-navigation-menu-restriction/) and widgets, modules & contents in [Elementor](https://profilepress.com/article/restrict-elementor-sections-widgets/) & [Beaver Builder](https://profilepress.com/article/restrict-content-beaver-builder-visibility/).
73
+
74
  = Detailed eCommerce Reports =
75
 
76
  We provide a complete reports section where you can Keep track of your earnings, refunds, sales, and more. You can view reports for any period or drill down to specific membership plans.
146
 
147
  == Changelog ==
148
 
149
+ = 4.1.3 =
150
+ * Added [navigation menu protection](https://profilepress.com/article/wordpress-navigation-menu-restriction/).
151
+ * Added [Elementor content restriction](https://profilepress.com/article/restrict-elementor-sections-widgets/).
152
+ * Added [Beaver Builder content restriction](https://profilepress.com/article/restrict-content-beaver-builder-visibility/).
153
+ * Added support for discounting subscription first payment.
154
+ * Added support for [purchase note](https://profilepress.com/article/plan-purchase-note/?ref=changelog).
155
+ * Added support for [checking active subscription via PHP](https://profilepress.com/article/php-check-user-has-active-subscription/).
156
+ * Fixed bug where new order creation with missing payment method failed.
157
+ * Fixed couple of date/time related query bugs.
158
+ * Fixed bug where cancelled one-time subscription was still active.
159
+ * Fixed bug where non-completed order email receipt can be sent.
160
+
161
  = 4.1.2 =
162
  * Added "ppress_disable_google_fonts" filter to disable google fonts globally.
163
  * Added Oxygen builder compatibility to Admin Bar Control.
165
  * Fixed bug where content protection failed to identify some posts/pages.
166
  * Fixed date related output and queries.
167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  See the [changelog file](https://plugins.svn.wordpress.org/wp-user-avatar/trunk/changelog.txt) for full change log information.
src/Admin/SettingsPages/Membership/CouponsPage/CouponWPListTable.php CHANGED
@@ -4,6 +4,7 @@ namespace ProfilePress\Core\Admin\SettingsPages\Membership\CouponsPage;
4
 
5
  use ProfilePress\Core\Membership\Models\Coupon\CouponEntity;
6
  use ProfilePress\Core\Membership\Models\Coupon\CouponFactory;
 
7
  use ProfilePress\Core\Membership\Models\Coupon\CouponUnit;
8
  use ProfilePress\Core\Membership\Repositories\CouponRepository;
9
 
@@ -78,6 +79,10 @@ class CouponWPListTable extends \WP_List_Table
78
 
79
  $a = '<a href="' . $edit_link . '">' . sanitize_text_field($item->code) . '</a>';
80
 
 
 
 
 
81
  return '<strong>' . $a . '</strong>' . $this->row_actions($actions);
82
  }
83
 
4
 
5
  use ProfilePress\Core\Membership\Models\Coupon\CouponEntity;
6
  use ProfilePress\Core\Membership\Models\Coupon\CouponFactory;
7
+ use ProfilePress\Core\Membership\Models\Coupon\CouponType;
8
  use ProfilePress\Core\Membership\Models\Coupon\CouponUnit;
9
  use ProfilePress\Core\Membership\Repositories\CouponRepository;
10
 
79
 
80
  $a = '<a href="' . $edit_link . '">' . sanitize_text_field($item->code) . '</a>';
81
 
82
+ $coupon_type = $item->is_recurring() ? esc_html__('Recurring', 'wp-user-avatar') : esc_html__('One-time', 'wp-user-avatar');
83
+
84
+ $a .= '&nbsp;<span class="post-state"> — ' . $coupon_type . '</span>';
85
+
86
  return '<strong>' . $a . '</strong>' . $this->row_actions($actions);
87
  }
88
 
src/Admin/SettingsPages/Membership/CouponsPage/SettingsPage.php CHANGED
@@ -46,6 +46,7 @@ class SettingsPage extends AbstractSettingsPage
46
  $required_fields = [
47
  'amount' => esc_html__('Discount', 'wp-user-avatar'),
48
  'unit' => esc_html__('Discount', 'wp-user-avatar'),
 
49
  'coupon_application' => esc_html__('Coupon Application', 'wp-user-avatar')
50
  ];
51
 
@@ -62,6 +63,7 @@ class SettingsPage extends AbstractSettingsPage
62
  $coupon->description = sanitize_textarea_field($_POST['description']);
63
  $coupon->amount = sanitize_text_field($_POST['amount']);
64
  $coupon->unit = sanitize_text_field($_POST['unit']);
 
65
  $coupon->coupon_application = sanitize_text_field($_POST['coupon_application']);
66
  $coupon->plan_ids = ppress_clean(ppressPOST_var('plan_ids', [], true), 'absint');
67
  $coupon->start_date = sanitize_text_field($_POST['start_date']);
46
  $required_fields = [
47
  'amount' => esc_html__('Discount', 'wp-user-avatar'),
48
  'unit' => esc_html__('Discount', 'wp-user-avatar'),
49
+ 'coupon_type' => esc_html__('Coupon Type', 'wp-user-avatar'),
50
  'coupon_application' => esc_html__('Coupon Application', 'wp-user-avatar')
51
  ];
52
 
63
  $coupon->description = sanitize_textarea_field($_POST['description']);
64
  $coupon->amount = sanitize_text_field($_POST['amount']);
65
  $coupon->unit = sanitize_text_field($_POST['unit']);
66
+ $coupon->coupon_type = sanitize_text_field($_POST['coupon_type']);
67
  $coupon->coupon_application = sanitize_text_field($_POST['coupon_application']);
68
  $coupon->plan_ids = ppress_clean(ppressPOST_var('plan_ids', [], true), 'absint');
69
  $coupon->start_date = sanitize_text_field($_POST['start_date']);
src/Admin/SettingsPages/Membership/OrdersPage/OrderWPListTable.php CHANGED
@@ -301,7 +301,10 @@ class OrderWPListTable extends \WP_List_Table
301
  $order_ids = array_map('absint', $_GET['order_id']);
302
 
303
  foreach ($order_ids as $order_id) {
304
- NewOrderReceipt::init()->dispatch_email(OrderFactory::fromId($order_id));
 
 
 
305
  }
306
  }
307
 
301
  $order_ids = array_map('absint', $_GET['order_id']);
302
 
303
  foreach ($order_ids as $order_id) {
304
+ $order = OrderFactory::fromId($order_id);
305
+ if ($order->is_completed()) {
306
+ NewOrderReceipt::init()->dispatch_email($order);
307
+ }
308
  }
309
  }
310
 
src/Admin/SettingsPages/Membership/PlansPage/SettingsPage.php CHANGED
@@ -101,6 +101,7 @@ class SettingsPage extends AbstractSettingsPage
101
  $plan = ppress_get_plan(absint(ppressGET_var('id')));
102
  $plan->name = sanitize_text_field($_POST['name']);
103
  $plan->description = stripslashes(wp_kses_post($_POST['description']));
 
104
  $plan->price = ppress_sanitize_amount($_POST['price']);
105
  $plan->billing_frequency = sanitize_text_field($_POST['billing_frequency']);
106
  $plan->subscription_length = sanitize_text_field($_POST['subscription_length']);
101
  $plan = ppress_get_plan(absint(ppressGET_var('id')));
102
  $plan->name = sanitize_text_field($_POST['name']);
103
  $plan->description = stripslashes(wp_kses_post($_POST['description']));
104
+ $plan->order_note = stripslashes(wp_kses_post($_POST['order_note']));
105
  $plan->price = ppress_sanitize_amount($_POST['price']);
106
  $plan->billing_frequency = sanitize_text_field($_POST['billing_frequency']);
107
  $plan->subscription_length = sanitize_text_field($_POST['subscription_length']);
src/Admin/SettingsPages/Membership/views/add-edit-coupon.php CHANGED
@@ -34,6 +34,16 @@ $coupon_details = [
34
  'type' => 'discount',
35
  'label' => esc_html__('Discount', 'wp-user-avatar'),
36
  ],
 
 
 
 
 
 
 
 
 
 
37
  [
38
  'id' => 'coupon_application',
39
  'type' => 'radio',
@@ -92,8 +102,9 @@ $redemption_settings = [
92
 
93
  $coupon_data = CouponFactory::fromId(absint(ppressGET_var('id')));
94
 
95
- if (ppressGET_var('ppress_coupon_action') =='edit' && ! $coupon_data->exists()) {
96
  ppress_content_http_redirect(PPRESS_MEMBERSHIP_COUPONS_SETTINGS_PAGE);
 
97
  return;
98
  }
99
 
34
  'type' => 'discount',
35
  'label' => esc_html__('Discount', 'wp-user-avatar'),
36
  ],
37
+ [
38
+ 'id' => 'coupon_type',
39
+ 'type' => 'select',
40
+ 'label' => esc_html__('Coupon Type', 'wp-user-avatar'),
41
+ 'options' => [
42
+ 'recurring' => esc_html__('Recurring', 'wp-user-avatar'),
43
+ 'one_time' => esc_html__('One-time', 'wp-user-avatar')
44
+ ],
45
+ 'description' => esc_html__('Selecting "One-time" applies the coupon discount only to the first payment while "Recurring" applies the discount to all payments.', 'wp-user-avatar')
46
+ ],
47
  [
48
  'id' => 'coupon_application',
49
  'type' => 'radio',
102
 
103
  $coupon_data = CouponFactory::fromId(absint(ppressGET_var('id')));
104
 
105
+ if (ppressGET_var('ppress_coupon_action') == 'edit' && ! $coupon_data->exists()) {
106
  ppress_content_http_redirect(PPRESS_MEMBERSHIP_COUPONS_SETTINGS_PAGE);
107
+
108
  return;
109
  }
110
 
src/Admin/SettingsPages/Membership/views/add-edit-plan.php CHANGED
@@ -16,6 +16,12 @@ $plan_details = [
16
  'label' => esc_html__('Plan Description', 'wp-user-avatar'),
17
  'description' => esc_html__('A description of this plan. This will be displayed on the checkout page.', 'wp-user-avatar')
18
  ],
 
 
 
 
 
 
19
  [
20
  'id' => 'price',
21
  'type' => 'price',
16
  'label' => esc_html__('Plan Description', 'wp-user-avatar'),
17
  'description' => esc_html__('A description of this plan. This will be displayed on the checkout page.', 'wp-user-avatar')
18
  ],
19
+ [
20
+ 'id' => 'order_note',
21
+ 'type' => 'textarea',
22
+ 'label' => esc_html__('Purchase Note', 'wp-user-avatar'),
23
+ 'description' => esc_html__('Enter an optional note or special instructions to send the customer after purchase. These will be added to the order receipt.', 'wp-user-avatar')
24
+ ],
25
  [
26
  'id' => 'price',
27
  'type' => 'price',
src/ContentProtection/CapabilityCheck.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace ProfilePress\Core\ContentProtection;
4
+
5
+ use ProfilePress\Core\Membership\Models\Customer\CustomerFactory;
6
+
7
+ class CapabilityCheck
8
+ {
9
+ public function __construct()
10
+ {
11
+ add_filter('user_has_cap', array($this, 'user_has_cap'), 99, 3);
12
+ }
13
+
14
+ public function user_has_cap($all_caps, $caps, $args)
15
+ {
16
+ if (isset($caps[0])) {
17
+
18
+ if (false !== strpos($caps[0], 'ppress_plan_')) {
19
+
20
+ preg_match('/ppress_plan_([0-9]+)/', $caps[0], $matches);
21
+
22
+ $user_id = (int)$args[1];
23
+
24
+ if (isset($matches[1])) {
25
+
26
+ $plan_id = (int)$matches[1];
27
+
28
+ if (ppress_has_active_subscription($user_id, $plan_id)) {
29
+ $all_caps[$caps[0]] = true;
30
+ }
31
+ }
32
+ }
33
+ }
34
+
35
+ return $all_caps;
36
+ }
37
+
38
+ public static function get_instance()
39
+ {
40
+ static $instance = null;
41
+
42
+ if (is_null($instance)) {
43
+ $instance = new self();
44
+ }
45
+
46
+ return $instance;
47
+ }
48
+ }
src/ContentProtection/ElementorRestriction.php ADDED
@@ -0,0 +1,272 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace ProfilePress\Core\ContentProtection;
4
+
5
+ use Elementor\Controls_Manager;
6
+ use Elementor\Element_Base;
7
+ use Elementor\Widget_Base as Widget_Base;
8
+ use ProfilePress\Core\Membership\Models\Customer\CustomerFactory;
9
+ use ProfilePress\Core\Membership\Repositories\PlanRepository;
10
+
11
+ class ElementorRestriction
12
+ {
13
+ public function __construct()
14
+ {
15
+ add_action('elementor/element/common/_section_style/after_section_end', [$this, 'register_section']);
16
+ add_action('elementor/element/section/section_advanced/after_section_end', [$this, 'register_section']);
17
+ add_action('elementor/element/column/section_advanced/after_section_end', [$this, 'register_section']);
18
+ add_action('elementor/element/container/section_layout/after_section_end', [$this, 'register_section']);
19
+
20
+ add_action('elementor/element/common/ppress_section/before_section_end', array($this, 'register_controls'), 10, 2);
21
+ add_action('elementor/element/section/ppress_section/before_section_end', array($this, 'register_controls'), 10, 2);
22
+ add_action('elementor/element/column/ppress_section/before_section_end', array($this, 'register_controls'), 10, 2);
23
+ add_action('elementor/element/container/ppress_section/before_section_end', array($this, 'register_controls'), 10, 2);
24
+
25
+
26
+ add_filter('elementor/frontend/widget/should_render', [$this, 'should_render'], PHP_INT_MAX - 10, 2);
27
+ add_filter('elementor/frontend/section/should_render', [$this, 'should_render'], PHP_INT_MAX - 10, 2);
28
+ add_filter('elementor/frontend/column/should_render', [$this, 'should_render'], PHP_INT_MAX - 10, 2);
29
+ add_filter('elementor/frontend/container/should_render', [$this, 'should_render'], PHP_INT_MAX - 10, 2);
30
+
31
+ // determine whether to replace widget's content with "Content Restricted" alert message or not
32
+ add_filter('elementor/widget/render_content', [$this, 'maybe_render_restricted_message'], 10, 2);
33
+ }
34
+
35
+ public function register_section($element)
36
+ {
37
+ $element->start_controls_section('ppress_section', [
38
+ 'label' => __('ProfilePress Content Restriction', 'wp-user-avatar'),
39
+ 'tab' => Controls_Manager::TAB_ADVANCED,
40
+ ]);
41
+
42
+ $element->end_controls_section();
43
+ }
44
+
45
+ public function register_controls($element, $args)
46
+ {
47
+ if (is_a($element, '\Elementor\Core\DocumentTypes\Post')) return;
48
+
49
+ $element->add_control(
50
+ 'ppress_visibility',
51
+ [
52
+ 'label' => __('Target Audience', 'wp-user-avatar'),
53
+ 'type' => Controls_Manager::SELECT,
54
+ 'default' => 'everyone',
55
+ 'options' => [
56
+ 'everyone' => __('Everyone', 'wp-user-avatar'),
57
+ 'loggedin' => __('Logged-in Users', 'wp-user-avatar'),
58
+ 'loggedout' => __('Logged-out Users', 'wp-user-avatar'),
59
+ ],
60
+ 'multiple' => false,
61
+ 'label_block' => true,
62
+ ]
63
+ );
64
+
65
+ $element->add_control(
66
+ 'ppress_membership_plans',
67
+ [
68
+ 'label' => __('Restrict to Membership Plans', 'wp-user-avatar'),
69
+ 'type' => Controls_Manager::SELECT2,
70
+ 'options' => (function () {
71
+
72
+ $plans = PlanRepository::init()->retrieveAll();
73
+
74
+ $result = [];
75
+ foreach ($plans as $plan) {
76
+ $result[$plan->id] = $plan->name;
77
+ }
78
+
79
+ return $result;
80
+ })(),
81
+ 'multiple' => true,
82
+ 'label_block' => true,
83
+ 'condition' => [
84
+ 'ppress_visibility' => ['loggedin'],
85
+ ],
86
+ ]
87
+ );
88
+
89
+ $element->add_control(
90
+ 'ppress_user_roles',
91
+ [
92
+ 'label' => __('Restrict to User Roles', 'wp-user-avatar'),
93
+ 'type' => Controls_Manager::SELECT2,
94
+ 'options' => (function () {
95
+
96
+ $all_roles = ppress_get_editable_roles(false);
97
+
98
+ $result = [];
99
+ foreach ($all_roles as $key => $value) {
100
+ $result[$key] = $value['name'];
101
+ }
102
+
103
+ return $result;
104
+ })(),
105
+ 'multiple' => true,
106
+ 'label_block' => true,
107
+ 'condition' => [
108
+ 'ppress_visibility' => ['loggedin'],
109
+ ],
110
+ ]
111
+ );
112
+
113
+ // additional controls for Widget based elements only
114
+ if ($element instanceof Widget_Base) {
115
+
116
+ $element->add_control(
117
+ 'ppress_alternate_content',
118
+ [
119
+ 'label' => __('Alternate Content', 'wp-user-avatar'),
120
+ 'description' => __('The message to show when the main content is restricted.', 'wp-user-avatar'),
121
+ 'type' => Controls_Manager::SELECT,
122
+ 'default' => 'nothing',
123
+ 'options' => [
124
+ 'nothing' => __('Show Nothing', 'wp-user-avatar'),
125
+ 'global' => __('Global Restrict Access Message', 'wp-user-avatar'),
126
+ 'custom' => __('Custom Message', 'wp-user-avatar'),
127
+ ],
128
+ 'multiple' => false,
129
+ 'label_block' => true,
130
+ 'condition' => [
131
+ 'ppress_visibility' => ['loggedin', 'loggedout']
132
+ ],
133
+ ]
134
+ );
135
+
136
+ $element->add_control(
137
+ 'ppress_custom_message',
138
+ [
139
+ 'type' => Controls_Manager::WYSIWYG,
140
+ 'label' => __('Custom Message', 'wp-user-avatar'),
141
+ 'description' => __('This message will be shown as an alternate of your content', 'wp-user-avatar'),
142
+ 'default' => __('This content is restricted!', 'wp-user-avatar'),
143
+ 'condition' => [
144
+ 'ppress_alternate_content' => 'custom',
145
+ 'ppress_visibility' => ['loggedin', 'loggedout']
146
+ ],
147
+ ]
148
+ );
149
+ }
150
+ }
151
+
152
+ /**
153
+ * @param Element_Base $element
154
+ *
155
+ * @return bool
156
+ */
157
+ private function can_access($element)
158
+ {
159
+ if (is_admin() || \Elementor\Plugin::$instance->editor->is_edit_mode()) {
160
+ return true;
161
+ }
162
+
163
+ $visibility = $element->get_settings('ppress_visibility');
164
+ $roles = $element->get_settings('ppress_user_roles');
165
+ $membership_plans = $element->get_settings('ppress_membership_plans');
166
+
167
+ if (empty($visibility) || 'everyone' == $visibility) return true;
168
+
169
+ if ($visibility == 'loggedout' && ! is_user_logged_in()) return true;
170
+
171
+ // if we got here, rule is for logged in users. return false of not logged in.
172
+ if ( ! is_user_logged_in()) return false;
173
+
174
+ if (empty($roles) && empty($membership_plans)) return true;
175
+
176
+ if ( ! empty($membership_plans)) {
177
+
178
+ $customer = CustomerFactory::fromUserId(get_current_user_id());
179
+
180
+ $membership_plans = array_map('absint', $membership_plans);
181
+
182
+ foreach ($membership_plans as $plan_id) {
183
+ if ($customer->has_active_subscription($plan_id)) return true;
184
+ }
185
+ }
186
+
187
+ if ( ! empty($roles)) {
188
+
189
+ $user_roles = wp_get_current_user()->roles;
190
+
191
+ if ( ! empty(array_intersect($roles, $user_roles))) return true;
192
+ }
193
+
194
+ return false;
195
+ }
196
+
197
+ /**
198
+ * @param Element_Base $widget
199
+ *
200
+ * @return bool
201
+ */
202
+ private function is_alternate_message_active($widget)
203
+ {
204
+ $setting = $widget->get_settings('ppress_alternate_content');
205
+
206
+ return in_array($setting, ['custom', 'global']);
207
+ }
208
+
209
+ /**
210
+ * @param bool $should_render
211
+ * @param Element_Base $widget
212
+ *
213
+ * @return bool
214
+ */
215
+ public function should_render($should_render, $widget)
216
+ {
217
+ if ( ! $this->is_alternate_message_active($widget) && ! $this->can_access($widget)) {
218
+ $should_render = false;
219
+ }
220
+
221
+ return $should_render;
222
+ }
223
+
224
+ /**
225
+ * Renders the "Content restricted" message instead of the widget's content.
226
+ *
227
+ * Applies if widget should be hidden from members and "Content restricted" message option is enabled.
228
+ *
229
+ * @param string $widget_content Elementor Widget content
230
+ * @param Widget_Base $widget Elementor Widget object
231
+ *
232
+ * @return string
233
+ *
234
+ */
235
+ public function maybe_render_restricted_message($widget_content, $widget)
236
+ {
237
+ if (
238
+ $this->is_alternate_message_active($widget) &&
239
+ ! $this->can_access($widget)
240
+ ) {
241
+
242
+ $message = $widget->get_settings('ppress_custom_message');
243
+ if (empty($message)) {
244
+ $message = esc_html__('This content is restricted!', 'wp-user-avatar');
245
+ }
246
+
247
+ if ('global' == $widget->get_settings('ppress_alternate_content')) {
248
+
249
+ $message = ppress_settings_by_key(
250
+ 'global_restricted_access_message',
251
+ esc_html__('You are unauthorized to view this page.', 'wp-user-avatar'),
252
+ true
253
+ );
254
+ }
255
+
256
+ return do_shortcode(wpautop($message));
257
+ }
258
+
259
+ return $widget_content;
260
+ }
261
+
262
+ public static function get_instance()
263
+ {
264
+ static $instance = null;
265
+
266
+ if (is_null($instance)) {
267
+ $instance = new self();
268
+ }
269
+
270
+ return $instance;
271
+ }
272
+ }
src/ContentProtection/Init.php CHANGED
@@ -16,6 +16,9 @@ class Init
16
  PostContent::get_instance();
17
  Redirect::get_instance();
18
  RestrictionShortcode::get_instance();
 
 
 
19
  }
20
 
21
  public function get_content_condition_field()
16
  PostContent::get_instance();
17
  Redirect::get_instance();
18
  RestrictionShortcode::get_instance();
19
+ NavMenuProtection::get_instance();
20
+ ElementorRestriction::get_instance();
21
+ CapabilityCheck::get_instance();
22
  }
23
 
24
  public function get_content_condition_field()
src/ContentProtection/NavMenuProtection.php ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace ProfilePress\Core\ContentProtection;
4
+
5
+ use ProfilePress\Core\Membership\Models\Customer\CustomerFactory;
6
+ use ProfilePress\Core\Membership\Repositories\PlanRepository;
7
+
8
+ class NavMenuProtection
9
+ {
10
+ public function __construct()
11
+ {
12
+ add_action('plugins_loaded', [$this, 'init'], 20);
13
+ }
14
+
15
+ public function init()
16
+ {
17
+ if (class_exists('\Nav_Menu_Roles')) {
18
+ add_filter('nav_menu_roles', [$this, 'new_roles']);
19
+ add_filter('nav_menu_roles_item_visibility', [$this, 'item_visibility'], 10, 2);
20
+ }
21
+ }
22
+
23
+ /*
24
+ * Add custom roles to Nav Menu Roles menu options
25
+ *
26
+ * @param array $roles An array of all available roles, by default is global $wp_roles
27
+ * @return array
28
+ */
29
+ function new_roles($roles)
30
+ {
31
+ return array_merge($this->get_roles_wrapper(), $roles);
32
+ }
33
+
34
+
35
+ /*
36
+ * Change visibility of each menu item.
37
+ *
38
+ * NMR settings can be "in" (all logged in), "out" (all logged out) or an array of specific roles
39
+ *
40
+ * @param bool $visible
41
+ * @param object $item The menu item object. Nav Menu Roles adds its info to $item->roles
42
+ * @return boolean
43
+ */
44
+ function item_visibility($visible, $item)
45
+ {
46
+ if ( ! $visible && isset($item->roles) && is_array($item->roles)) {
47
+
48
+ // Get the plugin-specific roles for this menu item.
49
+ $roles = $this->get_relevant_roles_wrapper($item->roles);
50
+
51
+ if (count($roles) > 0) {
52
+
53
+ // Only need to look through the relevant roles.
54
+ foreach ($roles as $role) {
55
+
56
+ // Test if the current user has the specific plan membership.
57
+ if ($this->current_user_can_wrapper($role)) {
58
+ $visible = true;
59
+ break;
60
+ } else {
61
+ $visible = false;
62
+ }
63
+ }
64
+
65
+ }
66
+
67
+ }
68
+
69
+ return $visible;
70
+ }
71
+
72
+ /*-----------------------------------------------------------------------------------*/
73
+ /* Helper Functions */
74
+ /*-----------------------------------------------------------------------------------*/
75
+
76
+ /*
77
+ * Get the plugin-specific "roles" returned in an array, with ID => Name key pairs
78
+ *
79
+ * @return array
80
+ */
81
+ function get_roles_wrapper()
82
+ {
83
+ $roles = array();
84
+
85
+ $plans = PlanRepository::init()->retrieveAll();
86
+
87
+ if ( ! empty($plans)) {
88
+
89
+ foreach ($plans as $plan) {
90
+ $roles['ppress_membership_' . $plan->id] = sprintf('%s (ProfilePress %s)', $plan->name, esc_html__('Plan', 'wp-user-avatar'));
91
+ }
92
+ }
93
+
94
+ return $roles;
95
+ }
96
+
97
+ /*
98
+ * Get the plugin-specific "roles" relevant to this menu item
99
+ *
100
+ * @return array
101
+ */
102
+ function get_relevant_roles_wrapper($roles = array())
103
+ {
104
+ return preg_grep('/^ppress_membership_*/', $roles);
105
+ }
106
+
107
+ /*
108
+ * Check the current user has plugin-specific level capability
109
+ *
110
+ * @param string $role_id | The ID of the "role" with a plugin-specific prefix
111
+ *
112
+ * @return bool
113
+ */
114
+ function current_user_can_wrapper($role_id = false)
115
+ {
116
+ $user_id = get_current_user_id();
117
+
118
+ if ( ! $user_id || ! $role_id) return false;
119
+
120
+ $role_id = str_replace('ppress_membership_', '', $role_id);
121
+
122
+ return CustomerFactory::fromUserId($user_id)->has_active_subscription($role_id);
123
+ }
124
+
125
+ public static function get_instance()
126
+ {
127
+ static $instance = null;
128
+
129
+ if (is_null($instance)) {
130
+ $instance = new self();
131
+ }
132
+
133
+ return $instance;
134
+ }
135
+ }
src/ContentProtection/SettingsPage.php CHANGED
@@ -56,7 +56,7 @@ class SettingsPage extends AbstractSettingsPage
56
  {
57
  $hook = add_submenu_page(
58
  PPRESS_DASHBOARD_SETTINGS_SLUG,
59
- 'ProfilePress '. $this->admin_page_title(),
60
  esc_html__('Content Protection', 'wp-user-avatar'),
61
  'manage_options',
62
  PPRESS_CONTENT_PROTECTION_SETTINGS_SLUG,
@@ -168,10 +168,51 @@ class SettingsPage extends AbstractSettingsPage
168
  add_action('wp_cspa_main_content_area', array($this, 'admin_settings_page_callback'), 10, 2);
169
  add_action('wp_cspa_before_closing_header', [$this, 'add_new_button']);
170
 
 
 
171
  $instance = Custom_Settings_Page_Api::instance();
172
  $instance->option_name('ppview'); // adds ppview css class to #poststuff
173
  $instance->page_header($this->admin_page_title());
174
- $instance->build(true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  }
176
 
177
  public function add_new_button()
56
  {
57
  $hook = add_submenu_page(
58
  PPRESS_DASHBOARD_SETTINGS_SLUG,
59
+ 'ProfilePress ' . $this->admin_page_title(),
60
  esc_html__('Content Protection', 'wp-user-avatar'),
61
  'manage_options',
62
  PPRESS_CONTENT_PROTECTION_SETTINGS_SLUG,
168
  add_action('wp_cspa_main_content_area', array($this, 'admin_settings_page_callback'), 10, 2);
169
  add_action('wp_cspa_before_closing_header', [$this, 'add_new_button']);
170
 
171
+ $is_sidebar = ! isset($_GET['action'], $_GET['id']);
172
+
173
  $instance = Custom_Settings_Page_Api::instance();
174
  $instance->option_name('ppview'); // adds ppview css class to #poststuff
175
  $instance->page_header($this->admin_page_title());
176
+
177
+ if ($is_sidebar) {
178
+
179
+ $sidebar_args = [
180
+ [
181
+ 'section_title' => esc_html__('Restrict Content Shortcode', 'wp-user-avatar'),
182
+ 'content' => (function () {
183
+ ob_start();
184
+ require dirname(__FILE__) . '/views/include.shortcode-doc-sidebar.php';
185
+
186
+ return ob_get_clean();
187
+ })()
188
+ ],
189
+ [
190
+ 'section_title' => esc_html__('WordPress Menu Protection', 'wp-user-avatar'),
191
+ 'content' => (function () {
192
+ ob_start();
193
+ require dirname(__FILE__) . '/views/include.menu-protection.php';
194
+
195
+ return ob_get_clean();
196
+ })()
197
+ ]
198
+ ];
199
+
200
+ if(defined('ELEMENTOR_VERSION')) {
201
+ $sidebar_args[] = [
202
+ 'section_title' => esc_html__('Elementor Restriction', 'wp-user-avatar'),
203
+ 'content' => (function () {
204
+ ob_start();
205
+ require dirname(__FILE__) . '/views/include.elementor-protection.php';
206
+
207
+ return ob_get_clean();
208
+ })()
209
+ ];
210
+ }
211
+
212
+ $instance->sidebar($sidebar_args);
213
+ }
214
+
215
+ $instance->build(! $is_sidebar);
216
  }
217
 
218
  public function add_new_button()
src/ContentProtection/views/include.elementor-protection.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <div class="ppress-content-restriction-shortcode-doc">
2
+ <p>
3
+ <?php
4
+ printf(
5
+ esc_html__('Want to control the visibility of Elementor sections, containers and widgets based on user roles, logged-in status and membership plans? %sLearn how to%s', 'wp-user-avatar'),
6
+ '<a target="_blank" href="https://profilepress.com/article/restrict-elementor-sections-widgets/">', '</a>'
7
+ ); ?>
8
+ </p>
9
+ </div>
src/ContentProtection/views/include.menu-protection.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <div class="ppress-content-restriction-shortcode-doc">
2
+ <p>
3
+ <?php
4
+ printf(
5
+ esc_html__('Want to control the visibility of WordPress navigation menus based on user roles, logged-in status and membership plans? %sLearn how to%s', 'wp-user-avatar'),
6
+ '<a target="_blank" href="https://profilepress.com/article/wordpress-navigation-menu-restriction/">', '</a>'
7
+ ); ?>
8
+ </p>
9
+ </div>
src/ContentProtection/views/include.view.php CHANGED
@@ -45,6 +45,7 @@ add_action('add_meta_boxes', function () {
45
  });
46
 
47
  add_action('add_meta_boxes', function () {
 
48
  add_meta_box(
49
  'shortcode-doc',
50
  __('Restrict Content Shortcode', 'wp-user-avatar'),
@@ -54,6 +55,28 @@ add_action('add_meta_boxes', function () {
54
  'ppcontentprotection',
55
  'sidebar'
56
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  });
58
 
59
  do_action('add_meta_boxes', 'ppcontentprotection', new WP_Post(new stdClass()));
45
  });
46
 
47
  add_action('add_meta_boxes', function () {
48
+
49
  add_meta_box(
50
  'shortcode-doc',
51
  __('Restrict Content Shortcode', 'wp-user-avatar'),
55
  'ppcontentprotection',
56
  'sidebar'
57
  );
58
+
59
+ add_meta_box(
60
+ 'wp-menu-protection',
61
+ __('WordPress Menu Restriction', 'wp-user-avatar'),
62
+ function () {
63
+ require dirname(__FILE__) . '/include.menu-protection.php';
64
+ },
65
+ 'ppcontentprotection',
66
+ 'sidebar'
67
+ );
68
+
69
+ if (defined('ELEMENTOR_VERSION')) {
70
+ add_meta_box(
71
+ 'elementor-restriction',
72
+ __('Elementor Restriction', 'wp-user-avatar'),
73
+ function () {
74
+ require dirname(__FILE__) . '/include.elementor-protection.php';
75
+ },
76
+ 'ppcontentprotection',
77
+ 'sidebar'
78
+ );
79
+ }
80
  });
81
 
82
  do_action('add_meta_boxes', 'ppcontentprotection', new WP_Post(new stdClass()));
src/ContentProtection/views/view.access-condition.php CHANGED
@@ -80,7 +80,7 @@ foreach (PlanRepository::init()->retrieveAll() as $plan) {
80
  <tr id="pp-cc-access-noaccess-action-row">
81
  <th>
82
  <label for="pp-cc-access-noaccess-action">
83
- <?= esc_html__('What happens when users without access tries to view content?', 'wp-user-avatar') ?>
84
  </label>
85
  </th>
86
  <td>
@@ -99,7 +99,7 @@ foreach (PlanRepository::init()->retrieveAll() as $plan) {
99
  <td>
100
  <select id="pp-cc-access-noaccess-action-message" name="ppress_cc_data[access_condition][noaccess_action_message_type]">
101
  <option value="global" <?php selected($noaccess_action_message_type, 'global') ?>><?= esc_html__('Global Restrict Access Message', 'wp-user-avatar') ?></option>
102
- <option value="custom" <?php selected($noaccess_action_message_type, 'custom') ?>><?= esc_html__('Custom message', 'wp-user-avatar') ?></option>
103
  <option value="post_excerpt" <?php selected($noaccess_action_message_type, 'post_excerpt') ?>><?= esc_html__('Post Excerpt', 'wp-user-avatar') ?></option>
104
  <option value="post_excerpt_global" <?php selected($noaccess_action_message_type, 'post_excerpt_global') ?>><?= esc_html__('Post Excerpt + Global Restrict Access Message', 'wp-user-avatar') ?></option>
105
  <option value="post_excerpt_custom" <?php selected($noaccess_action_message_type, 'post_excerpt_custom') ?>><?= esc_html__('Post Excerpt + Custom Message', 'wp-user-avatar') ?></option>
80
  <tr id="pp-cc-access-noaccess-action-row">
81
  <th>
82
  <label for="pp-cc-access-noaccess-action">
83
+ <?= esc_html__('What happens when users without access try to view the content?', 'wp-user-avatar') ?>
84
  </label>
85
  </th>
86
  <td>
99
  <td>
100
  <select id="pp-cc-access-noaccess-action-message" name="ppress_cc_data[access_condition][noaccess_action_message_type]">
101
  <option value="global" <?php selected($noaccess_action_message_type, 'global') ?>><?= esc_html__('Global Restrict Access Message', 'wp-user-avatar') ?></option>
102
+ <option value="custom" <?php selected($noaccess_action_message_type, 'custom') ?>><?= esc_html__('Custom Message', 'wp-user-avatar') ?></option>
103
  <option value="post_excerpt" <?php selected($noaccess_action_message_type, 'post_excerpt') ?>><?= esc_html__('Post Excerpt', 'wp-user-avatar') ?></option>
104
  <option value="post_excerpt_global" <?php selected($noaccess_action_message_type, 'post_excerpt_global') ?>><?= esc_html__('Post Excerpt + Global Restrict Access Message', 'wp-user-avatar') ?></option>
105
  <option value="post_excerpt_custom" <?php selected($noaccess_action_message_type, 'post_excerpt_custom') ?>><?= esc_html__('Post Excerpt + Custom Message', 'wp-user-avatar') ?></option>
src/DBUpdates.php CHANGED
@@ -8,7 +8,7 @@ class DBUpdates
8
  {
9
  public static $instance;
10
 
11
- const DB_VER = 2;
12
 
13
  public function init_options()
14
  {
@@ -77,6 +77,17 @@ class DBUpdates
77
  $wpdb->query("ALTER TABLE $table3 CHANGE date_created date_created datetime NOT NULL;");
78
  }
79
 
 
 
 
 
 
 
 
 
 
 
 
80
  public static function get_instance()
81
  {
82
  if ( ! isset(self::$instance)) {
8
  {
9
  public static $instance;
10
 
11
+ const DB_VER = 3;
12
 
13
  public function init_options()
14
  {
77
  $wpdb->query("ALTER TABLE $table3 CHANGE date_created date_created datetime NOT NULL;");
78
  }
79
 
80
+ public function update_routine_3()
81
+ {
82
+ global $wpdb;
83
+
84
+ $table = DBTables::coupons_db_table();
85
+ $table2 = DBTables::subscription_plans_db_table();
86
+
87
+ $wpdb->query("ALTER TABLE $table CHANGE type coupon_type varchar(50) NULL;");
88
+ $wpdb->query("ALTER TABLE $table2 ADD COLUMN order_note text NULL AFTER description;");
89
+ }
90
+
91
  public static function get_instance()
92
  {
93
  if ( ! isset(self::$instance)) {
src/Functions/GlobalFunctions.php CHANGED
@@ -1574,7 +1574,6 @@ function ppress_render_view($template, $vars = [], $parentDir = '')
1574
  ob_start();
1575
  require apply_filters('ppress_render_view', $path, $vars, $template, $parentDir);
1576
  echo apply_filters('ppress_render_view_output', ob_get_clean(), $template, $vars, $parentDir);
1577
-
1578
  }
1579
 
1580
  function ppress_post_content_has_shortcode($tag = '', $post = null)
1574
  ob_start();
1575
  require apply_filters('ppress_render_view', $path, $vars, $template, $parentDir);
1576
  echo apply_filters('ppress_render_view_output', ob_get_clean(), $template, $vars, $parentDir);
 
1577
  }
1578
 
1579
  function ppress_post_content_has_shortcode($tag = '', $post = null)
src/Functions/MSFunctions.php CHANGED
@@ -3,6 +3,7 @@
3
  use ProfilePress\Core\Base;
4
  use ProfilePress\Core\Classes\PPRESS_Session;
5
  use ProfilePress\Core\Membership\CurrencyFormatter;
 
6
  use ProfilePress\Core\Membership\Models\Order\OrderMode;
7
  use ProfilePress\Core\Membership\Models\Plan\PlanFactory;
8
  use ProfilePress\Core\Membership\Models\Plan\PlanEntity;
@@ -730,4 +731,22 @@ function ppress_business_full_address()
730
  function ppress_business_tax_id($default = '')
731
  {
732
  return ppress_settings_by_key('business_tin', $default, true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
733
  }
3
  use ProfilePress\Core\Base;
4
  use ProfilePress\Core\Classes\PPRESS_Session;
5
  use ProfilePress\Core\Membership\CurrencyFormatter;
6
+ use ProfilePress\Core\Membership\Models\Customer\CustomerFactory;
7
  use ProfilePress\Core\Membership\Models\Order\OrderMode;
8
  use ProfilePress\Core\Membership\Models\Plan\PlanFactory;
9
  use ProfilePress\Core\Membership\Models\Plan\PlanEntity;
731
  function ppress_business_tax_id($default = '')
732
  {
733
  return ppress_settings_by_key('business_tin', $default, true);
734
+ }
735
+
736
+ /**
737
+ * @param int $user_id
738
+ * @param int $plan_id
739
+ * @param bool $by_customer_id
740
+ *
741
+ * @return bool
742
+ */
743
+ function ppress_has_active_subscription($user_id, $plan_id, $by_customer_id = false)
744
+ {
745
+ if (false === $by_customer_id) {
746
+ $customer = CustomerFactory::fromUserId($user_id);
747
+ } else {
748
+ $customer = CustomerFactory::fromId($user_id);
749
+ }
750
+
751
+ return $customer->has_active_subscription($plan_id);
752
  }
src/Membership/Controllers/CheckoutController.php CHANGED
@@ -384,6 +384,8 @@ class CheckoutController extends BaseController
384
  );
385
  }
386
 
 
 
387
  $planObj = ppress_get_plan(absint($_POST['plan_id']));
388
 
389
  $country_code = sanitize_text_field(ppressPOST_var('country', '', true));
384
  );
385
  }
386
 
387
+ global $cart_vars;
388
+
389
  $planObj = ppress_get_plan(absint($_POST['plan_id']));
390
 
391
  $country_code = sanitize_text_field(ppressPOST_var('country', '', true));
src/Membership/Emails/AbstractMembershipEmail.php CHANGED
@@ -23,7 +23,7 @@ abstract class AbstractMembershipEmail
23
  {
24
  $customer = CustomerFactory::fromId($order->customer_id);
25
 
26
- return apply_filters('ppress_order_placeholders_values', [
27
  '{{email}}' => $customer->get_email(),
28
  '{{first_name}}' => $customer->get_first_name(),
29
  '{{last_name}}' => $customer->get_last_name(),
@@ -41,11 +41,16 @@ abstract class AbstractMembershipEmail
41
  '{{order_total}}' => ppress_display_amount($order->total, $order->currency),
42
  '{{order_date}}' => ppress_format_date($order->date_created),
43
  '{{order_payment_method}}' => PaymentMethods::get_instance()->get_by_id($order->payment_method)->get_method_title(),
 
44
  '{{site_title}}' => ppress_site_title(),
45
  '{{business_name}}' => ppress_business_name(),
46
  '{{business_address}}' => ppress_business_full_address(),
47
  '{{business_tax_id}}' => ppress_business_tax_id(),
48
  ]);
 
 
 
 
49
  }
50
 
51
  /**
23
  {
24
  $customer = CustomerFactory::fromId($order->customer_id);
25
 
26
+ $args = apply_filters('ppress_order_placeholders_values', [
27
  '{{email}}' => $customer->get_email(),
28
  '{{first_name}}' => $customer->get_first_name(),
29
  '{{last_name}}' => $customer->get_last_name(),
41
  '{{order_total}}' => ppress_display_amount($order->total, $order->currency),
42
  '{{order_date}}' => ppress_format_date($order->date_created),
43
  '{{order_payment_method}}' => PaymentMethods::get_instance()->get_by_id($order->payment_method)->get_method_title(),
44
+ '{{purchase_note}}' => $order->get_plan_purchase_note(),
45
  '{{site_title}}' => ppress_site_title(),
46
  '{{business_name}}' => ppress_business_name(),
47
  '{{business_address}}' => ppress_business_full_address(),
48
  '{{business_tax_id}}' => ppress_business_tax_id(),
49
  ]);
50
+
51
+ return array_map(function ($val) {
52
+ return ! empty($val) ? $val : '—';
53
+ }, $args);
54
  }
55
 
56
  /**
src/Membership/Emails/EmailDataTrait.php CHANGED
@@ -21,6 +21,7 @@ trait EmailDataTrait
21
  '{{order_total}}' => esc_html__("Total order amount that was paid.", 'wp-user-avatar'),
22
  '{{order_date}}' => esc_html__("Order date.", 'wp-user-avatar'),
23
  '{{order_payment_method}}' => esc_html__("Order payment method.", 'wp-user-avatar'),
 
24
  '{{site_title}}' => esc_html__('Name or title of this website.', 'wp-user-avatar'),
25
  '{{business_name}}' => sprintf(
26
  esc_html__('Your business name as defined in %sSettings%s.', 'wp-user-avatar'),
@@ -30,7 +31,7 @@ trait EmailDataTrait
30
  esc_html__('Your business address as defined in %sSettings%s.', 'wp-user-avatar'),
31
  '<a target="_blank" href="' . PPRESS_SETTINGS_SETTING_PAGE . '#business_info">', '</a>'
32
  ),
33
- '{{business_tax_id}}' => sprintf(
34
  esc_html__('Your business Tax ID as defined in %sSettings%s.', 'wp-user-avatar'),
35
  '<a target="_blank" href="' . PPRESS_SETTINGS_SETTING_PAGE . '#business_info">', '</a>'
36
  ),
@@ -115,6 +116,7 @@ trait EmailDataTrait
115
  </tr>
116
  </tbody>
117
  </table>
 
118
  <div style="margin:30px 0 0;padding: 10px 0 50px 0; text-align: center;">
119
  <a style="background: #555555; color: #fff; padding: 12px 30px; text-decoration: none; border-radius: 3px; letter-spacing: 0.3px;" href="{{order_url}}">View order details</a>
120
  </div>
21
  '{{order_total}}' => esc_html__("Total order amount that was paid.", 'wp-user-avatar'),
22
  '{{order_date}}' => esc_html__("Order date.", 'wp-user-avatar'),
23
  '{{order_payment_method}}' => esc_html__("Order payment method.", 'wp-user-avatar'),
24
+ '{{purchase_note}}' => esc_html__("The purchase note of ordered plan.", 'wp-user-avatar'),
25
  '{{site_title}}' => esc_html__('Name or title of this website.', 'wp-user-avatar'),
26
  '{{business_name}}' => sprintf(
27
  esc_html__('Your business name as defined in %sSettings%s.', 'wp-user-avatar'),
31
  esc_html__('Your business address as defined in %sSettings%s.', 'wp-user-avatar'),
32
  '<a target="_blank" href="' . PPRESS_SETTINGS_SETTING_PAGE . '#business_info">', '</a>'
33
  ),
34
+ '{{business_tax_id}}' => sprintf(
35
  esc_html__('Your business Tax ID as defined in %sSettings%s.', 'wp-user-avatar'),
36
  '<a target="_blank" href="' . PPRESS_SETTINGS_SETTING_PAGE . '#business_info">', '</a>'
37
  ),
116
  </tr>
117
  </tbody>
118
  </table>
119
+ <p>{{purchase_note}}</p>
120
  <div style="margin:30px 0 0;padding: 10px 0 50px 0; text-align: center;">
121
  <a style="background: #555555; color: #fff; padding: 12px 30px; text-decoration: none; border-radius: 3px; letter-spacing: 0.3px;" href="{{order_url}}">View order details</a>
122
  </div>
src/Membership/Models/Coupon/CouponEntity.php CHANGED
@@ -15,6 +15,7 @@ use ProfilePressVendor\Carbon\CarbonImmutable;
15
  * @property int $id
16
  * @property string $code
17
  * @property string $description
 
18
  * @property string $coupon_application
19
  * @property string $amount
20
  * @property string $unit
@@ -32,6 +33,8 @@ class CouponEntity extends AbstractModel implements ModelInterface
32
 
33
  protected $description = '';
34
 
 
 
35
  protected $coupon_application = CouponApplication::NEW_PURCHASE;
36
 
37
  protected $amount = 0;
@@ -75,6 +78,11 @@ class CouponEntity extends AbstractModel implements ModelInterface
75
  return $this->status == 'true';
76
  }
77
 
 
 
 
 
 
78
  public function is_expired()
79
  {
80
  $end_date = $this->get_end_date();
@@ -95,6 +103,11 @@ class CouponEntity extends AbstractModel implements ModelInterface
95
  }
96
  }
97
 
 
 
 
 
 
98
  public function get_coupon_application()
99
  {
100
  return ! empty($this->coupon_application) ? $this->coupon_application : CouponApplication::NEW_PURCHASE;
15
  * @property int $id
16
  * @property string $code
17
  * @property string $description
18
+ * @property string $coupon_type
19
  * @property string $coupon_application
20
  * @property string $amount
21
  * @property string $unit
33
 
34
  protected $description = '';
35
 
36
+ protected $coupon_type = CouponType::RECURRING;
37
+
38
  protected $coupon_application = CouponApplication::NEW_PURCHASE;
39
 
40
  protected $amount = 0;
78
  return $this->status == 'true';
79
  }
80
 
81
+ public function is_recurring()
82
+ {
83
+ return $this->get_coupon_type() == CouponType::RECURRING;
84
+ }
85
+
86
  public function is_expired()
87
  {
88
  $end_date = $this->get_end_date();
103
  }
104
  }
105
 
106
+ public function get_coupon_type()
107
+ {
108
+ return ! empty($this->coupon_type) ? $this->coupon_type : CouponType::RECURRING;
109
+ }
110
+
111
  public function get_coupon_application()
112
  {
113
  return ! empty($this->coupon_application) ? $this->coupon_application : CouponApplication::NEW_PURCHASE;
src/Membership/Models/Coupon/CouponType.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace ProfilePress\Core\Membership\Models\Coupon;
4
+
5
+ class CouponType
6
+ {
7
+ const RECURRING = 'recurring';
8
+ const ONE_TIME = 'one_time';
9
+ }
src/Membership/Models/Customer/CustomerEntity.php CHANGED
@@ -216,7 +216,6 @@ class CustomerEntity extends AbstractModel implements ModelInterface
216
  if ( ! empty($subs)) {
217
 
218
  foreach ($subs as $sub) {
219
-
220
  if ($sub->is_active() && ! $sub->is_expired()) $result[] = $sub;
221
  }
222
  }
216
  if ( ! empty($subs)) {
217
 
218
  foreach ($subs as $sub) {
 
219
  if ($sub->is_active() && ! $sub->is_expired()) $result[] = $sub;
220
  }
221
  }
src/Membership/Models/Order/OrderEntity.php CHANGED
@@ -401,6 +401,17 @@ class OrderEntity extends AbstractModel implements ModelInterface
401
  return PaymentMethods::get_instance()->get_by_id($this->payment_method)->link_transaction_id($this->transaction_id, $this);
402
  }
403
 
 
 
 
 
 
 
 
 
 
 
 
404
  public function key_is_valid($key)
405
  {
406
  return hash_equals($this->get_order_key(), $key);
401
  return PaymentMethods::get_instance()->get_by_id($this->payment_method)->link_transaction_id($this->transaction_id, $this);
402
  }
403
 
404
+ public function get_plan_purchase_note()
405
+ {
406
+ return wpautop(
407
+ do_shortcode(
408
+ wp_kses_post(
409
+ ppress_get_plan($this->plan_id)->order_note
410
+ )
411
+ )
412
+ );
413
+ }
414
+
415
  public function key_is_valid($key)
416
  {
417
  return hash_equals($this->get_order_key(), $key);
src/Membership/Models/Plan/PlanEntity.php CHANGED
@@ -13,6 +13,7 @@ use ProfilePress\Core\Membership\Services\OrderService;
13
  /**
14
  * @property int $id
15
  * @property string $name
 
16
  * @property string $description
17
  * @property string $price
18
  * @property string $billing_frequency
@@ -29,6 +30,8 @@ class PlanEntity extends AbstractModel implements ModelInterface
29
 
30
  protected $description = '';
31
 
 
 
32
  protected $price = '0';
33
 
34
  protected $billing_frequency = SubscriptionBillingFrequency::MONTHLY;
13
  /**
14
  * @property int $id
15
  * @property string $name
16
+ * @property string $order_note
17
  * @property string $description
18
  * @property string $price
19
  * @property string $billing_frequency
30
 
31
  protected $description = '';
32
 
33
+ protected $order_note = '';
34
+
35
  protected $price = '0';
36
 
37
  protected $billing_frequency = SubscriptionBillingFrequency::MONTHLY;
src/Membership/Models/Subscription/SubscriptionEntity.php CHANGED
@@ -177,8 +177,15 @@ class SubscriptionEntity extends AbstractModel implements ModelInterface
177
  SubscriptionStatus::TRIALLING,
178
  ];
179
 
180
- if ( ! $this->is_expired() && in_array($this->status, $active_statuses, true)) {
181
- $ret = true;
 
 
 
 
 
 
 
182
  }
183
 
184
  return apply_filters('ppress_subscription_is_active', $ret, $this->id, $this);
177
  SubscriptionStatus::TRIALLING,
178
  ];
179
 
180
+ // one-time payments with lifetime expiration is considered not active if they are cancelled
181
+ // unlike recurring sub which is only not active if expired.
182
+ if ($this->is_lifetime() && $this->is_cancelled()) {
183
+ $ret = false;
184
+ } else {
185
+
186
+ if ( ! $this->is_expired() && in_array($this->status, $active_statuses, true)) {
187
+ $ret = true;
188
+ }
189
  }
190
 
191
  return apply_filters('ppress_subscription_is_active', $ret, $this->id, $this);
src/Membership/PaymentMethods/Stripe/PaymentHelpers.php CHANGED
@@ -14,6 +14,38 @@ use ProfilePressVendor\Carbon\CarbonImmutable;
14
 
15
  class PaymentHelpers
16
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  /**
18
  * @return string
19
  */
@@ -114,7 +146,7 @@ class PaymentHelpers
114
  $create_product_args = [
115
  'id' => $stripe_product_id,
116
  'name' => $plan->name,
117
- 'description' => sanitize_textarea_field($plan->description),
118
  'metadata' => [
119
  'plan_id' => $plan->id,
120
  'caller' => __CLASS__ . '|' . __METHOD__ . '|' . __LINE__ . '|' . PPRESS_VERSION_NUMBER,
14
 
15
  class PaymentHelpers
16
  {
17
+ public static function add_coupon_to_bucket($stripe_coupon_id)
18
+ {
19
+ $data = \get_option('ppress_stripe_coupon_bucket', []);
20
+ $data[$stripe_coupon_id] = time() + (24 * HOUR_IN_SECONDS);
21
+ \update_option('ppress_stripe_coupon_bucket', $data);
22
+ }
23
+
24
+ public static function empty_coupon_bucket()
25
+ {
26
+ $data = \get_option('ppress_stripe_coupon_bucket', []);
27
+
28
+ if ( ! empty($data)) {
29
+
30
+ foreach ($data as $coupon_id => $time) {
31
+ if (time() >= $time) {
32
+ self::delete_coupon($coupon_id);
33
+ unset($data[$coupon_id]);
34
+ }
35
+ }
36
+
37
+ \update_option('ppress_stripe_coupon_bucket', $data);
38
+ }
39
+ }
40
+
41
+ public static function delete_coupon($stripe_coupon_id)
42
+ {
43
+ try {
44
+ APIClass::stripeClient()->coupons->delete($stripe_coupon_id);
45
+ } catch (\Exception $e) {
46
+ }
47
+ }
48
+
49
  /**
50
  * @return string
51
  */
146
  $create_product_args = [
147
  'id' => $stripe_product_id,
148
  'name' => $plan->name,
149
+ 'description' => strip_tags(sanitize_textarea_field($plan->description)),
150
  'metadata' => [
151
  'plan_id' => $plan->id,
152
  'caller' => __CLASS__ . '|' . __METHOD__ . '|' . __LINE__ . '|' . PPRESS_VERSION_NUMBER,
src/Membership/PaymentMethods/Stripe/Stripe.php CHANGED
@@ -578,6 +578,8 @@ class Stripe extends AbstractPaymentMethod
578
  {
579
  try {
580
 
 
 
581
  $product_price = PaymentHelpers::get_product_price($subscription, $this->get_statement_descriptor());
582
 
583
  if (is_wp_error($product_price)) {
@@ -613,16 +615,27 @@ class Stripe extends AbstractPaymentMethod
613
 
614
  if ($plan->has_signup_fee()) {
615
 
616
- $create_session_args['line_items'][] = [
617
- 'quantity' => 1,
618
- 'price_data' => [
619
- 'unit_amount' => PaymentHelpers::process_amount($order->total),
620
- 'currency' => ppress_get_currency(),
621
- 'product_data' => [
622
- 'name' => PaymentHelpers::get_signup_fee_label(),
623
- ],
624
- ]
625
- ];
 
 
 
 
 
 
 
 
 
 
 
626
  }
627
 
628
  if ($plan->has_free_trial()) {
@@ -634,6 +647,24 @@ class Stripe extends AbstractPaymentMethod
634
  }
635
  }
636
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
637
  $create_session_args = apply_filters('ppress_stripe_create_session_args', $create_session_args, $this);
638
 
639
  if (PaymentHelpers::has_application_fee()) {
@@ -650,6 +681,7 @@ class Stripe extends AbstractPaymentMethod
650
  $checkoutResponse = new CheckoutResponse();
651
 
652
  if (isset($session_response['url'])) {
 
653
  return $checkoutResponse
654
  ->set_is_success(true)
655
  ->set_redirect_url($session_response['url'])
@@ -682,6 +714,8 @@ class Stripe extends AbstractPaymentMethod
682
 
683
  try {
684
 
 
 
685
  $customer_id = PaymentHelpers::get_stripe_customer_id($customer);
686
 
687
  if (empty($_POST['ppress_stripe_payment_method'])) {
@@ -721,6 +755,8 @@ class Stripe extends AbstractPaymentMethod
721
 
722
  $signup_fee = Calculator::init($order->total)->minus($subscription->recurring_amount)->val();
723
 
 
 
724
  if ($plan->has_free_trial()) {
725
 
726
  $signup_fee = $order->total;
@@ -732,7 +768,7 @@ class Stripe extends AbstractPaymentMethod
732
  }
733
  }
734
 
735
- if ($plan->has_signup_fee()) {
736
 
737
  $create_subscription_args['add_invoice_items'][] = [
738
  'quantity' => 1,
@@ -744,6 +780,22 @@ class Stripe extends AbstractPaymentMethod
744
  ];
745
  }
746
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
747
  $create_subscription_args = apply_filters('ppress_stripe_create_subscription_args', $create_subscription_args, $this);
748
 
749
  if (PaymentHelpers::has_application_fee()) {
@@ -758,10 +810,13 @@ class Stripe extends AbstractPaymentMethod
758
  $subscription->update_profile_id($response['id']);
759
  }
760
 
 
 
 
 
761
  return (new CheckoutResponse())
762
  ->set_is_success(true)
763
  ->set_gateway_response($response);
764
-
765
  }
766
 
767
  $create_payment_intent_args = [
578
  {
579
  try {
580
 
581
+ PaymentHelpers::empty_coupon_bucket();
582
+
583
  $product_price = PaymentHelpers::get_product_price($subscription, $this->get_statement_descriptor());
584
 
585
  if (is_wp_error($product_price)) {
615
 
616
  if ($plan->has_signup_fee()) {
617
 
618
+ $signup_fee = $plan->has_free_trial() ? $order->total : '0';
619
+
620
+ if (
621
+ ! $plan->has_free_trial() &&
622
+ Calculator::init($order->total)->isGreaterThan($subscription->recurring_amount)) {
623
+ $signup_fee = Calculator::init($order->total)->minus($subscription->recurring_amount)->val();
624
+ }
625
+
626
+ if (Calculator::init($signup_fee)->isGreaterThanZero()) {
627
+
628
+ $create_session_args['line_items'][] = [
629
+ 'quantity' => 1,
630
+ 'price_data' => [
631
+ 'unit_amount' => PaymentHelpers::process_amount($signup_fee),
632
+ 'currency' => ppress_get_currency(),
633
+ 'product_data' => [
634
+ 'name' => PaymentHelpers::get_signup_fee_label(),
635
+ ],
636
+ ]
637
+ ];
638
+ }
639
  }
640
 
641
  if ($plan->has_free_trial()) {
647
  }
648
  }
649
 
650
+ if (
651
+ ! $plan->has_free_trial() &&
652
+ Calculator::init($order->total)->isLessThan($subscription->recurring_amount)
653
+ ) {
654
+
655
+ $discount_amount = Calculator::init($subscription->recurring_amount)->minus($order->total)->val();
656
+
657
+ $stripe_coupon = APIClass::stripeClient()->coupons->create([
658
+ 'amount_off' => PaymentHelpers::process_amount($discount_amount),
659
+ 'currency' => ppress_get_currency(),
660
+ 'duration' => 'once'
661
+ ])->toArray();
662
+
663
+ $create_session_args['discounts'][] = ['coupon' => $stripe_coupon['id']];
664
+
665
+ PaymentHelpers::add_coupon_to_bucket($stripe_coupon['id']);
666
+ }
667
+
668
  $create_session_args = apply_filters('ppress_stripe_create_session_args', $create_session_args, $this);
669
 
670
  if (PaymentHelpers::has_application_fee()) {
681
  $checkoutResponse = new CheckoutResponse();
682
 
683
  if (isset($session_response['url'])) {
684
+
685
  return $checkoutResponse
686
  ->set_is_success(true)
687
  ->set_redirect_url($session_response['url'])
714
 
715
  try {
716
 
717
+ $stripe_coupon = false;
718
+
719
  $customer_id = PaymentHelpers::get_stripe_customer_id($customer);
720
 
721
  if (empty($_POST['ppress_stripe_payment_method'])) {
755
 
756
  $signup_fee = Calculator::init($order->total)->minus($subscription->recurring_amount)->val();
757
 
758
+ // if there is a free trial, no amount is charged hence order total is 0
759
+ // however if the plan has a signup fee, it becomes the order total hence the below code.
760
  if ($plan->has_free_trial()) {
761
 
762
  $signup_fee = $order->total;
768
  }
769
  }
770
 
771
+ if ($plan->has_signup_fee() && Calculator::init($signup_fee)->isGreaterThanZero()) {
772
 
773
  $create_subscription_args['add_invoice_items'][] = [
774
  'quantity' => 1,
780
  ];
781
  }
782
 
783
+ if (
784
+ ! $plan->has_free_trial() &&
785
+ Calculator::init($order->total)->isLessThan($subscription->recurring_amount)
786
+ ) {
787
+
788
+ $discount_amount = Calculator::init($subscription->recurring_amount)->minus($order->total)->val();
789
+
790
+ $stripe_coupon = APIClass::stripeClient()->coupons->create([
791
+ 'amount_off' => PaymentHelpers::process_amount($discount_amount),
792
+ 'currency' => ppress_get_currency(),
793
+ 'duration' => 'once'
794
+ ])->toArray();
795
+
796
+ $create_subscription_args['coupon'] = $stripe_coupon['id'];
797
+ }
798
+
799
  $create_subscription_args = apply_filters('ppress_stripe_create_subscription_args', $create_subscription_args, $this);
800
 
801
  if (PaymentHelpers::has_application_fee()) {
810
  $subscription->update_profile_id($response['id']);
811
  }
812
 
813
+ if (false !== $stripe_coupon) {
814
+ PaymentHelpers::delete_coupon($stripe_coupon['id']);
815
+ }
816
+
817
  return (new CheckoutResponse())
818
  ->set_is_success(true)
819
  ->set_gateway_response($response);
 
820
  }
821
 
822
  $create_payment_intent_args = [
src/Membership/Repositories/CouponRepository.php CHANGED
@@ -27,8 +27,8 @@ class CouponRepository extends BaseRepository
27
  $this->table,
28
  array(
29
  'code' => $data->code,
30
- 'type' => $data->type,
31
  'description' => $data->description,
 
32
  'coupon_application' => $data->coupon_application,
33
  'amount' => $data->amount,
34
  'unit' => $data->unit,
@@ -67,8 +67,8 @@ class CouponRepository extends BaseRepository
67
  $this->table,
68
  [
69
  'code' => $data->code,
70
- 'type' => $data->type,
71
  'description' => $data->description,
 
72
  'coupon_application' => $data->coupon_application,
73
  'amount' => $data->amount,
74
  'unit' => $data->unit,
27
  $this->table,
28
  array(
29
  'code' => $data->code,
 
30
  'description' => $data->description,
31
+ 'coupon_type' => $data->coupon_type,
32
  'coupon_application' => $data->coupon_application,
33
  'amount' => $data->amount,
34
  'unit' => $data->unit,
67
  $this->table,
68
  [
69
  'code' => $data->code,
 
70
  'description' => $data->description,
71
+ 'coupon_type' => $data->coupon_type,
72
  'coupon_application' => $data->coupon_application,
73
  'amount' => $data->amount,
74
  'unit' => $data->unit,
src/Membership/Repositories/PlanRepository.php CHANGED
@@ -30,6 +30,7 @@ class PlanRepository extends BaseRepository
30
  array(
31
  'name' => $data->name,
32
  'description' => $data->description,
 
33
  'price' => $data->price,
34
  'billing_frequency' => $data->billing_frequency,
35
  'subscription_length' => $data->subscription_length,
@@ -38,6 +39,7 @@ class PlanRepository extends BaseRepository
38
  'free_trial' => $data->free_trial
39
  ),
40
  array(
 
41
  '%s',
42
  '%s',
43
  '%s',
@@ -67,6 +69,7 @@ class PlanRepository extends BaseRepository
67
  [
68
  'name' => $data->name,
69
  'description' => $data->description,
 
70
  'price' => $data->price,
71
  'billing_frequency' => $data->billing_frequency,
72
  'subscription_length' => $data->subscription_length,
@@ -76,6 +79,7 @@ class PlanRepository extends BaseRepository
76
  ],
77
  ['id' => $data->id],
78
  [
 
79
  '%s',
80
  '%s',
81
  '%s',
30
  array(
31
  'name' => $data->name,
32
  'description' => $data->description,
33
+ 'order_note' => $data->order_note,
34
  'price' => $data->price,
35
  'billing_frequency' => $data->billing_frequency,
36
  'subscription_length' => $data->subscription_length,
39
  'free_trial' => $data->free_trial
40
  ),
41
  array(
42
+ '%s',
43
  '%s',
44
  '%s',
45
  '%s',
69
  [
70
  'name' => $data->name,
71
  'description' => $data->description,
72
+ 'order_note' => $data->order_note,
73
  'price' => $data->price,
74
  'billing_frequency' => $data->billing_frequency,
75
  'subscription_length' => $data->subscription_length,
79
  ],
80
  ['id' => $data->id],
81
  [
82
+ '%s',
83
  '%s',
84
  '%s',
85
  '%s',
src/Membership/Services/OrderService.php CHANGED
@@ -123,7 +123,8 @@ class OrderService
123
 
124
  if ($couponObj->exists()) {
125
 
126
- $discount_amount = $couponObj->amount;
 
127
  $recurring_discount_amount = $discount_amount;
128
 
129
  if ($couponObj->unit == CouponUnit::PERCENTAGE) {
@@ -141,8 +142,7 @@ class OrderService
141
  ->val();
142
  }
143
 
144
- if ($planObj->is_recurring()) {
145
-
146
  $recurring_amount = Calculator::init($recurring_amount)->minus($recurring_discount_amount)->val();
147
  }
148
  }
123
 
124
  if ($couponObj->exists()) {
125
 
126
+ $discount_amount = $couponObj->amount;
127
+
128
  $recurring_discount_amount = $discount_amount;
129
 
130
  if ($couponObj->unit == CouponUnit::PERCENTAGE) {
142
  ->val();
143
  }
144
 
145
+ if ($planObj->is_recurring() && $couponObj->is_recurring()) {
 
146
  $recurring_amount = Calculator::init($recurring_amount)->minus($recurring_discount_amount)->val();
147
  }
148
  }
src/ShortcodeParser/MyAccount/view-order.tmpl.php CHANGED
@@ -27,8 +27,8 @@ $customer_id = CustomerFactory::fromUserId(get_current_user_id())->id;
27
 
28
  else :
29
  $plan = ppress_get_plan($order->plan_id);
30
-
31
  $vat_number = $order->get_customer_tax_id();
 
32
  ?>
33
 
34
  <div class="profilepress-myaccount-order-details-wrap">
@@ -54,6 +54,12 @@ $customer_id = CustomerFactory::fromUserId(get_current_user_id())->id;
54
  <td><?= wpautop($plan->description) ?></td>
55
  </tr>
56
  <?php endif; ?>
 
 
 
 
 
 
57
  <tr>
58
  <td><?php esc_html_e('Order Status', 'wp-user-avatar'); ?></td>
59
  <td>
27
 
28
  else :
29
  $plan = ppress_get_plan($order->plan_id);
 
30
  $vat_number = $order->get_customer_tax_id();
31
+ $plan_purchase_note = $order->get_plan_purchase_note();
32
  ?>
33
 
34
  <div class="profilepress-myaccount-order-details-wrap">
54
  <td><?= wpautop($plan->description) ?></td>
55
  </tr>
56
  <?php endif; ?>
57
+ <?php if ($order->is_completed() && ! empty($plan_purchase_note)): ?>
58
+ <tr>
59
+ <td><?php esc_html_e('Purchase Note', 'wp-user-avatar'); ?></td>
60
+ <td><?= $plan_purchase_note ?></td>
61
+ </tr>
62
+ <?php endif; ?>
63
  <tr>
64
  <td><?php esc_html_e('Order Status', 'wp-user-avatar'); ?></td>
65
  <td>
third-party/vendor/autoload.php CHANGED
@@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
9
 
10
  require_once __DIR__ . '/composer/autoload_real.php';
11
 
12
- return ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39::getLoader();
9
 
10
  require_once __DIR__ . '/composer/autoload_real.php';
11
 
12
+ return ComposerAutoloaderInitb725de4e20fd550cc55f90c2d51990ec::getLoader();
third-party/vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39
6
  {
7
  private static $loader;
8
 
@@ -24,19 +24,19 @@ class ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
29
- spl_autoload_unregister(array('ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39', 'loadClassLoader'));
30
 
31
  require __DIR__ . '/autoload_static.php';
32
- call_user_func(\Composer\Autoload\ComposerStaticInitf2f3395caeaf90f93c6d35871d86ec39::getInitializer($loader));
33
 
34
  $loader->setClassMapAuthoritative(true);
35
  $loader->register(true);
36
 
37
- $includeFiles = \Composer\Autoload\ComposerStaticInitf2f3395caeaf90f93c6d35871d86ec39::$files;
38
  foreach ($includeFiles as $fileIdentifier => $file) {
39
- composerRequiref2f3395caeaf90f93c6d35871d86ec39($fileIdentifier, $file);
40
  }
41
 
42
  return $loader;
@@ -48,7 +48,7 @@ class ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39
48
  * @param string $file
49
  * @return void
50
  */
51
- function composerRequiref2f3395caeaf90f93c6d35871d86ec39($fileIdentifier, $file)
52
  {
53
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
54
  $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitb725de4e20fd550cc55f90c2d51990ec
6
  {
7
  private static $loader;
8
 
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
+ spl_autoload_register(array('ComposerAutoloaderInitb725de4e20fd550cc55f90c2d51990ec', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInitb725de4e20fd550cc55f90c2d51990ec', 'loadClassLoader'));
30
 
31
  require __DIR__ . '/autoload_static.php';
32
+ call_user_func(\Composer\Autoload\ComposerStaticInitb725de4e20fd550cc55f90c2d51990ec::getInitializer($loader));
33
 
34
  $loader->setClassMapAuthoritative(true);
35
  $loader->register(true);
36
 
37
+ $includeFiles = \Composer\Autoload\ComposerStaticInitb725de4e20fd550cc55f90c2d51990ec::$files;
38
  foreach ($includeFiles as $fileIdentifier => $file) {
39
+ composerRequireb725de4e20fd550cc55f90c2d51990ec($fileIdentifier, $file);
40
  }
41
 
42
  return $loader;
48
  * @param string $file
49
  * @return void
50
  */
51
+ function composerRequireb725de4e20fd550cc55f90c2d51990ec($fileIdentifier, $file)
52
  {
53
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
54
  $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
third-party/vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitf2f3395caeaf90f93c6d35871d86ec39
8
  {
9
  public static $files = array (
10
  'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
@@ -563,9 +563,9 @@ class ComposerStaticInitf2f3395caeaf90f93c6d35871d86ec39
563
  public static function getInitializer(ClassLoader $loader)
564
  {
565
  return \Closure::bind(function () use ($loader) {
566
- $loader->prefixLengthsPsr4 = ComposerStaticInitf2f3395caeaf90f93c6d35871d86ec39::$prefixLengthsPsr4;
567
- $loader->prefixDirsPsr4 = ComposerStaticInitf2f3395caeaf90f93c6d35871d86ec39::$prefixDirsPsr4;
568
- $loader->classMap = ComposerStaticInitf2f3395caeaf90f93c6d35871d86ec39::$classMap;
569
 
570
  }, null, ClassLoader::class);
571
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInitb725de4e20fd550cc55f90c2d51990ec
8
  {
9
  public static $files = array (
10
  'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
563
  public static function getInitializer(ClassLoader $loader)
564
  {
565
  return \Closure::bind(function () use ($loader) {
566
+ $loader->prefixLengthsPsr4 = ComposerStaticInitb725de4e20fd550cc55f90c2d51990ec::$prefixLengthsPsr4;
567
+ $loader->prefixDirsPsr4 = ComposerStaticInitb725de4e20fd550cc55f90c2d51990ec::$prefixDirsPsr4;
568
+ $loader->classMap = ComposerStaticInitb725de4e20fd550cc55f90c2d51990ec::$classMap;
569
 
570
  }, null, ClassLoader::class);
571
  }
third-party/vendor/composer/installed.json CHANGED
@@ -157,17 +157,17 @@
157
  },
158
  {
159
  "name": "nesbot\/carbon",
160
- "version": "2.61.0",
161
- "version_normalized": "2.61.0.0",
162
  "source": {
163
  "type": "git",
164
  "url": "https:\/\/github.com\/briannesbitt\/Carbon.git",
165
- "reference": "bdf4f4fe3a3eac4de84dbec0738082a862c68ba6"
166
  },
167
  "dist": {
168
  "type": "zip",
169
- "url": "https:\/\/api.github.com\/repos\/briannesbitt\/Carbon\/zipball\/bdf4f4fe3a3eac4de84dbec0738082a862c68ba6",
170
- "reference": "bdf4f4fe3a3eac4de84dbec0738082a862c68ba6",
171
  "shasum": ""
172
  },
173
  "require": {
@@ -190,7 +190,7 @@
190
  "phpunit\/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
191
  "squizlabs\/php_codesniffer": "^3.4"
192
  },
193
- "time": "2022-08-06T12:41:24+00:00",
194
  "bin": [
195
  "bin\/carbon"
196
  ],
157
  },
158
  {
159
  "name": "nesbot\/carbon",
160
+ "version": "2.62.1",
161
+ "version_normalized": "2.62.1.0",
162
  "source": {
163
  "type": "git",
164
  "url": "https:\/\/github.com\/briannesbitt\/Carbon.git",
165
+ "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a"
166
  },
167
  "dist": {
168
  "type": "zip",
169
+ "url": "https:\/\/api.github.com\/repos\/briannesbitt\/Carbon\/zipball\/01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a",
170
+ "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a",
171
  "shasum": ""
172
  },
173
  "require": {
190
  "phpunit\/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
191
  "squizlabs\/php_codesniffer": "^3.4"
192
  },
193
+ "time": "2022-09-02T07:48:13+00:00",
194
  "bin": [
195
  "bin\/carbon"
196
  ],
third-party/vendor/composer/installed.php CHANGED
@@ -2,4 +2,4 @@
2
 
3
  namespace ProfilePressVendor;
4
 
5
- return array('root' => array('name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => 'caac8c033bc1c571a6bd7c123871987a912f8042', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => 'caac8c033bc1c571a6bd7c123871987a912f8042', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'barryvdh/composer-cleanup-plugin' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '74d878666436c99f5b671b90312e85479afeedb0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../barryvdh/composer-cleanup-plugin', 'aliases' => array(0 => '0.1.x-dev'), 'dev_requirement' => \false), 'brick/math' => array('pretty_version' => '0.9.3', 'version' => '0.9.3.0', 'reference' => 'ca57d18f028f84f777b2168cd1911b0dee2343ae', 'type' => 'library', 'install_path' => __DIR__ . '/../brick/math', 'aliases' => array(), 'dev_requirement' => \false), 'collizo4sky/persist-admin-notices-dismissal' => array('pretty_version' => '1.4.4', 'version' => '1.4.4.0', 'reference' => '900739eb6b0ec0210465f5983a6d4e0e420289e4', 'type' => 'library', 'install_path' => __DIR__ . '/../collizo4sky/persist-admin-notices-dismissal', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '2.61.0', 'version' => '2.61.0.0', 'reference' => 'bdf4f4fe3a3eac4de84dbec0738082a862c68ba6', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'pelago/emogrifier' => array('pretty_version' => 'v3.1.0', 'version' => '3.1.0.0', 'reference' => 'f6a5c7d44612d86c3901c93f1592f5440e6b2cd8', 'type' => 'library', 'install_path' => __DIR__ . '/../pelago/emogrifier', 'aliases' => array(), 'dev_requirement' => \false), 'sniccowp/php-scoper-wordpress-excludes' => array('pretty_version' => '6.0.1', 'version' => '6.0.1.0', 'reference' => '6fce87f9c5463223013745ec5489967198c11348', 'type' => 'library', 'install_path' => __DIR__ . '/../sniccowp/php-scoper-wordpress-excludes', 'aliases' => array(), 'dev_requirement' => \true), 'stripe/stripe-php' => array('pretty_version' => 'v7.128.0', 'version' => '7.128.0.0', 'reference' => 'c704949c49b72985c76cc61063aa26fefbd2724e', 'type' => 'library', 'install_path' => __DIR__ . '/../stripe/stripe-php', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/css-selector' => array('pretty_version' => 'v4.4.44', 'version' => '4.4.44.0', 'reference' => 'bd0a6737e48de45b4b0b7b6fc98c78404ddceaed', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/css-selector', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v4.4.45', 'version' => '4.4.45.0', 'reference' => '4e6b4c0dbeb04d6f004ed7f43eb0905ce8396def', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => 'v1.1.13', 'version' => '1.1.13.0', 'reference' => '7462e5c4cb8b9cd152f992e8f10963b5641921f6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0'))));
2
 
3
  namespace ProfilePressVendor;
4
 
5
+ return array('root' => array('name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '456f1d862ee3777defa52d8b92f55ea139dcfc79', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '456f1d862ee3777defa52d8b92f55ea139dcfc79', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'barryvdh/composer-cleanup-plugin' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '74d878666436c99f5b671b90312e85479afeedb0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../barryvdh/composer-cleanup-plugin', 'aliases' => array(0 => '0.1.x-dev'), 'dev_requirement' => \false), 'brick/math' => array('pretty_version' => '0.9.3', 'version' => '0.9.3.0', 'reference' => 'ca57d18f028f84f777b2168cd1911b0dee2343ae', 'type' => 'library', 'install_path' => __DIR__ . '/../brick/math', 'aliases' => array(), 'dev_requirement' => \false), 'collizo4sky/persist-admin-notices-dismissal' => array('pretty_version' => '1.4.4', 'version' => '1.4.4.0', 'reference' => '900739eb6b0ec0210465f5983a6d4e0e420289e4', 'type' => 'library', 'install_path' => __DIR__ . '/../collizo4sky/persist-admin-notices-dismissal', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '2.62.1', 'version' => '2.62.1.0', 'reference' => '01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'pelago/emogrifier' => array('pretty_version' => 'v3.1.0', 'version' => '3.1.0.0', 'reference' => 'f6a5c7d44612d86c3901c93f1592f5440e6b2cd8', 'type' => 'library', 'install_path' => __DIR__ . '/../pelago/emogrifier', 'aliases' => array(), 'dev_requirement' => \false), 'sniccowp/php-scoper-wordpress-excludes' => array('pretty_version' => '6.0.1', 'version' => '6.0.1.0', 'reference' => '6fce87f9c5463223013745ec5489967198c11348', 'type' => 'library', 'install_path' => __DIR__ . '/../sniccowp/php-scoper-wordpress-excludes', 'aliases' => array(), 'dev_requirement' => \true), 'stripe/stripe-php' => array('pretty_version' => 'v7.128.0', 'version' => '7.128.0.0', 'reference' => 'c704949c49b72985c76cc61063aa26fefbd2724e', 'type' => 'library', 'install_path' => __DIR__ . '/../stripe/stripe-php', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/css-selector' => array('pretty_version' => 'v4.4.44', 'version' => '4.4.44.0', 'reference' => 'bd0a6737e48de45b4b0b7b6fc98c78404ddceaed', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/css-selector', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v4.4.45', 'version' => '4.4.45.0', 'reference' => '4e6b4c0dbeb04d6f004ed7f43eb0905ce8396def', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => 'v1.1.13', 'version' => '1.1.13.0', 'reference' => '7462e5c4cb8b9cd152f992e8f10963b5641921f6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0'))));
third-party/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php CHANGED
@@ -349,7 +349,7 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
349
  * @param string $source
350
  * @param string $target
351
  *
352
- * @return int|null
353
  */
354
  public static function getFactor($source, $target)
355
  {
@@ -372,7 +372,7 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
372
  * @param string $source
373
  * @param string $target
374
  *
375
- * @return int|null
376
  */
377
  public static function getFactorWithDefault($source, $target)
378
  {
@@ -386,7 +386,7 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
386
  /**
387
  * Returns current config for days per week.
388
  *
389
- * @return int
390
  */
391
  public static function getDaysPerWeek()
392
  {
@@ -395,7 +395,7 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
395
  /**
396
  * Returns current config for hours per day.
397
  *
398
- * @return int
399
  */
400
  public static function getHoursPerDay()
401
  {
@@ -404,7 +404,7 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
404
  /**
405
  * Returns current config for minutes per hour.
406
  *
407
- * @return int
408
  */
409
  public static function getMinutesPerHour()
410
  {
@@ -413,7 +413,7 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
413
  /**
414
  * Returns current config for seconds per minute.
415
  *
416
- * @return int
417
  */
418
  public static function getSecondsPerMinute()
419
  {
@@ -422,7 +422,7 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
422
  /**
423
  * Returns current config for microseconds per second.
424
  *
425
- * @return int
426
  */
427
  public static function getMillisecondsPerSecond()
428
  {
@@ -431,7 +431,7 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
431
  /**
432
  * Returns current config for microseconds per second.
433
  *
434
- * @return int
435
  */
436
  public static function getMicrosecondsPerMillisecond()
437
  {
@@ -880,10 +880,10 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
880
  case 'microExcludeMilli':
881
  return (int) \round($this->f * Carbon::MICROSECONDS_PER_SECOND) % Carbon::MICROSECONDS_PER_MILLISECOND;
882
  case 'weeks':
883
- return (int) ($this->d / static::getDaysPerWeek());
884
  case 'daysExcludeWeeks':
885
  case 'dayzExcludeWeeks':
886
- return $this->d % static::getDaysPerWeek();
887
  case 'locale':
888
  return $this->getTranslatorLocale();
889
  default:
@@ -925,14 +925,14 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
925
  $this->m = $value;
926
  break;
927
  case 'week':
928
- $this->d = $value * static::getDaysPerWeek();
929
  break;
930
  case 'day':
931
  $this->d = $value;
932
  break;
933
  case 'daysexcludeweek':
934
  case 'dayzexcludeweek':
935
- $this->d = $this->weeks * static::getDaysPerWeek() + $value;
936
  break;
937
  case 'hour':
938
  $this->h = $value;
@@ -1784,9 +1784,11 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
1784
  $originalData = $this->toArray();
1785
  $originalData['milliseconds'] = (int) ($originalData['microseconds'] / static::getMicrosecondsPerMillisecond());
1786
  $originalData['microseconds'] = $originalData['microseconds'] % static::getMicrosecondsPerMillisecond();
1787
- $originalData['daysExcludeWeeks'] = $originalData['days'];
 
1788
  unset($originalData['days']);
1789
  $newData = $originalData;
 
1790
  foreach (self::getFlipCascadeFactors() as $source => [$target, $factor]) {
1791
  foreach (['source', 'target'] as $key) {
1792
  if (${$key} === 'dayz') {
@@ -1794,9 +1796,23 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
1794
  }
1795
  }
1796
  $value = $newData[$source];
1797
- $modulo = ($factor + $value % $factor) % $factor;
1798
  $newData[$source] = $modulo;
1799
  $newData[$target] += ($value - $modulo) / $factor;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1800
  }
1801
  $positive = null;
1802
  if (!$deep) {
@@ -1862,8 +1878,8 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
1862
  $cumulativeFactor = 0;
1863
  $unitFound = \false;
1864
  $factors = self::getFlipCascadeFactors();
1865
- $daysPerWeek = static::getDaysPerWeek();
1866
- $values = ['years' => $this->years, 'months' => $this->months, 'weeks' => (int) ($this->d / $daysPerWeek), 'dayz' => $this->d % $daysPerWeek, 'hours' => $this->hours, 'minutes' => $this->minutes, 'seconds' => $this->seconds, 'milliseconds' => (int) ($this->microseconds / Carbon::MICROSECONDS_PER_MILLISECOND), 'microseconds' => $this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND];
1867
  if (isset($factors['dayz']) && $factors['dayz'][0] !== 'weeks') {
1868
  $values['dayz'] += $values['weeks'] * $daysPerWeek;
1869
  $values['weeks'] = 0;
@@ -1904,9 +1920,10 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
1904
  $result *= -1;
1905
  }
1906
  if ($unit === 'weeks') {
1907
- return $result / $daysPerWeek;
1908
  }
1909
- return $result;
 
1910
  }
1911
  /**
1912
  * Determines if the instance is equal to another
349
  * @param string $source
350
  * @param string $target
351
  *
352
+ * @return int|float|null
353
  */
354
  public static function getFactor($source, $target)
355
  {
372
  * @param string $source
373
  * @param string $target
374
  *
375
+ * @return int|float|null
376
  */
377
  public static function getFactorWithDefault($source, $target)
378
  {
386
  /**
387
  * Returns current config for days per week.
388
  *
389
+ * @return int|float
390
  */
391
  public static function getDaysPerWeek()
392
  {
395
  /**
396
  * Returns current config for hours per day.
397
  *
398
+ * @return int|float
399
  */
400
  public static function getHoursPerDay()
401
  {
404
  /**
405
  * Returns current config for minutes per hour.
406
  *
407
+ * @return int|float
408
  */
409
  public static function getMinutesPerHour()
410
  {
413
  /**
414
  * Returns current config for seconds per minute.
415
  *
416
+ * @return int|float
417
  */
418
  public static function getSecondsPerMinute()
419
  {
422
  /**
423
  * Returns current config for microseconds per second.
424
  *
425
+ * @return int|float
426
  */
427
  public static function getMillisecondsPerSecond()
428
  {
431
  /**
432
  * Returns current config for microseconds per second.
433
  *
434
+ * @return int|float
435
  */
436
  public static function getMicrosecondsPerMillisecond()
437
  {
880
  case 'microExcludeMilli':
881
  return (int) \round($this->f * Carbon::MICROSECONDS_PER_SECOND) % Carbon::MICROSECONDS_PER_MILLISECOND;
882
  case 'weeks':
883
+ return (int) ($this->d / (int) static::getDaysPerWeek());
884
  case 'daysExcludeWeeks':
885
  case 'dayzExcludeWeeks':
886
+ return $this->d % (int) static::getDaysPerWeek();
887
  case 'locale':
888
  return $this->getTranslatorLocale();
889
  default:
925
  $this->m = $value;
926
  break;
927
  case 'week':
928
+ $this->d = $value * (int) static::getDaysPerWeek();
929
  break;
930
  case 'day':
931
  $this->d = $value;
932
  break;
933
  case 'daysexcludeweek':
934
  case 'dayzexcludeweek':
935
+ $this->d = $this->weeks * (int) static::getDaysPerWeek() + $value;
936
  break;
937
  case 'hour':
938
  $this->h = $value;
1784
  $originalData = $this->toArray();
1785
  $originalData['milliseconds'] = (int) ($originalData['microseconds'] / static::getMicrosecondsPerMillisecond());
1786
  $originalData['microseconds'] = $originalData['microseconds'] % static::getMicrosecondsPerMillisecond();
1787
+ $originalData['weeks'] = (int) ($this->d / static::getDaysPerWeek());
1788
+ $originalData['daysExcludeWeeks'] = \fmod($this->d, static::getDaysPerWeek());
1789
  unset($originalData['days']);
1790
  $newData = $originalData;
1791
+ $previous = [];
1792
  foreach (self::getFlipCascadeFactors() as $source => [$target, $factor]) {
1793
  foreach (['source', 'target'] as $key) {
1794
  if (${$key} === 'dayz') {
1796
  }
1797
  }
1798
  $value = $newData[$source];
1799
+ $modulo = \fmod($factor + \fmod($value, $factor), $factor);
1800
  $newData[$source] = $modulo;
1801
  $newData[$target] += ($value - $modulo) / $factor;
1802
+ $decimalPart = \fmod($newData[$source], 1);
1803
+ if ($decimalPart !== 0.0) {
1804
+ $unit = $source;
1805
+ foreach ($previous as [$subUnit, $subFactor]) {
1806
+ $newData[$unit] -= $decimalPart;
1807
+ $newData[$subUnit] += $decimalPart * $subFactor;
1808
+ $decimalPart = \fmod($newData[$subUnit], 1);
1809
+ if ($decimalPart === 0.0) {
1810
+ break;
1811
+ }
1812
+ $unit = $subUnit;
1813
+ }
1814
+ }
1815
+ \array_unshift($previous, [$source, $factor]);
1816
  }
1817
  $positive = null;
1818
  if (!$deep) {
1878
  $cumulativeFactor = 0;
1879
  $unitFound = \false;
1880
  $factors = self::getFlipCascadeFactors();
1881
+ $daysPerWeek = (int) static::getDaysPerWeek();
1882
+ $values = ['years' => $this->years, 'months' => $this->months, 'weeks' => (int) ($this->d / $daysPerWeek), 'dayz' => \fmod($this->d, $daysPerWeek), 'hours' => $this->hours, 'minutes' => $this->minutes, 'seconds' => $this->seconds, 'milliseconds' => (int) ($this->microseconds / Carbon::MICROSECONDS_PER_MILLISECOND), 'microseconds' => $this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND];
1883
  if (isset($factors['dayz']) && $factors['dayz'][0] !== 'weeks') {
1884
  $values['dayz'] += $values['weeks'] * $daysPerWeek;
1885
  $values['weeks'] = 0;
1920
  $result *= -1;
1921
  }
1922
  if ($unit === 'weeks') {
1923
+ $result /= $daysPerWeek;
1924
  }
1925
+ // Cast as int numbers with no decimal part
1926
+ return \fmod($result, 1) === 0.0 ? (int) $result : $result;
1927
  }
1928
  /**
1929
  * Determines if the instance is equal to another
third-party/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php CHANGED
@@ -138,6 +138,20 @@ trait Converter
138
  {
139
  return $this->rawFormat('M j, Y');
140
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  /**
142
  * Format the instance as time
143
  *
138
  {
139
  return $this->rawFormat('M j, Y');
140
  }
141
+ /**
142
+ * Format the instance with the day, and a readable date
143
+ *
144
+ * @example
145
+ * ```
146
+ * echo Carbon::now()->toFormattedDayDateString();
147
+ * ```
148
+ *
149
+ * @return string
150
+ */
151
+ public function toFormattedDayDateString() : string
152
+ {
153
+ return $this->rawFormat('D, M j, Y');
154
+ }
155
  /**
156
  * Format the instance as time
157
  *
third-party/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php CHANGED
@@ -700,13 +700,15 @@ trait Creator
700
  /**
701
  * Set last errors.
702
  *
703
- * @param array $lastErrors
704
  *
705
  * @return void
706
  */
707
- private static function setLastErrors(array $lastErrors)
708
  {
709
- static::$lastErrors = $lastErrors;
 
 
710
  }
711
  /**
712
  * {@inheritdoc}
700
  /**
701
  * Set last errors.
702
  *
703
+ * @param array|bool $lastErrors
704
  *
705
  * @return void
706
  */
707
+ private static function setLastErrors($lastErrors)
708
  {
709
+ if (\is_array($lastErrors) || $lastErrors === \false) {
710
+ static::$lastErrors = \is_array($lastErrors) ? $lastErrors : ['warning_count' => 0, 'warnings' => [], 'error_count' => 0, 'errors' => []];
711
+ }
712
  }
713
  /**
714
  * {@inheritdoc}
third-party/vendor/scoper-autoload.php CHANGED
@@ -6,8 +6,8 @@ $loader = require_once __DIR__.'/autoload.php';
6
 
7
  // Exposed classes. For more information see:
8
  // https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#exposing-classes
9
- if (!class_exists('ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39', false) && !interface_exists('ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39', false) && !trait_exists('ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39', false)) {
10
- spl_autoload_call('ProfilePressVendor\ComposerAutoloaderInitf2f3395caeaf90f93c6d35871d86ec39');
11
  }
12
  if (!class_exists('PAnD', false) && !interface_exists('PAnD', false) && !trait_exists('PAnD', false)) {
13
  spl_autoload_call('ProfilePressVendor\PAnD');
6
 
7
  // Exposed classes. For more information see:
8
  // https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#exposing-classes
9
+ if (!class_exists('ComposerAutoloaderInitb725de4e20fd550cc55f90c2d51990ec', false) && !interface_exists('ComposerAutoloaderInitb725de4e20fd550cc55f90c2d51990ec', false) && !trait_exists('ComposerAutoloaderInitb725de4e20fd550cc55f90c2d51990ec', false)) {
10
+ spl_autoload_call('ProfilePressVendor\ComposerAutoloaderInitb725de4e20fd550cc55f90c2d51990ec');
11
  }
12
  if (!class_exists('PAnD', false) && !interface_exists('PAnD', false) && !trait_exists('PAnD', false)) {
13
  spl_autoload_call('ProfilePressVendor\PAnD');
wp-user-avatar.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: ProfilePress
4
  * Plugin URI: https://profilepress.com
5
  * Description: The modern WordPress membership and user profile plugin.
6
- * Version: 4.1.2
7
  * Author: ProfilePress Membership Team
8
  * Author URI: https://profilepress.com
9
  * Text Domain: wp-user-avatar
@@ -13,7 +13,7 @@
13
  defined('ABSPATH') or die("No script kiddies please!");
14
 
15
  define('PROFILEPRESS_SYSTEM_FILE_PATH', __FILE__);
16
- define('PPRESS_VERSION_NUMBER', '4.1.2');
17
 
18
  if ( ! defined('PPRESS_STRIPE_API_VERSION')) {
19
  define('PPRESS_STRIPE_API_VERSION', '2020-08-27');
3
  * Plugin Name: ProfilePress
4
  * Plugin URI: https://profilepress.com
5
  * Description: The modern WordPress membership and user profile plugin.
6
+ * Version: 4.1.3
7
  * Author: ProfilePress Membership Team
8
  * Author URI: https://profilepress.com
9
  * Text Domain: wp-user-avatar
13
  defined('ABSPATH') or die("No script kiddies please!");
14
 
15
  define('PROFILEPRESS_SYSTEM_FILE_PATH', __FILE__);
16
+ define('PPRESS_VERSION_NUMBER', '4.1.3');
17
 
18
  if ( ! defined('PPRESS_STRIPE_API_VERSION')) {
19
  define('PPRESS_STRIPE_API_VERSION', '2020-08-27');