From c991c6ac2d5f2e4cd8c476284d21e6a711c0ad1f Mon Sep 17 00:00:00 2001 From: Champ Camba Date: Sat, 24 Mar 2018 22:36:12 +0800 Subject: [PATCH 01/29] Minify updated scripts --- assets/js/um-conditional.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/um-conditional.min.js b/assets/js/um-conditional.min.js index 8ca2395e..53af0c12 100644 --- a/assets/js/um-conditional.min.js +++ b/assets/js/um-conditional.min.js @@ -1 +1 @@ -jQuery(document).ready(function(){function e(e){var i="",t=n(e);switch(t){case"text":case"number":case"date":case"textarea":case"select":i=e.find("input:text,input[type=number],textarea,select").val();break;case"multiselect":i=e.find("select").val();break;case"radio":e.find("input[type=radio]:checked").length>=1&&(i=e.find("input[type=radio]:checked").val());break;case"checkbox":e.find("input[type=checkbox]:checked").length>=1&&(e.find("input[type=checkbox]:checked").length>1?e.find("input[type=checkbox]:checked").each(function(){i=i+jQuery(this).val()+" "}):i=e.find("input[type=checkbox]:checked").val())}return{type:t,value:i}}function i(e){var i=n(e);switch(i){case"text":case"number":case"date":case"textarea":case"select":case"multiselect":case"radio":case"checkbox":return e.find("input,textarea,select")}return""}function n(e){var i="",n=e.attr("class");return jQuery.each(n.split(" "),function(e,n){n.indexOf("um-field-type")!=-1&&(i=n.split("_")[1])}),i}function t(e){var i=[];return jQuery.each(h,function(n,t){t.field.parent==e&&i.push(t.field.condition)}),i}function a(e){return um_live_field=e.parents(".um-field").data("key"),um_live_value=e.val(),e.is(":checkbox")&&(um_live_value="",e.parents(".um-field").find("input:checked").length>1?e.parents(".um-field").find("input:checked").each(function(){um_live_value=um_live_value+jQuery(this).val()+" "}):e.parents(".um-field").find("input:checked").length>=1&&(um_live_value=e.parents(".um-field").find("input:checked").val())),e.is(":radio")&&(um_live_value=e.parents(".um-field").find("input[type=radio]:checked").val()),um_live_value}function c(e,i,n){var t,a=!1,n=!!n;for(t in i)if(n&&i[t]===e||!n&&i[t]==e){a=!0;break}return a}function r(e,i){var t=e.parents(".um-field[data-key]").data("key"),r=p[t],o=a(e),d={},s={},l={};jQuery.each(r,function(e,i){"undefined"==typeof s[i.owner]&&(s[i.owner]=[],l[i.owner]={}),s[i.owner].push(i.value),l[i.owner]=i}),jQuery.each(r,function(i,t){"undefined"==typeof d[t.owner]&&(d[t.owner]={}),"empty"==t.operator&&(!o||""==o&&c(o,s[t.owner])?d[t.owner][i]=!0:d[t.owner][i]=!1),"not empty"==t.operator&&(o&&""!=o&&!c(o,s[t.owner])?d[t.owner][i]=!0:d[t.owner][i]=!1),"equals to"==t.operator&&(t.value==o&&c(o,s[t.owner])?d[t.owner][i]=!0:d[t.owner][i]=!1),"not equals"==t.operator&&(jQuery.isNumeric(t.value)&&parseInt(o)!=parseInt(t.value)&&o&&!c(o,s[t.owner])?d[t.owner][i]=!0:t.value==o||c(o,s[t.owner])?d[t.owner][i]=!1:d[t.owner][i]=!0),"greater than"==t.operator&&(jQuery.isNumeric(t.value)&&parseInt(o)>parseInt(t.value)?d[t.owner][i]=!0:d[t.owner][i]=!1),"less than"==t.operator&&(jQuery.isNumeric(t.value)&&parseInt(o)=0&&c(t.value,o)?d[t.owner][i]=!0:d[t.owner][i]=!1:o&&o.indexOf(t.value)>=0&&c(o,s[t.owner])?d[t.owner][i]=!0:d[t.owner][i]=!1)}),jQuery.each(d,function(i,n){c(!0,n)?u(e,l[i],!0):u(e,l[i],!1)}),e.trigger("um_fields_change")}function u(e,i,n){var t=jQuery('div.um-field[data-key="'+i.owner+'"]');"show"==i.action&&n&&(t.show(),l(t),o(t)),"show"!=i.action||n||(t.hide(),s(t)),"hide"==i.action&&n&&(t.hide(),s(t)),"hide"!=i.action||n||(t.show(),l(t),o(t)),e.removeClass("um-field-has-changed")}function o(e){var t=n(e),a=e.data("key"),c=v[a];switch(t){case"text":case"number":case"date":case"textarea":e.find("input:text,input[type=number],textarea,select").val(c.value);break;case"select":e.find("select").find("option").prop("selected",!1),e.find("select").val(c.value),e.find("select").trigger("change");break;case"multiselect":e.find("select").find("option").prop("selected",!1),jQuery.each(c.value,function(i,n){e.find("select").find('option[value="'+n+'"]').attr("selected",!0)}),e.find("select").trigger("change");break;case"checkbox":if(e.find("input[type=checkbox]:checked").length>=1)if(e.find("input[type=checkbox]:checked").removeAttr("checked"),e.find("span.um-field-checkbox-state i").removeClass("um-icon-android-checkbox-outline"),e.find("span.um-field-checkbox-state i").addClass("um-icon-android-checkbox-outline-blank"),e.find(".um-field-checkbox.active").removeClass("active"),jQuery.isArray(c.value))jQuery.each(c.value,function(i,n){var t=e.find('input[type=checkbox][value="'+n+'"]');t.attr("checked",!0),t.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),t.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),t.closest(".um-field-checkbox").addClass("active")});else{var r=e.find('input[type=checkbox][value="'+c.value+'"]');r.attr("checked",!0),r.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),r.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),r.closest(".um-field-checkbox").addClass("active")}break;case"radio":e.find("input[type=radio]:checked").length>=1&&setTimeout(function(){e.find("input[type=radio]:checked").removeAttr("checked"),e.find("span.um-field-radio-state i").removeClass("um-icon-android-radio-button-on"),e.find("span.um-field-radio-state i").addClass("um-icon-android-radio-button-off"),e.find(".um-field-radio.active").removeClass("active");var i=e.find("input[type=radio][value='"+c.value+"']");i.attr("checked",!0),i.closest(".um-field-radio").find("i").removeClass("um-icon-android-radio-button-off"),i.closest(".um-field-radio").find("i").addClass("um-icon-android-radio-button-on"),i.closest(".um-field-radio").addClass("active")},100)}if(!e.hasClass("um-field-has-changed")){var u=i(e);"radio"!=t&&"checkbox"!=t||(u=u.find(":checked")),u&&(u.trigger("change"),e.addClass("um-field-has-changed"))}}function d(){jQuery.each(p,function(e,i){(jQuery('.um-field[data-key="'+e+'"]:hidden').length>=1||"none"==jQuery('.um-field[data-key="'+e+'"]').css("display"))&&jQuery.each(i,function(e,i){jQuery('.um-field[data-key="'+i.owner+'"]').hide()})})}function s(e){"undefined"!=typeof jQuery.browser&&jQuery.browser.msie&&e.css({visibility:"hidden"})}function l(e){"undefined"!=typeof jQuery.browser&&jQuery.browser.msie&&e.css({visibility:"visible"})}function f(){var n=[];jQuery(".um-field[data-key]").each(function(){var i=jQuery(this).data("key");n.push(i);var t={};jQuery.each(jQuery(this)[0].attributes,function(e,i){if(i.name.indexOf("data-cond")!=-1){var n=i.name.slice(10),a=n.substring(1,0),c=n.slice(2);"undefined"==typeof t[a]&&(t[a]={}),t[a][c]=i.value}}),jQuery.each(t,function(e,n){var t={field:{owner:i,action:n.action,parent:n.field,operator:n.operator,value:n.value,condition:{owner:i,action:n.action,operator:n.operator,value:n.value}}};h.push(t)}),v[jQuery(this).data("key")]=e(jQuery(this))}),jQuery.each(n,function(e,i){p[i]=t(i)}),jQuery(".um-field[data-key]:visible").each(function(){var e=jQuery(this),n=i(e);"undefined"!=typeof n.trigger&&n.trigger("change")})}var h=[],p={},v={};jQuery(document).on("change",".um-field select, .um-field input[type=radio], .um-field input[type=checkbox]",function(){var e=jQuery(this);r(e,!1)}),jQuery(document).on("input change",".um-field input[type=text]",function(){var e=jQuery(this);r(e,!1)}),jQuery(document).on("input change",".um-field input[type=password]",function(){var e=jQuery(this);r(e,!1)}),jQuery(document).on("um_fields_change",function(){d(),d()}),f()}); \ No newline at end of file +jQuery(document).ready(function(){function e(e){var n="",a=i(e);switch(a){case"text":case"number":case"date":case"textarea":case"select":n=e.find("input:text,input[type=number],textarea,select").val();break;case"multiselect":n=e.find("select").val();break;case"radio":e.find("input[type=radio]:checked").length>=1&&(n=e.find("input[type=radio]:checked").val());break;case"checkbox":e.find("input[type=checkbox]:checked").length>=1&&(e.find("input[type=checkbox]:checked").length>1?e.find("input[type=checkbox]:checked").each(function(){n=n+jQuery(this).val()+" "}):n=e.find("input[type=checkbox]:checked").val())}return{type:a,value:n}}function n(e){var n=i(e);switch(n){case"text":case"number":case"date":case"textarea":case"select":case"multiselect":case"radio":case"checkbox":return e.find("input,textarea,select")}return""}function i(e){var n="",i=e.attr("class");return jQuery.each(i.split(" "),function(e,i){i.indexOf("um-field-type")!=-1&&(n=i.split("_")[1])}),n}function a(e){var n=[];return jQuery.each(h,function(i,a){a.field.parent==e&&n.push(a.field.condition)}),n}function t(e){return um_live_field=e.parents(".um-field").data("key"),um_live_value=e.val(),e.is(":checkbox")&&(um_live_value="",e.parents(".um-field").find("input:checked").length>1?e.parents(".um-field").find("input:checked").each(function(){um_live_value=um_live_value+jQuery(this).val()+" "}):e.parents(".um-field").find("input:checked").length>=1&&(um_live_value=e.parents(".um-field").find("input:checked").val())),e.is(":radio")&&(um_live_value=e.parents(".um-field").find("input[type=radio]:checked").val()),um_live_value}function c(e,n,i){var a,t=!1,i=!!i;for(a in n)if(i&&n[a]===e||!i&&n[a]==e){t=!0;break}return t}function r(e,n){var a=e.parents(".um-field[data-key]").data("key"),r=p[a],u=t(e),d={},s={},l={};jQuery.each(r,function(e,n){"undefined"==typeof s[n.owner]&&(s[n.owner]=[],l[n.owner]={}),s[n.owner].push(n.value),l[n.owner]=n}),jQuery.each(r,function(n,a){"undefined"==typeof d[a.owner]&&(d[a.owner]={}),"empty"==a.operator&&(!u||""==u&&c(u,s[a.owner])?d[a.owner][n]=!0:d[a.owner][n]=!1),"not empty"==a.operator&&(u&&""!=u&&!c(u,s[a.owner])?d[a.owner][n]=!0:d[a.owner][n]=!1),"equals to"==a.operator&&(a.value==u&&c(u,s[a.owner])?d[a.owner][n]=!0:d[a.owner][n]=!1),"not equals"==a.operator&&(jQuery.isNumeric(a.value)&&parseInt(u)!=parseInt(a.value)&&u&&!c(u,s[a.owner])?d[a.owner][n]=!0:a.value==u||c(u,s[a.owner])?d[a.owner][n]=!1:d[a.owner][n]=!0),"greater than"==a.operator&&(jQuery.isNumeric(a.value)&&parseInt(u)>parseInt(a.value)?d[a.owner][n]=!0:d[a.owner][n]=!1),"less than"==a.operator&&(jQuery.isNumeric(a.value)&&parseInt(u)=0&&c(a.value,u)?d[a.owner][n]=!0:d[a.owner][n]=!1:"checkbox"==i(e.parents(".um-field[data-key]"))?u&&u.indexOf(a.value)>=0?d[a.owner][n]=!0:d[a.owner][n]=!1:u&&u.indexOf(a.value)>=0&&c(u,s[a.owner])?d[a.owner][n]=!0:d[a.owner][n]=!1)}),jQuery.each(d,function(n,i){c(!0,i)?o(e,l[n],!0):o(e,l[n],!1)}),e.trigger("um_fields_change")}function o(e,n,i){var a=jQuery('div.um-field[data-key="'+n.owner+'"]');"show"==n.action&&i&&(a.show(),l(a),u(a)),"show"!=n.action||i||(a.hide(),s(a)),"hide"==n.action&&i&&(a.hide(),s(a)),"hide"!=n.action||i||(a.show(),l(a),u(a)),e.removeClass("um-field-has-changed")}function u(e){var a=i(e),t=e.data("key"),c=v[t];switch(a){case"text":case"number":case"date":case"textarea":e.find("input:text,input[type=number],textareas").val(c.value);break;case"select":e.find("select").find("option").prop("selected",!1),e.find("select").val(c.value),e.find("select").trigger("change");break;case"multiselect":e.find("select").find("option").prop("selected",!1),jQuery.each(c.value,function(n,i){e.find("select").find('option[value="'+i+'"]').attr("selected",!0)}),e.find("select").trigger("change");break;case"checkbox":if(e.find("input[type=checkbox]:checked").length>=1)if(e.find("input[type=checkbox]:checked").removeAttr("checked"),e.find("span.um-field-checkbox-state i").removeClass("um-icon-android-checkbox-outline"),e.find("span.um-field-checkbox-state i").addClass("um-icon-android-checkbox-outline-blank"),e.find(".um-field-checkbox.active").removeClass("active"),jQuery.isArray(c.value))jQuery.each(c.value,function(n,i){var a=e.find('input[type=checkbox][value="'+i+'"]');a.attr("checked",!0),a.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),a.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),a.closest(".um-field-checkbox").addClass("active")});else{var r=e.find('input[type=checkbox][value="'+c.value+'"]');r.attr("checked",!0),r.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),r.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),r.closest(".um-field-checkbox").addClass("active")}break;case"radio":e.find("input[type=radio]:checked").length>=1&&setTimeout(function(){e.find("input[type=radio]:checked").removeAttr("checked"),e.find("span.um-field-radio-state i").removeClass("um-icon-android-radio-button-on"),e.find("span.um-field-radio-state i").addClass("um-icon-android-radio-button-off"),e.find(".um-field-radio.active").removeClass("active");var n=e.find("input[type=radio][value='"+c.value+"']");n.attr("checked",!0),n.closest(".um-field-radio").find("i").removeClass("um-icon-android-radio-button-off"),n.closest(".um-field-radio").find("i").addClass("um-icon-android-radio-button-on"),n.closest(".um-field-radio").addClass("active")},100)}if(!e.hasClass("um-field-has-changed")){var o=n(e);"radio"!=a&&"checkbox"!=a||(o=o.find(":checked")),o&&(o.trigger("change"),e.addClass("um-field-has-changed"))}}function d(){jQuery.each(p,function(e,n){(jQuery('.um-field[data-key="'+e+'"]:hidden').length>=1||"none"==jQuery('.um-field[data-key="'+e+'"]').css("display"))&&jQuery.each(n,function(e,n){jQuery('.um-field[data-key="'+n.owner+'"]').hide()})})}function s(e){"undefined"!=typeof jQuery.browser&&jQuery.browser.msie&&e.css({visibility:"hidden"})}function l(e){"undefined"!=typeof jQuery.browser&&jQuery.browser.msie&&e.css({visibility:"visible"})}function f(){var i=[];jQuery(".um-field[data-key]").each(function(){var n=jQuery(this).data("key");i.push(n);var a={};jQuery.each(jQuery(this)[0].attributes,function(e,n){if(n.name.indexOf("data-cond")!=-1){var i=n.name.slice(10),t=i.substring(1,0),c=i.slice(2);"undefined"==typeof a[t]&&(a[t]={}),a[t][c]=n.value}}),jQuery.each(a,function(e,i){var a={field:{owner:n,action:i.action,parent:i.field,operator:i.operator,value:i.value,condition:{owner:n,action:i.action,operator:i.operator,value:i.value}}};h.push(a)}),v[jQuery(this).data("key")]=e(jQuery(this))}),jQuery.each(i,function(e,n){p[n]=a(n)}),jQuery(".um-field[data-key]:visible").each(function(){var e=jQuery(this),i=n(e);"undefined"!=typeof i.trigger&&i.trigger("change")})}var h=[],p={},v={};jQuery(document).on("change",".um-field select, .um-field input[type=radio], .um-field input[type=checkbox]",function(){var e=jQuery(this);r(e,!1)}),jQuery(document).on("input change",".um-field input[type=text]",function(){var e=jQuery(this);r(e,!1)}),jQuery(document).on("input change",".um-field input[type=password]",function(){var e=jQuery(this);r(e,!1)}),jQuery(document).on("um_fields_change",function(){d(),d()}),f()}); \ No newline at end of file From f5788e2c459845238b67497ed275547956be7e72 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Sun, 25 Mar 2018 19:14:42 +0300 Subject: [PATCH 02/29] - fixed upgrade process for big DB data; - small fixes for notices; --- includes/admin/assets/css/um-admin-global.css | 34 +- includes/admin/core/class-admin-settings.php | 4 +- includes/admin/core/class-admin-upgrade.php | 267 ++- .../admin/core/packages/1.3.39/functions.php | 8 + includes/admin/core/packages/1.3.39/hooks.php | 5 + includes/admin/core/packages/1.3.39/init.php | 30 + .../{1.3.39.php => 1.3.39/usermeta_query.php} | 6 - includes/admin/core/packages/2.0-beta1.php | 1669 ----------------- .../2.0-beta1/content_restriction.php | 134 ++ .../packages/2.0-beta1/email_templates.php | 41 + .../core/packages/2.0-beta1/functions.php | 290 +++ .../admin/core/packages/2.0-beta1/hooks.php | 22 + .../admin/core/packages/2.0-beta1/init.php | 426 +++++ .../core/packages/2.0-beta1/mc_lists.php | 20 + .../admin/core/packages/2.0-beta1/menus.php | 26 + .../core/packages/2.0-beta1/settings.php | 161 ++ .../core/packages/2.0-beta1/social_login.php | 17 + .../admin/core/packages/2.0-beta1/styles.php | 868 +++++++++ .../admin/core/packages/2.0-beta1/um_cpt.php | 59 + .../core/packages/2.0-beta1/user_roles.php | 158 ++ includes/class-init.php | 1 + includes/um-short-functions.php | 14 + 22 files changed, 2561 insertions(+), 1699 deletions(-) create mode 100644 includes/admin/core/packages/1.3.39/functions.php create mode 100644 includes/admin/core/packages/1.3.39/hooks.php create mode 100644 includes/admin/core/packages/1.3.39/init.php rename includes/admin/core/packages/{1.3.39.php => 1.3.39/usermeta_query.php} (58%) delete mode 100644 includes/admin/core/packages/2.0-beta1.php create mode 100644 includes/admin/core/packages/2.0-beta1/content_restriction.php create mode 100644 includes/admin/core/packages/2.0-beta1/email_templates.php create mode 100644 includes/admin/core/packages/2.0-beta1/functions.php create mode 100644 includes/admin/core/packages/2.0-beta1/hooks.php create mode 100644 includes/admin/core/packages/2.0-beta1/init.php create mode 100644 includes/admin/core/packages/2.0-beta1/mc_lists.php create mode 100644 includes/admin/core/packages/2.0-beta1/menus.php create mode 100644 includes/admin/core/packages/2.0-beta1/settings.php create mode 100644 includes/admin/core/packages/2.0-beta1/social_login.php create mode 100644 includes/admin/core/packages/2.0-beta1/styles.php create mode 100644 includes/admin/core/packages/2.0-beta1/um_cpt.php create mode 100644 includes/admin/core/packages/2.0-beta1/user_roles.php diff --git a/includes/admin/assets/css/um-admin-global.css b/includes/admin/assets/css/um-admin-global.css index 0cfe9470..4e798f2b 100644 --- a/includes/admin/assets/css/um-admin-global.css +++ b/includes/admin/assets/css/um-admin-global.css @@ -144,39 +144,39 @@ a.um-delete{ color: #a00; } /*Tooltip*/ .ui-tooltip.um_tooltip { - padding: 8px; - color: #eeeeee; - background-color: #333; - position: absolute; - z-index: 1000000; - max-width: 300px; - font-size: 12px; - border-radius: 5px; + padding: 8px; + color: #eeeeee !important; + background-color: #333 !important; + position: absolute; + z-index: 1000000; + max-width: 300px; + font-size: 12px; + border-radius: 5px; border: none !important; text-shadow: none !important; } .um_tooltip.dashicons, .um_tooltip.dashicons:before { - height:22px; + height:22px; } .um_tooltip.dashicons-editor-help::before { - float: left; - font-size: 20px; - line-height: 20px; - color: #333 !important; + float: left; + font-size: 20px; + line-height: 20px; + color: #333 !important; } .um_tooltip { - cursor: pointer; - vertical-align: middle; + cursor: pointer; + vertical-align: middle; } .um_tooltip:hover { - opacity: 1; + opacity: 1; } .um_tooltip:hover:before { - opacity: 0.8; + opacity: 0.8; } diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php index 8d143a56..3517c084 100644 --- a/includes/admin/core/class-admin-settings.php +++ b/includes/admin/core/class-admin-settings.php @@ -1131,8 +1131,8 @@ if ( ! class_exists( 'Admin_Settings' ) ) { * Setup admin menu */ function primary_admin_menu() { - add_submenu_page( 'ultimatemember', __( 'Settings', 'ultimate-member' ), __( 'Settings', 'ultimate-member' ), 'manage_options', 'um_options', array( &$this, 'settings_page' ) ); - } + add_submenu_page( 'ultimatemember', __( 'Settings', 'ultimate-member' ), __( 'Settings', 'ultimate-member' ), 'manage_options', 'um_options', array( &$this, 'settings_page' ) ); + } /** diff --git a/includes/admin/core/class-admin-upgrade.php b/includes/admin/core/class-admin-upgrade.php index a7aae4e0..212c2422 100644 --- a/includes/admin/core/class-admin-upgrade.php +++ b/includes/admin/core/class-admin-upgrade.php @@ -21,6 +21,8 @@ if ( ! class_exists( 'Admin_Upgrade' ) ) { * @var */ var $update_versions; + var $update_packages; + var $necessary_packages; /** @@ -34,18 +36,248 @@ if ( ! class_exists( 'Admin_Upgrade' ) ) { */ function __construct() { $this->packages_dir = plugin_dir_path( __FILE__ ) . 'packages' . DIRECTORY_SEPARATOR; + $this->necessary_packages = $this->need_run_upgrades(); - $um_last_version_upgrade = get_option( 'um_last_version_upgrade' ); + if ( ! empty( $this->necessary_packages ) ) { + add_action( 'admin_notices', array( $this, 'need_upgrade' ) ); - if ( ! $um_last_version_upgrade || version_compare( $um_last_version_upgrade, ultimatemember_version, '<' ) ) - add_action( 'admin_init', array( $this, 'packages' ), 10 ); + $this->init_packages_ajax(); + add_action( 'admin_menu', array( $this, 'admin_menu' ), 0 ); + + add_action( 'wp_ajax_um_run_package', array( $this, 'ajax_run_package' ) ); + add_action( 'wp_ajax_um_get_packages', array( $this, 'ajax_get_packages' ) ); + } else { + add_action( 'admin_notices', array( $this, 'updated_successfully' ) ); + } + } + + + function need_upgrade() { + ?> +

here', 'ultimate-member' ), add_query_arg( array( 'page' => 'um_upgrade' ), admin_url( 'admin.php' ) ) ) ?>

+ +

+ get_packages(); + $um_last_version_upgrade = get_option( 'um_last_version_upgrade' ); + + if ( ! $um_last_version_upgrade ) { + return $all_packages; + } + + $diff_packages = array(); + foreach ( $all_packages as $package ) { + if ( version_compare( $um_last_version_upgrade, $package, '<' ) ) { + $diff_packages[] = $package; + } + } + + return $diff_packages; + } + + + /** + * Get all upgrade packages + * + * @return array + */ + function get_packages() { + $update_versions = array(); + $handle = opendir( $this->packages_dir ); + if ( $handle ) { + while ( false !== ( $filename = readdir( $handle ) ) ) { + if ( $filename != '.' && $filename != '..' ) { + if ( is_dir( $this->packages_dir . DIRECTORY_SEPARATOR . $filename ) ) { + $update_versions[] = $filename; + } + } + } + closedir( $handle ); + + usort( $update_versions, array( &$this, 'version_compare_sort' ) ); + } + + return $update_versions; + } + + + /** + * + */ + function init_packages_ajax() { + foreach ( $this->necessary_packages as $package ) { + $hooks_file = $this->packages_dir . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR . 'hooks.php'; + if ( file_exists( $hooks_file ) ) { + $pack_ajax_hooks = include $hooks_file; + + foreach ( $pack_ajax_hooks as $action => $function ) { + add_action( 'wp_ajax_um_' . $action, "um_upgrade_$function" ); + } + } + } + } + + + /** + * + */ + function init_packages_ajax_handlers() { + foreach ( $this->necessary_packages as $package ) { + $handlers_file = $this->packages_dir . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR . 'functions.php'; + if ( file_exists( $handlers_file ) ) { + include $handlers_file; + } + } + } + + + /** + * Add Upgrades admin menu + */ + function admin_menu() { + add_submenu_page( 'ultimatemember', __( 'Upgrade', 'ultimate-member' ), '' . __( 'Upgrade', 'ultimate-member' ) . '', 'manage_options', 'um_upgrade', array( &$this, 'upgrade_page' ) ); + } + + + /** + * Upgrade Menu Callback Page + */ + function upgrade_page() { + $um_last_version_upgrade = get_option( 'um_last_version_upgrade' ); ?> + +
+

+

You have installed you need to upgrade your previous

+

Upgrade Log

+
+
+ +
+
+ + + + packages_dir . DIRECTORY_SEPARATOR . $_POST['pack'] . DIRECTORY_SEPARATOR . 'init.php'; + ob_get_flush(); + exit; + } + } + + + function ajax_get_packages() { + $update_versions = $this->need_run_upgrades(); + wp_send_json_success( array( 'packages' => $update_versions ) ); + } + /** * Load packages */ - public function packages() { + /*public function packages() { if ( ! ini_get( 'safe_mode' ) ) { @set_time_limit(0); } @@ -70,7 +302,7 @@ if ( ! class_exists( 'Admin_Upgrade' ) ) { update_option( 'um_last_version_upgrade', $update_version ); } } - } + }*/ /** @@ -93,6 +325,31 @@ if ( ! class_exists( 'Admin_Upgrade' ) ) { } + + /** + * Parse packages dir for packages files + */ + /*function set_update_versions_() { + $update_versions = array(); + $handle = opendir( $this->packages_dir ); + if ( $handle ) { + while ( false !== ( $filename = readdir( $handle ) ) ) { + if ( $filename != '.' && $filename != '..' ) { + var_dump( $filename ); + if ( is_dir( $this->packages_dir . DIRECTORY_SEPARATOR . $filename ) ) { + $update_versions[] = $filename; + } + } + } + closedir( $handle ); + + usort( $update_versions, array( &$this, 'version_compare_sort' ) ); + + $this->update_packages = $update_versions; + } + }*/ + + /** * Sort versions by version compare function * @param $a diff --git a/includes/admin/core/packages/1.3.39/functions.php b/includes/admin/core/packages/1.3.39/functions.php new file mode 100644 index 00000000..9a0ba7d1 --- /dev/null +++ b/includes/admin/core/packages/1.3.39/functions.php @@ -0,0 +1,8 @@ + 'Usermeta was upgraded successfully' ) ); +} \ No newline at end of file diff --git a/includes/admin/core/packages/1.3.39/hooks.php b/includes/admin/core/packages/1.3.39/hooks.php new file mode 100644 index 00000000..61c124e8 --- /dev/null +++ b/includes/admin/core/packages/1.3.39/hooks.php @@ -0,0 +1,5 @@ + 'usermetaquery1339', +); \ No newline at end of file diff --git a/includes/admin/core/packages/1.3.39/init.php b/includes/admin/core/packages/1.3.39/init.php new file mode 100644 index 00000000..3781024d --- /dev/null +++ b/includes/admin/core/packages/1.3.39/init.php @@ -0,0 +1,30 @@ + + + \ No newline at end of file diff --git a/includes/admin/core/packages/1.3.39.php b/includes/admin/core/packages/1.3.39/usermeta_query.php similarity index 58% rename from includes/admin/core/packages/1.3.39.php rename to includes/admin/core/packages/1.3.39/usermeta_query.php index cd282fba..204aafa6 100644 --- a/includes/admin/core/packages/1.3.39.php +++ b/includes/admin/core/packages/1.3.39/usermeta_query.php @@ -1,11 +1,5 @@ query( 'INSERT INTO '.$wpdb->usermeta.'(user_id, meta_key, meta_value) diff --git a/includes/admin/core/packages/2.0-beta1.php b/includes/admin/core/packages/2.0-beta1.php deleted file mode 100644 index e1fc9d8d..00000000 --- a/includes/admin/core/packages/2.0-beta1.php +++ /dev/null @@ -1,1669 +0,0 @@ -query( array( - 'post_type' => 'um_form', - 'meta_query' => array( - 'relation' => 'AND', - array( - 'key' => '_um_mode', - 'value' => 'register' - ), - array( - 'key' => '_um_register_use_globals', - 'value' => true - ) - ), - 'fields' => 'ids' -) ); - -$login_forms = $forms_query->query( array( - 'post_type' => 'um_form', - 'meta_query' => array( - 'relation' => 'AND', - array( - 'key' => '_um_mode', - 'value' => 'login' - ), - array( - 'key' => '_um_login_use_globals', - 'value' => true - ) - ), - 'fields' => 'ids' -) ); - -$profile_forms = $forms_query->query( array( - 'post_type' => 'um_form', - 'meta_query' => array( - 'relation' => 'AND', - array( - 'key' => '_um_mode', - 'value' => 'profile' - ), - array( - 'key' => '_um_profile_use_globals', - 'value' => true - ) - ), - 'fields' => 'ids' -) ); - -$css = ''; - -$active_color = UM()->options()->get( 'active_color' ); -if ( $active_color ) { - $css .= " -.um .um-tip:hover, -.um .um-field-radio.active:not(.um-field-radio-state-disabled) i, -.um .um-field-checkbox.active:not(.um-field-radio-state-disabled) i, -.um .um-member-name a:hover, -.um .um-member-more a:hover, -.um .um-member-less a:hover, -.um .um-members-pagi a:hover, -.um .um-cover-add:hover, -.um .um-profile-subnav a.active, -.um .um-item-meta a, -.um-account-name a:hover, -.um-account-nav a.current, -.um-account-side li a.current span.um-account-icon, -.um-account-side li a.current:hover span.um-account-icon, -.um-dropdown li a:hover, -i.um-active-color, -span.um-active-color -{ - color: $active_color; -} - -.um .um-field-group-head, -.picker__box, -.picker__nav--prev:hover, -.picker__nav--next:hover, -.um .um-members-pagi span.current, -.um .um-members-pagi span.current:hover, -.um .um-profile-nav-item.active a, -.um .um-profile-nav-item.active a:hover, -.upload, -.um-modal-header, -.um-modal-btn, -.um-modal-btn.disabled, -.um-modal-btn.disabled:hover, -div.uimob800 .um-account-side li a.current, -div.uimob800 .um-account-side li a.current:hover -{ - background: $active_color; -} -"; -} - -$secondary_color = UM()->options()->get( 'secondary_color' ); -if ( $secondary_color ) { - $css .= " -.um .um-field-group-head:hover, -.picker__footer, -.picker__header, -.picker__day--infocus:hover, -.picker__day--outfocus:hover, -.picker__day--highlighted:hover, -.picker--focused .picker__day--highlighted, -.picker__list-item:hover, -.picker__list-item--highlighted:hover, -.picker--focused .picker__list-item--highlighted, -.picker__list-item--selected, -.picker__list-item--selected:hover, -.picker--focused .picker__list-item--selected { - background: $secondary_color; -} -"; -} - -$css .= " -.um { - margin-left: auto!important; - margin-right: auto!important; -}"; - -$primary_btn_color = UM()->options()->get( 'primary_btn_color' ); -if ( $primary_btn_color ) { - $css .= " -.um input[type=submit]:disabled:hover { - background: $primary_btn_color; -} - -.um input[type=submit].um-button, -.um input[type=submit].um-button:focus, -.um a.um-button, -.um a.um-button.um-disabled:hover, -.um a.um-button.um-disabled:focus, -.um a.um-button.um-disabled:active { - background: $primary_btn_color; -} - -.um a.um-link { - color: $primary_btn_color; -} -"; -} - -$primary_btn_hover = UM()->options()->get( 'primary_btn_hover' ); -if ( $primary_btn_hover ) { - $css .= " -.um input[type=submit].um-button:hover, -.um a.um-button:hover { - background-color: $primary_btn_hover; -} - -.um a.um-link:hover, -.um a.um-link-hvr:hover { - color: $primary_btn_hover; -} -"; -} - -$primary_btn_text = UM()->options()->get( 'primary_btn_text' ); -if ( $primary_btn_text ) { - $css .= " -.um .um-button { - color: $primary_btn_text; -} -"; -} - -$secondary_btn_color = UM()->options()->get( 'secondary_btn_color' ); -if ( $secondary_btn_color ) { - $css .= " -.um .um-button.um-alt, -.um input[type=submit].um-button.um-alt { - background: $secondary_btn_color; -} -"; -} - -$secondary_btn_hover = UM()->options()->get( 'secondary_btn_hover' ); -if ( $secondary_btn_hover ) { - $css .= " -.um .um-button.um-alt:hover, -.um input[type=submit].um-button.um-alt:hover{ - background: $secondary_btn_hover; -} -"; -} - -$secondary_btn_text = UM()->options()->get( 'secondary_btn_text' ); -if ( $secondary_btn_text ) { - $css .= " -.um .um-button.um-alt, -.um input[type=submit].um-button.um-alt { - color: $secondary_btn_text; -} -"; -} - -$help_tip_color = UM()->options()->get( 'help_tip_color' ); -if ( $help_tip_color ) { - $css .= " -.um .um-tip { - color: $help_tip_color; -} -"; -} - -$form_field_label = UM()->options()->get( 'form_field_label' ); -if ( $form_field_label ) { - $css .= " -.um .um-field-label { - color: $form_field_label; -} -"; -} - -$form_border = UM()->options()->get( 'form_border' ); -if ( $form_border ) { - $css .= " -.um .um-form input[type=text], -.um .um-form input[type=tel], -.um .um-form input[type=number], -.um .um-form input[type=password], -.um .um-form textarea, -.um .upload-progress, -.select2-container .select2-choice, -.select2-drop, -.select2-container-multi .select2-choices, -.select2-drop-active, -.select2-drop.select2-drop-above -{ - border: $form_border !important; -} - -.um .um-form .select2-container-multi .select2-choices .select2-search-field input[type=text] { - border: none !important -} -"; -} - -$form_border_hover = UM()->options()->get( 'form_border_hover' ); -if ( $form_border_hover ) { - $css .= " -.um .um-form input[type=text]:focus, -.um .um-form input[type=tel]:focus, -.um .um-form input[type=number]:focus, -.um .um-form input[type=password]:focus, -.um .um-form .um-datepicker.picker__input.picker__input--active, -.um .um-form .um-datepicker.picker__input.picker__input--target, -.um .um-form textarea:focus { - border: $form_border_hover !important; -} -"; -} - -$form_bg_color = UM()->options()->get( 'form_bg_color' ); -if ( $form_bg_color ) { - $css .= " -.um .um-form input[type=text], -.um .um-form input[type=tel], -.um .um-form input[type=number], -.um .um-form input[type=password], -.um .um-form textarea, -.select2-container .select2-choice, -.select2-container-multi .select2-choices -{ - background-color: $form_bg_color; -} -"; -} - -$form_bg_color_focus = UM()->options()->get( 'form_bg_color_focus' ); -if ( $form_bg_color_focus ) { - $css .= " -.um .um-form input[type=text]:focus, -.um .um-form input[type=tel]:focus, -.um .um-form input[type=number]:focus, -.um .um-form input[type=password]:focus, -.um .um-form textarea:focus { - background-color: $form_bg_color_focus; -} -"; -} - -$form_text_color = UM()->options()->get( 'form_text_color' ); -if ( $form_text_color ) { - $css .= " -.um .um-form input[type=text], -.um .um-form input[type=tel], -.um .um-form input[type=password], -.um .um-form textarea -{ - color: $form_text_color; -} - -.um .um-form input:-webkit-autofill { - -webkit-box-shadow:0 0 0 50px white inset; /* Change the color to your own background color */ - -webkit-text-fill-color: $form_text_color; -} - -.um .um-form input:-webkit-autofill:focus { - -webkit-box-shadow: none,0 0 0 50px white inset; - -webkit-text-fill-color: $form_text_color; -} -"; -} - -$form_placeholder = UM()->options()->get( 'form_placeholder' ); -if ( $form_placeholder ) { - $css .= " -.um .um-form ::-webkit-input-placeholder -{ - color: $form_placeholder; - opacity: 1 !important; -} - -.um .um-form ::-moz-placeholder -{ - color: $form_placeholder; - opacity: 1 !important; -} - -.um .um-form ::-moz-placeholder -{ - color: $form_placeholder; - opacity: 1 !important; -} - -.um .um-form ::-ms-input-placeholder -{ - color: $form_placeholder; - opacity: 1 !important; -} - -.select2-default, -.select2-default *, -.select2-container-multi .select2-choices .select2-search-field input -{ - color: $form_placeholder; -} -"; -} - -$form_icon_color = UM()->options()->get( 'form_icon_color' ); -if ( $form_icon_color ) { - $css .= " -.um .um-field-icon i, -.select2-container .select2-choice .select2-arrow:before, -.select2-search:before, -.select2-search-choice-close:before -{ - color: $form_icon_color; -} -"; -} - -$form_asterisk_color = UM()->options()->get( 'form_asterisk_color' ); -if ( $form_asterisk_color ) { - $css .= " -.um span.um-req -{ - color: $form_asterisk_color; -} -"; -} - - -$profile_photocorner = UM()->options()->get( 'profile_photocorner' ); -if ( $profile_photocorner == 1 ) { - $css .= " -.um .um-profile-photo a.um-profile-photo-img, -.um .um-profile-photo img, -.um .um-profile-photo span.um-profile-photo-overlay -{ - -moz-border-radius: 999px !important; - -webkit-border-radius: 999px !important; - border-radius: 999px !important -} -"; -} else if ( $profile_photocorner == 2 ) { - $css .= " -.um .um-profile-photo a.um-profile-photo-img, -.um .um-profile-photo img, -.um .um-profile-photo span.um-profile-photo-overlay -{ - -moz-border-radius: 4px !important; - -webkit-border-radius: 4px !important; - border-radius: 4px !important -} -"; -} else if ( $profile_photocorner == 3 ) { - $css .= " -.um .um-profile-photo a.um-profile-photo-img, -.um .um-profile-photo img, -.um .um-profile-photo span.um-profile-photo-overlay -{ - -moz-border-radius: 0px !important; - -webkit-border-radius: 0px !important; - border-radius: 0px !important -} -"; -} - -$profile_main_bg = UM()->options()->get( 'profile_main_bg' ); -if ( $profile_main_bg ) { - $css .= " -.um-profile { - background-color: $profile_main_bg; -} -"; -} - -$profile_header_bg = UM()->options()->get( 'profile_header_bg' ); -if ( $profile_header_bg ) { - $css .= " -.um-profile.um .um-header { - background-color: $profile_header_bg; -} -"; -} - -$profile_header_text = UM()->options()->get( 'profile_header_text' ); -if ( $profile_header_text ) { - $css .= " -.um-profile.um .um-profile-meta { - color: $profile_header_text; -} -"; -} - -$profile_header_link_color = UM()->options()->get( 'profile_header_link_color' ); -if ( $profile_header_link_color ) { - $css .= " -.um-profile.um .um-name a { - color: $profile_header_link_color; -} -"; -} - -$profile_header_link_hcolor = UM()->options()->get( 'profile_header_link_hcolor' ); -if ( $profile_header_link_hcolor ) { - $css .= " -.um-profile.um .um-name a:hover { - color: $profile_header_link_hcolor; -} -"; -} - -$profile_header_icon_color = UM()->options()->get( 'profile_header_icon_color' ); -if ( $profile_header_icon_color ) { - $css .= " -.um-profile.um .um-profile-headericon a { - color: $profile_header_icon_color; -} -"; -} - -$profile_header_icon_hcolor = UM()->options()->get( 'profile_header_icon_hcolor' ); -if ( $profile_header_icon_hcolor ) { - $css .= " -.um-profile.um .um-profile-headericon a:hover, -.um-profile.um .um-profile-edit-a.active { - color: $profile_header_icon_hcolor; -} -"; -} - - -foreach ( $registration_forms as $form_id ) { - - $align = get_post_meta( $form_id, '_um_register_align', true ); - if ( $align && $align != 'center' ) { - $css .= " -.um-$form_id.um { - float: $align; -} -"; - } - - $primary_btn_color = get_post_meta( $form_id, '_um_register_primary_btn_color', true ); - if ( $primary_btn_color ) { - $css .= " -.um-$form_id.um input[type=submit]:disabled:hover { - background: $primary_btn_color; -} - -.um-$form_id.um input[type=submit].um-button, -.um-$form_id.um input[type=submit].um-button:focus, -.um-$form_id.um a.um-button, -.um-$form_id.um a.um-button.um-disabled:hover, -.um-$form_id.um a.um-button.um-disabled:focus, -.um-$form_id.um a.um-button.um-disabled:active { - background: $primary_btn_color; -} - -.um-$form_id.um a.um-link { - color: $primary_btn_color; -} -"; - } - - $primary_btn_hover = get_post_meta( $form_id, '_um_register_primary_btn_hover', true ); - if ( $primary_btn_hover ) { - $css .= " -.um-$form_id.um input[type=submit].um-button:hover, -.um-$form_id.um a.um-button:hover { - background-color: $primary_btn_hover; -} - -.um-$form_id.um a.um-link:hover, -.um-$form_id.um a.um-link-hvr:hover { - color: $primary_btn_hover; -} -"; - } - - $primary_btn_text = get_post_meta( $form_id, '_um_register_primary_btn_text', true ); - if ( $primary_btn_text ) { - $css .= " -.um-$form_id.um .um-button { - color: $primary_btn_text; -} -"; - } - - $secondary_button = get_post_meta( $form_id, '_um_register_secondary_btn', true ); - if ( $secondary_button ) { - - $secondary_btn_color = get_post_meta( $form_id, '_um_register_secondary_btn_color', true ); - if ( $secondary_btn_color ) { - $css .= " -.um-$form_id.um .um-button.um-alt, -.um-$form_id.um input[type=submit].um-button.um-alt { - background: $secondary_btn_color; -} -"; - } - - $secondary_btn_hover = get_post_meta( $form_id, '_um_register_secondary_btn_hover', true ); - if ( $secondary_btn_hover ) { - $css .= " -.um-$form_id.um .um-button.um-alt:hover, -.um-$form_id.um input[type=submit].um-button.um-alt:hover{ - background: $secondary_btn_hover; -} -"; - } - - $secondary_btn_text = get_post_meta( $form_id, '_um_register_secondary_btn_text', true ); - if ( $secondary_btn_text ) { - $css .= " -.um-$form_id.um .um-button.um-alt, -.um-$form_id.um input[type=submit].um-button.um-alt { - color: $secondary_btn_text; -} -"; - } - } -} - - -foreach ( $login_forms as $form_id ) { - - $align = get_post_meta( $form_id, '_um_login_align', true ); - if ( $align && $align != 'center' ) { - $css .= " -.um-$form_id.um { - float: $align; -} -"; - } - - $primary_btn_color = get_post_meta( $form_id, '_um_login_primary_btn_color', true ); - if ( $primary_btn_color ) { - $css .= " -.um-$form_id.um input[type=submit]:disabled:hover { - background: $primary_btn_color; -} - -.um-$form_id.um input[type=submit].um-button, -.um-$form_id.um input[type=submit].um-button:focus, -.um-$form_id.um a.um-button, -.um-$form_id.um a.um-button.um-disabled:hover, -.um-$form_id.um a.um-button.um-disabled:focus, -.um-$form_id.um a.um-button.um-disabled:active { - background: $primary_btn_color; -} - -.um-$form_id.um a.um-link { - color: $primary_btn_color; -} -"; - } - - $primary_btn_hover = get_post_meta( $form_id, '_um_login_primary_btn_hover', true ); - if ( $primary_btn_hover ) { - $css .= " -.um-$form_id.um input[type=submit].um-button:hover, -.um-$form_id.um a.um-button:hover { - background-color: $primary_btn_hover; -} - -.um-$form_id.um a.um-link:hover, -.um-$form_id.um a.um-link-hvr:hover { - color: $primary_btn_hover; -} -"; - } - - $primary_btn_text = get_post_meta( $form_id, '_um_login_primary_btn_text', true ); - if ( $primary_btn_text ) { - $css .= " -.um-$form_id.um .um-button { - color: $primary_btn_text; -} -"; - } - - $secondary_button = get_post_meta( $form_id, '_um_login_secondary_btn', true ); - if ( $secondary_button ) { - - $secondary_btn_color = get_post_meta( $form_id, '_um_login_secondary_btn_color', true ); - if ( $secondary_btn_color ) { - $css .= " -.um-$form_id.um .um-button.um-alt, -.um-$form_id.um input[type=submit].um-button.um-alt { - background: $secondary_btn_color; -} -"; - } - - $secondary_btn_hover = get_post_meta( $form_id, '_um_login_secondary_btn_hover', true ); - if ( $secondary_btn_hover ) { - $css .= " -.um-$form_id.um .um-button.um-alt:hover, -.um-$form_id.um input[type=submit].um-button.um-alt:hover{ - background: $secondary_btn_hover; -} -"; - } - - $secondary_btn_text = get_post_meta( $form_id, '_um_login_secondary_btn_text', true ); - if ( $secondary_btn_text ) { - $css .= " -.um-$form_id.um .um-button.um-alt, -.um-$form_id.um input[type=submit].um-button.um-alt { - color: $secondary_btn_text; -} -"; - } - } -} - - -foreach ( $profile_forms as $form_id ) { - $align = get_post_meta( $form_id, '_um_profile_align', true ); - if ( $align && $align != 'center' ) { - $css .= " -.um-$form_id.um { - float: $align; -} -"; - } - - $primary_btn_color = get_post_meta( $form_id, '_um_profile_primary_btn_color', true ); - if ( $primary_btn_color ) { - $css .= " -.um-$form_id.um input[type=submit]:disabled:hover { - background: $primary_btn_color; -} - -.um-$form_id.um input[type=submit].um-button, -.um-$form_id.um input[type=submit].um-button:focus, -.um-$form_id.um a.um-button, -.um-$form_id.um a.um-button.um-disabled:hover, -.um-$form_id.um a.um-button.um-disabled:focus, -.um-$form_id.um a.um-button.um-disabled:active { - background: $primary_btn_color; -} - -.um-$form_id.um a.um-link { - color: $primary_btn_color; -} -"; - } - - $primary_btn_hover = get_post_meta( $form_id, '_um_profile_primary_btn_hover', true ); - if ( $primary_btn_hover ) { - $css .= " -.um-$form_id.um input[type=submit].um-button:hover, -.um-$form_id.um a.um-button:hover { - background-color: $primary_btn_hover; -} - -.um-$form_id.um a.um-link:hover, -.um-$form_id.um a.um-link-hvr:hover { - color: $primary_btn_hover; -} -"; - } - - $primary_btn_text = get_post_meta( $form_id, '_um_profile_primary_btn_text', true ); - if ( $primary_btn_text ) { - $css .= " -.um-$form_id.um .um-button { - color: $primary_btn_text; -} -"; - } - - $secondary_button = get_post_meta( $form_id, '_um_profile_secondary_btn', true ); - if ( $secondary_button ) { - - $secondary_btn_color = get_post_meta( $form_id, '_um_profile_secondary_btn_color', true ); - if ( $secondary_btn_color ) { - $css .= " -.um-$form_id.um .um-button.um-alt, -.um-$form_id.um input[type=submit].um-button.um-alt { - background: $secondary_btn_color; -} -"; - } - - $secondary_btn_hover = get_post_meta( $form_id, '_um_profile_secondary_btn_hover', true ); - if ( $secondary_btn_hover ) { - $css .= " -.um-$form_id.um .um-button.um-alt:hover, -.um-$form_id.um input[type=submit].um-button.um-alt:hover{ - background: $secondary_btn_hover; -} -"; - } - - $secondary_btn_text = get_post_meta( $form_id, '_um_profile_secondary_btn_text', true ); - if ( $secondary_btn_text ) { - $css .= " -.um-$form_id.um .um-button.um-alt, -.um-$form_id.um input[type=submit].um-button.um-alt { - color: $secondary_btn_text; -} -"; - } - } - - $profile_photocorner = get_post_meta( $form_id, '_um_profile_photocorner', true ); - if ( $profile_photocorner == 1 ) { - $css .= " -.um-$form_id.um .um-profile-photo a.um-profile-photo-img, -.um-$form_id.um .um-profile-photo img, -.um-$form_id.um .um-profile-photo span.um-profile-photo-overlay -{ - -moz-border-radius: 999px !important; - -webkit-border-radius: 999px !important; - border-radius: 999px !important -} -"; - } else if ( $profile_photocorner == 2 ) { - $css .= " -.um-$form_id.um .um-profile-photo a.um-profile-photo-img, -.um-$form_id.um .um-profile-photo img, -.um-$form_id.um .um-profile-photo span.um-profile-photo-overlay -{ - -moz-border-radius: 4px !important; - -webkit-border-radius: 4px !important; - border-radius: 4px !important -} -"; - } else if ( $profile_photocorner == 3 ) { - $css .= " -.um-$form_id.um .um-profile-photo a.um-profile-photo-img, -.um-$form_id.um .um-profile-photo img, -.um-$form_id.um .um-profile-photo span.um-profile-photo-overlay -{ - -moz-border-radius: 0px !important; - -webkit-border-radius: 0px !important; - border-radius: 0px !important -} -"; - } - - $profile_main_bg = get_post_meta( $form_id, '_um_profile_main_bg', true ); - if ( $profile_main_bg ) { - $css .= " -.um-$form_id.um-profile { - background-color: $profile_main_bg; -} -"; - } - - $main_text_color = get_post_meta( $form_id, '_um_profile_main_text_color', true ); - if ( $main_text_color ) { - $css .= " -.um-$form_id.um .um-profile-body.main *{ - color: $main_text_color; -} -"; - } - - $profile_header_bg = get_post_meta( $form_id, '_um_profile_header_bg', true ); - if ( $profile_header_bg ) { - $css .= " -.um-$form_id.um .um-header { - background-color: $profile_header_bg; -} -"; - } - - $profile_header_text = get_post_meta( $form_id, '_um_profile_header_text', true ); - if ( $profile_header_text ) { - $css .= " -.um-$form_id.um .um-profile-meta { - color: $profile_header_text; -} -"; - } - - - $profile_header_link_color = get_post_meta( $form_id, '_um_profile_header_link_color', true ); - if ( $profile_header_link_color ) { - $css .= " -.um-$form_id.um .um-name a { - color: $profile_header_link_color; -} -"; - } - - $profile_header_link_hcolor = get_post_meta( $form_id, '_um_profile_header_link_hcolor', true ); - if ( $profile_header_link_hcolor ) { - $css .= " -.um-$form_id.um .um-name a:hover { - color: $profile_header_link_hcolor; -} -"; - } - - $profile_header_icon_color = get_post_meta( $form_id, '_um_profile_header_icon_color', true ); - if ( $profile_header_icon_color ) { - $css .= " -.um-$form_id.um .um-profile-headericon a { - color: $profile_header_icon_color; -} -"; - } - - $profile_header_icon_hcolor = get_post_meta( $form_id, '_um_profile_header_icon_hcolor', true ); - if ( $profile_header_icon_hcolor ) { - $css .= " -.um-$form_id.um .um-profile-headericon a:hover, -.um-$form_id.um .um-profile-edit-a.active { - color: $profile_header_icon_hcolor; -} -"; - } -} - -$uploads = wp_upload_dir(); -$upload_dir = $uploads['basedir'] . DIRECTORY_SEPARATOR . 'ultimatemember' . DIRECTORY_SEPARATOR; -$css_doc_file = fopen( $upload_dir. 'um_old_settings.css', 'w+' ); -fwrite( $css_doc_file, $css ); -fclose( $css_doc_file ); - -//remove old options -UM()->options()->remove( 'active_color' ); -UM()->options()->remove( 'secondary_color' ); -UM()->options()->remove( 'profile_align' ); -UM()->options()->remove( 'register_align' ); -UM()->options()->remove( 'login_align' ); -UM()->options()->remove( 'primary_btn_color' ); -UM()->options()->remove( 'primary_btn_hover' ); -UM()->options()->remove( 'primary_btn_text' ); -UM()->options()->remove( 'secondary_btn_color' ); -UM()->options()->remove( 'secondary_btn_hover' ); -UM()->options()->remove( 'secondary_btn_text' ); -UM()->options()->remove( 'help_tip_color' ); -UM()->options()->remove( 'form_field_label' ); -UM()->options()->remove( 'form_border' ); -UM()->options()->remove( 'form_border_hover' ); -UM()->options()->remove( 'form_bg_color' ); -UM()->options()->remove( 'form_bg_color_focus' ); -UM()->options()->remove( 'form_text_color' ); -UM()->options()->remove( 'form_placeholder' ); -UM()->options()->remove( 'form_icon_color' ); -UM()->options()->remove( 'form_asterisk_color' ); -UM()->options()->remove( 'profile_photocorner' ); -UM()->options()->remove( 'profile_main_bg' ); -UM()->options()->remove( 'profile_header_bg' ); -UM()->options()->remove( 'profile_header_text' ); -UM()->options()->remove( 'profile_header_link_color' ); -UM()->options()->remove( 'profile_header_link_hcolor' ); -UM()->options()->remove( 'profile_header_icon_color' ); -UM()->options()->remove( 'profile_header_icon_hcolor' ); - -//remove duplicates for UM Pages settings -delete_option( 'um_core_pages' ); - -global $wpdb; - -//UM Roles to WP Roles -//all UM Roles from post type -$role_keys = array(); - -register_post_type( 'um_role', array( - 'labels' => array( - 'name' => __( 'User Roles' ), - 'singular_name' => __( 'User Role' ), - 'add_new' => __( 'Add New' ), - 'add_new_item' => __('Add New User Role' ), - 'edit_item' => __('Edit User Role'), - 'not_found' => __('You did not create any user roles yet'), - 'not_found_in_trash' => __('Nothing found in Trash'), - 'search_items' => __('Search User Roles') - ), - 'show_ui' => true, - 'show_in_menu' => false, - 'public' => false, - 'supports' => array('title') -) ); - - -$um_roles = get_posts( array( - 'post_type' => 'um_role', - 'posts_per_page' => -1, - 'post_status' => 'publish' -) ); - -$roles_associations = array(); - -$all_wp_roles = array_keys( get_editable_roles() ); -if ( ! empty( $um_roles ) ) { - foreach ( $um_roles as $um_role ) { - - //old role key which inserted for each user to usermeta "role" - $key_in_meta = $um_role->post_name; - - if ( preg_match( "/[a-z0-9]+$/i", $um_role->post_title ) ) { - $role_key = sanitize_title( $um_role->post_title ); - } else { - $auto_increment = UM()->options()->get( 'custom_roles_increment' ); - $auto_increment = ! empty( $auto_increment ) ? $auto_increment : 1; - $role_key = 'custom_role_' . $auto_increment; - - $auto_increment++; - UM()->options()->update( 'custom_roles_increment', $auto_increment ); - } - - if ( ! in_array( $role_key, $all_wp_roles ) ) { - $role_keys[] = $role_key; - } - - $all_role_metadata = $wpdb->get_results( $wpdb->prepare( - "SELECT pm.meta_key, - pm.meta_value - FROM {$wpdb->postmeta} pm - WHERE pm.post_id = %d AND - pm.meta_key LIKE %s", - $um_role->ID, - "_um_%" - ), ARRAY_A ); - - $role_metadata = array(); - if ( ! empty( $all_role_metadata ) ) { - foreach ( $all_role_metadata as $metadata ) { - - if ( '_um_can_edit_roles' == $metadata['meta_key'] || '_um_can_delete_roles' == $metadata['meta_key'] - || '_um_can_view_roles' == $metadata['meta_key'] || '_um_can_follow_roles' == $metadata['meta_key'] - || '_um_can_friend_roles' == $metadata['meta_key'] || '_um_can_review_roles' == $metadata['meta_key'] ) { - $metadata['meta_value'] = maybe_unserialize( $metadata['meta_value'] ); - } - - $role_metadata[ $metadata['meta_key'] ] = $metadata['meta_value']; - } - } - - if ( ! in_array( $role_key, $all_wp_roles ) ) { - $role_meta = array_merge( $role_metadata, array( - 'name' => $um_role->post_title, - 'wp_capabilities' => array( 'read' => true ), - '_um_is_custom' => true, - ) ); - } else { - $role_meta = $role_metadata; - } - - //$old_key = ! empty( $role_meta['_um_core'] ) ? $role_meta['_um_core'] : $role_key; - if ( ! in_array( $role_key, $all_wp_roles ) ) { - $roles_associations[ $key_in_meta ] = 'um_' . $role_key; - } else { - $roles_associations[ $key_in_meta ] = $role_key; - } - - - //$r_key = ! empty( $role_meta['_um_core'] ) ? $role_meta['_um_core'] : $role_key; - //get all users with UM role - $args = array( - 'meta_query' => array( - array( - 'key' => 'role', - 'value' => $key_in_meta - ) - ), - 'number' => '', - 'count_total' => false, - ); - $all_users = get_users( $args ); - - //update roles for users - foreach ( $all_users as $k => $user ) { - $user_object = get_userdata( $user->ID ); - - if ( ! in_array( $role_key, $all_wp_roles ) ) { - $user_object->add_role( 'um_' . $role_key ); - } else { - if ( ! in_array( $role_key, (array) $user_object->roles ) ) { - $user_object->add_role( $role_key ); - } - } - } - - if ( ! empty( $role_meta['_um_core'] ) ) - unset( $role_meta['_um_core'] ); - - update_option( "um_role_{$role_key}_meta", $role_meta ); - } - - //update user role meta where role keys stored - foreach ( $um_roles as $um_role ) { - - $key_in_meta = $um_role->post_name; - - $role_key = $roles_associations[ $key_in_meta ]; - if ( strpos( $role_key, 'um_' ) === 0 ) - $role_key = substr( $role_key, 3 ); - - $role_meta = get_option( "um_role_{$role_key}_meta" ); - - $role_metadata = array(); - if ( ! empty( $role_meta ) ) { - foreach ( $role_meta as $metakey => $metadata ) { - - if ( '_um_can_edit_roles' == $metakey || '_um_can_delete_roles' == $metakey - || '_um_can_view_roles' == $metakey || '_um_can_follow_roles' == $metakey - || '_um_can_friend_roles' == $metakey || '_um_can_review_roles' == $metakey ) { - - if ( ! empty( $metadata ) ) { - foreach ( $metadata as $i => $role_k ) { - $metadata[ $i ] = $roles_associations[ $role_k ]; - } - } - } elseif ( '_um_profilec_upgrade_role' == $metakey ) { - $metadata = $roles_associations[ $metadata ]; - } - - $role_meta[ $metakey ] = $metadata; - } - } - - update_option( "um_role_{$role_key}_meta", $role_meta ); - } -} - -update_option( 'um_roles', $role_keys ); - -global $wp_roles, $wp_version; -if ( version_compare( $wp_version, '4.9', '<' ) ) { - $wp_roles->_init(); -} elseif ( method_exists( $wp_roles, 'for_site' ) ) { - $wp_roles->for_site( get_current_blog_id() ); -} - -//Content Restriction transfer - -//for check all post types and taxonomies -$all_post_types = get_post_types( array( 'public' => true ) ); - -$all_taxonomies = get_taxonomies( array( 'public' => true ) ); -$exclude_taxonomies = UM()->excluded_taxonomies(); - -foreach ( $all_taxonomies as $key => $taxonomy ) { - if( in_array( $key, $exclude_taxonomies ) ) - unset( $all_taxonomies[ $key ] ); -} - -foreach ( $all_post_types as $key => $value ) { - $all_post_types[ $key ] = true; -} - -foreach ( $all_taxonomies as $key => $value ) { - $all_taxonomies[ $key ] = true; -} - -UM()->options()->update( 'restricted_access_post_metabox', $all_post_types ); -UM()->options()->update( 'restricted_access_taxonomy_metabox', $all_taxonomies ); - - -$roles_array = UM()->roles()->get_roles( false, array( 'administrator' ) ); - -$posts = get_posts( array( - 'post_type' => 'any', - 'meta_key' => '_um_custom_access_settings', - 'meta_value' => '1', - 'fields' => 'ids', - 'numberposts' => -1 -) ); - -if ( ! empty( $posts ) ) { - foreach ( $posts as $post_id ) { - $um_accessible = get_post_meta( $post_id, '_um_accessible', true ); - $um_access_roles = get_post_meta( $post_id, '_um_access_roles', true ); - $um_access_redirect = ( $um_accessible == '2' ) ? get_post_meta( $post_id, '_um_access_redirect', true ) : get_post_meta( $post_id, '_um_access_redirect2', true ); - - $access_roles = array(); - if ( ! empty( $um_access_roles ) ) { - foreach ( $roles_array as $role => $role_label ) { - //if ( in_array( substr( $role, 3 ), $um_access_roles ) ) - if ( false !== array_search( $role, $roles_associations ) && in_array( array_search( $role, $roles_associations ), $um_access_roles ) ) - $access_roles[ $role ] = '1'; - else - $access_roles[ $role ] = '0'; - } - } else { - foreach ( $roles_array as $role => $role_label ) { - $access_roles[ $role ] = '0'; - } - } - - $restrict_options = array( - '_um_custom_access_settings' => '1', - '_um_accessible' => $um_accessible, - '_um_access_roles' => $access_roles, - '_um_noaccess_action' => '1', - '_um_restrict_by_custom_message' => '0', - '_um_restrict_custom_message' => '', - '_um_access_redirect' => '1', - '_um_access_redirect_url' => ! empty( $um_access_redirect ) ? $um_access_redirect : '', - '_um_access_hide_from_queries' => '0', - ); - - update_post_meta( $post_id, 'um_content_restriction', $restrict_options ); - } -} - - -$all_taxonomies = get_taxonomies( array( 'public' => true ) ); -$exclude_taxonomies = UM()->excluded_taxonomies(); - -foreach ( $all_taxonomies as $key => $taxonomy ) { - if ( in_array( $key , $exclude_taxonomies ) ) - continue; - - $terms = get_terms( array( - 'taxonomy' => $taxonomy, - 'hide_empty' => false, - 'fields' => 'ids' - ) ); - - if ( empty( $terms ) ) - continue; - - foreach ( $terms as $term_id ) { - $term_meta = get_option( "category_{$term_id}" ); - - if ( empty( $term_meta ) ) - continue; - - $um_accessible = ! empty( $term_meta['_um_accessible'] ) ? $term_meta['_um_accessible'] : false; - $um_access_roles = ! empty( $term_meta['_um_roles'] ) ? $term_meta['_um_roles'] : array(); - $redirect = ! empty( $term_meta['_um_redirect'] ) ? $term_meta['_um_redirect'] : ''; - $redirect2 = ! empty( $term_meta['_um_redirect2'] ) ? $term_meta['_um_redirect2'] : ''; - $um_access_redirect = ( $um_accessible == '2' ) ? $redirect : $redirect2; - - $access_roles = array(); - if ( ! empty( $um_access_roles ) ) { - foreach ( $roles_array as $role => $role_label ) { - //if ( in_array( substr( $role, 3 ), $um_access_roles ) ) - if ( false !== array_search( $role, $roles_associations ) && in_array( array_search( $role, $roles_associations ), $um_access_roles ) ) - $access_roles[ $role ] = '1'; - else - $access_roles[ $role ] = '0'; - } - } else { - foreach ( $roles_array as $role => $role_label ) { - $access_roles[ $role ] = '0'; - } - } - - $restrict_options = array( - '_um_custom_access_settings' => '1', - '_um_accessible' => $um_accessible, - '_um_access_roles' => $access_roles, - '_um_noaccess_action' => '1', - '_um_restrict_by_custom_message' => '0', - '_um_restrict_custom_message' => '', - '_um_access_redirect' => '1', - '_um_access_redirect_url' => ! empty( $um_access_redirect ) ? $um_access_redirect : '', - '_um_access_hide_from_queries' => '0', - ); - - update_term_meta( $term_id, 'um_content_restriction', $restrict_options ); - } -} - - - -//for metadata for all UM forms -//"use_global" meta change to "_use_custom_settings" - -//also update for forms metadata where "member" or "admin" -$forms = get_posts( array( - 'post_type' => 'um_form', - 'numberposts' => -1, - 'fields' => 'ids' -) ); - -foreach ( $forms as $form_id ) { - $form_type = get_post_meta( $form_id, '_um_mode', true ); - - if ( ! empty( $form_type ) ) { - $use_globals = get_post_meta( $form_id, "_um_{$form_type}_use_globals", true ); - $use_custom_settings = empty( $use_globals ) ? true : false; - - update_post_meta( $form_id, "_um_{$form_type}_use_custom_settings", $use_custom_settings ); - delete_post_meta( $form_id, "_um_{$form_type}_use_globals" ); - - $role = get_post_meta( $form_id, "_um_{$form_type}_role", true ); - if ( $role ) { - //update_post_meta( $form_id, "_um_{$form_type}_role", 'um_' . $role ); - update_post_meta( $form_id, "_um_{$form_type}_role", $roles_associations[ $role ] ); - } - } -} - -//for metadata for all UM Member Directories -//also update for forms metadata where "member" or "admin" -$member_directories = get_posts( array( - 'post_type' => 'um_directory', - 'numberposts' => -1, - 'fields' => 'ids' -) ); - -foreach ( $member_directories as $directory_id ) { - $directory_roles = get_post_meta( $directory_id, '_um_roles', true ); - - if ( ! empty( $directory_roles ) ) { - /*$directory_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $directory_roles );*/ - - - foreach ( $directory_roles as $i => $role_k ) { - $directory_roles[ $i ] = $roles_associations[ $role_k ]; - } - - update_post_meta( $directory_id, '_um_roles', $directory_roles ); - } - - $um_roles_can_search = get_post_meta( $directory_id, '_um_roles_can_search', true ); - - if ( ! empty( $um_roles_can_search ) ) { - /*$um_roles_can_search = array_map( function( $item ) { - return 'um_' . $item; - }, $um_roles_can_search );*/ - - foreach ( $um_roles_can_search as $i => $role_k ) { - $um_roles_can_search[ $i ] = $roles_associations[ $role_k ]; - } - - update_post_meta( $directory_id, '_um_roles_can_search', $um_roles_can_search ); - } -} - - -/** - * Transferring email templates to new logic - */ -$templates_in_theme = 0; -$emails = UM()->config()->email_notifications; -foreach ( $emails as $email_key => $value ) { - - $in_theme = UM()->mail()->template_in_theme( $email_key, true ); - $theme_template_path = UM()->mail()->get_template_file( 'theme', $email_key ); - - if ( ! $in_theme ) { - $setting_value = UM()->options()->get( $email_key ); - - UM()->mail()->copy_email_template( $email_key ); - - $fp = fopen( $theme_template_path, "w" ); - $result = fputs( $fp, $setting_value ); - fclose( $fp ); - } else { - $theme_template_path_html = UM()->mail()->get_template_file( 'theme', $email_key, true ); - - $setting_value = preg_replace( '/<\/body>|<\/head>||<\/html>||/' , '', file_get_contents( $theme_template_path_html ) ); - - if ( file_exists( $theme_template_path_html ) ) { - if ( copy( $theme_template_path_html, $theme_template_path ) ) { - $fp = fopen( $theme_template_path, "w" ); - $result = fputs( $fp, $setting_value ); - fclose( $fp ); - - $templates_in_theme++; - } - } - } -} - -if ( $templates_in_theme > 0 ) { - UM()->options()->update( 'email_html', true ); -} else { - UM()->options()->update( 'email_html', false ); -} - - -/** - * Transferring menu restriction data - */ -$menus = get_posts( array( - 'post_type' => 'nav_menu_item', - 'meta_query' => array( - array( - 'key' => 'menu-item-um_nav_roles', - 'compare' => 'EXISTS', - ) - ), - 'numberposts' => -1, -) ); - -foreach ( $menus as $menu ) { - $menu_roles = get_post_meta( $menu->ID, 'menu-item-um_nav_roles', true ); - - - foreach ( $menu_roles as $i => $role_k ) { - $menu_roles[ $i ] = $roles_associations[ $role_k ]; - } - - /*$menu_roles = array_map( function( $item ) { - if ( strpos( $item, 'um_' ) === 0 ) - return $item; - - return 'um_' . $item; - }, $menu_roles );*/ - - update_post_meta( $menu->ID, 'menu-item-um_nav_roles', $menu_roles ); -} - -$profile_tab_main_roles = UM()->options()->get( 'profile_tab_main_roles' ); -$profile_tab_main_roles = ! $profile_tab_main_roles ? array() : $profile_tab_main_roles; -if ( ! empty( $profile_tab_main_roles ) ) { - /*$profile_tab_main_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_main_roles );*/ - - foreach ( $profile_tab_main_roles as $i => $role_k ) { - $profile_tab_main_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_main_roles', $profile_tab_main_roles ); -} - -$profile_tab_posts_roles = UM()->options()->get( 'profile_tab_posts_roles' ); -$profile_tab_posts_roles = ! $profile_tab_posts_roles ? array() : $profile_tab_posts_roles; -if ( ! empty( $profile_tab_posts_roles ) ) { - /*$profile_tab_posts_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_posts_roles );*/ - - foreach ( $profile_tab_posts_roles as $i => $role_k ) { - $profile_tab_posts_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_posts_roles', $profile_tab_posts_roles ); -} - -$profile_tab_comments_roles = UM()->options()->get( 'profile_tab_comments_roles' ); -$profile_tab_comments_roles = ! $profile_tab_comments_roles ? array() : $profile_tab_comments_roles; -if ( ! empty( $profile_tab_comments_roles ) ) { - /*$profile_tab_comments_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_comments_roles );*/ - - foreach ( $profile_tab_comments_roles as $i => $role_k ) { - $profile_tab_comments_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_comments_roles', $profile_tab_comments_roles ); -} - -$profile_tab_activity_roles = UM()->options()->get( 'profile_tab_activity_roles' ); -$profile_tab_activity_roles = ! $profile_tab_activity_roles ? array() : $profile_tab_activity_roles; -if ( ! empty( $profile_tab_activity_roles ) ) { - /*$profile_tab_activity_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_activity_roles );*/ - - foreach ( $profile_tab_activity_roles as $i => $role_k ) { - $profile_tab_activity_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_activity_roles', $profile_tab_activity_roles ); -} - -$profile_tab_messages_roles = UM()->options()->get( 'profile_tab_messages_roles' ); -$profile_tab_messages_roles = ! $profile_tab_messages_roles ? array() : $profile_tab_messages_roles; -if ( ! empty( $profile_tab_messages_roles ) ) { - /*$profile_tab_messages_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_messages_roles );*/ - - foreach ( $profile_tab_messages_roles as $i => $role_k ) { - $profile_tab_messages_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_messages_roles', $profile_tab_messages_roles ); -} - -$profile_tab_reviews_roles = UM()->options()->get( 'profile_tab_reviews_roles' ); -$profile_tab_reviews_roles = ! $profile_tab_reviews_roles ? array() : $profile_tab_reviews_roles; -if ( ! empty( $profile_tab_reviews_roles ) ) { - /*$profile_tab_reviews_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_reviews_roles );*/ - - foreach ( $profile_tab_reviews_roles as $i => $role_k ) { - $profile_tab_reviews_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_reviews_roles', $profile_tab_reviews_roles ); -} - -$profile_tab_purchases_roles = UM()->options()->get( 'profile_tab_purchases_roles' ); -$profile_tab_purchases_roles = ! $profile_tab_purchases_roles ? array() : $profile_tab_purchases_roles; -if ( ! empty( $profile_tab_purchases_roles ) ) { - /*$profile_tab_purchases_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_purchases_roles );*/ - - foreach ( $profile_tab_purchases_roles as $i => $role_k ) { - $profile_tab_purchases_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_purchases_roles', $profile_tab_purchases_roles ); -} - -$profile_tab_product_reviews = UM()->options()->get( 'profile_tab_product-reviews_roles' ); -$profile_tab_product_reviews = ! $profile_tab_product_reviews ? array() : $profile_tab_product_reviews; -if ( ! empty( $profile_tab_product_reviews ) ) { - /*$profile_tab_product_reviews = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_product_reviews );*/ - - foreach ( $profile_tab_product_reviews as $i => $role_k ) { - $profile_tab_product_reviews[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_product-reviews_roles', $profile_tab_product_reviews ); -} - - -$profile_tab_forums_roles = UM()->options()->get( 'profile_tab_forums_roles' ); -$profile_tab_forums_roles = ! $profile_tab_forums_roles ? array() : $profile_tab_forums_roles; -if ( ! empty( $profile_tab_forums_roles ) ) { - /*$profile_tab_forums_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_forums_roles );*/ - - foreach ( $profile_tab_forums_roles as $i => $role_k ) { - $profile_tab_forums_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_forums_roles', $profile_tab_forums_roles ); -} - -$profile_tab_friends_roles = UM()->options()->get( 'profile_tab_friends_roles' ); -$profile_tab_friends_roles = ! $profile_tab_friends_roles ? array() : $profile_tab_friends_roles; -if ( ! empty( $profile_tab_friends_roles ) ) { - /*$profile_tab_friends_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $profile_tab_friends_roles );*/ - - foreach ( $profile_tab_friends_roles as $i => $role_k ) { - $profile_tab_friends_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'profile_tab_friends_roles', $profile_tab_friends_roles ); -} - - -$register_role = UM()->options()->get( 'register_role' ); -if ( ! empty( $register_role ) ) { - //$register_role = 'um_' . $register_role; - $register_role = $roles_associations[ $register_role ]; - - UM()->options()->update( 'register_role', $register_role ); -} - -$woo_oncomplete_role = UM()->options()->get( 'woo_oncomplete_role' ); -if ( ! empty( $woo_oncomplete_role ) ) { - //$woo_oncomplete_role = 'um_' . $woo_oncomplete_role; - $woo_oncomplete_role = $roles_associations[ $woo_oncomplete_role ]; - UM()->options()->update( 'woo_oncomplete_role', $woo_oncomplete_role ); -} - -$woo_oncomplete_except_roles = UM()->options()->get( 'woo_oncomplete_except_roles' ); -$woo_oncomplete_except_roles = ! $woo_oncomplete_except_roles ? array() : $woo_oncomplete_except_roles; -if ( ! empty( $woo_oncomplete_except_roles ) ) { - /*$woo_oncomplete_except_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $woo_oncomplete_except_roles );*/ - - foreach ( $woo_oncomplete_except_roles as $i => $role_k ) { - $woo_oncomplete_except_roles[ $i ] = $roles_associations[ $role_k ]; - } - - UM()->options()->update( 'woo_oncomplete_except_roles', $woo_oncomplete_except_roles ); -} - -//for metadata for all bbPress forums -//also update for forms metadata where "member" or "admin" -$wc_products = get_posts( array( - 'post_type' => 'product', - 'numberposts' => -1, - 'fields' => 'ids' -) ); - -foreach ( $wc_products as $product_id ) { - $woo_product_role = get_post_meta( $product_id, '_um_woo_product_role', true ); - - if ( ! empty( $woo_product_role ) ) { - //$woo_product_role = 'um_' . $woo_product_role; - $woo_product_role = $roles_associations[ $woo_product_role ]; - update_post_meta( $product_id, '_um_woo_product_role', $woo_product_role ); - } - - $woo_product_activated_role = get_post_meta( $product_id, '_um_woo_product_activated_role', true ); - - if ( ! empty( $woo_product_activated_role ) ) { - //$woo_product_activated_role = 'um_' . $woo_product_activated_role; - $woo_product_activated_role = $roles_associations[ $woo_product_activated_role ]; - update_post_meta( $product_id, '_um_woo_product_activated_role', $woo_product_activated_role ); - } - - $woo_product_downgrade_pending_role = get_post_meta( $product_id, '_um_woo_product_downgrade_pending_role', true ); - - if ( ! empty( $woo_product_downgrade_pending_role ) ) { - //$woo_product_downgrade_pending_role = 'um_' . $woo_product_downgrade_pending_role; - $woo_product_downgrade_pending_role = $roles_associations[ $woo_product_downgrade_pending_role ]; - update_post_meta( $product_id, '_um_woo_product_downgrade_pending_role', $woo_product_downgrade_pending_role ); - } - - $woo_product_downgrade_onhold_role = get_post_meta( $product_id, '_um_woo_product_downgrade_onhold_role', true ); - - if ( ! empty( $woo_product_downgrade_onhold_role ) ) { - //$woo_product_downgrade_onhold_role = 'um_' . $woo_product_downgrade_onhold_role; - $woo_product_downgrade_onhold_role = $roles_associations[ $woo_product_downgrade_onhold_role ]; - update_post_meta( $product_id, '_um_woo_product_downgrade_onhold_role', $woo_product_downgrade_onhold_role ); - } - - $woo_product_downgrade_expired_role = get_post_meta( $product_id, '_um_woo_product_downgrade_expired_role', true ); - - if ( ! empty( $woo_product_downgrade_expired_role ) ) { - //$woo_product_downgrade_expired_role = 'um_' . $woo_product_downgrade_expired_role; - $woo_product_downgrade_expired_role = $roles_associations[ $woo_product_downgrade_expired_role ]; - update_post_meta( $product_id, '_um_woo_product_downgrade_expired_role', $woo_product_downgrade_expired_role ); - } - - $woo_product_downgrade_cancelled_role = get_post_meta( $product_id, '_um_woo_product_downgrade_cancelled_role', true ); - - if ( ! empty( $woo_product_downgrade_cancelled_role ) ) { - //$woo_product_downgrade_cancelled_role = 'um_' . $woo_product_downgrade_cancelled_role; - $woo_product_downgrade_cancelled_role = $roles_associations[ $woo_product_downgrade_cancelled_role ]; - update_post_meta( $product_id, '_um_woo_product_downgrade_cancelled_role', $woo_product_downgrade_cancelled_role ); - } -} - - -$bb_forums = get_posts( array( - 'post_type' => 'forum', - 'numberposts' => -1, - 'fields' => 'ids' -) ); - -foreach ( $bb_forums as $forum_id ) { - $bbpress_can_topic = get_post_meta( $forum_id, '_um_bbpress_can_topic', true ); - $bbpress_can_topic = ! $bbpress_can_topic ? array() : $bbpress_can_topic; - if ( ! empty( $bbpress_can_topic ) ) { - /*$bbpress_can_topic = array_map( function( $item ) { - return 'um_' . $item; - }, $bbpress_can_topic );*/ - - foreach ( $bbpress_can_topic as $i => $role_k ) { - $bbpress_can_topic[ $i ] = $roles_associations[ $role_k ]; - } - - update_post_meta( $forum_id, '_um_bbpress_can_topic', $bbpress_can_topic ); - } - - - $bbpress_can_reply = get_post_meta( $forum_id, '_um_bbpress_can_reply', true ); - $bbpress_can_reply = ! $bbpress_can_reply ? array() : $bbpress_can_reply; - if ( ! empty( $bbpress_can_reply ) ) { - /*$bbpress_can_reply = array_map( function( $item ) { - return 'um_' . $item; - }, $bbpress_can_reply );*/ - - foreach ( $bbpress_can_reply as $i => $role_k ) { - $bbpress_can_reply[ $i ] = $roles_associations[ $role_k ]; - } - - update_post_meta( $forum_id, '_um_bbpress_can_reply', $bbpress_can_reply ); - } -} - - - -$mc_lists = get_posts( array( - 'post_type' => 'um_mailchimp', - 'numberposts' => -1, - 'fields' => 'ids' -) ); - -foreach ( $mc_lists as $list_id ) { - $um_roles = get_post_meta( $list_id, '_um_roles', true ); - $um_roles = ! $um_roles ? array() : $um_roles; - if ( ! empty( $um_roles ) ) { - /*$um_roles = array_map( function( $item ) { - return 'um_' . $item; - }, $um_roles );*/ - - foreach ( $um_roles as $i => $role_k ) { - $um_roles[ $i ] = $roles_associations[ $role_k ]; - } - - update_post_meta( $list_id, '_um_roles', $um_roles ); - } -} - - -$um_social_login = get_posts( array( - 'post_type' => 'um_social_login', - 'numberposts' => -1, - 'fields' => 'ids' -) ); - -foreach ( $um_social_login as $social_login_id ) { - $assigned_role = get_post_meta( $social_login_id, '_um_assigned_role', true ); - - if ( ! empty( $assigned_role ) ) { - //$assigned_role = 'um_' . $assigned_role; - $assigned_role = $roles_associations[ $assigned_role ]; - update_post_meta( $social_login_id, '_um_assigned_role', $assigned_role ); - } -} \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/content_restriction.php b/includes/admin/core/packages/2.0-beta1/content_restriction.php new file mode 100644 index 00000000..9383b61d --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/content_restriction.php @@ -0,0 +1,134 @@ + true ) ); + +$all_taxonomies = get_taxonomies( array( 'public' => true ) ); +$exclude_taxonomies = UM()->excluded_taxonomies(); + +foreach ( $all_taxonomies as $key => $taxonomy ) { + if ( in_array( $key, $exclude_taxonomies ) ) { + unset( $all_taxonomies[ $key ] ); + } +} + +foreach ( $all_post_types as $key => $value ) { + $all_post_types[ $key ] = true; +} + +foreach ( $all_taxonomies as $key => $value ) { + $all_taxonomies[ $key ] = true; +} + +UM()->options()->update( 'restricted_access_post_metabox', $all_post_types ); +UM()->options()->update( 'restricted_access_taxonomy_metabox', $all_taxonomies ); + + +$roles_array = UM()->roles()->get_roles( false, array( 'administrator' ) ); + +$posts = get_posts( array( + 'post_type' => 'any', + 'meta_key' => '_um_custom_access_settings', + 'meta_value' => '1', + 'fields' => 'ids', + 'numberposts' => -1 +) ); + +if ( ! empty( $posts ) ) { + foreach ( $posts as $post_id ) { + $um_accessible = get_post_meta( $post_id, '_um_accessible', true ); + $um_access_roles = get_post_meta( $post_id, '_um_access_roles', true ); + $um_access_redirect = ( $um_accessible == '2' ) ? get_post_meta( $post_id, '_um_access_redirect', true ) : get_post_meta( $post_id, '_um_access_redirect2', true ); + + $access_roles = array(); + if ( ! empty( $um_access_roles ) ) { + foreach ( $roles_array as $role => $role_label ) { + //if ( in_array( substr( $role, 3 ), $um_access_roles ) ) + if ( false !== array_search( $role, $roles_associations ) && in_array( array_search( $role, $roles_associations ), $um_access_roles ) ) + $access_roles[ $role ] = '1'; + else + $access_roles[ $role ] = '0'; + } + } else { + foreach ( $roles_array as $role => $role_label ) { + $access_roles[ $role ] = '0'; + } + } + + $restrict_options = array( + '_um_custom_access_settings' => '1', + '_um_accessible' => $um_accessible, + '_um_access_roles' => $access_roles, + '_um_noaccess_action' => '1', + '_um_restrict_by_custom_message' => '0', + '_um_restrict_custom_message' => '', + '_um_access_redirect' => '1', + '_um_access_redirect_url' => ! empty( $um_access_redirect ) ? $um_access_redirect : '', + '_um_access_hide_from_queries' => '0', + ); + + update_post_meta( $post_id, 'um_content_restriction', $restrict_options ); + } +} + + +$all_taxonomies = get_taxonomies( array( 'public' => true ) ); +$exclude_taxonomies = UM()->excluded_taxonomies(); + +foreach ( $all_taxonomies as $key => $taxonomy ) { + if ( in_array( $key , $exclude_taxonomies ) ) + continue; + + $terms = get_terms( array( + 'taxonomy' => $taxonomy, + 'hide_empty' => false, + 'fields' => 'ids' + ) ); + + if ( empty( $terms ) ) + continue; + + foreach ( $terms as $term_id ) { + $term_meta = get_option( "category_{$term_id}" ); + + if ( empty( $term_meta ) ) + continue; + + $um_accessible = ! empty( $term_meta['_um_accessible'] ) ? $term_meta['_um_accessible'] : false; + $um_access_roles = ! empty( $term_meta['_um_roles'] ) ? $term_meta['_um_roles'] : array(); + $redirect = ! empty( $term_meta['_um_redirect'] ) ? $term_meta['_um_redirect'] : ''; + $redirect2 = ! empty( $term_meta['_um_redirect2'] ) ? $term_meta['_um_redirect2'] : ''; + $um_access_redirect = ( $um_accessible == '2' ) ? $redirect : $redirect2; + + $access_roles = array(); + if ( ! empty( $um_access_roles ) ) { + foreach ( $roles_array as $role => $role_label ) { + if ( false !== array_search( $role, $roles_associations ) && in_array( array_search( $role, $roles_associations ), $um_access_roles ) ) + $access_roles[ $role ] = '1'; + else + $access_roles[ $role ] = '0'; + } + } else { + foreach ( $roles_array as $role => $role_label ) { + $access_roles[ $role ] = '0'; + } + } + + $restrict_options = array( + '_um_custom_access_settings' => '1', + '_um_accessible' => $um_accessible, + '_um_access_roles' => $access_roles, + '_um_noaccess_action' => '1', + '_um_restrict_by_custom_message' => '0', + '_um_restrict_custom_message' => '', + '_um_access_redirect' => '1', + '_um_access_redirect_url' => ! empty( $um_access_redirect ) ? $um_access_redirect : '', + '_um_access_hide_from_queries' => '0', + ); + + update_term_meta( $term_id, 'um_content_restriction', $restrict_options ); + } +} diff --git a/includes/admin/core/packages/2.0-beta1/email_templates.php b/includes/admin/core/packages/2.0-beta1/email_templates.php new file mode 100644 index 00000000..3d97823e --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/email_templates.php @@ -0,0 +1,41 @@ +config()->email_notifications; +foreach ( $emails as $email_key => $value ) { + + $in_theme = UM()->mail()->template_in_theme( $email_key, true ); + $theme_template_path = UM()->mail()->get_template_file( 'theme', $email_key ); + + if ( ! $in_theme ) { + $setting_value = UM()->options()->get( $email_key ); + + UM()->mail()->copy_email_template( $email_key ); + + $fp = fopen( $theme_template_path, "w" ); + $result = fputs( $fp, $setting_value ); + fclose( $fp ); + } else { + $theme_template_path_html = UM()->mail()->get_template_file( 'theme', $email_key, true ); + + $setting_value = preg_replace( '/<\/body>|<\/head>||<\/html>||/' , '', file_get_contents( $theme_template_path_html ) ); + + if ( file_exists( $theme_template_path_html ) ) { + if ( copy( $theme_template_path_html, $theme_template_path ) ) { + $fp = fopen( $theme_template_path, "w" ); + $result = fputs( $fp, $setting_value ); + fclose( $fp ); + + $templates_in_theme++; + } + } + } +} + +if ( $templates_in_theme > 0 ) { + UM()->options()->update( 'email_html', true ); +} else { + UM()->options()->update( 'email_html', false ); +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/functions.php b/includes/admin/core/packages/2.0-beta1/functions.php new file mode 100644 index 00000000..9b910b88 --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/functions.php @@ -0,0 +1,290 @@ + __( 'Styles was upgraded successfully', 'ultimate-member' ) ) ); +} + + +function um_upgrade_user_roles20beta1() { + um_maybe_unset_time_limit(); + /** + * @var $response_roles_data + */ + include 'user_roles.php'; + + wp_send_json_success( array( 'message' => __( 'User Roles was upgraded successfully', 'ultimate-member' ), 'roles' => $response_roles_data ) ); +} + + +function um_upgrade_get_users_per_role20beta1() { + um_maybe_unset_time_limit(); + if ( ! empty( $_POST['key_in_meta'] ) ) { + $args = array( + 'meta_query' => array( + array( + 'key' => 'role', + 'value' => $_POST['key_in_meta'] + ) + ), + 'number' => '', + 'count_total' => false, + 'fields' => 'ids' + ); + $users = get_users( $args ); + $count = count( $users ); + + wp_send_json_success( array( 'count' => $count ) ); + } else { + wp_send_json_error(); + } +} + + +function um_upgrade_update_users_per_page20beta1() { + um_maybe_unset_time_limit(); + if ( ! empty( $_POST['key_in_meta'] ) && ! empty( $_POST['role_key'] ) && ! empty( $_POST['page'] ) ) { + $users_per_page = 100; + + $all_wp_roles = array_keys( get_editable_roles() ); + + $args = array( + 'meta_query' => array( + array( + 'key' => 'role', + 'value' => $_POST['key_in_meta'] + ) + ), + 'paged' => $_POST['page'], + 'number' => $users_per_page, + ); + $all_users = get_users( $args ); + + //update roles for users + foreach ( $all_users as $k => $user ) { + $user_object = get_userdata( $user->ID ); + + if ( ! in_array( $_POST['role_key'], $all_wp_roles ) ) { + $user_object->add_role( 'um_' . $_POST['role_key'] ); + } else { + if ( ! in_array( $_POST['role_key'], (array) $user_object->roles ) ) { + $user_object->add_role( $_POST['role_key'] ); + } + } + } + + $from = ( $_POST['page'] * $users_per_page ) - $users_per_page + 1; + $to = $_POST['page'] * $users_per_page; + + wp_send_json_success( array( 'message' => sprintf( __( 'Users from %s to %s was upgraded successfully...', 'ultimate-member' ), $from, $to ) ) ); + } else { + wp_send_json_error(); + } +} + + +function um_upgrade_content_restriction20beta1() { + um_maybe_unset_time_limit(); + + include 'content_restriction.php'; + wp_send_json_success( array( 'message' => 'Content restriction settings was upgraded successfully' ) ); +} + + + +function um_upgrade_settings20beta1() { + um_maybe_unset_time_limit(); + + include 'settings.php'; + wp_send_json_success( array( 'message' => __( 'Settings was upgraded successfully', 'ultimate-member' ) ) ); +} + + +function um_upgrade_menus20beta1() { + um_maybe_unset_time_limit(); + + include 'menus.php'; + wp_send_json_success( array( 'message' => __( 'Menus settings was upgraded successfully', 'ultimate-member' ) ) ); +} + + +function um_upgrade_mc_lists20beta1() { + um_maybe_unset_time_limit(); + + include 'mc_lists.php'; + wp_send_json_success( array( 'message' => __( 'Mailchimp Lists was upgraded successfully', 'ultimate-member' ) ) ); +} + + +function um_upgrade_social_login20beta1() { + um_maybe_unset_time_limit(); + + include 'social_login.php'; + wp_send_json_success( array( 'message' => __( 'Social login forms was upgraded successfully', 'ultimate-member' ) ) ); +} + + +function um_upgrade_cpt20beta1() { + um_maybe_unset_time_limit(); + + include 'um_cpt.php'; + wp_send_json_success( array( 'message' => __( 'UM Custom Posts was upgraded successfully', 'ultimate-member' ) ) ); +} + + +function um_upgrade_get_forums20beta1() { + um_maybe_unset_time_limit(); + + $bb_forums = get_posts( array( + 'post_type' => 'forum', + 'numberposts' => -1, + 'fields' => 'ids' + ) ); + + wp_send_json_success( array( 'count' => count( $bb_forums ), 'message' => __( 'Forums are ready for upgrade', 'ultimate-member' ) ) ); +} + + +function um_upgrade_update_forum_per_page20beta1() { + um_maybe_unset_time_limit(); + + if ( ! empty( $_POST['page'] ) ) { + $posts_per_page = 100; + + $roles_associations = get_option( 'um_roles_associations' ); + + $bb_forums = get_posts( array( + 'post_type' => 'forum', + 'paged' => $_POST['page'], + 'numberposts' => $posts_per_page, + 'fields' => 'ids' + ) ); + + foreach ( $bb_forums as $forum_id ) { + $bbpress_can_topic = get_post_meta( $forum_id, '_um_bbpress_can_topic', true ); + $bbpress_can_topic = ! $bbpress_can_topic ? array() : $bbpress_can_topic; + if ( ! empty( $bbpress_can_topic ) ) { + foreach ( $bbpress_can_topic as $i => $role_k ) { + $bbpress_can_topic[ $i ] = $roles_associations[ $role_k ]; + } + + update_post_meta( $forum_id, '_um_bbpress_can_topic', $bbpress_can_topic ); + } + + + $bbpress_can_reply = get_post_meta( $forum_id, '_um_bbpress_can_reply', true ); + $bbpress_can_reply = ! $bbpress_can_reply ? array() : $bbpress_can_reply; + if ( ! empty( $bbpress_can_reply ) ) { + foreach ( $bbpress_can_reply as $i => $role_k ) { + $bbpress_can_reply[ $i ] = $roles_associations[ $role_k ]; + } + + update_post_meta( $forum_id, '_um_bbpress_can_reply', $bbpress_can_reply ); + } + } + + $from = ( $_POST['page'] * $posts_per_page ) - $posts_per_page + 1; + $to = $_POST['page'] * $posts_per_page; + + wp_send_json_success( array( 'message' => sprintf( __( 'Forums from %s to %s was upgraded successfully...', 'ultimate-member' ), $from, $to ) ) ); + } else { + wp_send_json_error(); + } +} + + +function um_upgrade_get_products20beta1() { + um_maybe_unset_time_limit(); + + $wc_products = get_posts( array( + 'post_type' => 'product', + 'numberposts' => -1, + 'fields' => 'ids' + ) ); + + wp_send_json_success( array( 'count' => count( $wc_products ), 'message' => __( 'Woocommerce Products are ready for upgrade', 'ultimate-member' ) ) ); +} + + +function um_upgrade_update_products_per_page20beta1() { + um_maybe_unset_time_limit(); + + if ( ! empty( $_POST['page'] ) ) { + $posts_per_page = 100; + + $roles_associations = get_option( 'um_roles_associations' ); + + $wc_products = get_posts( array( + 'post_type' => 'product', + 'numberposts' => $posts_per_page, + 'paged' => $_POST['page'], + 'fields' => 'ids' + ) ); + + + foreach ( $wc_products as $product_id ) { + $woo_product_role = get_post_meta( $product_id, '_um_woo_product_role', true ); + + if ( ! empty( $woo_product_role ) ) { + $woo_product_role = $roles_associations[ $woo_product_role ]; + update_post_meta( $product_id, '_um_woo_product_role', $woo_product_role ); + } + + $woo_product_activated_role = get_post_meta( $product_id, '_um_woo_product_activated_role', true ); + + if ( ! empty( $woo_product_activated_role ) ) { + $woo_product_activated_role = $roles_associations[ $woo_product_activated_role ]; + update_post_meta( $product_id, '_um_woo_product_activated_role', $woo_product_activated_role ); + } + + $woo_product_downgrade_pending_role = get_post_meta( $product_id, '_um_woo_product_downgrade_pending_role', true ); + + if ( ! empty( $woo_product_downgrade_pending_role ) ) { + $woo_product_downgrade_pending_role = $roles_associations[ $woo_product_downgrade_pending_role ]; + update_post_meta( $product_id, '_um_woo_product_downgrade_pending_role', $woo_product_downgrade_pending_role ); + } + + $woo_product_downgrade_onhold_role = get_post_meta( $product_id, '_um_woo_product_downgrade_onhold_role', true ); + + if ( ! empty( $woo_product_downgrade_onhold_role ) ) { + $woo_product_downgrade_onhold_role = $roles_associations[ $woo_product_downgrade_onhold_role ]; + update_post_meta( $product_id, '_um_woo_product_downgrade_onhold_role', $woo_product_downgrade_onhold_role ); + } + + $woo_product_downgrade_expired_role = get_post_meta( $product_id, '_um_woo_product_downgrade_expired_role', true ); + + if ( ! empty( $woo_product_downgrade_expired_role ) ) { + $woo_product_downgrade_expired_role = $roles_associations[ $woo_product_downgrade_expired_role ]; + update_post_meta( $product_id, '_um_woo_product_downgrade_expired_role', $woo_product_downgrade_expired_role ); + } + + $woo_product_downgrade_cancelled_role = get_post_meta( $product_id, '_um_woo_product_downgrade_cancelled_role', true ); + + if ( ! empty( $woo_product_downgrade_cancelled_role ) ) { + $woo_product_downgrade_cancelled_role = $roles_associations[ $woo_product_downgrade_cancelled_role ]; + update_post_meta( $product_id, '_um_woo_product_downgrade_cancelled_role', $woo_product_downgrade_cancelled_role ); + } + } + + $from = ( $_POST['page'] * $posts_per_page ) - $posts_per_page + 1; + $to = $_POST['page'] * $posts_per_page; + + wp_send_json_success( array( 'message' => sprintf( __( 'Woocommerce Products from %s to %s was upgraded successfully...', 'ultimate-member' ), $from, $to ) ) ); + } else { + wp_send_json_error(); + } +} + + + +function um_upgrade_email_templates20beta1() { + um_maybe_unset_time_limit(); + + include 'email_templates.php'; + + update_option( 'um_last_version_upgrade', '2.0-beta1' ); + delete_option( 'um_roles_associations' ); + + wp_send_json_success( array( 'message' => __( 'Email Templates was upgraded successfully', 'ultimate-member' ) ) ); +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/hooks.php b/includes/admin/core/packages/2.0-beta1/hooks.php new file mode 100644 index 00000000..5efd72fe --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/hooks.php @@ -0,0 +1,22 @@ + 'styles20beta1', + 'user_roles20beta1' => 'user_roles20beta1', + 'get_users_per_role20beta1' => 'get_users_per_role20beta1', + 'update_users_per_page20beta1' => 'update_users_per_page20beta1', + 'email_templates20beta1' => 'email_templates20beta1', + 'settings20beta1' => 'settings20beta1', + + + 'content_restriction20beta1' => 'content_restriction20beta1', + 'menus20beta1' => 'menus20beta1', + 'mc_lists20beta1' => 'mc_lists20beta1', + 'social_login20beta1' => 'social_login20beta1', + 'cpt20beta1' => 'cpt20beta1', + + 'get_forums20beta1' => 'get_forums20beta1', + 'update_forum_per_page20beta1' => 'update_forum_per_page20beta1', + 'get_products20beta1' => 'get_products20beta1', + 'update_products_per_page20beta1' => 'update_products_per_page20beta1', +); \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/init.php b/includes/admin/core/packages/2.0-beta1/init.php new file mode 100644 index 00000000..e0bbb299 --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/init.php @@ -0,0 +1,426 @@ + + + \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/mc_lists.php b/includes/admin/core/packages/2.0-beta1/mc_lists.php new file mode 100644 index 00000000..0a046ed4 --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/mc_lists.php @@ -0,0 +1,20 @@ + 'um_mailchimp', + 'numberposts' => -1, + 'fields' => 'ids' +) ); + +foreach ( $mc_lists as $list_id ) { + $um_roles = get_post_meta( $list_id, '_um_roles', true ); + $um_roles = ! $um_roles ? array() : $um_roles; + if ( ! empty( $um_roles ) ) { + foreach ( $um_roles as $i => $role_k ) { + $um_roles[ $i ] = $roles_associations[ $role_k ]; + } + + update_post_meta( $list_id, '_um_roles', $um_roles ); + } +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/menus.php b/includes/admin/core/packages/2.0-beta1/menus.php new file mode 100644 index 00000000..a1ecb262 --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/menus.php @@ -0,0 +1,26 @@ + 'nav_menu_item', + 'meta_query' => array( + array( + 'key' => 'menu-item-um_nav_roles', + 'compare' => 'EXISTS', + ) + ), + 'numberposts' => -1, +) ); + +foreach ( $menus as $menu ) { + $menu_roles = get_post_meta( $menu->ID, 'menu-item-um_nav_roles', true ); + + foreach ( $menu_roles as $i => $role_k ) { + $menu_roles[ $i ] = $roles_associations[ $role_k ]; + } + + update_post_meta( $menu->ID, 'menu-item-um_nav_roles', $menu_roles ); +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/settings.php b/includes/admin/core/packages/2.0-beta1/settings.php new file mode 100644 index 00000000..9bdf705f --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/settings.php @@ -0,0 +1,161 @@ +options()->remove( 'active_color' ); +UM()->options()->remove( 'secondary_color' ); +UM()->options()->remove( 'profile_align' ); +UM()->options()->remove( 'register_align' ); +UM()->options()->remove( 'login_align' ); +UM()->options()->remove( 'primary_btn_color' ); +UM()->options()->remove( 'primary_btn_hover' ); +UM()->options()->remove( 'primary_btn_text' ); +UM()->options()->remove( 'secondary_btn_color' ); +UM()->options()->remove( 'secondary_btn_hover' ); +UM()->options()->remove( 'secondary_btn_text' ); +UM()->options()->remove( 'help_tip_color' ); +UM()->options()->remove( 'form_field_label' ); +UM()->options()->remove( 'form_border' ); +UM()->options()->remove( 'form_border_hover' ); +UM()->options()->remove( 'form_bg_color' ); +UM()->options()->remove( 'form_bg_color_focus' ); +UM()->options()->remove( 'form_text_color' ); +UM()->options()->remove( 'form_placeholder' ); +UM()->options()->remove( 'form_icon_color' ); +UM()->options()->remove( 'form_asterisk_color' ); +UM()->options()->remove( 'profile_photocorner' ); +UM()->options()->remove( 'profile_main_bg' ); +UM()->options()->remove( 'profile_header_bg' ); +UM()->options()->remove( 'profile_header_text' ); +UM()->options()->remove( 'profile_header_link_color' ); +UM()->options()->remove( 'profile_header_link_hcolor' ); +UM()->options()->remove( 'profile_header_icon_color' ); +UM()->options()->remove( 'profile_header_icon_hcolor' ); + +//remove duplicates for UM Pages settings +delete_option( 'um_core_pages' ); + +$roles_associations = get_option( 'um_roles_associations' ); + +$profile_tab_main_roles = UM()->options()->get( 'profile_tab_main_roles' ); +$profile_tab_main_roles = ! $profile_tab_main_roles ? array() : $profile_tab_main_roles; +if ( ! empty( $profile_tab_main_roles ) ) { + foreach ( $profile_tab_main_roles as $i => $role_k ) { + $profile_tab_main_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_main_roles', $profile_tab_main_roles ); +} + +$profile_tab_posts_roles = UM()->options()->get( 'profile_tab_posts_roles' ); +$profile_tab_posts_roles = ! $profile_tab_posts_roles ? array() : $profile_tab_posts_roles; +if ( ! empty( $profile_tab_posts_roles ) ) { + foreach ( $profile_tab_posts_roles as $i => $role_k ) { + $profile_tab_posts_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_posts_roles', $profile_tab_posts_roles ); +} + +$profile_tab_comments_roles = UM()->options()->get( 'profile_tab_comments_roles' ); +$profile_tab_comments_roles = ! $profile_tab_comments_roles ? array() : $profile_tab_comments_roles; +if ( ! empty( $profile_tab_comments_roles ) ) { + foreach ( $profile_tab_comments_roles as $i => $role_k ) { + $profile_tab_comments_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_comments_roles', $profile_tab_comments_roles ); +} + +$profile_tab_activity_roles = UM()->options()->get( 'profile_tab_activity_roles' ); +$profile_tab_activity_roles = ! $profile_tab_activity_roles ? array() : $profile_tab_activity_roles; +if ( ! empty( $profile_tab_activity_roles ) ) { + foreach ( $profile_tab_activity_roles as $i => $role_k ) { + $profile_tab_activity_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_activity_roles', $profile_tab_activity_roles ); +} + +$profile_tab_messages_roles = UM()->options()->get( 'profile_tab_messages_roles' ); +$profile_tab_messages_roles = ! $profile_tab_messages_roles ? array() : $profile_tab_messages_roles; +if ( ! empty( $profile_tab_messages_roles ) ) { + foreach ( $profile_tab_messages_roles as $i => $role_k ) { + $profile_tab_messages_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_messages_roles', $profile_tab_messages_roles ); +} + +$profile_tab_reviews_roles = UM()->options()->get( 'profile_tab_reviews_roles' ); +$profile_tab_reviews_roles = ! $profile_tab_reviews_roles ? array() : $profile_tab_reviews_roles; +if ( ! empty( $profile_tab_reviews_roles ) ) { + foreach ( $profile_tab_reviews_roles as $i => $role_k ) { + $profile_tab_reviews_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_reviews_roles', $profile_tab_reviews_roles ); +} + +$profile_tab_purchases_roles = UM()->options()->get( 'profile_tab_purchases_roles' ); +$profile_tab_purchases_roles = ! $profile_tab_purchases_roles ? array() : $profile_tab_purchases_roles; +if ( ! empty( $profile_tab_purchases_roles ) ) { + foreach ( $profile_tab_purchases_roles as $i => $role_k ) { + $profile_tab_purchases_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_purchases_roles', $profile_tab_purchases_roles ); +} + +$profile_tab_product_reviews = UM()->options()->get( 'profile_tab_product-reviews_roles' ); +$profile_tab_product_reviews = ! $profile_tab_product_reviews ? array() : $profile_tab_product_reviews; +if ( ! empty( $profile_tab_product_reviews ) ) { + foreach ( $profile_tab_product_reviews as $i => $role_k ) { + $profile_tab_product_reviews[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_product-reviews_roles', $profile_tab_product_reviews ); +} + + +$profile_tab_forums_roles = UM()->options()->get( 'profile_tab_forums_roles' ); +$profile_tab_forums_roles = ! $profile_tab_forums_roles ? array() : $profile_tab_forums_roles; +if ( ! empty( $profile_tab_forums_roles ) ) { + foreach ( $profile_tab_forums_roles as $i => $role_k ) { + $profile_tab_forums_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_forums_roles', $profile_tab_forums_roles ); +} + +$profile_tab_friends_roles = UM()->options()->get( 'profile_tab_friends_roles' ); +$profile_tab_friends_roles = ! $profile_tab_friends_roles ? array() : $profile_tab_friends_roles; +if ( ! empty( $profile_tab_friends_roles ) ) { + foreach ( $profile_tab_friends_roles as $i => $role_k ) { + $profile_tab_friends_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'profile_tab_friends_roles', $profile_tab_friends_roles ); +} + + +$register_role = UM()->options()->get( 'register_role' ); +if ( ! empty( $register_role ) ) { + $register_role = $roles_associations[ $register_role ]; + + UM()->options()->update( 'register_role', $register_role ); +} + +$woo_oncomplete_role = UM()->options()->get( 'woo_oncomplete_role' ); +if ( ! empty( $woo_oncomplete_role ) ) { + $woo_oncomplete_role = $roles_associations[ $woo_oncomplete_role ]; + UM()->options()->update( 'woo_oncomplete_role', $woo_oncomplete_role ); +} + +$woo_oncomplete_except_roles = UM()->options()->get( 'woo_oncomplete_except_roles' ); +$woo_oncomplete_except_roles = ! $woo_oncomplete_except_roles ? array() : $woo_oncomplete_except_roles; +if ( ! empty( $woo_oncomplete_except_roles ) ) { + foreach ( $woo_oncomplete_except_roles as $i => $role_k ) { + $woo_oncomplete_except_roles[ $i ] = $roles_associations[ $role_k ]; + } + + UM()->options()->update( 'woo_oncomplete_except_roles', $woo_oncomplete_except_roles ); +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/social_login.php b/includes/admin/core/packages/2.0-beta1/social_login.php new file mode 100644 index 00000000..2f706ec2 --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/social_login.php @@ -0,0 +1,17 @@ + 'um_social_login', + 'numberposts' => -1, + 'fields' => 'ids' +) ); + +foreach ( $um_social_login as $social_login_id ) { + $assigned_role = get_post_meta( $social_login_id, '_um_assigned_role', true ); + + if ( ! empty( $assigned_role ) ) { + $assigned_role = $roles_associations[ $assigned_role ]; + update_post_meta( $social_login_id, '_um_assigned_role', $assigned_role ); + } +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/styles.php b/includes/admin/core/packages/2.0-beta1/styles.php new file mode 100644 index 00000000..8381f0c0 --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/styles.php @@ -0,0 +1,868 @@ +query( array( + 'post_type' => 'um_form', + 'meta_query' => array( + 'relation' => 'AND', + array( + 'key' => '_um_mode', + 'value' => 'register' + ), + array( + 'key' => '_um_register_use_globals', + 'value' => true + ) + ), + 'fields' => 'ids' +) ); + +$login_forms = $forms_query->query( array( + 'post_type' => 'um_form', + 'meta_query' => array( + 'relation' => 'AND', + array( + 'key' => '_um_mode', + 'value' => 'login' + ), + array( + 'key' => '_um_login_use_globals', + 'value' => true + ) + ), + 'fields' => 'ids' +) ); + +$profile_forms = $forms_query->query( array( + 'post_type' => 'um_form', + 'meta_query' => array( + 'relation' => 'AND', + array( + 'key' => '_um_mode', + 'value' => 'profile' + ), + array( + 'key' => '_um_profile_use_globals', + 'value' => true + ) + ), + 'fields' => 'ids' +) ); + +$css = ''; + +$active_color = UM()->options()->get( 'active_color' ); +if ( $active_color ) { + $css .= " +.um .um-tip:hover, +.um .um-field-radio.active:not(.um-field-radio-state-disabled) i, +.um .um-field-checkbox.active:not(.um-field-radio-state-disabled) i, +.um .um-member-name a:hover, +.um .um-member-more a:hover, +.um .um-member-less a:hover, +.um .um-members-pagi a:hover, +.um .um-cover-add:hover, +.um .um-profile-subnav a.active, +.um .um-item-meta a, +.um-account-name a:hover, +.um-account-nav a.current, +.um-account-side li a.current span.um-account-icon, +.um-account-side li a.current:hover span.um-account-icon, +.um-dropdown li a:hover, +i.um-active-color, +span.um-active-color +{ + color: $active_color; +} + +.um .um-field-group-head, +.picker__box, +.picker__nav--prev:hover, +.picker__nav--next:hover, +.um .um-members-pagi span.current, +.um .um-members-pagi span.current:hover, +.um .um-profile-nav-item.active a, +.um .um-profile-nav-item.active a:hover, +.upload, +.um-modal-header, +.um-modal-btn, +.um-modal-btn.disabled, +.um-modal-btn.disabled:hover, +div.uimob800 .um-account-side li a.current, +div.uimob800 .um-account-side li a.current:hover +{ + background: $active_color; +} +"; +} + +$secondary_color = UM()->options()->get( 'secondary_color' ); +if ( $secondary_color ) { + $css .= " +.um .um-field-group-head:hover, +.picker__footer, +.picker__header, +.picker__day--infocus:hover, +.picker__day--outfocus:hover, +.picker__day--highlighted:hover, +.picker--focused .picker__day--highlighted, +.picker__list-item:hover, +.picker__list-item--highlighted:hover, +.picker--focused .picker__list-item--highlighted, +.picker__list-item--selected, +.picker__list-item--selected:hover, +.picker--focused .picker__list-item--selected { + background: $secondary_color; +} +"; +} + +$css .= " +.um { + margin-left: auto!important; + margin-right: auto!important; +}"; + +$primary_btn_color = UM()->options()->get( 'primary_btn_color' ); +if ( $primary_btn_color ) { + $css .= " +.um input[type=submit]:disabled:hover { + background: $primary_btn_color; +} + +.um input[type=submit].um-button, +.um input[type=submit].um-button:focus, +.um a.um-button, +.um a.um-button.um-disabled:hover, +.um a.um-button.um-disabled:focus, +.um a.um-button.um-disabled:active { + background: $primary_btn_color; +} + +.um a.um-link { + color: $primary_btn_color; +} +"; +} + +$primary_btn_hover = UM()->options()->get( 'primary_btn_hover' ); +if ( $primary_btn_hover ) { + $css .= " +.um input[type=submit].um-button:hover, +.um a.um-button:hover { + background-color: $primary_btn_hover; +} + +.um a.um-link:hover, +.um a.um-link-hvr:hover { + color: $primary_btn_hover; +} +"; +} + +$primary_btn_text = UM()->options()->get( 'primary_btn_text' ); +if ( $primary_btn_text ) { + $css .= " +.um .um-button { + color: $primary_btn_text; +} +"; +} + +$secondary_btn_color = UM()->options()->get( 'secondary_btn_color' ); +if ( $secondary_btn_color ) { + $css .= " +.um .um-button.um-alt, +.um input[type=submit].um-button.um-alt { + background: $secondary_btn_color; +} +"; +} + +$secondary_btn_hover = UM()->options()->get( 'secondary_btn_hover' ); +if ( $secondary_btn_hover ) { + $css .= " +.um .um-button.um-alt:hover, +.um input[type=submit].um-button.um-alt:hover{ + background: $secondary_btn_hover; +} +"; +} + +$secondary_btn_text = UM()->options()->get( 'secondary_btn_text' ); +if ( $secondary_btn_text ) { + $css .= " +.um .um-button.um-alt, +.um input[type=submit].um-button.um-alt { + color: $secondary_btn_text; +} +"; +} + +$help_tip_color = UM()->options()->get( 'help_tip_color' ); +if ( $help_tip_color ) { + $css .= " +.um .um-tip { + color: $help_tip_color; +} +"; +} + +$form_field_label = UM()->options()->get( 'form_field_label' ); +if ( $form_field_label ) { + $css .= " +.um .um-field-label { + color: $form_field_label; +} +"; +} + +$form_border = UM()->options()->get( 'form_border' ); +if ( $form_border ) { + $css .= " +.um .um-form input[type=text], +.um .um-form input[type=tel], +.um .um-form input[type=number], +.um .um-form input[type=password], +.um .um-form textarea, +.um .upload-progress, +.select2-container .select2-choice, +.select2-drop, +.select2-container-multi .select2-choices, +.select2-drop-active, +.select2-drop.select2-drop-above +{ + border: $form_border !important; +} + +.um .um-form .select2-container-multi .select2-choices .select2-search-field input[type=text] { + border: none !important +} +"; +} + +$form_border_hover = UM()->options()->get( 'form_border_hover' ); +if ( $form_border_hover ) { + $css .= " +.um .um-form input[type=text]:focus, +.um .um-form input[type=tel]:focus, +.um .um-form input[type=number]:focus, +.um .um-form input[type=password]:focus, +.um .um-form .um-datepicker.picker__input.picker__input--active, +.um .um-form .um-datepicker.picker__input.picker__input--target, +.um .um-form textarea:focus { + border: $form_border_hover !important; +} +"; +} + +$form_bg_color = UM()->options()->get( 'form_bg_color' ); +if ( $form_bg_color ) { + $css .= " +.um .um-form input[type=text], +.um .um-form input[type=tel], +.um .um-form input[type=number], +.um .um-form input[type=password], +.um .um-form textarea, +.select2-container .select2-choice, +.select2-container-multi .select2-choices +{ + background-color: $form_bg_color; +} +"; +} + +$form_bg_color_focus = UM()->options()->get( 'form_bg_color_focus' ); +if ( $form_bg_color_focus ) { + $css .= " +.um .um-form input[type=text]:focus, +.um .um-form input[type=tel]:focus, +.um .um-form input[type=number]:focus, +.um .um-form input[type=password]:focus, +.um .um-form textarea:focus { + background-color: $form_bg_color_focus; +} +"; +} + +$form_text_color = UM()->options()->get( 'form_text_color' ); +if ( $form_text_color ) { + $css .= " +.um .um-form input[type=text], +.um .um-form input[type=tel], +.um .um-form input[type=password], +.um .um-form textarea +{ + color: $form_text_color; +} + +.um .um-form input:-webkit-autofill { + -webkit-box-shadow:0 0 0 50px white inset; /* Change the color to your own background color */ + -webkit-text-fill-color: $form_text_color; +} + +.um .um-form input:-webkit-autofill:focus { + -webkit-box-shadow: none,0 0 0 50px white inset; + -webkit-text-fill-color: $form_text_color; +} +"; +} + +$form_placeholder = UM()->options()->get( 'form_placeholder' ); +if ( $form_placeholder ) { + $css .= " +.um .um-form ::-webkit-input-placeholder +{ + color: $form_placeholder; + opacity: 1 !important; +} + +.um .um-form ::-moz-placeholder +{ + color: $form_placeholder; + opacity: 1 !important; +} + +.um .um-form ::-moz-placeholder +{ + color: $form_placeholder; + opacity: 1 !important; +} + +.um .um-form ::-ms-input-placeholder +{ + color: $form_placeholder; + opacity: 1 !important; +} + +.select2-default, +.select2-default *, +.select2-container-multi .select2-choices .select2-search-field input +{ + color: $form_placeholder; +} +"; +} + +$form_icon_color = UM()->options()->get( 'form_icon_color' ); +if ( $form_icon_color ) { + $css .= " +.um .um-field-icon i, +.select2-container .select2-choice .select2-arrow:before, +.select2-search:before, +.select2-search-choice-close:before +{ + color: $form_icon_color; +} +"; +} + +$form_asterisk_color = UM()->options()->get( 'form_asterisk_color' ); +if ( $form_asterisk_color ) { + $css .= " +.um span.um-req +{ + color: $form_asterisk_color; +} +"; +} + + +$profile_photocorner = UM()->options()->get( 'profile_photocorner' ); +if ( $profile_photocorner == 1 ) { + $css .= " +.um .um-profile-photo a.um-profile-photo-img, +.um .um-profile-photo img, +.um .um-profile-photo span.um-profile-photo-overlay +{ + -moz-border-radius: 999px !important; + -webkit-border-radius: 999px !important; + border-radius: 999px !important +} +"; +} else if ( $profile_photocorner == 2 ) { + $css .= " +.um .um-profile-photo a.um-profile-photo-img, +.um .um-profile-photo img, +.um .um-profile-photo span.um-profile-photo-overlay +{ + -moz-border-radius: 4px !important; + -webkit-border-radius: 4px !important; + border-radius: 4px !important +} +"; +} else if ( $profile_photocorner == 3 ) { + $css .= " +.um .um-profile-photo a.um-profile-photo-img, +.um .um-profile-photo img, +.um .um-profile-photo span.um-profile-photo-overlay +{ + -moz-border-radius: 0px !important; + -webkit-border-radius: 0px !important; + border-radius: 0px !important +} +"; +} + +$profile_main_bg = UM()->options()->get( 'profile_main_bg' ); +if ( $profile_main_bg ) { + $css .= " +.um-profile { + background-color: $profile_main_bg; +} +"; +} + +$profile_header_bg = UM()->options()->get( 'profile_header_bg' ); +if ( $profile_header_bg ) { + $css .= " +.um-profile.um .um-header { + background-color: $profile_header_bg; +} +"; +} + +$profile_header_text = UM()->options()->get( 'profile_header_text' ); +if ( $profile_header_text ) { + $css .= " +.um-profile.um .um-profile-meta { + color: $profile_header_text; +} +"; +} + +$profile_header_link_color = UM()->options()->get( 'profile_header_link_color' ); +if ( $profile_header_link_color ) { + $css .= " +.um-profile.um .um-name a { + color: $profile_header_link_color; +} +"; +} + +$profile_header_link_hcolor = UM()->options()->get( 'profile_header_link_hcolor' ); +if ( $profile_header_link_hcolor ) { + $css .= " +.um-profile.um .um-name a:hover { + color: $profile_header_link_hcolor; +} +"; +} + +$profile_header_icon_color = UM()->options()->get( 'profile_header_icon_color' ); +if ( $profile_header_icon_color ) { + $css .= " +.um-profile.um .um-profile-headericon a { + color: $profile_header_icon_color; +} +"; +} + +$profile_header_icon_hcolor = UM()->options()->get( 'profile_header_icon_hcolor' ); +if ( $profile_header_icon_hcolor ) { + $css .= " +.um-profile.um .um-profile-headericon a:hover, +.um-profile.um .um-profile-edit-a.active { + color: $profile_header_icon_hcolor; +} +"; +} + + +foreach ( $registration_forms as $form_id ) { + + $align = get_post_meta( $form_id, '_um_register_align', true ); + if ( $align && $align != 'center' ) { + $css .= " +.um-$form_id.um { + float: $align; +} +"; + } + + $primary_btn_color = get_post_meta( $form_id, '_um_register_primary_btn_color', true ); + if ( $primary_btn_color ) { + $css .= " +.um-$form_id.um input[type=submit]:disabled:hover { + background: $primary_btn_color; +} + +.um-$form_id.um input[type=submit].um-button, +.um-$form_id.um input[type=submit].um-button:focus, +.um-$form_id.um a.um-button, +.um-$form_id.um a.um-button.um-disabled:hover, +.um-$form_id.um a.um-button.um-disabled:focus, +.um-$form_id.um a.um-button.um-disabled:active { + background: $primary_btn_color; +} + +.um-$form_id.um a.um-link { + color: $primary_btn_color; +} +"; + } + + $primary_btn_hover = get_post_meta( $form_id, '_um_register_primary_btn_hover', true ); + if ( $primary_btn_hover ) { + $css .= " +.um-$form_id.um input[type=submit].um-button:hover, +.um-$form_id.um a.um-button:hover { + background-color: $primary_btn_hover; +} + +.um-$form_id.um a.um-link:hover, +.um-$form_id.um a.um-link-hvr:hover { + color: $primary_btn_hover; +} +"; + } + + $primary_btn_text = get_post_meta( $form_id, '_um_register_primary_btn_text', true ); + if ( $primary_btn_text ) { + $css .= " +.um-$form_id.um .um-button { + color: $primary_btn_text; +} +"; + } + + $secondary_button = get_post_meta( $form_id, '_um_register_secondary_btn', true ); + if ( $secondary_button ) { + + $secondary_btn_color = get_post_meta( $form_id, '_um_register_secondary_btn_color', true ); + if ( $secondary_btn_color ) { + $css .= " +.um-$form_id.um .um-button.um-alt, +.um-$form_id.um input[type=submit].um-button.um-alt { + background: $secondary_btn_color; +} +"; + } + + $secondary_btn_hover = get_post_meta( $form_id, '_um_register_secondary_btn_hover', true ); + if ( $secondary_btn_hover ) { + $css .= " +.um-$form_id.um .um-button.um-alt:hover, +.um-$form_id.um input[type=submit].um-button.um-alt:hover{ + background: $secondary_btn_hover; +} +"; + } + + $secondary_btn_text = get_post_meta( $form_id, '_um_register_secondary_btn_text', true ); + if ( $secondary_btn_text ) { + $css .= " +.um-$form_id.um .um-button.um-alt, +.um-$form_id.um input[type=submit].um-button.um-alt { + color: $secondary_btn_text; +} +"; + } + } +} + + +foreach ( $login_forms as $form_id ) { + + $align = get_post_meta( $form_id, '_um_login_align', true ); + if ( $align && $align != 'center' ) { + $css .= " +.um-$form_id.um { + float: $align; +} +"; + } + + $primary_btn_color = get_post_meta( $form_id, '_um_login_primary_btn_color', true ); + if ( $primary_btn_color ) { + $css .= " +.um-$form_id.um input[type=submit]:disabled:hover { + background: $primary_btn_color; +} + +.um-$form_id.um input[type=submit].um-button, +.um-$form_id.um input[type=submit].um-button:focus, +.um-$form_id.um a.um-button, +.um-$form_id.um a.um-button.um-disabled:hover, +.um-$form_id.um a.um-button.um-disabled:focus, +.um-$form_id.um a.um-button.um-disabled:active { + background: $primary_btn_color; +} + +.um-$form_id.um a.um-link { + color: $primary_btn_color; +} +"; + } + + $primary_btn_hover = get_post_meta( $form_id, '_um_login_primary_btn_hover', true ); + if ( $primary_btn_hover ) { + $css .= " +.um-$form_id.um input[type=submit].um-button:hover, +.um-$form_id.um a.um-button:hover { + background-color: $primary_btn_hover; +} + +.um-$form_id.um a.um-link:hover, +.um-$form_id.um a.um-link-hvr:hover { + color: $primary_btn_hover; +} +"; + } + + $primary_btn_text = get_post_meta( $form_id, '_um_login_primary_btn_text', true ); + if ( $primary_btn_text ) { + $css .= " +.um-$form_id.um .um-button { + color: $primary_btn_text; +} +"; + } + + $secondary_button = get_post_meta( $form_id, '_um_login_secondary_btn', true ); + if ( $secondary_button ) { + + $secondary_btn_color = get_post_meta( $form_id, '_um_login_secondary_btn_color', true ); + if ( $secondary_btn_color ) { + $css .= " +.um-$form_id.um .um-button.um-alt, +.um-$form_id.um input[type=submit].um-button.um-alt { + background: $secondary_btn_color; +} +"; + } + + $secondary_btn_hover = get_post_meta( $form_id, '_um_login_secondary_btn_hover', true ); + if ( $secondary_btn_hover ) { + $css .= " +.um-$form_id.um .um-button.um-alt:hover, +.um-$form_id.um input[type=submit].um-button.um-alt:hover{ + background: $secondary_btn_hover; +} +"; + } + + $secondary_btn_text = get_post_meta( $form_id, '_um_login_secondary_btn_text', true ); + if ( $secondary_btn_text ) { + $css .= " +.um-$form_id.um .um-button.um-alt, +.um-$form_id.um input[type=submit].um-button.um-alt { + color: $secondary_btn_text; +} +"; + } + } +} + + +foreach ( $profile_forms as $form_id ) { + $align = get_post_meta( $form_id, '_um_profile_align', true ); + if ( $align && $align != 'center' ) { + $css .= " +.um-$form_id.um { + float: $align; +} +"; + } + + $primary_btn_color = get_post_meta( $form_id, '_um_profile_primary_btn_color', true ); + if ( $primary_btn_color ) { + $css .= " +.um-$form_id.um input[type=submit]:disabled:hover { + background: $primary_btn_color; +} + +.um-$form_id.um input[type=submit].um-button, +.um-$form_id.um input[type=submit].um-button:focus, +.um-$form_id.um a.um-button, +.um-$form_id.um a.um-button.um-disabled:hover, +.um-$form_id.um a.um-button.um-disabled:focus, +.um-$form_id.um a.um-button.um-disabled:active { + background: $primary_btn_color; +} + +.um-$form_id.um a.um-link { + color: $primary_btn_color; +} +"; + } + + $primary_btn_hover = get_post_meta( $form_id, '_um_profile_primary_btn_hover', true ); + if ( $primary_btn_hover ) { + $css .= " +.um-$form_id.um input[type=submit].um-button:hover, +.um-$form_id.um a.um-button:hover { + background-color: $primary_btn_hover; +} + +.um-$form_id.um a.um-link:hover, +.um-$form_id.um a.um-link-hvr:hover { + color: $primary_btn_hover; +} +"; + } + + $primary_btn_text = get_post_meta( $form_id, '_um_profile_primary_btn_text', true ); + if ( $primary_btn_text ) { + $css .= " +.um-$form_id.um .um-button { + color: $primary_btn_text; +} +"; + } + + $secondary_button = get_post_meta( $form_id, '_um_profile_secondary_btn', true ); + if ( $secondary_button ) { + + $secondary_btn_color = get_post_meta( $form_id, '_um_profile_secondary_btn_color', true ); + if ( $secondary_btn_color ) { + $css .= " +.um-$form_id.um .um-button.um-alt, +.um-$form_id.um input[type=submit].um-button.um-alt { + background: $secondary_btn_color; +} +"; + } + + $secondary_btn_hover = get_post_meta( $form_id, '_um_profile_secondary_btn_hover', true ); + if ( $secondary_btn_hover ) { + $css .= " +.um-$form_id.um .um-button.um-alt:hover, +.um-$form_id.um input[type=submit].um-button.um-alt:hover{ + background: $secondary_btn_hover; +} +"; + } + + $secondary_btn_text = get_post_meta( $form_id, '_um_profile_secondary_btn_text', true ); + if ( $secondary_btn_text ) { + $css .= " +.um-$form_id.um .um-button.um-alt, +.um-$form_id.um input[type=submit].um-button.um-alt { + color: $secondary_btn_text; +} +"; + } + } + + $profile_photocorner = get_post_meta( $form_id, '_um_profile_photocorner', true ); + if ( $profile_photocorner == 1 ) { + $css .= " +.um-$form_id.um .um-profile-photo a.um-profile-photo-img, +.um-$form_id.um .um-profile-photo img, +.um-$form_id.um .um-profile-photo span.um-profile-photo-overlay +{ + -moz-border-radius: 999px !important; + -webkit-border-radius: 999px !important; + border-radius: 999px !important +} +"; + } else if ( $profile_photocorner == 2 ) { + $css .= " +.um-$form_id.um .um-profile-photo a.um-profile-photo-img, +.um-$form_id.um .um-profile-photo img, +.um-$form_id.um .um-profile-photo span.um-profile-photo-overlay +{ + -moz-border-radius: 4px !important; + -webkit-border-radius: 4px !important; + border-radius: 4px !important +} +"; + } else if ( $profile_photocorner == 3 ) { + $css .= " +.um-$form_id.um .um-profile-photo a.um-profile-photo-img, +.um-$form_id.um .um-profile-photo img, +.um-$form_id.um .um-profile-photo span.um-profile-photo-overlay +{ + -moz-border-radius: 0px !important; + -webkit-border-radius: 0px !important; + border-radius: 0px !important +} +"; + } + + $profile_main_bg = get_post_meta( $form_id, '_um_profile_main_bg', true ); + if ( $profile_main_bg ) { + $css .= " +.um-$form_id.um-profile { + background-color: $profile_main_bg; +} +"; + } + + $main_text_color = get_post_meta( $form_id, '_um_profile_main_text_color', true ); + if ( $main_text_color ) { + $css .= " +.um-$form_id.um .um-profile-body.main *{ + color: $main_text_color; +} +"; + } + + $profile_header_bg = get_post_meta( $form_id, '_um_profile_header_bg', true ); + if ( $profile_header_bg ) { + $css .= " +.um-$form_id.um .um-header { + background-color: $profile_header_bg; +} +"; + } + + $profile_header_text = get_post_meta( $form_id, '_um_profile_header_text', true ); + if ( $profile_header_text ) { + $css .= " +.um-$form_id.um .um-profile-meta { + color: $profile_header_text; +} +"; + } + + + $profile_header_link_color = get_post_meta( $form_id, '_um_profile_header_link_color', true ); + if ( $profile_header_link_color ) { + $css .= " +.um-$form_id.um .um-name a { + color: $profile_header_link_color; +} +"; + } + + $profile_header_link_hcolor = get_post_meta( $form_id, '_um_profile_header_link_hcolor', true ); + if ( $profile_header_link_hcolor ) { + $css .= " +.um-$form_id.um .um-name a:hover { + color: $profile_header_link_hcolor; +} +"; + } + + $profile_header_icon_color = get_post_meta( $form_id, '_um_profile_header_icon_color', true ); + if ( $profile_header_icon_color ) { + $css .= " +.um-$form_id.um .um-profile-headericon a { + color: $profile_header_icon_color; +} +"; + } + + $profile_header_icon_hcolor = get_post_meta( $form_id, '_um_profile_header_icon_hcolor', true ); + if ( $profile_header_icon_hcolor ) { + $css .= " +.um-$form_id.um .um-profile-headericon a:hover, +.um-$form_id.um .um-profile-edit-a.active { + color: $profile_header_icon_hcolor; +} +"; + } +} + +$uploads = wp_upload_dir(); +$upload_dir = $uploads['basedir'] . DIRECTORY_SEPARATOR . 'ultimatemember' . DIRECTORY_SEPARATOR; +$css_doc_file = fopen( $upload_dir. 'um_old_settings.css', 'w+' ); +fwrite( $css_doc_file, $css ); +fclose( $css_doc_file ); \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/um_cpt.php b/includes/admin/core/packages/2.0-beta1/um_cpt.php new file mode 100644 index 00000000..fa7e9e1d --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/um_cpt.php @@ -0,0 +1,59 @@ + 'um_form', + 'numberposts' => -1, + 'fields' => 'ids' +) ); + +foreach ( $forms as $form_id ) { + $form_type = get_post_meta( $form_id, '_um_mode', true ); + + if ( ! empty( $form_type ) ) { + $use_globals = get_post_meta( $form_id, "_um_{$form_type}_use_globals", true ); + $use_custom_settings = empty( $use_globals ) ? true : false; + + update_post_meta( $form_id, "_um_{$form_type}_use_custom_settings", $use_custom_settings ); + delete_post_meta( $form_id, "_um_{$form_type}_use_globals" ); + + $role = get_post_meta( $form_id, "_um_{$form_type}_role", true ); + if ( $role ) { + update_post_meta( $form_id, "_um_{$form_type}_role", $roles_associations[ $role ] ); + } + } +} + +//for metadata for all UM Member Directories +//also update for forms metadata where "member" or "admin" +$member_directories = get_posts( array( + 'post_type' => 'um_directory', + 'numberposts' => -1, + 'fields' => 'ids' +) ); + +foreach ( $member_directories as $directory_id ) { + $directory_roles = get_post_meta( $directory_id, '_um_roles', true ); + + if ( ! empty( $directory_roles ) ) { + foreach ( $directory_roles as $i => $role_k ) { + $directory_roles[ $i ] = $roles_associations[ $role_k ]; + } + + update_post_meta( $directory_id, '_um_roles', $directory_roles ); + } + + $um_roles_can_search = get_post_meta( $directory_id, '_um_roles_can_search', true ); + + if ( ! empty( $um_roles_can_search ) ) { + foreach ( $um_roles_can_search as $i => $role_k ) { + $um_roles_can_search[ $i ] = $roles_associations[ $role_k ]; + } + + update_post_meta( $directory_id, '_um_roles_can_search', $um_roles_can_search ); + } +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.0-beta1/user_roles.php b/includes/admin/core/packages/2.0-beta1/user_roles.php new file mode 100644 index 00000000..df228118 --- /dev/null +++ b/includes/admin/core/packages/2.0-beta1/user_roles.php @@ -0,0 +1,158 @@ + array( + 'name' => __( 'User Roles' ), + 'singular_name' => __( 'User Role' ), + 'add_new' => __( 'Add New' ), + 'add_new_item' => __('Add New User Role' ), + 'edit_item' => __('Edit User Role'), + 'not_found' => __('You did not create any user roles yet'), + 'not_found_in_trash' => __('Nothing found in Trash'), + 'search_items' => __('Search User Roles') + ), + 'show_ui' => true, + 'show_in_menu' => false, + 'public' => false, + 'supports' => array('title') +) ); + + +$um_roles = get_posts( array( + 'post_type' => 'um_role', + 'posts_per_page' => -1, + 'post_status' => 'publish' +) ); + +$roles_associations = array(); + +$all_wp_roles = array_keys( get_editable_roles() ); + +if ( ! empty( $um_roles ) ) { + foreach ( $um_roles as $um_role ) { + //old role key which inserted for each user to usermeta "role" + $key_in_meta = $um_role->post_name; + + if ( preg_match( "/[a-z0-9]+$/i", $um_role->post_title ) ) { + $role_key = sanitize_title( $um_role->post_title ); + } else { + $auto_increment = UM()->options()->get( 'custom_roles_increment' ); + $auto_increment = ! empty( $auto_increment ) ? $auto_increment : 1; + $role_key = 'custom_role_' . $auto_increment; + + $auto_increment++; + UM()->options()->update( 'custom_roles_increment', $auto_increment ); + } + + if ( ! in_array( $role_key, $all_wp_roles ) ) { + $role_keys[] = $role_key; + } + + $all_role_metadata = $wpdb->get_results( $wpdb->prepare( + "SELECT pm.meta_key, + pm.meta_value + FROM {$wpdb->postmeta} pm + WHERE pm.post_id = %d AND + pm.meta_key LIKE %s", + $um_role->ID, + "_um_%" + ), ARRAY_A ); + + $role_metadata = array(); + if ( ! empty( $all_role_metadata ) ) { + foreach ( $all_role_metadata as $metadata ) { + + if ( '_um_can_edit_roles' == $metadata['meta_key'] || '_um_can_delete_roles' == $metadata['meta_key'] + || '_um_can_view_roles' == $metadata['meta_key'] || '_um_can_follow_roles' == $metadata['meta_key'] + || '_um_can_friend_roles' == $metadata['meta_key'] || '_um_can_review_roles' == $metadata['meta_key'] ) { + $metadata['meta_value'] = maybe_unserialize( $metadata['meta_value'] ); + } + + $role_metadata[ $metadata['meta_key'] ] = $metadata['meta_value']; + } + } + + if ( ! in_array( $role_key, $all_wp_roles ) ) { + $role_meta = array_merge( $role_metadata, array( + 'name' => $um_role->post_title, + 'wp_capabilities' => array( 'read' => true ), + '_um_is_custom' => true, + ) ); + } else { + $role_meta = $role_metadata; + } + + //$old_key = ! empty( $role_meta['_um_core'] ) ? $role_meta['_um_core'] : $role_key; + if ( ! in_array( $role_key, $all_wp_roles ) ) { + $roles_associations[ $key_in_meta ] = 'um_' . $role_key; + } else { + $roles_associations[ $key_in_meta ] = $role_key; + } + + + $response_roles_data[] = array( + 'role_key' => $role_key, + 'key_in_meta' => $key_in_meta + ); + + if ( ! empty( $role_meta['_um_core'] ) ) + unset( $role_meta['_um_core'] ); + + update_option( "um_role_{$role_key}_meta", $role_meta ); + } + + //update user role meta where role keys stored + foreach ( $um_roles as $um_role ) { + + $key_in_meta = $um_role->post_name; + + $role_key = $roles_associations[ $key_in_meta ]; + if ( strpos( $role_key, 'um_' ) === 0 ) + $role_key = substr( $role_key, 3 ); + + $role_meta = get_option( "um_role_{$role_key}_meta" ); + + $role_metadata = array(); + if ( ! empty( $role_meta ) ) { + foreach ( $role_meta as $metakey => $metadata ) { + + if ( '_um_can_edit_roles' == $metakey || '_um_can_delete_roles' == $metakey + || '_um_can_view_roles' == $metakey || '_um_can_follow_roles' == $metakey + || '_um_can_friend_roles' == $metakey || '_um_can_review_roles' == $metakey ) { + + if ( ! empty( $metadata ) ) { + foreach ( $metadata as $i => $role_k ) { + $metadata[ $i ] = $roles_associations[ $role_k ]; + } + } + } elseif ( '_um_profilec_upgrade_role' == $metakey ) { + $metadata = $roles_associations[ $metadata ]; + } + + $role_meta[ $metakey ] = $metadata; + } + } + + update_option( "um_role_{$role_key}_meta", $role_meta ); + } +} + +update_option( 'um_roles', $role_keys ); + +global $wp_roles, $wp_version; +if ( version_compare( $wp_version, '4.9', '<' ) ) { + $wp_roles->_init(); +} elseif ( method_exists( $wp_roles, 'for_site' ) ) { + $wp_roles->for_site( get_current_blog_id() ); +} + + +//temporary option +update_option( 'um_roles_associations', $roles_associations ); \ No newline at end of file diff --git a/includes/class-init.php b/includes/class-init.php index d1298eeb..23b81f28 100644 --- a/includes/class-init.php +++ b/includes/class-init.php @@ -407,6 +407,7 @@ if ( ! class_exists( 'UM' ) ) { $this->admin(); $this->ajax_init(); $this->metabox(); + $this->admin_upgrade()->init_packages_ajax_handlers(); } elseif ( $this->is_request( 'admin' ) ) { $this->admin(); $this->admin_menu(); diff --git a/includes/um-short-functions.php b/includes/um-short-functions.php index 380b6f9a..38b234ff 100644 --- a/includes/um-short-functions.php +++ b/includes/um-short-functions.php @@ -860,6 +860,10 @@ function um_get_core_page( $slug, $updated = false ) { function um_is_core_page( $page ) { global $post; + if ( empty( $post ) ) { + return false; + } + if ( isset( $post->ID ) && isset( UM()->config()->permalinks[ $page ] ) && $post->ID == UM()->config()->permalinks[ $page ] ) return true; @@ -2377,4 +2381,14 @@ function is_ultimatemember() { return true; return false; +} + + +/** + * Maybe set empty time limit + */ +function um_maybe_unset_time_limit() { + if ( ! ini_get( 'safe_mode' ) ) { + @set_time_limit(0); + } } \ No newline at end of file From cf0f7b1d103e0471c10668cadfe2d9ffc1846132 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Sun, 25 Mar 2018 20:44:54 +0300 Subject: [PATCH 03/29] - added filter for the integration with email notification's content; - fixed homepage User Role setting; --- includes/admin/templates/role/home.php | 2 +- includes/core/class-mail.php | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/includes/admin/templates/role/home.php b/includes/admin/templates/role/home.php index c8f92fe8..c8b5c81d 100644 --- a/includes/admin/templates/role/home.php +++ b/includes/admin/templates/role/home.php @@ -11,7 +11,7 @@ 'type' => 'checkbox', 'label' => __( 'Can view default homepage?', 'ultimate-member' ), 'tooltip' => __( 'Allow this user role to view your site\'s homepage', 'ultimate-member' ), - 'value' => ! empty( $role['_um_default_homepage'] ) ? $role['_um_default_homepage'] : 1, + 'value' => isset( $role['_um_default_homepage'] ) ? $role['_um_default_homepage'] : 1, ), array( 'id' => '_um_redirect_homepage', diff --git a/includes/core/class-mail.php b/includes/core/class-mail.php index b517c302..98ba6c2b 100644 --- a/includes/core/class-mail.php +++ b/includes/core/class-mail.php @@ -322,6 +322,32 @@ if ( ! class_exists( 'Mail' ) ) { $message = ob_get_clean(); + + /** + * UM hook + * + * @type filter + * @title um_email_send_message_content + * @description Change email notification message content + * @input_vars + * [{"var":"$message","type":"string","desc":"Message Content"}, + * {"var":"$template","type":"string","desc":"Template Key"}, + * {"var":"$args","type":"string","desc":"Notification Arguments"}] + * @change_log + * ["Since: 2.0"] + * @usage + * + * @example + * + */ + $message = apply_filters( 'um_email_send_message_content', $message, $slug, $args ); + // Convert tags in email template return um_convert_tags( $message, $args ); } From 3eca951d0752901eff309709300d01388e87d8f7 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Mon, 26 Mar 2018 01:27:46 +0300 Subject: [PATCH 04/29] - fixed class exists operators; --- includes/admin/class-admin.php | 2 +- includes/admin/core/class-admin-builder.php | 2 +- includes/admin/core/class-admin-columns.php | 2 +- includes/admin/core/class-admin-dragdrop.php | 2 +- includes/admin/core/class-admin-enqueue.php | 2 +- includes/admin/core/class-admin-forms-settings.php | 2 +- includes/admin/core/class-admin-forms.php | 2 +- includes/admin/core/class-admin-functions.php | 2 +- includes/admin/core/class-admin-menu.php | 2 +- includes/admin/core/class-admin-metabox.php | 2 +- includes/admin/core/class-admin-notices.php | 2 +- includes/admin/core/class-admin-settings.php | 2 +- includes/admin/core/class-admin-upgrade.php | 2 +- includes/admin/core/class-admin-users.php | 2 +- includes/core/class-access.php | 2 +- includes/core/class-account.php | 2 +- includes/core/class-ajax-common.php | 2 +- includes/core/class-builtin.php | 2 +- includes/core/class-chart.php | 2 +- includes/core/class-common.php | 2 +- includes/core/class-cron.php | 2 +- includes/core/class-date-time.php | 2 +- includes/core/class-enqueue.php | 2 +- includes/core/class-external-integrations.php | 2 +- includes/core/class-fields.php | 2 +- includes/core/class-files.php | 2 +- includes/core/class-fonticons.php | 2 +- includes/core/class-form.php | 2 +- includes/core/class-login.php | 2 +- includes/core/class-logout.php | 2 +- includes/core/class-mail.php | 2 +- includes/core/class-members.php | 2 +- includes/core/class-modal.php | 2 +- includes/core/class-options.php | 2 +- includes/core/class-password.php | 2 +- includes/core/class-permalinks.php | 2 +- includes/core/class-plugin-updater.php | 2 +- includes/core/class-profile.php | 2 +- includes/core/class-query.php | 2 +- includes/core/class-register.php | 2 +- includes/core/class-rest-api.php | 2 +- includes/core/class-rewrite.php | 2 +- includes/core/class-roles-capabilities.php | 2 +- includes/core/class-router.php | 2 +- includes/core/class-setup.php | 2 +- includes/core/class-shortcodes.php | 2 +- includes/core/class-tracking.php | 2 +- includes/core/class-user-posts.php | 2 +- includes/core/class-user.php | 2 +- includes/core/class-validation.php | 2 +- includes/lib/mobiledetect/class-um-mobile-detect.php | 2 +- 51 files changed, 51 insertions(+), 51 deletions(-) diff --git a/includes/admin/class-admin.php b/includes/admin/class-admin.php index 985630fc..1b5b60aa 100644 --- a/includes/admin/class-admin.php +++ b/includes/admin/class-admin.php @@ -4,7 +4,7 @@ namespace um\admin; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin' ) ) { +if ( ! class_exists( 'um\admin\Admin' ) ) { /** diff --git a/includes/admin/core/class-admin-builder.php b/includes/admin/core/class-admin-builder.php index 6183f74c..4f1a971a 100644 --- a/includes/admin/core/class-admin-builder.php +++ b/includes/admin/core/class-admin-builder.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Builder' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { /** diff --git a/includes/admin/core/class-admin-columns.php b/includes/admin/core/class-admin-columns.php index a13e51b1..22e390f3 100644 --- a/includes/admin/core/class-admin-columns.php +++ b/includes/admin/core/class-admin-columns.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Columns' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Columns' ) ) { /** diff --git a/includes/admin/core/class-admin-dragdrop.php b/includes/admin/core/class-admin-dragdrop.php index be4f465c..e8a25b9f 100644 --- a/includes/admin/core/class-admin-dragdrop.php +++ b/includes/admin/core/class-admin-dragdrop.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_DragDrop' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_DragDrop' ) ) { /** diff --git a/includes/admin/core/class-admin-enqueue.php b/includes/admin/core/class-admin-enqueue.php index ecb872a9..4d39cd1d 100644 --- a/includes/admin/core/class-admin-enqueue.php +++ b/includes/admin/core/class-admin-enqueue.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Enqueue' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { /** diff --git a/includes/admin/core/class-admin-forms-settings.php b/includes/admin/core/class-admin-forms-settings.php index 47121681..fb115a66 100644 --- a/includes/admin/core/class-admin-forms-settings.php +++ b/includes/admin/core/class-admin-forms-settings.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Forms_Settings' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Forms_Settings' ) ) { /** diff --git a/includes/admin/core/class-admin-forms.php b/includes/admin/core/class-admin-forms.php index fcd080a3..6b6fb523 100644 --- a/includes/admin/core/class-admin-forms.php +++ b/includes/admin/core/class-admin-forms.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Forms' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) { /** diff --git a/includes/admin/core/class-admin-functions.php b/includes/admin/core/class-admin-functions.php index d7974daa..6960efa4 100644 --- a/includes/admin/core/class-admin-functions.php +++ b/includes/admin/core/class-admin-functions.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Functions' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Functions' ) ) { /** diff --git a/includes/admin/core/class-admin-menu.php b/includes/admin/core/class-admin-menu.php index da5ac2c0..f42ad023 100644 --- a/includes/admin/core/class-admin-menu.php +++ b/includes/admin/core/class-admin-menu.php @@ -6,7 +6,7 @@ use \RecursiveDirectoryIterator; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Menu' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Menu' ) ) { /** diff --git a/includes/admin/core/class-admin-metabox.php b/includes/admin/core/class-admin-metabox.php index 510b0e5f..39cd1535 100644 --- a/includes/admin/core/class-admin-metabox.php +++ b/includes/admin/core/class-admin-metabox.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Metabox' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) { /** diff --git a/includes/admin/core/class-admin-notices.php b/includes/admin/core/class-admin-notices.php index 8e48349f..9b4b4a2d 100644 --- a/includes/admin/core/class-admin-notices.php +++ b/includes/admin/core/class-admin-notices.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Notices' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { /** diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php index 8d143a56..a8e19742 100644 --- a/includes/admin/core/class-admin-settings.php +++ b/includes/admin/core/class-admin-settings.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Settings' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { /** diff --git a/includes/admin/core/class-admin-upgrade.php b/includes/admin/core/class-admin-upgrade.php index a7aae4e0..b2f06d4f 100644 --- a/includes/admin/core/class-admin-upgrade.php +++ b/includes/admin/core/class-admin-upgrade.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Upgrade' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) { /** diff --git a/includes/admin/core/class-admin-users.php b/includes/admin/core/class-admin-users.php index cd6ab24b..5353ea18 100644 --- a/includes/admin/core/class-admin-users.php +++ b/includes/admin/core/class-admin-users.php @@ -4,7 +4,7 @@ namespace um\admin\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Admin_Users' ) ) { +if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) { /** diff --git a/includes/core/class-access.php b/includes/core/class-access.php index 9e37ca3a..af2312b0 100644 --- a/includes/core/class-access.php +++ b/includes/core/class-access.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Access' ) ) { +if ( ! class_exists( 'um\core\Access' ) ) { /** diff --git a/includes/core/class-account.php b/includes/core/class-account.php index 46406ab0..1b7007af 100644 --- a/includes/core/class-account.php +++ b/includes/core/class-account.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Account' ) ) { +if ( ! class_exists( 'um\core\Account' ) ) { /** diff --git a/includes/core/class-ajax-common.php b/includes/core/class-ajax-common.php index 62fa085e..a0312e36 100644 --- a/includes/core/class-ajax-common.php +++ b/includes/core/class-ajax-common.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if executed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'AJAX_Common' ) ) { +if ( ! class_exists( 'um\core\AJAX_Common' ) ) { /** diff --git a/includes/core/class-builtin.php b/includes/core/class-builtin.php index cfc01c3d..2242e55b 100644 --- a/includes/core/class-builtin.php +++ b/includes/core/class-builtin.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Builtin' ) ) { +if ( ! class_exists( 'um\core\Builtin' ) ) { /** diff --git a/includes/core/class-chart.php b/includes/core/class-chart.php index c83e69a3..fed99d70 100644 --- a/includes/core/class-chart.php +++ b/includes/core/class-chart.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Chart' ) ) { +if ( ! class_exists( 'um\core\Chart' ) ) { /** diff --git a/includes/core/class-common.php b/includes/core/class-common.php index 8f0962d6..b20eac5d 100644 --- a/includes/core/class-common.php +++ b/includes/core/class-common.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Common' ) ) { +if ( ! class_exists( 'um\core\Common' ) ) { /** diff --git a/includes/core/class-cron.php b/includes/core/class-cron.php index e37b46ab..610daa2c 100644 --- a/includes/core/class-cron.php +++ b/includes/core/class-cron.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Cron' ) ) { +if ( ! class_exists( 'um\core\Cron' ) ) { /** diff --git a/includes/core/class-date-time.php b/includes/core/class-date-time.php index f53b0fa7..cfa71dd8 100644 --- a/includes/core/class-date-time.php +++ b/includes/core/class-date-time.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Date_Time' ) ) { +if ( ! class_exists( 'um\core\Date_Time' ) ) { /** diff --git a/includes/core/class-enqueue.php b/includes/core/class-enqueue.php index a1e23668..fac735ac 100644 --- a/includes/core/class-enqueue.php +++ b/includes/core/class-enqueue.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Enqueue' ) ) { +if ( ! class_exists( 'um\core\Enqueue' ) ) { /** diff --git a/includes/core/class-external-integrations.php b/includes/core/class-external-integrations.php index e20a6378..9171104c 100644 --- a/includes/core/class-external-integrations.php +++ b/includes/core/class-external-integrations.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'External_Integrations' ) ) { +if ( ! class_exists( 'um\core\External_Integrations' ) ) { /** diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index deedbf2e..62faa0df 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -5,7 +5,7 @@ namespace um\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Fields' ) ) { +if ( ! class_exists( 'um\core\Fields' ) ) { /** diff --git a/includes/core/class-files.php b/includes/core/class-files.php index 2010c401..39932ad5 100644 --- a/includes/core/class-files.php +++ b/includes/core/class-files.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Files' ) ) { +if ( ! class_exists( 'um\core\Files' ) ) { /** diff --git a/includes/core/class-fonticons.php b/includes/core/class-fonticons.php index dd52f5d4..444bda0f 100644 --- a/includes/core/class-fonticons.php +++ b/includes/core/class-fonticons.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'FontIcons' ) ) { +if ( ! class_exists( 'um\core\FontIcons' ) ) { /** diff --git a/includes/core/class-form.php b/includes/core/class-form.php index 792d8014..a5fc3c6e 100644 --- a/includes/core/class-form.php +++ b/includes/core/class-form.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Form' ) ) { +if ( ! class_exists( 'um\core\Form' ) ) { /** diff --git a/includes/core/class-login.php b/includes/core/class-login.php index a810a4b2..80200740 100644 --- a/includes/core/class-login.php +++ b/includes/core/class-login.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Login' ) ) { +if ( ! class_exists( 'um\core\Login' ) ) { class Login { diff --git a/includes/core/class-logout.php b/includes/core/class-logout.php index bdefde9c..4547bf7a 100644 --- a/includes/core/class-logout.php +++ b/includes/core/class-logout.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Logout' ) ) { +if ( ! class_exists( 'um\core\Logout' ) ) { /** diff --git a/includes/core/class-mail.php b/includes/core/class-mail.php index 98ba6c2b..330c8290 100644 --- a/includes/core/class-mail.php +++ b/includes/core/class-mail.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Mail' ) ) { +if ( ! class_exists( 'um\core\Mail' ) ) { /** diff --git a/includes/core/class-members.php b/includes/core/class-members.php index 3d01bf09..6d7d872c 100644 --- a/includes/core/class-members.php +++ b/includes/core/class-members.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Members' ) ) { +if ( ! class_exists( 'um\core\Members' ) ) { /** diff --git a/includes/core/class-modal.php b/includes/core/class-modal.php index b709a58a..543a3e14 100644 --- a/includes/core/class-modal.php +++ b/includes/core/class-modal.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Modal' ) ) { +if ( ! class_exists( 'um\core\Modal' ) ) { /** diff --git a/includes/core/class-options.php b/includes/core/class-options.php index 4ae6f089..ce5d4638 100644 --- a/includes/core/class-options.php +++ b/includes/core/class-options.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Options' ) ) { +if ( ! class_exists( 'um\core\Options' ) ) { /** diff --git a/includes/core/class-password.php b/includes/core/class-password.php index 9d7445ce..774e66fa 100644 --- a/includes/core/class-password.php +++ b/includes/core/class-password.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Password' ) ) { +if ( ! class_exists( 'um\core\Password' ) ) { /** diff --git a/includes/core/class-permalinks.php b/includes/core/class-permalinks.php index 497f1140..c852c3ee 100644 --- a/includes/core/class-permalinks.php +++ b/includes/core/class-permalinks.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Permalinks' ) ) { +if ( ! class_exists( 'um\core\Permalinks' ) ) { /** diff --git a/includes/core/class-plugin-updater.php b/includes/core/class-plugin-updater.php index dd024efa..04a01c3b 100644 --- a/includes/core/class-plugin-updater.php +++ b/includes/core/class-plugin-updater.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Plugin_Updater' ) ) { +if ( ! class_exists( 'um\core\Plugin_Updater' ) ) { /** diff --git a/includes/core/class-profile.php b/includes/core/class-profile.php index 4ff5b58d..0de83c6c 100644 --- a/includes/core/class-profile.php +++ b/includes/core/class-profile.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Profile' ) ) { +if ( ! class_exists( 'um\core\Profile' ) ) { /** diff --git a/includes/core/class-query.php b/includes/core/class-query.php index fbba989c..8dd4b8a7 100644 --- a/includes/core/class-query.php +++ b/includes/core/class-query.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Query' ) ) { +if ( ! class_exists( 'um\core\Query' ) ) { /** diff --git a/includes/core/class-register.php b/includes/core/class-register.php index b0381120..69450074 100644 --- a/includes/core/class-register.php +++ b/includes/core/class-register.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Register' ) ) { +if ( ! class_exists( 'um\core\Register' ) ) { /** diff --git a/includes/core/class-rest-api.php b/includes/core/class-rest-api.php index 35b084c1..a8b7dae3 100644 --- a/includes/core/class-rest-api.php +++ b/includes/core/class-rest-api.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'REST_API' ) ) { +if ( ! class_exists( 'um\core\REST_API' ) ) { /** diff --git a/includes/core/class-rewrite.php b/includes/core/class-rewrite.php index 525e7084..be0399bb 100644 --- a/includes/core/class-rewrite.php +++ b/includes/core/class-rewrite.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Rewrite' ) ) { +if ( ! class_exists( 'um\core\Rewrite' ) ) { /** diff --git a/includes/core/class-roles-capabilities.php b/includes/core/class-roles-capabilities.php index c3f5b03c..e25743a8 100644 --- a/includes/core/class-roles-capabilities.php +++ b/includes/core/class-roles-capabilities.php @@ -5,7 +5,7 @@ namespace um\core; if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Roles_Capabilities' ) ) { +if ( ! class_exists( 'um\core\Roles_Capabilities' ) ) { /** diff --git a/includes/core/class-router.php b/includes/core/class-router.php index 0a26b5ed..50f25c2d 100644 --- a/includes/core/class-router.php +++ b/includes/core/class-router.php @@ -3,7 +3,7 @@ namespace um\core; if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Router' ) ) { +if ( ! class_exists( 'um\core\Router' ) ) { /** diff --git a/includes/core/class-setup.php b/includes/core/class-setup.php index e01bb271..cd58f4e5 100644 --- a/includes/core/class-setup.php +++ b/includes/core/class-setup.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Setup' ) ) { +if ( ! class_exists( 'um\core\Setup' ) ) { /** diff --git a/includes/core/class-shortcodes.php b/includes/core/class-shortcodes.php index d5b5e29a..889c9499 100644 --- a/includes/core/class-shortcodes.php +++ b/includes/core/class-shortcodes.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Shortcodes' ) ) { +if ( ! class_exists( 'um\core\Shortcodes' ) ) { /** diff --git a/includes/core/class-tracking.php b/includes/core/class-tracking.php index 2dcc3aac..23ce6ab0 100644 --- a/includes/core/class-tracking.php +++ b/includes/core/class-tracking.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Tracking' ) ) { +if ( ! class_exists( 'um\core\Tracking' ) ) { /** diff --git a/includes/core/class-user-posts.php b/includes/core/class-user-posts.php index 9aef4c3c..4ec2686b 100644 --- a/includes/core/class-user-posts.php +++ b/includes/core/class-user-posts.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'User_posts' ) ) { +if ( ! class_exists( 'um\core\User_posts' ) ) { /** diff --git a/includes/core/class-user.php b/includes/core/class-user.php index e22711f6..86e0b480 100644 --- a/includes/core/class-user.php +++ b/includes/core/class-user.php @@ -5,7 +5,7 @@ namespace um\core; if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'User' ) ) { +if ( ! class_exists( 'um\core\User' ) ) { /** diff --git a/includes/core/class-validation.php b/includes/core/class-validation.php index 8788d72f..1eb173d5 100644 --- a/includes/core/class-validation.php +++ b/includes/core/class-validation.php @@ -4,7 +4,7 @@ namespace um\core; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Validation' ) ) { +if ( ! class_exists( 'um\core\Validation' ) ) { /** diff --git a/includes/lib/mobiledetect/class-um-mobile-detect.php b/includes/lib/mobiledetect/class-um-mobile-detect.php index 08c3384c..03784aa1 100644 --- a/includes/lib/mobiledetect/class-um-mobile-detect.php +++ b/includes/lib/mobiledetect/class-um-mobile-detect.php @@ -4,7 +4,7 @@ namespace um\lib\mobiledetect; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; -if ( ! class_exists( 'Um_Mobile_Detect' ) ) { +if ( ! class_exists( 'um\lib\mobiledetect\Um_Mobile_Detect' ) ) { class Um_Mobile_Detect { /** * Mobile detection type. From b561c3f029e8a9e448ee2db44f14211c696a163f Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Wed, 28 Mar 2018 09:47:26 +0300 Subject: [PATCH 05/29] - small fix for first install; --- includes/admin/core/class-admin-upgrade.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/includes/admin/core/class-admin-upgrade.php b/includes/admin/core/class-admin-upgrade.php index e05536dc..34f98a74 100644 --- a/includes/admin/core/class-admin-upgrade.php +++ b/includes/admin/core/class-admin-upgrade.php @@ -72,14 +72,15 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) { * @return array */ function need_run_upgrades() { - $all_packages = $this->get_packages(); $um_last_version_upgrade = get_option( 'um_last_version_upgrade' ); - + //first install if ( ! $um_last_version_upgrade ) { - return $all_packages; + return array(); } $diff_packages = array(); + + $all_packages = $this->get_packages(); foreach ( $all_packages as $package ) { if ( version_compare( $um_last_version_upgrade, $package, '<' ) ) { $diff_packages[] = $package; From c8ca096d09608f662190c77d333fd5a988023d43 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Wed, 28 Mar 2018 11:25:27 +0300 Subject: [PATCH 06/29] - fixed Woocommerce checkout page when homepage is restricted; --- includes/core/class-access.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/includes/core/class-access.php b/includes/core/class-access.php index af2312b0..f7eb6a9b 100644 --- a/includes/core/class-access.php +++ b/includes/core/class-access.php @@ -567,7 +567,7 @@ if ( ! class_exists( 'um\core\Access' ) ) { * Restrict content new logic * * @param $posts - * @param $query + * @param \WP_Query $query * @return array */ function filter_protected_posts( $posts, $query ) { @@ -581,6 +581,13 @@ if ( ! class_exists( 'um\core\Access' ) ) { //other filter foreach ( $posts as $post ) { + + //Woocommerce AJAX fixes....remove filtration on wc-ajax which goes to Front Page + if ( ! empty( $_GET['wc-ajax'] ) /*&& $query->is_front_page()*/ ) { + $filtered_posts[] = $post; + continue; + } + $restriction = $this->get_post_privacy_settings( $post ); if ( ! $restriction ) { @@ -588,6 +595,8 @@ if ( ! class_exists( 'um\core\Access' ) ) { continue; } + $is_singular = $query->is_singular(); + //post is private if ( '0' == $restriction['_um_accessible'] ) { $filtered_posts[] = $post; @@ -604,7 +613,7 @@ if ( ! class_exists( 'um\core\Access' ) ) { continue; } - if ( empty( $query->is_singular ) ) { + if ( empty( $is_singular ) ) { //if not single query when exclude if set _um_access_hide_from_queries if ( empty( $restriction['_um_access_hide_from_queries'] ) ) { @@ -703,7 +712,7 @@ if ( ! class_exists( 'um\core\Access' ) ) { } } - if ( empty( $query->is_singular ) ) { + if ( empty( $is_singular ) ) { //if not single query when exclude if set _um_access_hide_from_queries if ( empty( $restriction['_um_access_hide_from_queries'] ) ) { @@ -790,7 +799,7 @@ if ( ! class_exists( 'um\core\Access' ) ) { } } else { - if ( empty( $query->is_singular ) ) { + if ( empty( $is_singular ) ) { if ( empty( $restriction['_um_access_hide_from_queries'] ) ) { if ( ! isset( $restriction['_um_noaccess_action'] ) || '0' == $restriction['_um_noaccess_action'] ) { From c990cf7adfae6dba351faeb656920c82862a7e74 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Wed, 28 Mar 2018 11:48:34 +0300 Subject: [PATCH 07/29] - fixed click handler for disabled buttons (File/Image upload); --- assets/js/um-modal.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/js/um-modal.js b/assets/js/um-modal.js index b21431bb..54d45f87 100644 --- a/assets/js/um-modal.js +++ b/assets/js/um-modal.js @@ -69,7 +69,7 @@ jQuery(document).ready(function() { return false; }); - jQuery(document).on('click', '.um-finish-upload.file', function(){ + jQuery(document).on('click', '.um-finish-upload.file:not(.disabled)', function(){ var key = jQuery(this).attr('data-key'); var preview = jQuery(this).parents('.um-modal-body').find('.um-single-file-preview').html(); @@ -83,7 +83,7 @@ jQuery(document).ready(function() { jQuery('.um-single-file-preview[data-key='+key+']').parents('.um-field').find('input[type=hidden]').val( jQuery('.um-single-file-preview[data-key='+key+']').parents('.um-field').find('.um-single-fileinfo a').attr('href') ); }); - jQuery(document).on('click', '.um-finish-upload.image', function(){ + jQuery(document).on('click', '.um-finish-upload.image:not(.disabled)', function(){ var elem = jQuery(this); var key = jQuery(this).attr('data-key'); From e6fca810d216ab6ac0b02326ab76d6c7f1e98df9 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Fri, 30 Mar 2018 02:14:54 +0300 Subject: [PATCH 08/29] - small texts changes; --- includes/admin/core/class-admin-upgrade.php | 4 ++-- includes/admin/core/packages/2.0-beta1/init.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/includes/admin/core/class-admin-upgrade.php b/includes/admin/core/class-admin-upgrade.php index 34f98a74..3a74d93b 100644 --- a/includes/admin/core/class-admin-upgrade.php +++ b/includes/admin/core/class-admin-upgrade.php @@ -54,7 +54,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) { function need_upgrade() { ?> -

here', 'ultimate-member' ), add_query_arg( array( 'page' => 'um_upgrade' ), admin_url( 'admin.php' ) ) ) ?>

+

%s version %s needs to be updated. Please visit to "Upgrade" page here and run the upgrade process.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version, add_query_arg( array( 'page' => 'um_upgrade' ), admin_url( 'admin.php' ) ) ) ?>

"' + role.role_key + '"' ); + um_add_upgrade_log( '"' + role.role_key + '"' ); jQuery.ajax({ url: '', type: 'POST', @@ -79,7 +79,7 @@ }, success: function( response ) { if ( typeof response.data.count != 'undefined' ) { - um_add_upgrade_log( '' + response.data.count + '' ); + um_add_upgrade_log( '' + response.data.count + '' ); um_add_upgrade_log( ''); users_pages = Math.ceil( response.data.count / users_per_page ); From b709bb39146a27227fdde661d3712495f6f49739 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Sun, 1 Apr 2018 15:45:25 +0300 Subject: [PATCH 09/29] - update account email notification; --- includes/class-config.php | 13 ++++++++++ includes/core/um-actions-account.php | 27 ++++++++++++++++++++- templates/email/changedaccount_email.php | 30 ++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 templates/email/changedaccount_email.php diff --git a/includes/class-config.php b/includes/class-config.php index d1fb3243..0650cc52 100644 --- a/includes/class-config.php +++ b/includes/class-config.php @@ -427,6 +427,19 @@ if ( ! class_exists( 'um\Config' ) ) { 'recipient' => 'user', 'default_active' => true ), + 'changedaccount_email' => array( + 'key' => 'changedaccount_email', + 'title' => __( 'Account Updated Email','ultimate-member' ), + 'subject' => 'Your account at {site_name} was updated', + 'body' => 'Hi {display_name},

' . + 'You recently updated your {site_name} account.

' . + 'If you did not make this change and believe your {site_name} account has been compromised, please contact us at the following email address: {admin_email}

' . + 'Thanks,
' . + '{site_name}', + 'description' => __('Whether to send the user an email when he updated their account','ultimate-member'), + 'recipient' => 'user', + 'default_active'=> true + ), 'notification_new_user' => array( 'key' => 'notification_new_user', 'title' => __( 'New User Notification','ultimate-member' ), diff --git a/includes/core/um-actions-account.php b/includes/core/um-actions-account.php index aa21b4ad..af9c93b4 100644 --- a/includes/core/um-actions-account.php +++ b/includes/core/um-actions-account.php @@ -416,4 +416,29 @@ add_action( 'wp_footer', 'um_account_secure_registered_fields' ); function um_after_user_account_updated_permalink( $user_id, $changed ) { UM()->user()->generate_profile_slug( $user_id ); } -add_action( 'um_after_user_account_updated', 'um_after_user_account_updated_permalink', 10, 2 ); \ No newline at end of file +add_action( 'um_after_user_account_updated', 'um_after_user_account_updated_permalink', 10, 2 ); + + +/** + * Update Account Email Notification + * + * @param $user_id + * @param $changed + */ +function um_account_updated_notification( $user_id, $changed ) { + um_fetch_user( $user_id ); + UM()->mail()->send( um_user( 'user_email' ), 'changedaccount_email' ); +} +add_action( 'um_after_user_account_updated', 'um_account_updated_notification', 20, 2 ); + + +/** + * Disable WP native email notification when change email on user account + * + * @param $user_id + * @param $changed + */ +function um_disable_native_email_notificatiion( $changed, $user_id ) { + add_filter( 'send_email_change_email', '__return_false' ); +} +add_action( 'um_account_pre_update_profile', 'um_disable_native_email_notificatiion', 10, 2 ); \ No newline at end of file diff --git a/templates/email/changedaccount_email.php b/templates/email/changedaccount_email.php new file mode 100644 index 00000000..519587e5 --- /dev/null +++ b/templates/email/changedaccount_email.php @@ -0,0 +1,30 @@ + + +
+ +
+
{site_name}
+ +
+
+ +
+ +
You recently updated your account.
+ + + +
If you did not make this change and believe your account has been compromised, please contact us ASAP.
+ +
+ +
+ +
Thank you!
+
The {site_name} Team
+ +
+ +
\ No newline at end of file From a2b1ea06e1aab5b0f349a9711d8bcca571050e41 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Sun, 1 Apr 2018 16:25:29 +0300 Subject: [PATCH 10/29] - fixed activation process (first install on multisites Network Activation); --- includes/class-init.php | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/includes/class-init.php b/includes/class-init.php index d1298eeb..6cc6a28a 100644 --- a/includes/class-init.php +++ b/includes/class-init.php @@ -373,18 +373,41 @@ if ( ! class_exists( 'UM' ) ) { * @since 2.0 */ function activation() { + if ( is_multisite() ) { + //get all blogs + $blogs = get_sites(); + if ( ! empty( $blogs ) ) { + foreach( $blogs as $blog ) { + switch_to_blog( $blog->blog_id ); + //make activation script for each sites blog + $this->single_site_activation(); + restore_current_blog(); + } + } + } else { + $this->single_site_activation(); + } + } + + + /** + * Single site plugin activation handler + */ + function single_site_activation() { //first install $version = get_option( 'um_version' ); if ( ! $version ) { update_option( 'um_last_version_upgrade', ultimatemember_version ); //show avatars on first install - if ( ! get_option( 'show_avatars' ) ) + if ( ! get_option( 'show_avatars' ) ) { update_option( 'show_avatars', 1 ); + } } - if ( $version != ultimatemember_version ) + if ( $version != ultimatemember_version ) { update_option( 'um_version', ultimatemember_version ); + } //run setup $this->common()->create_post_types(); From 69e31a6e52ac4abf7f427670232fa2666735f548 Mon Sep 17 00:00:00 2001 From: Denis Baranov Date: Mon, 2 Apr 2018 13:22:25 +0300 Subject: [PATCH 11/29] - small fixed. Return an empty array if the "um_roles" option is not specified --- includes/core/class-fields.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index 62faa0df..6116b9b6 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -3137,7 +3137,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) { global $wp_roles; $role_keys = array_map( function( $item ) { return 'um_' . $item; - }, get_option( 'um_roles' ) ); + }, get_option( 'um_roles', array() ) ); $exclude_roles = array_diff( array_keys( $wp_roles->roles ), array_merge( $role_keys, array( 'subscriber' ) ) ); $roles = UM()->roles()->get_roles( false, $exclude_roles ); From 4c010dd8cbe45063b758bd91081b608226166809 Mon Sep 17 00:00:00 2001 From: Denis Baranov Date: Mon, 2 Apr 2018 16:51:56 +0300 Subject: [PATCH 12/29] -fixed remove bulk action "quick edit" --- includes/admin/core/um-admin-actions.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/includes/admin/core/um-admin-actions.php b/includes/admin/core/um-admin-actions.php index 2a02cf33..2b74a6a7 100644 --- a/includes/admin/core/um-admin-actions.php +++ b/includes/admin/core/um-admin-actions.php @@ -250,4 +250,21 @@ function ultimatemember_plugin_links( $links ) { return $links; } $prefix = is_network_admin() ? 'network_admin_' : ''; -add_filter( "{$prefix}plugin_action_links_" . um_plugin, 'ultimatemember_plugin_links' ); \ No newline at end of file +add_filter( "{$prefix}plugin_action_links_" . um_plugin, 'ultimatemember_plugin_links' ); + + +/** + * This will remove the "Edit" bulk action, which is actually quick edit. + * + * @param array $actions + * + * @return array; + */ +function remove_bulk_actions_um_form_inline( $actions ){ + if ( UM()->admin()->is_plugin_post_type() ) { + unset( $actions['inline hide-if-no-js'] ); + return $actions; + } + return $actions; +} +add_filter('post_row_actions', 'remove_bulk_actions_um_form_inline'); \ No newline at end of file From 8ed625ba6d62ac301447fecf38c708f27445cf9f Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Mon, 2 Apr 2018 21:56:34 +0300 Subject: [PATCH 13/29] - fixed small notices with strstr function; --- includes/core/class-enqueue.php | 58 +++++++++++++++++---------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/includes/core/class-enqueue.php b/includes/core/class-enqueue.php index fac735ac..1fe726e6 100644 --- a/includes/core/class-enqueue.php +++ b/includes/core/class-enqueue.php @@ -73,45 +73,47 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { function wp_enqueue_scripts() { global $post; - $this->suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG || defined('UM_SCRIPT_DEBUG') ) ? '' : '.min'; - - $exclude = UM()->options()->get( 'js_css_exclude' ); - if ( is_array( $exclude ) ) { - array_filter( $exclude ); - } - if ( $exclude && !is_admin() && is_array( $exclude ) ) { + $this->suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG || defined( 'UM_SCRIPT_DEBUG' ) ) ? '' : '.min'; + if ( ! is_admin() ) { $c_url = UM()->permalinks()->get_current_url( get_option( 'permalink_structure' ) ); - foreach( $exclude as $match ) { - if ( ! empty( $c_url ) && strstr( $c_url, untrailingslashit( $match ) ) ) { - return; - } + $exclude = UM()->options()->get( 'js_css_exclude' ); + if ( is_array( $exclude ) ) { + array_filter( $exclude ); } - } - - $include = UM()->options()->get('js_css_include'); - if ( is_array( $include ) ) { - array_filter( $include ); - } - if ( $include && !is_admin() && is_array( $include ) ) { - - $c_url = UM()->permalinks()->get_current_url( get_option('permalink_structure') ); - - foreach( $include as $match ) { - if ( strstr( $c_url, untrailingslashit( $match ) ) ) { - $force_load = true; - } else { - if ( !isset( $force_load ) ) { - $force_load = false; + if ( $exclude && is_array( $exclude ) ) { + foreach ( $exclude as $match ) { + $sub_match = untrailingslashit( $match ); + if ( ! empty( $c_url ) && ! empty( $sub_match ) && strstr( $c_url, $sub_match ) ) { + return; } } } + $include = UM()->options()->get( 'js_css_include' ); + if ( is_array( $include ) ) { + array_filter( $include ); + } + + if ( $include && is_array( $include ) ) { + foreach ( $include as $match ) { + $sub_match = untrailingslashit( $match ); + if ( ! empty( $c_url ) && ! empty( $sub_match ) && strstr( $c_url, $sub_match ) ) { + $force_load = true; + } else { + if ( ! isset( $force_load ) ) { + $force_load = false; + } + } + } + } } - if ( isset($force_load) && $force_load == false ) return; + if ( isset( $force_load ) && $force_load == false ) { + return; + } /** * UM hook From 66bdc026b65c88ca13fcd253fe5529d16f09ac9c Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Mon, 2 Apr 2018 23:04:39 +0300 Subject: [PATCH 14/29] - added functionality for user more than 1 admin email in email notifications settings; --- includes/core/class-user.php | 14 ++++++++++---- includes/core/um-actions-register.php | 13 +++++++++---- includes/um-short-functions.php | 17 +++++++++++++++++ 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/includes/core/class-user.php b/includes/core/class-user.php index 86e0b480..1b5adb3c 100644 --- a/includes/core/class-user.php +++ b/includes/core/class-user.php @@ -1306,8 +1306,14 @@ if ( ! class_exists( 'um\core\User' ) ) { // send email notifications if ( $send_mail ) { - UM()->mail()->send( um_user('user_email'), 'deletion_email' ); - UM()->mail()->send( um_admin_email(), 'notification_deletion', array('admin' => true ) ); + UM()->mail()->send( um_user( 'user_email' ), 'deletion_email' ); + + $emails = um_multi_admin_email(); + if ( ! empty( $emails ) ) { + foreach ( $emails as $email ) { + UM()->mail()->send( $email, 'notification_deletion', array( 'admin' => true ) ); + } + } } // remove uploads @@ -1316,7 +1322,7 @@ if ( ! class_exists( 'um\core\User' ) ) { // remove user if ( is_multisite() ) { - if ( !function_exists('wpmu_delete_user') ) { + if ( ! function_exists( 'wpmu_delete_user' ) ) { require_once( ABSPATH . 'wp-admin/includes/ms.php' ); } @@ -1324,7 +1330,7 @@ if ( ! class_exists( 'um\core\User' ) ) { } else { - if ( !function_exists('wp_delete_user') ) { + if ( ! function_exists( 'wp_delete_user' ) ) { require_once( ABSPATH . 'wp-admin/includes/user.php' ); } diff --git a/includes/core/um-actions-register.php b/includes/core/um-actions-register.php index 14be2d80..aeb5a53a 100644 --- a/includes/core/um-actions-register.php +++ b/includes/core/um-actions-register.php @@ -115,10 +115,15 @@ add_action( 'um_user_register', 'um_after_insert_user', 10, 2 ); function um_send_registration_notification( $user_id, $args ) { um_fetch_user( $user_id ); - if ( um_user( 'status' ) != 'pending' ) { - UM()->mail()->send( um_admin_email(), 'notification_new_user', array( 'admin' => true ) ); - } else { - UM()->mail()->send( um_admin_email(), 'notification_review', array( 'admin' => true ) ); + $emails = um_multi_admin_email(); + if ( ! empty( $emails ) ) { + foreach ( $emails as $email ) { + if ( um_user( 'status' ) != 'pending' ) { + UM()->mail()->send( $email, 'notification_new_user', array( 'admin' => true ) ); + } else { + UM()->mail()->send( $email, 'notification_review', array( 'admin' => true ) ); + } + } } } add_action( 'um_registration_complete', 'um_send_registration_notification', 10, 2 ); diff --git a/includes/um-short-functions.php b/includes/um-short-functions.php index d0dc33e6..7d682d07 100644 --- a/includes/um-short-functions.php +++ b/includes/um-short-functions.php @@ -1404,6 +1404,23 @@ function um_admin_email() { } +/** + * Get admin e-mails + * + * @return array + */ +function um_multi_admin_email() { + $emails = UM()->options()->get( 'admin_email' ); + + $emails_array = explode( ',', $emails ); + if ( ! empty( $emails_array ) ) { + $emails_array = array_map( 'trim', $emails_array ); + } + + return $emails_array; +} + + /** * Display a link to profile page * From 39f55b29064d2c44b3c1f6468faa27dd0e7c4da1 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Tue, 3 Apr 2018 00:15:34 +0300 Subject: [PATCH 15/29] - dependencies with verified users; --- includes/class-dependencies.php | 2 +- ultimate-member.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/class-dependencies.php b/includes/class-dependencies.php index 258b5e0d..2b400c7d 100644 --- a/includes/class-dependencies.php +++ b/includes/class-dependencies.php @@ -53,7 +53,7 @@ if ( ! class_exists( 'um\Dependencies' ) ) { 'terms-conditions' => '2.0', 'user-location' => '2.0', 'user-tags' => '2.0', - 'verified-users' => '2.0', + 'verified-users' => '2.0.1', 'woocommerce' => '2.0', 'restrict-content' => '2.0', 'beaver-builder' => '2.0', diff --git a/ultimate-member.php b/ultimate-member.php index a4545409..01ccb19b 100644 --- a/ultimate-member.php +++ b/ultimate-member.php @@ -3,7 +3,7 @@ Plugin Name: Ultimate Member Plugin URI: http://ultimatemember.com/ Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress -Version: 2.0.2 +Version: 2.0.3 Author: Ultimate Member Author URI: http://ultimatemember.com/ Text Domain: ultimate-member From a8c25d19833eb628822d508916576a2d3dc66033 Mon Sep 17 00:00:00 2001 From: Denis Baranov Date: Tue, 3 Apr 2018 10:33:45 +0300 Subject: [PATCH 16/29] -fixed. replaced the method of checking user permission in the directory's member --- includes/core/class-members.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/includes/core/class-members.php b/includes/core/class-members.php index 6d7d872c..98f3ecea 100644 --- a/includes/core/class-members.php +++ b/includes/core/class-members.php @@ -366,7 +366,7 @@ if ( ! class_exists( 'um\core\Members' ) ) { $query_args['paged'] = $members_page; - if ( ! um_user( 'can_view_all' ) && is_user_logged_in() ) { + if ( ! UM()->roles()->um_user_can( 'can_view_all' ) && is_user_logged_in() ) { //unset( $query_args ); $query_args = array(); } @@ -393,7 +393,6 @@ if ( ! class_exists( 'um\core\Members' ) ) { do_action( 'um_user_before_query', $query_args ); $users = new \WP_User_Query( $query_args ); - /** * UM hook * From f2b624951666236316772eb574e502877947df94 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Tue, 3 Apr 2018 11:46:30 +0300 Subject: [PATCH 17/29] - fixed issues with admin notices and their priority; --- includes/admin/assets/css/um-admin-global.css | 10 + includes/admin/class-admin.php | 24 +- includes/admin/core/class-admin-notices.php | 474 ++++++++++++++---- includes/admin/core/class-admin-settings.php | 2 +- includes/admin/core/class-admin-upgrade.php | 8 +- includes/class-init.php | 22 +- includes/core/class-fields.php | 14 +- includes/core/class-tracking.php | 30 -- includes/um-deprecated-functions.php | 3 +- includes/um-short-functions.php | 6 +- ultimate-member.php | 6 + 11 files changed, 435 insertions(+), 164 deletions(-) diff --git a/includes/admin/assets/css/um-admin-global.css b/includes/admin/assets/css/um-admin-global.css index 4e798f2b..b8d55275 100644 --- a/includes/admin/assets/css/um-admin-global.css +++ b/includes/admin/assets/css/um-admin-global.css @@ -3,6 +3,16 @@ color: #555; } +.um-admin-notice.upgraded { + border-color: #0085ba !important; + color: #555; +} + +.um-admin-notice.error { + border-color: #dc3232 !important; + color: #555; +} + .um-admin-notice a.button-primary { background-color: #0085ba !important; border-color: #0085ba !important; diff --git a/includes/admin/class-admin.php b/includes/admin/class-admin.php index 1b5b60aa..ab49e5cb 100644 --- a/includes/admin/class-admin.php +++ b/includes/admin/class-admin.php @@ -27,7 +27,7 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { $this->templates_path = um_path . 'includes/admin/templates/'; add_action( 'admin_init', array( &$this, 'admin_init' ), 0 ); - add_action( 'admin_notices', array( $this, 'check_wrong_install_folder' ), 3 ); + } @@ -54,28 +54,6 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { } - /** - * Check if plugin is installed with correct folder - */ - function check_wrong_install_folder() { - $invalid_folder = false; - - $slug_array = explode( '/', um_plugin ); - if ( $slug_array[0] != 'ultimate-member' ) - $invalid_folder = true; - - if ( $invalid_folder ) { ?> - -
-

- %s with wrong folder name. Correct folder name is "ultimate-member".', 'ultimate-member' ), ultimatemember_plugin_name ) ?> -

-
- - old_extensions_notice(); + $this->main_notices(); + $this->localize_note(); + $this->show_update_messages(); + $this->check_wrong_install_folder(); + $this->admin_notice_tracking(); + $this->need_upgrade(); + $this->check_wrong_licenses(); + + /** + * UM hook + * + * @type action + * @title um_admin_create_notices + * @description Add notices to wp-admin + * @change_log + * ["Since: 2.0"] + * @usage add_action( 'um_admin_create_notices', 'function_name', 10 ); + * @example + * + */ + do_action( 'um_admin_create_notices' ); + } + + + /** + * @return array + */ + function get_admin_notices() { + return $this->list; + } + + + /** + * @param $admin_notices + */ + function set_admin_notices( $admin_notices ) { + $this->list = $admin_notices; + } + + + /** + * @param $a + * @param $b + * + * @return mixed + */ + function notice_priority_sort( $a, $b ) { + if ( $a['priority'] == $b['priority'] ) { + return 0; + } + return ( $a['priority'] < $b['priority'] ) ? -1 : 1; + } + + + /** + * Add notice to UM notices array + * + * @param string $key + * @param array $data + * @param int $priority + */ + function add_notice( $key, $data, $priority = 10 ) { + $admin_notices = $this->get_admin_notices(); + + if ( empty( $admin_notices[ $key ] ) ) { + $admin_notices[ $key ] = array_merge( $data, array( 'priority' => $priority ) ); + $this->set_admin_notices( $admin_notices ); + } + } + + + /** + * Remove notice from UM notices array + * + * @param string $key + */ + function remove_notice( $key ) { + $admin_notices = $this->get_admin_notices(); + + if ( ! empty( $admin_notices[ $key ] ) ) { + unset( $admin_notices[ $key ] ); + $this->set_admin_notices( $admin_notices ); + } + } + + + /** + * Render all admin notices + */ + function render_notices() { + if ( ! current_user_can( 'manage_options' ) ) { + return; + } + + $admin_notices = $this->get_admin_notices(); + + $hidden = get_user_meta( get_current_user_id(), 'um_hidden_admin_notices' ); + $hidden = empty( $hidden ) ? array() : $hidden; + + uasort( $admin_notices, array( &$this, 'notice_priority_sort' ) ); + + foreach ( $admin_notices as $key => $admin_notice ) { + if ( empty( $hidden ) || ! in_array( $key, $hidden ) ) { + $this->display_notice( $key ); + } + } + + /** + * UM hook + * + * @type action + * @title um_admin_after_main_notices + * @description Insert some content after main admin notices + * @change_log + * ["Since: 2.0"] + * @usage add_action( 'um_admin_after_main_notices', 'function_name', 10 ); + * @example + * + */ + do_action( 'um_admin_after_main_notices' ); + } + + + /** + * Display single admin notice + * + * @param string $key + * @param bool $echo + * + * @return void|string + */ + function display_notice( $key, $echo = true ) { + $admin_notices = $this->get_admin_notices(); + + if ( empty( $admin_notices[ $key ] ) ) { + return; + } + + $notice_data = $admin_notices[ $key ]; + + $class = ! empty( $notice_data['class'] ) ? $notice_data['class'] : 'updated'; + + ob_start(); ?> + +
+ +
+ + dependencies()->ext_required_version ) ); + + $active_plugins = UM()->dependencies()->get_active_plugins(); + foreach ( $slugs as $slug ) { + if ( in_array( $slug, $active_plugins ) ) { + $plugin_data = get_plugin_data( um_path . '..' . DIRECTORY_SEPARATOR . $slug ); + if ( version_compare( '2.0', $plugin_data['Version'], '>' ) ) { + $show = true; + break; + } + } + } + + if ( ! $show ) { + return; + } + + $this->add_notice( 'old_extensions', array( + 'class' => 'error', + 'message' => '

' . sprintf( __( '%s %s requires 2.0 extensions. You have pre 2.0 extensions installed on your site.
Please update %s extensions to latest versions. For more info see this doc.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version, ultimatemember_plugin_name, 'http://docs.ultimatemember.com/article/266-updating-to-2-0-versions-of-extensions' ) . '

', + ), 0 ); + } + + /** * Show main notices */ function main_notices() { - if ( ! defined( 'DOING_AJAX' ) ) { + $hide_exif_notice = get_option( 'um_hide_exif_notice' ); - $hide_exif_notice = get_option( 'um_hide_exif_notice' ); - - if ( !extension_loaded('exif') && !$hide_exif_notice ) { - - echo '

'; - - echo sprintf(__( 'Exif is not enabled on your server. Mobile photo uploads will not be rotated correctly until you enable the exif extension. Hide this notice', 'ultimate-member' ), add_query_arg('um_adm_action', 'um_hide_exif_notice') ); - - echo '

'; - - } - - // Regarding page setup - $pages = UM()->config()->permalinks; - if ( $pages && is_array( $pages ) ) { - - $err = false; - - foreach( $pages as $slug => $page_id ) { - - $page = get_post( $page_id ); - - if ( !isset( $page->ID ) && in_array( $slug, array( 'user','account','members','register','login','logout','password-reset' ) ) ) { - $err = true; - } - - } - - if ( $err ) { - echo '

' . __('One or more of your Ultimate Member pages are not correctly setup. Please visit Ultimate Member > Settings to re-assign your missing pages.','ultimate-member') . '

'; - } - - if ( isset( $pages['user'] ) ) { - $test = get_post( $pages['user'] ); - if ( isset( $test->post_parent ) && $test->post_parent > 0 ) { - echo '

' . __('Ultimate Member Setup Error: User page can not be a child page.','ultimate-member') . '

'; - } - } - - if ( isset( $pages['account'] ) ) { - $test = get_post( $pages['account'] ); - if ( isset( $test->post_parent ) && $test->post_parent > 0 ) { - echo '

' . __('Ultimate Member Setup Error: Account page can not be a child page.','ultimate-member') . '

'; - } - } - - } - - /** - * UM hook - * - * @type action - * @title um_admin_after_main_notices - * @description Insert some content after main admin notices - * @change_log - * ["Since: 2.0"] - * @usage add_action( 'um_admin_after_main_notices', 'function_name', 10 ); - * @example - * - */ - do_action( 'um_admin_after_main_notices' ); + if ( ! extension_loaded( 'exif' ) && ! $hide_exif_notice ) { + $this->add_notice( 'exif_disabled', array( + 'class' => 'updated', + 'message' => '

' . sprintf(__( 'Exif is not enabled on your server. Mobile photo uploads will not be rotated correctly until you enable the exif extension. Hide this notice', 'ultimate-member' ), add_query_arg('um_adm_action', 'um_hide_exif_notice') ) . '

', + ), 10 ); } + // Regarding page setup + $pages = UM()->config()->permalinks; + if ( $pages && is_array( $pages ) ) { + + $err = false; + + foreach ( $pages as $slug => $page_id ) { + + $page = get_post( $page_id ); + + if ( ! isset( $page->ID ) && in_array( $slug, array( 'user', 'account', 'members', 'register', 'login', 'logout', 'password-reset' ) ) ) { + $err = true; + } + + } + + if ( $err ) { + $this->add_notice( 'wrong_pages', array( + 'class' => 'updated', + 'message' => '

' . __( 'One or more of your Ultimate Member pages are not correctly setup. Please visit Ultimate Member > Settings to re-assign your missing pages.', 'ultimate-member' ) . '

', + ), 20 ); + } + + if ( isset( $pages['user'] ) ) { + $test = get_post( $pages['user'] ); + if ( isset( $test->post_parent ) && $test->post_parent > 0 ) { + $this->add_notice( 'wrong_user_page', array( + 'class' => 'updated', + 'message' => '

' . __( 'Ultimate Member Setup Error: User page can not be a child page.', 'ultimate-member' ) . '

', + ), 25 ); + } + } + + if ( isset( $pages['account'] ) ) { + $test = get_post( $pages['account'] ); + if ( isset( $test->post_parent ) && $test->post_parent > 0 ) { + $this->add_notice( 'wrong_account_page', array( + 'class' => 'updated', + 'message' => '

' . __( 'Ultimate Member Setup Error: Account page can not be a child page.', 'ultimate-member' ) . '

', + ), 30 ); + } + } + + } } @@ -128,6 +320,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { if ( ! $locale || strstr( $locale, 'en_' ) ) { return; } + if ( file_exists( WP_LANG_DIR . '/plugins/ultimatemember-' . $locale . '.mo' ) ) { return; } @@ -141,21 +334,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { $download_uri = add_query_arg( 'um_adm_action', 'um_language_downloader' ); - echo '

'; - - echo sprintf(__('Your site language is %1$s. Good news! Ultimate Member is already available in %2$s language. Download the translation files and start using the plugin in your language now. Hide this notice','ultimate-member'), $locale, UM()->available_languages[$locale], $download_uri, add_query_arg('um_adm_action', 'um_hide_locale_notice') ); - - echo '

'; - + $this->add_notice( 'locale', array( + 'class' => 'updated', + 'message' => '

' . sprintf( __( 'Your site language is %1$s. Good news! Ultimate Member is already available in %2$s language. Download the translation files and start using the plugin in your language now. Hide this notice','ultimate-member'), $locale, UM()->available_languages[ $locale ], $download_uri, add_query_arg( 'um_adm_action', 'um_hide_locale_notice' ) ) . '

', + ), 40 ); } else { - - echo '

'; - - echo sprintf(__('Ultimate Member has not yet been translated to your langeuage: %1$s. If you have translated the plugin you need put these files ultimatemember-%1$s.po and ultimatemember-%1$s.mo in /wp-content/languages/plugins/ for the plugin to be translated in your language. Hide this notice','ultimate-member'), $locale, add_query_arg('um_adm_action', 'um_hide_locale_notice') ); - - echo '

'; + $this->add_notice( 'locale', array( + 'class' => 'updated', + 'message' => '

' . sprintf( __( 'Ultimate Member has not yet been translated to your language: %1$s. If you have translated the plugin you need put these files ultimatemember-%1$s.po and ultimatemember-%1$s.mo in /wp-content/languages/plugins/ for the plugin to be translated in your language. Hide this notice', 'ultimate-member' ), $locale, add_query_arg( 'um_adm_action', 'um_hide_locale_notice' ) ) . '

', + ), 40 ); } @@ -233,14 +422,131 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { if ( ! empty( $messages ) ) { foreach ( $messages as $message ) { if ( isset( $message['err_content'] ) ) { - echo '

' . $message['err_content'] . '

'; + $this->add_notice( 'actions', array( + 'class' => 'error', + 'message' => '

' . $message['err_content'] . '

', + ), 50 ); } else { - echo '

' . $message['content'] . '

'; + $this->add_notice( 'actions', array( + 'class' => 'updated', + 'message' => '

' . $message['content'] . '

', + ), 50 ); } } } } + + /** + * Check if plugin is installed with correct folder + */ + function check_wrong_install_folder() { + $invalid_folder = false; + + $slug_array = explode( '/', um_plugin ); + if ( $slug_array[0] != 'ultimate-member' ) { + $invalid_folder = true; + } + + if ( $invalid_folder ) { + $this->add_notice( 'invalid_dir', array( + 'class' => 'error', + 'message' => '

' . sprintf( __( 'You have installed %s with wrong folder name. Correct folder name is "ultimate-member".', 'ultimate-member' ), ultimatemember_plugin_name ) . '

', + ), 1 ); + } + } + + + /** + * Show admin notices + */ + public function admin_notice_tracking() { + + if ( ! current_user_can( 'manage_options' ) ) + return; + + $hide_notice = get_option( 'um_tracking_notice' ); + + if ( $hide_notice ) + return; + + $optin_url = esc_url( add_query_arg( 'um_adm_action', 'opt_into_tracking' ) ); + $optout_url = esc_url( add_query_arg( 'um_adm_action', 'opt_out_of_tracking' ) ); + + ob_start(); ?> + +

+ %s! The core plugin is free but we also sell extensions which allow us to continue developing and supporting the plugin full time. If you subscribe to our mailing list (no spam) we will email you a 20%% discount code which you can use to purchase the extensions bundle.', 'ultimate-member' ), ultimatemember_plugin_name, 'https://ultimatemember.com/core-extensions-bundle/' ); ?> +

+ +

+ +   + +

+ + add_notice( 'invalid_dir', array( + 'class' => 'updated', + 'message' => $message, + ), 2 ); + } + + + function check_wrong_licenses() { + $invalid_license = 0; + $arr_inactive_license_keys = array(); + + if ( empty( UM()->admin_settings()->settings_structure['licenses']['fields'] ) ) { + return; + } + + foreach ( UM()->admin_settings()->settings_structure['licenses']['fields'] as $field_data ) { + $license = get_option( "{$field_data['id']}_edd_answer" ); + + if ( ( is_object( $license ) && 'valid' == $license->license ) || 'valid' == $license ) + continue; + + if ( ( is_object( $license ) && 'inactive' == $license->license ) || 'inactive' == $license ) { + $arr_inactive_license_keys[ ] = $license->item_name; + } + + $invalid_license++; + } + + if ( ! empty( $arr_inactive_license_keys ) ) { + $this->add_notice( 'license_key', array( + 'class' => 'error', + 'message' => '

' . sprintf( __( 'There are %d inactive %s license keys for this site. This site is not authorized to get plugin updates. You can active this site on www.UltimateMember.com.', 'ultimate-member' ), count( $arr_inactive_license_keys ) , ultimatemember_plugin_name, 'https://ultimatemember.com' ) . '

', + ), 3 ); + } + + if ( $invalid_license ) { + $this->add_notice( 'license_key', array( + 'class' => 'error', + 'message' => '

' . sprintf( __( 'You have %d invalid or expired license keys for %s. Please go to the Licenses page to correct this issue.', 'ultimate-member' ), $invalid_license, ultimatemember_plugin_name, add_query_arg( array('page'=>'um_options', 'tab' => 'licenses'), admin_url( 'admin.php' ) ) ) . '

', + ), 3 ); + } + } + + + function need_upgrade() { + if ( ! empty( UM()->admin_upgrade()->necessary_packages ) ) { + $this->add_notice( 'upgrade', array( + 'class' => 'error', + 'message' => '

' . sprintf( __( '%s version %s needs to be updated. Please visit to "Upgrade" page here and run the upgrade process.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version, add_query_arg( array( 'page' => 'um_upgrade' ), admin_url( 'admin.php' ) ) ) . '

', + ), 4 ); + } else { + if ( isset( $_GET['msg'] ) && 'updated' == $_GET['msg'] ) { + $this->add_notice( 'upgrade', array( + 'class' => 'updated', + 'message' => '

' . __( 'Successfully Upgraded', 'ultimate-member' ) . '

', + ), 4 ); + } + } + } + } } \ No newline at end of file diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php index 82ece580..d6a36e93 100644 --- a/includes/admin/core/class-admin-settings.php +++ b/includes/admin/core/class-admin-settings.php @@ -76,7 +76,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { add_filter( 'um_change_settings_before_save', array( $this, 'remove_empty_values' ), 10, 1 ); //invalid licenses notice - add_action( 'admin_notices', array( $this, 'check_wrong_licenses' ) ); + //add_action( 'admin_notices', array( $this, 'check_wrong_licenses' ) ); add_action( 'admin_init', array( &$this, 'um_download_install_info' ) ); diff --git a/includes/admin/core/class-admin-upgrade.php b/includes/admin/core/class-admin-upgrade.php index 3a74d93b..bdb5fea3 100644 --- a/includes/admin/core/class-admin-upgrade.php +++ b/includes/admin/core/class-admin-upgrade.php @@ -39,16 +39,16 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) { $this->necessary_packages = $this->need_run_upgrades(); if ( ! empty( $this->necessary_packages ) ) { - add_action( 'admin_notices', array( $this, 'need_upgrade' ) ); + //add_action( 'admin_notices', array( $this, 'need_upgrade' ) ); $this->init_packages_ajax(); add_action( 'admin_menu', array( $this, 'admin_menu' ), 0 ); add_action( 'wp_ajax_um_run_package', array( $this, 'ajax_run_package' ) ); add_action( 'wp_ajax_um_get_packages', array( $this, 'ajax_get_packages' ) ); - } else { - add_action( 'admin_notices', array( $this, 'updated_successfully' ) ); - } + } /*else { + //add_action( 'admin_notices', array( $this, 'updated_successfully' ) ); + }*/ } diff --git a/includes/class-init.php b/includes/class-init.php index 98b2a654..a8517490 100644 --- a/includes/class-init.php +++ b/includes/class-init.php @@ -1,6 +1,5 @@ - 'Svenska', 'pl_PL' => 'Polski', 'cs_CZ' => 'Czech', - 'el' => 'Greek', + 'el' => 'Greek', 'id_ID' => 'Indonesian', 'zh_CN' => '简体中文', 'ru_RU' => 'Русский', 'tr_TR' => 'Türkçe', 'fa_IR' => 'Farsi', 'he_IL' => 'Hebrew', - 'ar' => 'العربية', + 'ar' => 'العربية', ); /** @@ -275,7 +274,7 @@ if ( ! class_exists( 'UM' ) ) { // include hook files add_action( 'plugins_loaded', array( &$this, 'init' ), 0 ); - add_action( 'init', array( &$this, 'old_extensions_notice' ), 0 ); + //add_action( 'init', array( &$this, 'old_extensions_notice' ), 0 ); //run activation register_activation_hook( um_plugin, array( &$this, 'activation' ) ); @@ -294,7 +293,7 @@ if ( ! class_exists( 'UM' ) ) { /** * Show notice for customers with old extension's versions */ - function old_extensions_notice() { + /*function old_extensions_notice() { if ( ! is_admin() ) { return; } @@ -326,10 +325,10 @@ if ( ! class_exists( 'UM' ) ) { /*global $um_woocommerce; remove_action( 'init', array( $um_woocommerce, 'plugin_check' ), 1 ); - $um_woocommerce->plugin_inactive = true;*/ + $um_woocommerce->plugin_inactive = true;* echo '

' . sprintf( __( '%s %s requires 2.0 extensions. You have pre 2.0 extensions installed on your site.
Please update %s extensions to latest versions. For more info see this doc.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version, ultimatemember_plugin_name, 'http://docs.ultimatemember.com/article/266-updating-to-2-0-versions-of-extensions' ) . '

'; - } + }*/ /** @@ -1250,5 +1249,6 @@ function UM() { return UM::instance(); } + // Global for backwards compatibility. $GLOBALS['ultimatemember'] = UM(); \ No newline at end of file diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index 6116b9b6..00ad82c6 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -448,18 +448,18 @@ if ( ! class_exists( 'um\core\Fields' ) ) { $label = apply_filters( 'um_edit_label_all_fields', $label, $data ); } - $output .= ''; + $output .= ''; if (isset( $data['help'] ) && !empty( $data['help'] ) && $this->viewing == false && !strstr( $key, 'confirm_user_pass' )) { if (!UM()->mobile()->isMobile()) { if (!isset( $this->disable_tooltips )) { - $output .= ''; + $output .= ''; } } if (UM()->mobile()->isMobile() || isset( $this->disable_tooltips )) { - $output .= '' . __( $data['help'], UM_TEXTDOMAIN ) . ''; + $output .= '' . __( $data['help'], 'ultimate-member' ) . ''; } } @@ -2561,7 +2561,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) { $field_value = $v; } - $output .= '>' . __( $um_field_checkbox_item_title, UM_TEXTDOMAIN ) . ''; + $output .= '>' . __( $um_field_checkbox_item_title, 'ultimate-member' ) . ''; } @@ -2876,7 +2876,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) { $output .= ' />'; $output .= ''; - $output .= '' . __( $um_field_checkbox_item_title, UM_TEXTDOMAIN ) . ''; + $output .= '' . __( $um_field_checkbox_item_title, 'ultimate-member' ) . ''; $output .= ''; if ($i % 2 == 0) { @@ -3030,7 +3030,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) { * ?> */ $um_field_checkbox_item_title = apply_filters( "um_field_checkbox_item_title", $um_field_checkbox_item_title, $key, $v, $data ); - $output .= '' . __( $um_field_checkbox_item_title, UM_TEXTDOMAIN ) . ''; + $output .= '' . __( $um_field_checkbox_item_title, 'ultimate-member' ) . ''; $output .= ''; if ($i % 2 == 0) { @@ -3075,7 +3075,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) { if (!empty( $fields )) { $output .= '
-
' . __( $label, UM_TEXTDOMAIN ) . '
'; +
' . __( $label, 'ultimate-member' ) . '
'; $output .= '
'; foreach ($fields as $subkey => $subdata) { diff --git a/includes/core/class-tracking.php b/includes/core/class-tracking.php index 23ce6ab0..7b22bce0 100644 --- a/includes/core/class-tracking.php +++ b/includes/core/class-tracking.php @@ -27,8 +27,6 @@ if ( ! class_exists( 'um\core\Tracking' ) ) { $this->schedule_send(); - add_action( 'admin_notices', array( $this, 'admin_notices' ), 10 ); - add_action( 'um_admin_do_action__opt_into_tracking', array( $this, 'um_admin_do_action__opt_into_tracking' ) ); add_action( 'um_admin_do_action__opt_out_of_tracking', array( $this, 'um_admin_do_action__opt_out_of_tracking' ) ); } @@ -183,33 +181,5 @@ if ( ! class_exists( 'um\core\Tracking' ) ) { add_action( 'um_daily_scheduled_events', array( $this, 'send_checkin' ) ); } - - /** - * Show admin notices - */ - public function admin_notices() { - - if( ! current_user_can( 'manage_options' ) ) - return; - - $hide_notice = get_option('um_tracking_notice'); - - if ( $hide_notice ) - return; - - $optin_url = esc_url( add_query_arg( 'um_adm_action', 'opt_into_tracking' ) ); - $optout_url = esc_url( add_query_arg( 'um_adm_action', 'opt_out_of_tracking' ) ); - - echo '

'; - - printf( __( 'Thanks for installing %s! The core plugin is free but we also sell extensions which allow us to continue developing and supporting the plugin full time. If you subscribe to our mailing list (no spam) we will email you a 20%% discount code which you can use to purchase the extensions bundle.', 'ultimate-member' ), ultimatemember_plugin_name, 'https://ultimatemember.com/core-extensions-bundle/' ); - - echo '

'; - - echo '

' . __( 'Subscribe to mailing list', 'ultimate-member' ) . ''; - echo ' ' . __( 'No thanks', 'ultimate-member' ) . '

'; - - } - } } \ No newline at end of file diff --git a/includes/um-deprecated-functions.php b/includes/um-deprecated-functions.php index 07b6d21a..a1050057 100644 --- a/includes/um-deprecated-functions.php +++ b/includes/um-deprecated-functions.php @@ -2,7 +2,8 @@ /** * Deprecated functions * - * Where functions come to die. + * Where public functions come to die. + * * */ diff --git a/includes/um-short-functions.php b/includes/um-short-functions.php index 7d682d07..95809e32 100644 --- a/includes/um-short-functions.php +++ b/includes/um-short-functions.php @@ -1,7 +1,7 @@ - Date: Tue, 3 Apr 2018 12:53:41 +0300 Subject: [PATCH 18/29] - removed procedural methods; --- includes/admin/class-admin.php | 222 +++++++++++++- includes/admin/core/class-admin-builder.php | 255 +++++++++++++++++ includes/admin/core/class-admin-columns.php | 18 ++ includes/admin/core/class-admin-metabox.php | 77 +++++ includes/admin/core/class-admin-users.php | 66 ++++- .../admin/core/um-admin-actions-modal.php | 95 ------ includes/admin/core/um-admin-actions-user.php | 66 ----- includes/admin/core/um-admin-actions.php | 270 ------------------ .../admin/core/um-admin-filters-fields.php | 200 ------------- 9 files changed, 631 insertions(+), 638 deletions(-) delete mode 100644 includes/admin/core/um-admin-actions-modal.php delete mode 100644 includes/admin/core/um-admin-actions-user.php delete mode 100644 includes/admin/core/um-admin-actions.php delete mode 100644 includes/admin/core/um-admin-filters-fields.php diff --git a/includes/admin/class-admin.php b/includes/admin/class-admin.php index ab49e5cb..b4a1a347 100644 --- a/includes/admin/class-admin.php +++ b/includes/admin/class-admin.php @@ -28,6 +28,222 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { add_action( 'admin_init', array( &$this, 'admin_init' ), 0 ); + $prefix = is_network_admin() ? 'network_admin_' : ''; + add_filter( "{$prefix}plugin_action_links_" . um_plugin, array( &$this, 'plugin_links' ) ); + + add_action( 'um_admin_do_action__user_cache', array( &$this, 'user_cache' ) ); + add_action( 'um_admin_do_action__purge_temp', array( &$this, 'purge_temp' ) ); + add_action( 'um_admin_do_action__duplicate_form', array( &$this, 'duplicate_form' ) ); + add_action( 'um_admin_do_action__um_language_downloader', array( &$this, 'um_language_downloader' ) ); + add_action( 'um_admin_do_action__um_hide_locale_notice', array( &$this, 'um_hide_notice' ) ); + add_action( 'um_admin_do_action__um_can_register_notice', array( &$this, 'um_hide_notice' ) ); + add_action( 'um_admin_do_action__um_hide_exif_notice', array( &$this, 'um_hide_notice' ) ); + add_action( 'um_admin_do_action__user_action', array( &$this, 'user_action' ) ); + } + + + + /** + * Clear all users cache + * + * @param $action + */ + function user_cache( $action ) { + global $wpdb; + if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) { + die(); + } + + $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'um_cache_userdata_%'" ); + + $url = add_query_arg( array( 'page' => 'ultimatemember', 'update' => 'cleared_cache' ), admin_url( 'admin.php' ) ); + exit( wp_redirect( $url ) ); + } + + + /** + * Purge temp uploads dir + * @param $action + */ + function purge_temp( $action ) { + if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) { + die(); + } + + UM()->files()->remove_dir( UM()->files()->upload_temp ); + + $url = add_query_arg( array( 'page' => 'ultimatemember', 'update' => 'purged_temp' ), admin_url( 'admin.php' ) ); + exit( wp_redirect( $url ) ); + } + + + /** + * Duplicate form + * + * @param $action + */ + function duplicate_form( $action ) { + if ( ! is_admin() || ! current_user_can('manage_options') ) die(); + if ( ! isset( $_REQUEST['post_id'] ) || ! is_numeric( $_REQUEST['post_id'] ) ) die(); + + $post_id = $_REQUEST['post_id']; + + $n = array( + 'post_type' => 'um_form', + 'post_title' => sprintf( __( 'Duplicate of %s', 'ultimate-member' ), get_the_title( $post_id ) ), + 'post_status' => 'publish', + 'post_author' => get_current_user_id(), + ); + + $n_id = wp_insert_post( $n ); + + $n_fields = get_post_custom( $post_id ); + foreach ( $n_fields as $key => $value ) { + + if ( $key == '_um_custom_fields' ) { + $the_value = unserialize( $value[0] ); + } else { + $the_value = $value[0]; + } + + update_post_meta( $n_id, $key, $the_value ); + + } + + delete_post_meta($n_id, '_um_core'); + + $url = admin_url('edit.php?post_type=um_form'); + $url = add_query_arg('update','form_duplicated',$url); + + exit( wp_redirect( $url ) ); + + } + + + /** + * Download a language remotely + * + * @param $action + */ + function um_language_downloader( $action ) { + if ( !is_admin() || !current_user_can('manage_options') ) die(); + + $locale = get_option('WPLANG'); + if ( !$locale ) return; + if ( !isset( UM()->available_languages[$locale] ) ) return; + + $path = UM()->files()->upload_basedir; + $path = str_replace('/uploads/ultimatemember','',$path); + $path = $path . '/languages/plugins/'; + $path = str_replace('//','/',$path); + + $remote = 'https://ultimatemember.com/wp-content/languages/plugins/ultimatemember-' . $locale . '.po'; + $remote2 = 'https://ultimatemember.com/wp-content/languages/plugins/ultimatemember-' . $locale . '.mo'; + + $remote_tmp = download_url( $remote, $timeout = 300 ); + copy( $remote_tmp, $path . 'ultimatemember-' . $locale . '.po' ); + unlink( $remote_tmp ); + + $remote2_tmp = download_url( $remote2, $timeout = 300 ); + copy( $remote2_tmp, $path . 'ultimatemember-' . $locale . '.mo' ); + unlink( $remote2_tmp ); + + $url = remove_query_arg('um_adm_action', UM()->permalinks()->get_current_url() ); + $url = add_query_arg('update','language_updated',$url); + exit( wp_redirect($url) ); + + } + + + /** + * Action to hide notices in admin + * + * @param $action + */ + function um_hide_notice( $action ) { + if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) { + die(); + } + + update_option( $action, 1 ); + exit( wp_redirect( remove_query_arg( 'um_adm_action' ) ) ); + } + + + /** + * Various user actions + * + * @param $action + */ + function user_action( $action ) { + if ( !is_admin() || !current_user_can( 'edit_users' ) ) die(); + if ( !isset( $_REQUEST['sub'] ) ) die(); + if ( !isset($_REQUEST['user_id']) ) die(); + + um_fetch_user( $_REQUEST['user_id'] ); + + $subaction = $_REQUEST['sub']; + + /** + * UM hook + * + * @type action + * @title um_admin_user_action_hook + * @description Action on bulk user subaction + * @input_vars + * [{"var":"$subaction","type":"string","desc":"Bulk Subaction"}] + * @change_log + * ["Since: 2.0"] + * @usage add_action( 'um_admin_user_action_hook', 'function_name', 10, 1 ); + * @example + * + */ + do_action( "um_admin_user_action_hook", $subaction ); + /** + * UM hook + * + * @type action + * @title um_admin_user_action_{$subaction}_hook + * @description Action on bulk user subaction + * @change_log + * ["Since: 2.0"] + * @usage add_action( 'um_admin_user_action_{$subaction}_hook', 'function_name', 10 ); + * @example + * + */ + do_action( "um_admin_user_action_{$subaction}_hook" ); + + um_reset_user(); + + wp_redirect( add_query_arg( 'update', 'user_updated', admin_url('?page=ultimatemember') ) ); + exit; + + } + + + /** + * Add any custom links to plugin page + * + * @param array $links + * + * @return array + */ + function plugin_links( $links ) { + $more_links[] = '' . __( 'Docs', 'ultimate-member' ) . ''; + $more_links[] = '' . __( 'Settings', 'ultimate-member' ) . ''; + + $links = $more_links + $links; + return $links; } @@ -58,12 +274,6 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { * Init admin action/filters + request handlers */ function admin_init() { - require_once 'core/um-admin-actions-user.php'; - require_once 'core/um-admin-actions-modal.php'; - require_once 'core/um-admin-actions.php'; - - require_once 'core/um-admin-filters-fields.php'; - if ( is_admin() && current_user_can( 'manage_options' ) && ! empty( $_REQUEST['um_adm_action'] ) ) { /** * UM hook diff --git a/includes/admin/core/class-admin-builder.php b/includes/admin/core/class-admin-builder.php index 4f1a971a..7efae58b 100644 --- a/includes/admin/core/class-admin-builder.php +++ b/includes/admin/core/class-admin-builder.php @@ -24,7 +24,262 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { * Admin_Builder constructor. */ function __construct() { + add_action( 'um_admin_field_modal_header', array( &$this, 'add_message_handlers' ) ); + add_action( 'um_admin_field_modal_footer', array( &$this, 'add_conditional_support' ), 10, 4 ); + add_filter( 'um_admin_pre_save_field_to_form', array( &$this, 'um_admin_pre_save_field_to_form' ), 1 ); + add_filter( 'um_admin_pre_save_fields_hook', array( &$this, 'um_admin_pre_save_fields_hook' ), 1 ); + add_filter( 'um_admin_field_update_error_handling', array( &$this, 'um_admin_field_update_error_handling' ), 1, 2 ); + } + + /** + * Apply a filter to handle errors for field updating in backend + * + * @param $errors + * @param $array + * + * @return mixed + */ + function um_admin_field_update_error_handling( $errors, $array ) { + /** + * @var $field_type + */ + extract( $array ); + + $field_attr = UM()->builtin()->get_core_field_attrs( $field_type ); + + if ( isset( $field_attr['validate'] ) ) { + + $validate = $field_attr['validate']; + foreach ( $validate as $post_input => $arr ) { + + $mode = $arr['mode']; + + switch ( $mode ) { + + case 'numeric': + if ( !empty( $array['post'][$post_input] ) && !is_numeric( $array['post'][$post_input] ) ){ + $errors[$post_input] = $validate[$post_input]['error']; + } + break; + + case 'unique': + if ( !isset( $array['post']['edit_mode'] ) ) { + if ( UM()->builtin()->unique_field_err( $array['post'][$post_input] ) ) { + $errors[$post_input] = UM()->builtin()->unique_field_err( $array['post'][$post_input] ); + } + } + break; + + case 'required': + if ( $array['post'][$post_input] == '' ) + $errors[$post_input] = $validate[$post_input]['error']; + break; + + case 'range-start': + if ( UM()->builtin()->date_range_start_err( $array['post'][$post_input] ) && $array['post']['_range'] == 'date_range' ) + $errors[$post_input] = UM()->builtin()->date_range_start_err( $array['post'][$post_input] ); + break; + + case 'range-end': + if ( UM()->builtin()->date_range_end_err( $array['post'][$post_input], $array['post']['_range_start'] ) && $array['post']['_range'] == 'date_range' ) + $errors[$post_input] = UM()->builtin()->date_range_end_err( $array['post'][$post_input], $array['post']['_range_start'] ); + break; + + } + + } + + } + + return $errors; + + } + + + /** + * Some fields may require extra fields before saving + * + * @param $array + * + * @return mixed + */ + function um_admin_pre_save_fields_hook( $array ) { + /** + * @var $form_id + * @var $field_type + */ + extract( $array ); + + /** + * UM hook + * + * @type filter + * @title um_fields_without_metakey + * @description Field Types without meta key + * @input_vars + * [{"var":"$types","type":"array","desc":"Field Types"}] + * @change_log + * ["Since: 2.0"] + * @usage add_filter( 'um_fields_without_metakey', 'function_name', 10, 1 ); + * @example + * + */ + $fields_without_metakey = apply_filters( 'um_fields_without_metakey', array( + 'block', + 'shortcode', + 'spacing', + 'divider', + 'group' + ) ); + + $fields = UM()->query()->get_attr('custom_fields', $form_id); + $count = 1; + if ( isset( $fields ) && !empty( $fields) ) $count = count($fields)+1; + + // set unique meta key + if ( in_array( $field_type, $fields_without_metakey ) && !isset($array['post']['_metakey']) ) { + $array['post']['_metakey'] = "um_{$field_type}_{$form_id}_{$count}"; + } + + // set position + if ( !isset( $array['post']['_position'] ) ) { + $array['post']['_position'] = $count; + } + + return $array; + } + + + /** + * Modify field args just before it is saved into form + * + * @param $array + * + * @return mixed + */ + function um_admin_pre_save_field_to_form( $array ){ + unset( $array['conditions'] ); + if ( isset($array['conditional_field']) && !empty( $array['conditional_action'] ) && !empty( $array['conditional_operator'] ) ) { + $array['conditional_value'] = ! empty( $array['conditional_value'] ) ? $array['conditional_value'] : ''; + $array['conditions'][] = array( $array['conditional_action'], $array['conditional_field'], $array['conditional_operator'], $array['conditional_value'] ); + } + + if ( isset($array['conditional_field1']) && !empty( $array['conditional_action1'] ) && !empty( $array['conditional_operator1'] ) ) { + $array['conditional_value1'] = ! empty( $array['conditional_value1'] ) ? $array['conditional_value1'] : ''; + $array['conditions'][] = array( $array['conditional_action1'], $array['conditional_field1'], $array['conditional_operator1'], $array['conditional_value1'] ); + } + + if ( isset($array['conditional_field2']) && !empty( $array['conditional_action2'] ) && !empty( $array['conditional_operator2'] ) ) { + $array['conditional_value2'] = ! empty( $array['conditional_value2'] ) ? $array['conditional_value2'] : ''; + $array['conditions'][] = array( $array['conditional_action2'], $array['conditional_field2'], $array['conditional_operator2'], $array['conditional_value2'] ); + } + + if ( isset($array['conditional_field3']) && !empty( $array['conditional_action3'] ) && !empty( $array['conditional_operator3'] ) ) { + $array['conditional_value3'] = ! empty( $array['conditional_value3'] ) ? $array['conditional_value3'] : ''; + $array['conditions'][] = array( $array['conditional_action3'], $array['conditional_field3'], $array['conditional_operator3'], $array['conditional_value3'] ); + } + + if ( isset($array['conditional_field4']) && !empty( $array['conditional_action4'] ) && !empty( $array['conditional_operator4'] ) ) { + $array['conditional_value4'] = ! empty( $array['conditional_value4'] ) ? $array['conditional_value4'] : ''; + $array['conditions'][] = array( $array['conditional_action4'], $array['conditional_field4'], $array['conditional_operator4'], $array['conditional_value4'] ); + } + + return $array; + } + + + /** + * Put status handler in modal + */ + function add_message_handlers() { + ?> +
+
+ metabox(); + + if ( isset( $field_args['conditional_support'] ) && $field_args['conditional_support'] == 0 ) { + return; + } ?> + +
+ + in_edit = true; $metabox->edit_array = $edit_array; ?> + tooltip( __( 'Here you can setup conditional logic to show/hide this field based on specific fields value or conditions', 'ultimate-member' ) ); ?> + + tooltip( __( 'Here you can setup conditional logic to show/hide this field based on specific fields value or conditions', 'ultimate-member' ) ); ?> + + +
+ +

+
+ + $arr ) { + + if ( $k == 0 ) $k = ''; ?> + +
+ + field_input( '_conditional_action' . $k, $form_id ); ?> + field_input( '_conditional_field' . $k , $form_id ); ?> + field_input( '_conditional_operator' . $k, $form_id ); ?> + field_input( '_conditional_value' . $k, $form_id ); ?> + + +

+ +

+ + +
+
+ + + +
+ + field_input( '_conditional_action', $form_id ); ?> + field_input( '_conditional_field', $form_id ); ?> + field_input( '_conditional_operator', $form_id ); ?> + field_input( '_conditional_value', $form_id ); ?> + +

+ +
+
+ + + +
+ +
+ + admin()->is_plugin_post_type() ) { + unset( $actions['inline hide-if-no-js'] ); + return $actions; + } + return $actions; } diff --git a/includes/admin/core/class-admin-metabox.php b/includes/admin/core/class-admin-metabox.php index 39cd1535..4a76b930 100644 --- a/includes/admin/core/class-admin-metabox.php +++ b/includes/admin/core/class-admin-metabox.php @@ -40,6 +40,83 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) { //roles metaboxes add_action( 'um_roles_add_meta_boxes', array( &$this, 'add_metabox_role' ) ); + + add_filter( 'um_builtin_validation_types_continue_loop', array( &$this, 'validation_types_continue_loop' ), 1, 4 ); + add_filter( 'um_restrict_content_hide_metabox', array( &$this, 'hide_metabox_restrict_content_shop' ), 10, 1 ); + add_filter( 'um_admin_access_settings_fields', array( &$this, 'wpml_post_options' ), 10, 2 ); + } + + + /** + * Add option for WPML + * + * @param array $fields + * @param array $data + * + * @return array + */ + function wpml_post_options( $fields, $data ) { + global $post; + + if ( ! function_exists( 'icl_get_current_language' ) ) { + return $fields; + } + + if ( empty( $post->post_type ) || $post->post_type != 'page' ) { + return $fields; + } + + $fields[] = array( + 'id' => '_um_wpml_user', + 'type' => 'checkbox', + 'label' => __( 'This is a translation of UM profile page?', 'ultimate-member' ), + 'value' => ! empty( $data['_um_wpml_user'] ) ? $data['_um_wpml_user'] : 0 + ); + + $fields[] = array( + 'id' => '_um_wpml_account', + 'type' => 'checkbox', + 'label' => __( 'This is a translation of UM account page?', 'ultimate-member' ), + 'value' => ! empty( $data['_um_wpml_account'] ) ? $data['_um_wpml_account'] : 0 + ); + + return $fields; + } + + + /** + * @param $hide + * + * @return bool + */ + function hide_metabox_restrict_content_shop( $hide ) { + if ( function_exists( 'wc_get_page_id' ) && ! empty( $_GET['post'] ) && + $_GET['post'] == wc_get_page_id( 'shop' ) ) { + return true; + } + + return $hide; + } + + + /** + * Filter validation types on loop + * + * @param $break + * @param $key + * @param $form_id + * @param $field_array + * + * @return bool + */ + function validation_types_continue_loop( $break, $key, $form_id, $field_array ) { + + // show unique username validation only for user_login field + if ( isset( $field_array['metakey'] ) && $field_array['metakey'] == 'user_login' && $key !== 'unique_username' ) { + return false; + } + + return $break; } diff --git a/includes/admin/core/class-admin-users.php b/includes/admin/core/class-admin-users.php index 5353ea18..e7c2ff9e 100644 --- a/includes/admin/core/class-admin-users.php +++ b/includes/admin/core/class-admin-users.php @@ -31,7 +31,71 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) { add_filter( 'views_users', array( &$this, 'add_status_links' ) ); - add_action( 'admin_init', array( &$this, 'um_bulk_users_edit' ), 9 ); + add_action( 'admin_init', array( &$this, 'um_bulk_users_edit' ), 9 ); + + add_action( 'um_admin_user_action_hook', array( &$this, 'user_action_hook' ), 10, 1 ); + } + + + /** + * Does an action to user asap + * + * @param string $action + */ + function user_action_hook( $action ) { + switch ( $action ) { + + default: + /** + * UM hook + * + * @type action + * @title um_admin_custom_hook_{$action} + * @description Integration hook on user action + * @input_vars + * [{"var":"$user_id","type":"int","desc":"User ID"}] + * @change_log + * ["Since: 2.0"] + * @usage add_action( 'um_admin_custom_hook_{$action}', 'function_name', 10, 1 ); + * @example + * + */ + do_action( "um_admin_custom_hook_{$action}", UM()->user()->id ); + break; + + case 'um_put_as_pending': + UM()->user()->pending(); + break; + + case 'um_approve_membership': + case 'um_reenable': + UM()->user()->approve(); + break; + + case 'um_reject_membership': + UM()->user()->reject(); + break; + + case 'um_resend_activation': + UM()->user()->email_pending(); + break; + + case 'um_deactivate': + UM()->user()->deactivate(); + break; + + case 'um_delete': + if ( is_admin() ) { + wp_die( 'This action is not allowed in backend.', 'ultimate-member' ); + } + UM()->user()->delete(); + break; + } } diff --git a/includes/admin/core/um-admin-actions-modal.php b/includes/admin/core/um-admin-actions-modal.php deleted file mode 100644 index bdbe90d6..00000000 --- a/includes/admin/core/um-admin-actions-modal.php +++ /dev/null @@ -1,95 +0,0 @@ - -
-
- metabox(); - - if ( isset( $field_args['conditional_support'] ) && $field_args['conditional_support'] == 0 ) { - return; - } ?> - -
- - in_edit = true; $metabox->edit_array = $edit_array; ?> - tooltip( __( 'Here you can setup conditional logic to show/hide this field based on specific fields value or conditions', 'ultimate-member' ) ); ?> - - tooltip( __( 'Here you can setup conditional logic to show/hide this field based on specific fields value or conditions', 'ultimate-member' ) ); ?> - - -
- -

-
- - $arr ) { - - if ( $k == 0 ) $k = ''; - ?> - -
- - field_input( '_conditional_action' . $k, $form_id ); ?> - field_input( '_conditional_field' . $k , $form_id ); ?> - field_input( '_conditional_operator' . $k, $form_id ); ?> - field_input( '_conditional_value' . $k, $form_id ); ?> - - -

- -

- - -
-
- - - -
- - field_input( '_conditional_action', $form_id ); ?> - field_input( '_conditional_field', $form_id ); ?> - field_input( '_conditional_operator', $form_id ); ?> - field_input( '_conditional_value', $form_id ); ?> - -

- -
-
- - - -
- -
- - - */ - do_action( "um_admin_custom_hook_{$action}", UM()->user()->id ); - break; - - case 'um_put_as_pending': - UM()->user()->pending(); - break; - - case 'um_approve_membership': - case 'um_reenable': - UM()->user()->approve(); - break; - - case 'um_reject_membership': - UM()->user()->reject(); - break; - - case 'um_resend_activation': - UM()->user()->email_pending(); - break; - - case 'um_deactivate': - UM()->user()->deactivate(); - break; - - case 'um_delete': - if ( is_admin() ) { - wp_die( 'This action is not allowed in backend.', 'ultimate-member' ); - } - UM()->user()->delete(); - break; - } -} -add_action( 'um_admin_user_action_hook', 'um_admin_user_action_hook', 10, 1 ); \ No newline at end of file diff --git a/includes/admin/core/um-admin-actions.php b/includes/admin/core/um-admin-actions.php deleted file mode 100644 index 2b74a6a7..00000000 --- a/includes/admin/core/um-admin-actions.php +++ /dev/null @@ -1,270 +0,0 @@ -post_type ) || $post->post_type != 'page' ) - return $fields; - - $fields[] = array( - 'id' => '_um_wpml_user', - 'type' => 'checkbox', - 'label' => __( 'This is a translation of UM profile page?', 'ultimate-member' ), - 'value' => ! empty( $data['_um_wpml_user'] ) ? $data['_um_wpml_user'] : 0 - ); - - $fields[] = array( - 'id' => '_um_wpml_account', - 'type' => 'checkbox', - 'label' => __( 'This is a translation of UM account page?', 'ultimate-member' ), - 'value' => ! empty( $data['_um_wpml_account'] ) ? $data['_um_wpml_account'] : 0 - ); - - return $fields; -} -add_filter( 'um_admin_access_settings_fields', 'um_admin_wpml_post_options', 10, 2 ); - - -/** - * Clear all users cache - * - * @param $action - */ -function um_admin_do_action__user_cache( $action ) { - global $wpdb; - if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) { - die(); - } - - $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'um_cache_userdata_%'" ); - - $url = add_query_arg( array( 'page' => 'ultimatemember', 'update' => 'cleared_cache' ), admin_url( 'admin.php' ) ); - exit( wp_redirect( $url ) ); -} -add_action( 'um_admin_do_action__user_cache', 'um_admin_do_action__user_cache' ); - - -/** - * Purge temp uploads dir - * @param $action - */ -function um_admin_do_action__purge_temp( $action ){ - if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) { - die(); - } - - UM()->files()->remove_dir( UM()->files()->upload_temp ); - - $url = add_query_arg( array( 'page' => 'ultimatemember', 'update' => 'purged_temp' ), admin_url( 'admin.php' ) ); - exit( wp_redirect( $url ) ); -} -add_action( 'um_admin_do_action__purge_temp', 'um_admin_do_action__purge_temp' ); - - -/** - * Duplicate form - * - * @param $action - */ -function um_admin_do_action__duplicate_form( $action ) { - if ( ! is_admin() || ! current_user_can('manage_options') ) die(); - if ( ! isset( $_REQUEST['post_id'] ) || ! is_numeric( $_REQUEST['post_id'] ) ) die(); - - $post_id = $_REQUEST['post_id']; - - $n = array( - 'post_type' => 'um_form', - 'post_title' => sprintf( __( 'Duplicate of %s', 'ultimate-member' ), get_the_title( $post_id ) ), - 'post_status' => 'publish', - 'post_author' => get_current_user_id(), - ); - - $n_id = wp_insert_post( $n ); - - $n_fields = get_post_custom( $post_id ); - foreach ( $n_fields as $key => $value ) { - - if ( $key == '_um_custom_fields' ) { - $the_value = unserialize( $value[0] ); - } else { - $the_value = $value[0]; - } - - update_post_meta( $n_id, $key, $the_value ); - - } - - delete_post_meta($n_id, '_um_core'); - - $url = admin_url('edit.php?post_type=um_form'); - $url = add_query_arg('update','form_duplicated',$url); - - exit( wp_redirect( $url ) ); - -} -add_action( 'um_admin_do_action__duplicate_form', 'um_admin_do_action__duplicate_form' ); - - -/** - * Download a language remotely - * - * @param $action - */ -function um_admin_do_action__um_language_downloader( $action ) { - if ( !is_admin() || !current_user_can('manage_options') ) die(); - - $locale = get_option('WPLANG'); - if ( !$locale ) return; - if ( !isset( UM()->available_languages[$locale] ) ) return; - - $path = UM()->files()->upload_basedir; - $path = str_replace('/uploads/ultimatemember','',$path); - $path = $path . '/languages/plugins/'; - $path = str_replace('//','/',$path); - - $remote = 'https://ultimatemember.com/wp-content/languages/plugins/ultimatemember-' . $locale . '.po'; - $remote2 = 'https://ultimatemember.com/wp-content/languages/plugins/ultimatemember-' . $locale . '.mo'; - - $remote_tmp = download_url( $remote, $timeout = 300 ); - copy( $remote_tmp, $path . 'ultimatemember-' . $locale . '.po' ); - unlink( $remote_tmp ); - - $remote2_tmp = download_url( $remote2, $timeout = 300 ); - copy( $remote2_tmp, $path . 'ultimatemember-' . $locale . '.mo' ); - unlink( $remote2_tmp ); - - $url = remove_query_arg('um_adm_action', UM()->permalinks()->get_current_url() ); - $url = add_query_arg('update','language_updated',$url); - exit( wp_redirect($url) ); - -} -add_action( 'um_admin_do_action__um_language_downloader', 'um_admin_do_action__um_language_downloader' ); - - -/** - * Action to hide notices in admin - * - * @param $action - */ -function um_admin_do_action__hide_notice( $action ) { - if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) { - die(); - } - - update_option( $action, 1 ); - exit( wp_redirect( remove_query_arg( 'um_adm_action' ) ) ); -} -add_action( 'um_admin_do_action__um_hide_locale_notice', 'um_admin_do_action__hide_notice' ); -add_action( 'um_admin_do_action__um_can_register_notice', 'um_admin_do_action__hide_notice' ); -add_action( 'um_admin_do_action__um_hide_exif_notice', 'um_admin_do_action__hide_notice' ); - - -/** - * Various user actions - * - * @param $action - */ -function um_admin_do_action__user_action( $action ) { - if ( !is_admin() || !current_user_can( 'edit_users' ) ) die(); - if ( !isset( $_REQUEST['sub'] ) ) die(); - if ( !isset($_REQUEST['user_id']) ) die(); - - um_fetch_user( $_REQUEST['user_id'] ); - - $subaction = $_REQUEST['sub']; - - /** - * UM hook - * - * @type action - * @title um_admin_user_action_hook - * @description Action on bulk user subaction - * @input_vars - * [{"var":"$subaction","type":"string","desc":"Bulk Subaction"}] - * @change_log - * ["Since: 2.0"] - * @usage add_action( 'um_admin_user_action_hook', 'function_name', 10, 1 ); - * @example - * - */ - do_action( "um_admin_user_action_hook", $subaction ); - /** - * UM hook - * - * @type action - * @title um_admin_user_action_{$subaction}_hook - * @description Action on bulk user subaction - * @change_log - * ["Since: 2.0"] - * @usage add_action( 'um_admin_user_action_{$subaction}_hook', 'function_name', 10 ); - * @example - * - */ - do_action( "um_admin_user_action_{$subaction}_hook" ); - - um_reset_user(); - - wp_redirect( add_query_arg( 'update', 'user_updated', admin_url('?page=ultimatemember') ) ); - exit; - -} -add_action( 'um_admin_do_action__user_action', 'um_admin_do_action__user_action' ); - - -/** - * Add any custom links to plugin page - * - * @param array $links - * - * @return array - */ -function ultimatemember_plugin_links( $links ) { - $more_links[] = '' . __( 'Docs', 'ultimate-member' ) . ''; - $more_links[] = '' . __( 'Settings', 'ultimate-member' ) . ''; - - $links = $more_links + $links; - return $links; -} -$prefix = is_network_admin() ? 'network_admin_' : ''; -add_filter( "{$prefix}plugin_action_links_" . um_plugin, 'ultimatemember_plugin_links' ); - - -/** - * This will remove the "Edit" bulk action, which is actually quick edit. - * - * @param array $actions - * - * @return array; - */ -function remove_bulk_actions_um_form_inline( $actions ){ - if ( UM()->admin()->is_plugin_post_type() ) { - unset( $actions['inline hide-if-no-js'] ); - return $actions; - } - return $actions; -} -add_filter('post_row_actions', 'remove_bulk_actions_um_form_inline'); \ No newline at end of file diff --git a/includes/admin/core/um-admin-filters-fields.php b/includes/admin/core/um-admin-filters-fields.php deleted file mode 100644 index 5f933b33..00000000 --- a/includes/admin/core/um-admin-filters-fields.php +++ /dev/null @@ -1,200 +0,0 @@ - - */ - $fields_without_metakey = apply_filters( 'um_fields_without_metakey', array( - 'block', - 'shortcode', - 'spacing', - 'divider', - 'group' - ) ); - - $fields = UM()->query()->get_attr('custom_fields', $form_id); - $count = 1; - if ( isset( $fields ) && !empty( $fields) ) $count = count($fields)+1; - - // set unique meta key - if ( in_array( $field_type, $fields_without_metakey ) && !isset($array['post']['_metakey']) ) { - $array['post']['_metakey'] = "um_{$field_type}_{$form_id}_{$count}"; - } - - // set position - if ( !isset( $array['post']['_position'] ) ) { - $array['post']['_position'] = $count; - } - - return $array; -} -add_filter('um_admin_pre_save_fields_hook', 'um_admin_pre_save_fields_hook', 1 ); - - -/** - * Apply a filter to handle errors for field updating in backend - * - * @param $errors - * @param $array - * - * @return mixed - */ -function um_admin_field_update_error_handling( $errors, $array ){ - extract( $array ); - - $field_attr = UM()->builtin()->get_core_field_attrs( $field_type ); - - if ( isset( $field_attr['validate'] ) ) { - - $validate = $field_attr['validate']; - foreach ( $validate as $post_input => $arr ) { - - $mode = $arr['mode']; - - switch ( $mode ) { - - case 'numeric': - if ( !empty( $array['post'][$post_input] ) && !is_numeric( $array['post'][$post_input] ) ){ - $errors[$post_input] = $validate[$post_input]['error']; - } - break; - - case 'unique': - if ( !isset( $array['post']['edit_mode'] ) ) { - if ( UM()->builtin()->unique_field_err( $array['post'][$post_input] ) ) { - $errors[$post_input] = UM()->builtin()->unique_field_err( $array['post'][$post_input] ); - } - } - break; - - case 'required': - if ( $array['post'][$post_input] == '' ) - $errors[$post_input] = $validate[$post_input]['error']; - break; - - case 'range-start': - if ( UM()->builtin()->date_range_start_err( $array['post'][$post_input] ) && $array['post']['_range'] == 'date_range' ) - $errors[$post_input] = UM()->builtin()->date_range_start_err( $array['post'][$post_input] ); - break; - - case 'range-end': - if ( UM()->builtin()->date_range_end_err( $array['post'][$post_input], $array['post']['_range_start'] ) && $array['post']['_range'] == 'date_range' ) - $errors[$post_input] = UM()->builtin()->date_range_end_err( $array['post'][$post_input], $array['post']['_range_start'] ); - break; - - } - - } - - } - - return $errors; - - } -add_filter('um_admin_field_update_error_handling', 'um_admin_field_update_error_handling', 1, 2 ); - - -/** - * Filter validation types on loop - * - * @param $break - * @param $key - * @param $form_id - * @param $field_array - * - * @return bool - */ -function um_builtin_validation_types_continue_loop( $break, $key, $form_id, $field_array ) { - - // show unique username validation only for user_login field - if ( isset( $field_array['metakey'] ) && $field_array['metakey'] == 'user_login' && $key !== 'unique_username' ) { - return false; - } - - return $break; -} -add_filter( 'um_builtin_validation_types_continue_loop', 'um_builtin_validation_types_continue_loop', 1, 4 ); - - -/** - * @param $hide - * - * @return bool - */ -function um_hide_metabox_restrict_content_shop( $hide ) { - if ( function_exists( 'wc_get_page_id' ) && ! empty( $_GET['post'] ) && - $_GET['post'] == wc_get_page_id( 'shop' ) ) { - return true; - } - - return $hide; -} -add_filter( 'um_restrict_content_hide_metabox', 'um_hide_metabox_restrict_content_shop', 10, 1 ); \ No newline at end of file From 27f2021d6b8f53cf043952467b0a57da637ae6ad Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Tue, 3 Apr 2018 15:04:14 +0300 Subject: [PATCH 19/29] - class admin optimization; --- includes/admin/class-admin-functions.php | 61 ++++++++++ includes/admin/class-admin.php | 103 ++++++++++++---- includes/admin/core/class-admin-functions.php | 115 ------------------ includes/class-init.php | 14 --- 4 files changed, 140 insertions(+), 153 deletions(-) create mode 100644 includes/admin/class-admin-functions.php delete mode 100644 includes/admin/core/class-admin-functions.php diff --git a/includes/admin/class-admin-functions.php b/includes/admin/class-admin-functions.php new file mode 100644 index 00000000..ba56c35e --- /dev/null +++ b/includes/admin/class-admin-functions.php @@ -0,0 +1,61 @@ +id; + if ( is_admin() && ( strstr( $screen_id, 'ultimatemember') || strstr( $screen_id, 'um_') || strstr($screen_id, 'user') || strstr($screen_id, 'profile') ) ) + return true; + return false; + } + + + /** + * Check if current page load UM post type + * + * @return bool + */ + function is_plugin_post_type() { + if ( isset( $_REQUEST['post_type'] ) ) { + $post_type = $_REQUEST['post_type']; + if ( in_array( $post_type, array( 'um_form','um_directory' ) ) ) { + return true; + } + } elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'edit' ) { + $post_type = get_post_type(); + if ( in_array( $post_type, array( 'um_form', 'um_directory' ) ) ) { + return true; + } + } + + return false; + } + } +} \ No newline at end of file diff --git a/includes/admin/class-admin.php b/includes/admin/class-admin.php index b4a1a347..9eed2865 100644 --- a/includes/admin/class-admin.php +++ b/includes/admin/class-admin.php @@ -11,7 +11,7 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { * Class Admin * @package um\admin */ - class Admin { + class Admin extends Admin_Functions { /** @@ -24,6 +24,8 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { * Admin constructor. */ function __construct() { + parent::__construct(); + $this->templates_path = um_path . 'includes/admin/templates/'; add_action( 'admin_init', array( &$this, 'admin_init' ), 0 ); @@ -39,6 +41,10 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { add_action( 'um_admin_do_action__um_can_register_notice', array( &$this, 'um_hide_notice' ) ); add_action( 'um_admin_do_action__um_hide_exif_notice', array( &$this, 'um_hide_notice' ) ); add_action( 'um_admin_do_action__user_action', array( &$this, 'user_action' ) ); + + add_action( 'parent_file', array( &$this, 'parent_file' ), 9 ); + add_filter( 'gettext', array( &$this, 'gettext' ), 10, 4 ); + add_filter( 'post_updated_messages', array( &$this, 'post_updated_messages' ) ); } @@ -247,29 +253,6 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { } - /** - * Check if current page load UM post type - * - * - * @return bool - */ - function is_plugin_post_type() { - if ( isset( $_REQUEST['post_type'] ) ) { - $post_type = $_REQUEST['post_type']; - if ( in_array( $post_type, array( 'um_form','um_directory' ) ) ) { - return true; - } - } elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'edit' ) { - $post_type = get_post_type(); - if ( in_array( $post_type, array( 'um_form', 'um_directory' ) ) ) { - return true; - } - } - - return false; - } - - /** * Init admin action/filters + request handlers */ @@ -318,5 +301,77 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { } } + + /** + * Updated post messages + * + * @param array $messages + * + * @return array + */ + function post_updated_messages( $messages ) { + global $post_ID; + + $post_type = get_post_type( $post_ID ); + + if ( $post_type == 'um_form' ) { + $messages['um_form'] = array( + 0 => '', + 1 => __( 'Form updated.', 'ultimate-member' ), + 2 => __( 'Custom field updated.', 'ultimate-member' ), + 3 => __( 'Custom field deleted.', 'ultimate-member' ), + 4 => __( 'Form updated.', 'ultimate-member' ), + 5 => isset( $_GET['revision'] ) ? __( 'Form restored to revision.', 'ultimate-member' ) : false, + 6 => __( 'Form created.', 'ultimate-member' ), + 7 => __( 'Form saved.', 'ultimate-member' ), + 8 => __( 'Form submitted.', 'ultimate-member' ), + 9 => __( 'Form scheduled.', 'ultimate-member' ), + 10 => __( 'Form draft updated.', 'ultimate-member' ), + ); + } + + return $messages; + } + + + /** + * Gettext filters + * + * @param $translation + * @param $text + * @param $domain + * + * @return string + */ + function gettext( $translation, $text, $domain ) { + global $post; + if ( isset( $post->post_type ) && $this->is_plugin_post_type() ) { + $translations = get_translations_for_domain( $domain ); + if ( $text == 'Publish' ) { + return $translations->translate( 'Create' ); + } elseif ( $text == 'Move to Trash' ) { + return $translations->translate( 'Delete' ); + } + } + + return $translation; + } + + + /** + * Fix parent file for correct highlighting + * + * @param $parent_file + * + * @return string + */ + function parent_file( $parent_file ) { + global $current_screen; + $screen_id = $current_screen->id; + if ( strstr( $screen_id, 'um_' ) ) { + $parent_file = 'ultimatemember'; + } + return $parent_file; + } } } \ No newline at end of file diff --git a/includes/admin/core/class-admin-functions.php b/includes/admin/core/class-admin-functions.php deleted file mode 100644 index 6960efa4..00000000 --- a/includes/admin/core/class-admin-functions.php +++ /dev/null @@ -1,115 +0,0 @@ - '', - 1 => __( 'Form updated.', 'ultimate-member' ), - 2 => __( 'Custom field updated.', 'ultimate-member' ), - 3 => __( 'Custom field deleted.', 'ultimate-member' ), - 4 => __( 'Form updated.', 'ultimate-member' ), - 5 => isset( $_GET['revision'] ) ? __( 'Form restored to revision.', 'ultimate-member' ) : false, - 6 => __( 'Form created.', 'ultimate-member' ), - 7 => __( 'Form saved.', 'ultimate-member' ), - 8 => __( 'Form submitted.', 'ultimate-member' ), - 9 => __( 'Form scheduled.', 'ultimate-member' ), - 10 => __( 'Form draft updated.', 'ultimate-member' ), - ); - } - - return $messages; - } - - - /** - * Gettext filters - * - * @param $translation - * @param $text - * @param $domain - * - * @return string - */ - function gettext( $translation, $text, $domain ) { - global $post; - if ( isset( $post->post_type ) && UM()->admin()->is_plugin_post_type() ) { - $translations = get_translations_for_domain( $domain ); - if ( $text == 'Publish' ) { - return $translations->translate( 'Create' ); - } elseif ( $text == 'Move to Trash' ) { - return $translations->translate( 'Delete' ); - } - } - - return $translation; - } - - - /** - * Fix parent file for correct highlighting - * - * @param $parent_file - * - * @return string - */ - function parent_file( $parent_file ) { - global $current_screen; - $screen_id = $current_screen->id; - if ( strstr( $screen_id, 'um_' ) ) { - $parent_file = 'ultimatemember'; - } - return $parent_file; - } - - - - /** - * Boolean check if we're viewing UM backend - * - * @todo global for all admin classes - * @return bool - */ - function is_UM_admin_screen() { - global $current_screen; - $screen_id = $current_screen->id; - if ( is_admin() && ( strstr( $screen_id, 'ultimatemember') || strstr( $screen_id, 'um_') || strstr($screen_id, 'user') || strstr($screen_id, 'profile') ) ) - return true; - return false; - } - } -} \ No newline at end of file diff --git a/includes/class-init.php b/includes/class-init.php index a8517490..1781f5a9 100644 --- a/includes/class-init.php +++ b/includes/class-init.php @@ -437,7 +437,6 @@ if ( ! class_exists( 'UM' ) ) { $this->admin_settings(); $this->columns(); $this->admin_enqueue(); - $this->functions(); $this->metabox(); $this->notices(); $this->users(); @@ -612,19 +611,6 @@ if ( ! class_exists( 'UM' ) ) { } - /** - * @since 2.0 - * - * @return um\admin\core\Admin_Functions() - */ - function functions() { - if ( empty( $this->classes['admin_functions'] ) ) { - $this->classes['admin_functions'] = new um\admin\core\Admin_Functions(); - } - return $this->classes['admin_functions']; - } - - /** * @since 2.0 * From 394d6ac870a04816dc4dad2d641df05101c90e60 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Tue, 3 Apr 2018 17:34:18 +0300 Subject: [PATCH 20/29] - fixed profile page for some roles; --- includes/core/class-rest-api.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/includes/core/class-rest-api.php b/includes/core/class-rest-api.php index a8b7dae3..bd42c056 100644 --- a/includes/core/class-rest-api.php +++ b/includes/core/class-rest-api.php @@ -1021,9 +1021,11 @@ if ( ! class_exists( 'um\core\REST_API' ) ) { - Date: Wed, 4 Apr 2018 15:12:30 +0300 Subject: [PATCH 21/29] - fixed content restriction; --- includes/admin/class-admin-functions.php | 45 ++++++++++++++++-- includes/admin/core/class-admin-notices.php | 2 +- includes/admin/core/class-admin-settings.php | 50 -------------------- includes/admin/core/class-admin-upgrade.php | 20 +------- includes/class-functions.php | 27 +++++++++++ includes/core/class-access.php | 9 +++- 6 files changed, 79 insertions(+), 74 deletions(-) diff --git a/includes/admin/class-admin-functions.php b/includes/admin/class-admin-functions.php index ba56c35e..b52a3441 100644 --- a/includes/admin/class-admin-functions.php +++ b/includes/admin/class-admin-functions.php @@ -31,8 +31,23 @@ if ( ! class_exists( 'um\admin\Admin_Functions' ) ) { function is_UM_admin_screen() { global $current_screen; $screen_id = $current_screen->id; - if ( is_admin() && ( strstr( $screen_id, 'ultimatemember') || strstr( $screen_id, 'um_') || strstr($screen_id, 'user') || strstr($screen_id, 'profile') ) ) + + if ( strstr( $screen_id, 'ultimatemember') || + strstr( $screen_id, 'um_') || + strstr( $screen_id, 'user' ) || + strstr( $screen_id, 'profile' ) || + $screen_id == 'nav-menus' ) { return true; + } + + if ( $this->is_plugin_post_type() ) { + return true; + } + + if ( $this->is_restricted_entity() ) { + return true; + } + return false; } @@ -43,19 +58,43 @@ if ( ! class_exists( 'um\admin\Admin_Functions' ) ) { * @return bool */ function is_plugin_post_type() { + $cpt = UM()->cpt_list(); + if ( isset( $_REQUEST['post_type'] ) ) { $post_type = $_REQUEST['post_type']; - if ( in_array( $post_type, array( 'um_form','um_directory' ) ) ) { + if ( in_array( $post_type, $cpt ) ) { return true; } } elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'edit' ) { $post_type = get_post_type(); - if ( in_array( $post_type, array( 'um_form', 'um_directory' ) ) ) { + if ( in_array( $post_type, $cpt ) ) { return true; } } return false; } + + + /** + * If page now show content with restricted post/taxonomy + * + * @return bool + */ + function is_restricted_entity() { + $restricted_posts = UM()->options()->get( 'restricted_access_post_metabox' ); + $restricted_taxonomies = UM()->options()->get( 'restricted_access_taxonomy_metabox' ); + + global $typenow, $taxnow; + if ( ! empty( $typenow ) && ! empty( $restricted_posts[ $typenow ] ) ) { + return true; + } + + if ( ! empty( $taxnow ) && ! empty( $restricted_taxonomies[ $taxnow ] ) ) { + return true; + } + + return false; + } } } \ No newline at end of file diff --git a/includes/admin/core/class-admin-notices.php b/includes/admin/core/class-admin-notices.php index 96545122..c6ac545e 100644 --- a/includes/admin/core/class-admin-notices.php +++ b/includes/admin/core/class-admin-notices.php @@ -542,7 +542,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { if ( isset( $_GET['msg'] ) && 'updated' == $_GET['msg'] ) { $this->add_notice( 'upgrade', array( 'class' => 'updated', - 'message' => '

' . __( 'Successfully Upgraded', 'ultimate-member' ) . '

', + 'message' => '

' . sprintf( __( '%s %s Successfully Upgraded', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version ) . '

', ), 4 ); } } diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php index d6a36e93..39d1e13e 100644 --- a/includes/admin/core/class-admin-settings.php +++ b/includes/admin/core/class-admin-settings.php @@ -75,11 +75,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { add_filter( 'um_change_settings_before_save', array( $this, 'remove_empty_values' ), 10, 1 ); - //invalid licenses notice - //add_action( 'admin_notices', array( $this, 'check_wrong_licenses' ) ); - add_action( 'admin_init', array( &$this, 'um_download_install_info' ) ); - } @@ -1666,52 +1662,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { } - /** - * - */ - function check_wrong_licenses() { - $invalid_license = 0; - $arr_inactive_license_keys = array(); - - if ( empty( $this->settings_structure['licenses']['fields'] ) ) - return; - - foreach ( $this->settings_structure['licenses']['fields'] as $field_data ) { - $license = get_option( "{$field_data['id']}_edd_answer" ); - - if ( ( is_object( $license ) && 'valid' == $license->license ) || 'valid' == $license ) - continue; - - if ( ( is_object( $license ) && 'inactive' == $license->license ) || 'inactive' == $license ){ - $arr_inactive_license_keys[ ] = $license->item_name; - } - - $invalid_license++; - - } - - if ( ! empty( $arr_inactive_license_keys ) ) { ?> - -
-

- www.UltimateMember.com.', 'ultimate-member' ), count( $arr_inactive_license_keys ) , ultimatemember_plugin_name, 'https://ultimatemember.com' ) ; ?> -

-
- - - -
-

- Licenses page to correct this issue.', 'ultimate-member' ), $invalid_license, ultimatemember_plugin_name, add_query_arg( array('page'=>'um_options', 'tab' => 'licenses'), admin_url( 'admin.php' ) ) ) ?> -

-
- - necessary_packages = $this->need_run_upgrades(); if ( ! empty( $this->necessary_packages ) ) { - //add_action( 'admin_notices', array( $this, 'need_upgrade' ) ); - $this->init_packages_ajax(); add_action( 'admin_menu', array( $this, 'admin_menu' ), 0 ); add_action( 'wp_ajax_um_run_package', array( $this, 'ajax_run_package' ) ); add_action( 'wp_ajax_um_get_packages', array( $this, 'ajax_get_packages' ) ); - } /*else { - //add_action( 'admin_notices', array( $this, 'updated_successfully' ) ); - }*/ - } - - - function need_upgrade() { - ?> -

%s version %s needs to be updated. Please visit to "Upgrade" page here and run the upgrade process.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version, add_query_arg( array( 'page' => 'um_upgrade' ), admin_url( 'admin.php' ) ) ) ?>

- -

- + * @example + * + */ + $cpt = apply_filters( 'um_cpt_list', array( 'um_form', 'um_directory' ) ); + return $cpt; + } + } } \ No newline at end of file diff --git a/includes/core/class-access.php b/includes/core/class-access.php index f7eb6a9b..6bd09e95 100644 --- a/includes/core/class-access.php +++ b/includes/core/class-access.php @@ -322,8 +322,9 @@ if ( ! class_exists( 'um\core\Access' ) ) { //if current page not in exclude URLs //get redirect URL if not set get login page by default $redirect = UM()->options()->get( 'access_redirect' ); - if ( ! $redirect ) + if ( ! $redirect ) { $redirect = um_get_core_page( 'login' ); + } $this->redirect_handler = $this->set_referer( esc_url( add_query_arg( 'redirect_to', urlencode_deep( $curr ), $redirect ) ), 'global' ); } else { @@ -604,6 +605,8 @@ if ( ! class_exists( 'um\core\Access' ) ) { } elseif ( '1' == $restriction['_um_accessible'] ) { //if post for not logged in users and user is not logged in if ( ! is_user_logged_in() ) { + $this->singular_page = true; + $filtered_posts[] = $post; continue; } else { @@ -700,6 +703,8 @@ if ( ! class_exists( 'um\core\Access' ) ) { if ( empty( $restriction['_um_access_roles'] ) || false === array_search( '1', $restriction['_um_access_roles'] ) ) { if ( $custom_restrict ) { + $this->singular_page = true; + $filtered_posts[] = $post; continue; } @@ -707,6 +712,8 @@ if ( ! class_exists( 'um\core\Access' ) ) { $user_can = $this->user_can( get_current_user_id(), $restriction['_um_access_roles'] ); if ( isset( $user_can ) && $user_can && $custom_restrict ) { + $this->singular_page = true; + $filtered_posts[] = $post; continue; } From ee55c1fa9af14f38805f9ac9705369f36747fd48 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Wed, 4 Apr 2018 16:17:03 +0300 Subject: [PATCH 22/29] - fixed is_admin_screen function; --- includes/admin/class-admin-functions.php | 3 +- includes/admin/core/class-admin-enqueue.php | 35 +++++++-------------- includes/admin/core/class-admin-metabox.php | 16 +--------- includes/class-dependencies.php | 2 +- 4 files changed, 15 insertions(+), 41 deletions(-) diff --git a/includes/admin/class-admin-functions.php b/includes/admin/class-admin-functions.php index b52a3441..f5e4ef1b 100644 --- a/includes/admin/class-admin-functions.php +++ b/includes/admin/class-admin-functions.php @@ -25,10 +25,9 @@ if ( ! class_exists( 'um\admin\Admin_Functions' ) ) { /** * Boolean check if we're viewing UM backend * - * @todo global for all admin classes * @return bool */ - function is_UM_admin_screen() { + function is_um_screen() { global $current_screen; $screen_id = $current_screen->id; diff --git a/includes/admin/core/class-admin-enqueue.php b/includes/admin/core/class-admin-enqueue.php index 4d39cd1d..f88469e7 100644 --- a/includes/admin/core/class-admin-enqueue.php +++ b/includes/admin/core/class-admin-enqueue.php @@ -12,7 +12,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { * @package um\admin\core */ class Admin_Enqueue { + + + /** + * @var string + */ var $js_url; + + + /** + * @var string + */ var $css_url; @@ -355,27 +365,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { } - /** - * Boolean check if we're viewing UM backend - * - * @return bool - */ - function is_UM_admin() { - global $current_screen; - - $screen_id = $current_screen->id; - if ( strstr( $screen_id, 'ultimatemember' ) || strstr( $screen_id, 'um_' ) || strstr( $screen_id, 'user' ) || strstr( $screen_id, 'profile' ) || $screen_id == 'nav-menus' ) return true; - - global $post; - if ( isset( $post->post_type ) ) return true; - - global $tax; - if ( isset( $tax->name ) ) return true; - - return false; - } - - /** * Adds class to our admin pages * @@ -384,7 +373,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { * @return string */ function admin_body_class( $classes ) { - if ( $this->is_UM_admin() ) { + if ( UM()->admin()->is_um_screen() ) { return "$classes um-admin"; } return $classes; @@ -395,7 +384,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { * Enqueue scripts and styles */ function admin_enqueue_scripts() { - if ( $this->is_UM_admin() ) { + if ( UM()->admin()->is_um_screen() ) { /*if ( get_post_type() != 'shop_order' ) { UM()->enqueue()->wp_enqueue_scripts(); diff --git a/includes/admin/core/class-admin-metabox.php b/includes/admin/core/class-admin-metabox.php index 4a76b930..2e7abdf9 100644 --- a/includes/admin/core/class-admin-metabox.php +++ b/includes/admin/core/class-admin-metabox.php @@ -120,20 +120,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) { } - /** - * Boolean check if we're viewing UM backend - * - * @return bool - */ - function is_UM_admin() { - global $current_screen; - $screen_id = $current_screen->id; - if ( is_admin() && ( strstr( $screen_id, 'ultimatemember') || strstr( $screen_id, 'um_') || strstr($screen_id, 'user') || strstr($screen_id, 'profile') ) ) - return true; - return false; - } - - /** * Gets the role meta * @@ -1149,7 +1135,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) { function load_modal_content() { $screen = get_current_screen(); - if ( $this->is_UM_admin() ) { + if ( UM()->admin()->is_um_screen() ) { foreach ( glob( um_path . 'includes/admin/templates/modal/*.php' ) as $modal_content ) { include_once $modal_content; } diff --git a/includes/class-dependencies.php b/includes/class-dependencies.php index 2b400c7d..7958e4a3 100644 --- a/includes/class-dependencies.php +++ b/includes/class-dependencies.php @@ -47,7 +47,7 @@ if ( ! class_exists( 'um\Dependencies' ) ) { 'private-content' => '2.0', 'profile-completeness' => '2.0.1', 'recaptcha' => '2.0', - 'reviews' => '2.0.2', + 'reviews' => '2.0.3', 'social-activity' => '2.0.1', 'social-login' => '2.0.1', 'terms-conditions' => '2.0', From c6a00afa9a7c0c39958258949c6a088c3e5826a5 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Thu, 5 Apr 2018 14:38:20 +0300 Subject: [PATCH 23/29] - remove cache on upgrade user role; - removed deprecated functions- - text changes; --- includes/admin/core/class-admin-notices.php | 18 +++++++++++++++++- includes/admin/core/class-admin-settings.php | 6 ------ includes/admin/core/class-admin-upgrade.php | 15 +++++++++++---- includes/admin/templates/role/role-edit.php | 2 ++ includes/class-config.php | 1 - includes/core/class-user.php | 9 +++++++++ 6 files changed, 39 insertions(+), 12 deletions(-) diff --git a/includes/admin/core/class-admin-notices.php b/includes/admin/core/class-admin-notices.php index c6ac545e..4da9df5e 100644 --- a/includes/admin/core/class-admin-notices.php +++ b/includes/admin/core/class-admin-notices.php @@ -534,9 +534,25 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { function need_upgrade() { if ( ! empty( UM()->admin_upgrade()->necessary_packages ) ) { + + $url = add_query_arg( array( 'page' => 'um_upgrade' ), admin_url( 'admin.php' ) ); + + ob_start(); ?> + +

+ %s version %s needs to be updated for correct working.
It is necessary to update the structure of the database and options that are associated with %s %s.
Please visit "Upgrade" page and run the upgrade process.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version, ultimatemember_plugin_name, ultimatemember_version, $url ); ?> +

+ +

+ +   +

+ + add_notice( 'upgrade', array( 'class' => 'error', - 'message' => '

' . sprintf( __( '%s version %s needs to be updated. Please visit to "Upgrade" page here and run the upgrade process.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version, add_query_arg( array( 'page' => 'um_upgrade' ), admin_url( 'admin.php' ) ) ) . '

', + 'message' => $message, ), 4 ); } else { if ( isset( $_GET['msg'] ) && 'updated' == $_GET['msg'] ) { diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php index 39d1e13e..38798dce 100644 --- a/includes/admin/core/class-admin-settings.php +++ b/includes/admin/core/class-admin-settings.php @@ -1033,12 +1033,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) { 'textarea_rows' => 6 ) ), - array( - 'id' => 'menu_item_workaround', - 'type' => 'checkbox', - 'label' => __( 'WP Menu Item Custom Fields Workaround','ultimate-member' ), - 'tooltip' => __( 'Turn on this option if you don\'t see WP Menu Item Restriction options','ultimate-member' ), - ), array( 'id' => 'um_allow_tracking', 'type' => 'checkbox', diff --git a/includes/admin/core/class-admin-upgrade.php b/includes/admin/core/class-admin-upgrade.php index 0b71560e..eb586d88 100644 --- a/includes/admin/core/class-admin-upgrade.php +++ b/includes/admin/core/class-admin-upgrade.php @@ -140,12 +140,19 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) { * Upgrade Menu Callback Page */ function upgrade_page() { - $um_last_version_upgrade = get_option( 'um_last_version_upgrade' ); ?> + $um_last_version_upgrade = get_option( 'um_last_version_upgrade', __( 'empty', 'ultimate-member' ) ); ?>
-

-

You have installed you need to upgrade your previous

-

Upgrade Log

+

+

+
    +
  • +
  • +
  • +
+

+

+

diff --git a/includes/admin/templates/role/role-edit.php b/includes/admin/templates/role/role-edit.php index bcb0cc25..33edf671 100644 --- a/includes/admin/templates/role/role-edit.php +++ b/includes/admin/templates/role/role-edit.php @@ -114,6 +114,8 @@ if ( ! empty( $_POST['role'] ) ) { update_option( "um_role_{$id}_meta", $role_meta ); + UM()->user()->remove_cache_all_users(); + um_js_redirect( $redirect ); } } diff --git a/includes/class-config.php b/includes/class-config.php index 0650cc52..2e61e1ab 100644 --- a/includes/class-config.php +++ b/includes/class-config.php @@ -529,7 +529,6 @@ if ( ! class_exists( 'um\Config' ) ) { 'cover_min_width' => 1000, 'profile_photo_max_size' => 999999999, 'cover_photo_max_size' => 999999999, - 'menu_item_workaround' => 0, 'custom_roles_increment' => 1, ); diff --git a/includes/core/class-user.php b/includes/core/class-user.php index 1b5adb3c..c58f0410 100644 --- a/includes/core/class-user.php +++ b/includes/core/class-user.php @@ -650,6 +650,15 @@ if ( ! class_exists( 'um\core\User' ) ) { } + /** + * Remove cache for all users + */ + function remove_cache_all_users() { + global $wpdb; + $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'um_cache_userdata_%'" ); + } + + /** * This method lets you set a user. For example, to retrieve a profile or anything related to that user. * From 8ceb512f9ecdd179642fa9737d8e2423b55ef97e Mon Sep 17 00:00:00 2001 From: Denis Baranov Date: Thu, 5 Apr 2018 15:38:33 +0300 Subject: [PATCH 24/29] -fixed upgrade from login styles --- .../admin/core/packages/2.0-beta1/styles.php | 66 +++++++++++++------ 1 file changed, 46 insertions(+), 20 deletions(-) diff --git a/includes/admin/core/packages/2.0-beta1/styles.php b/includes/admin/core/packages/2.0-beta1/styles.php index 8381f0c0..2aeb3202 100644 --- a/includes/admin/core/packages/2.0-beta1/styles.php +++ b/includes/admin/core/packages/2.0-beta1/styles.php @@ -15,28 +15,46 @@ $registration_forms = $forms_query->query( array( 'value' => 'register' ), array( - 'key' => '_um_register_use_globals', - 'value' => true - ) + 'relation' => 'OR', + array( + 'key' => '_um_register_use_globals', + 'compare' => 'NOT EXISTS' + ), + array( + 'key' => '_um_register_use_globals', + 'value' => true, + 'compare' => '!=' + ) + ), ), 'fields' => 'ids' ) ); -$login_forms = $forms_query->query( array( - 'post_type' => 'um_form', - 'meta_query' => array( - 'relation' => 'AND', - array( - 'key' => '_um_mode', - 'value' => 'login' + $forms_query = new WP_Query; + $login_forms = $forms_query->query( array( + 'post_type' => 'um_form', + 'meta_query' => array( + 'relation' => 'AND', + array( + 'key' => '_um_mode', + 'value' => 'login' + ), + array( + 'relation' => 'OR', + array( + 'key' => '_um_login_use_globals', + 'compare' => 'NOT EXISTS' + ), + array( + 'key' => '_um_login_use_globals', + 'value' => true, + 'compare' => '!=' + ) + ), + ), - array( - 'key' => '_um_login_use_globals', - 'value' => true - ) - ), - 'fields' => 'ids' -) ); + 'fields' => 'ids' + ) ); $profile_forms = $forms_query->query( array( 'post_type' => 'um_form', @@ -47,9 +65,17 @@ $profile_forms = $forms_query->query( array( 'value' => 'profile' ), array( - 'key' => '_um_profile_use_globals', - 'value' => true - ) + 'relation' => 'OR', + array( + 'key' => '_um_profile_use_globals', + 'compare' => 'NOT EXISTS' + ), + array( + 'key' => '_um_profile_use_globals', + 'value' => true, + 'compare' => '!=' + ) + ), ), 'fields' => 'ids' ) ); From a97e83c5269f146736cc20dd2a9554f1661ddf89 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Mon, 9 Apr 2018 00:45:43 +0300 Subject: [PATCH 25/29] - fixed delete user account; - fixed upgrade scripts; - fixed tooltip scripts; --- includes/admin/assets/css/um-admin-global.css | 2 +- .../2.0-beta1/content_restriction.php | 11 +++- .../core/packages/2.0-beta1/functions.php | 21 ++++++- .../core/packages/2.0-beta1/mc_lists.php | 9 ++- .../core/packages/2.0-beta1/social_login.php | 9 ++- .../admin/core/packages/2.0-beta1/styles.php | 53 ++++++++-------- .../admin/core/packages/2.0-beta1/um_cpt.php | 18 +++--- includes/core/class-roles-capabilities.php | 18 ++++++ includes/core/um-actions-account.php | 62 +++++++++---------- 9 files changed, 131 insertions(+), 72 deletions(-) diff --git a/includes/admin/assets/css/um-admin-global.css b/includes/admin/assets/css/um-admin-global.css index b8d55275..d11c3289 100644 --- a/includes/admin/assets/css/um-admin-global.css +++ b/includes/admin/assets/css/um-admin-global.css @@ -156,7 +156,7 @@ a.um-delete{ color: #a00; } .ui-tooltip.um_tooltip { padding: 8px; color: #eeeeee !important; - background-color: #333 !important; + background: #333 !important; position: absolute; z-index: 1000000; max-width: 300px; diff --git a/includes/admin/core/packages/2.0-beta1/content_restriction.php b/includes/admin/core/packages/2.0-beta1/content_restriction.php index 9383b61d..0aa3e66d 100644 --- a/includes/admin/core/packages/2.0-beta1/content_restriction.php +++ b/includes/admin/core/packages/2.0-beta1/content_restriction.php @@ -29,12 +29,21 @@ UM()->options()->update( 'restricted_access_taxonomy_metabox', $all_taxonomies ) $roles_array = UM()->roles()->get_roles( false, array( 'administrator' ) ); -$posts = get_posts( array( +/*$posts = get_posts( array( 'post_type' => 'any', 'meta_key' => '_um_custom_access_settings', 'meta_value' => '1', 'fields' => 'ids', 'numberposts' => -1 +) );*/ + +$p_query = new WP_Query; +$posts = $p_query->query( array( + 'post_type' => 'any', + 'meta_key' => '_um_custom_access_settings', + 'meta_value' => '1', + 'posts_per_page' => -1, + 'fields' => 'ids' ) ); if ( ! empty( $posts ) ) { diff --git a/includes/admin/core/packages/2.0-beta1/functions.php b/includes/admin/core/packages/2.0-beta1/functions.php index 9b910b88..824fdfef 100644 --- a/includes/admin/core/packages/2.0-beta1/functions.php +++ b/includes/admin/core/packages/2.0-beta1/functions.php @@ -154,11 +154,19 @@ function um_upgrade_update_forum_per_page20beta1() { $roles_associations = get_option( 'um_roles_associations' ); - $bb_forums = get_posts( array( + /*$bb_forums = get_posts( array( 'post_type' => 'forum', 'paged' => $_POST['page'], 'numberposts' => $posts_per_page, 'fields' => 'ids' + ) );*/ + + $p_query = new WP_Query; + $bb_forums = $p_query->query( array( + 'post_type' => 'forum', + 'paged' => $_POST['page'], + 'posts_per_page' => $posts_per_page, + 'fields' => 'ids' ) ); foreach ( $bb_forums as $forum_id ) { @@ -215,13 +223,20 @@ function um_upgrade_update_products_per_page20beta1() { $roles_associations = get_option( 'um_roles_associations' ); - $wc_products = get_posts( array( + /*$wc_products = get_posts( array( 'post_type' => 'product', 'numberposts' => $posts_per_page, 'paged' => $_POST['page'], 'fields' => 'ids' - ) ); + ) );*/ + $p_query = new WP_Query; + $wc_products = $p_query->query( array( + 'post_type' => 'product', + 'paged' => $_POST['page'], + 'posts_per_page' => $posts_per_page, + 'fields' => 'ids' + ) ); foreach ( $wc_products as $product_id ) { $woo_product_role = get_post_meta( $product_id, '_um_woo_product_role', true ); diff --git a/includes/admin/core/packages/2.0-beta1/mc_lists.php b/includes/admin/core/packages/2.0-beta1/mc_lists.php index 0a046ed4..5366fac5 100644 --- a/includes/admin/core/packages/2.0-beta1/mc_lists.php +++ b/includes/admin/core/packages/2.0-beta1/mc_lists.php @@ -1,10 +1,17 @@ 'um_mailchimp', 'numberposts' => -1, 'fields' => 'ids' +) );*/ + +$p_query = new WP_Query; +$mc_lists = $p_query->query( array( + 'post_type' => 'um_mailchimp', + 'posts_per_page' => -1, + 'fields' => 'ids' ) ); foreach ( $mc_lists as $list_id ) { diff --git a/includes/admin/core/packages/2.0-beta1/social_login.php b/includes/admin/core/packages/2.0-beta1/social_login.php index 2f706ec2..77785588 100644 --- a/includes/admin/core/packages/2.0-beta1/social_login.php +++ b/includes/admin/core/packages/2.0-beta1/social_login.php @@ -1,10 +1,17 @@ 'um_social_login', 'numberposts' => -1, 'fields' => 'ids' +) );*/ + +$p_query = new WP_Query; +$um_social_login = $p_query->query( array( + 'post_type' => 'um_social_login', + 'posts_per_page' => -1, + 'fields' => 'ids' ) ); foreach ( $um_social_login as $social_login_id ) { diff --git a/includes/admin/core/packages/2.0-beta1/styles.php b/includes/admin/core/packages/2.0-beta1/styles.php index 2aeb3202..6d976503 100644 --- a/includes/admin/core/packages/2.0-beta1/styles.php +++ b/includes/admin/core/packages/2.0-beta1/styles.php @@ -5,7 +5,6 @@ $old_options = get_option( 'um_options' ); add_option( 'um_options_backup20', $old_options ); $forms_query = new WP_Query; - $registration_forms = $forms_query->query( array( 'post_type' => 'um_form', 'meta_query' => array( @@ -27,35 +26,38 @@ $registration_forms = $forms_query->query( array( ) ), ), + 'posts_per_page' => -1, 'fields' => 'ids' ) ); - $forms_query = new WP_Query; - $login_forms = $forms_query->query( array( - 'post_type' => 'um_form', - 'meta_query' => array( - 'relation' => 'AND', - array( - 'key' => '_um_mode', - 'value' => 'login' - ), - array( - 'relation' => 'OR', - array( - 'key' => '_um_login_use_globals', - 'compare' => 'NOT EXISTS' - ), - array( - 'key' => '_um_login_use_globals', - 'value' => true, - 'compare' => '!=' - ) - ), - +$forms_query = new WP_Query; +$login_forms = $forms_query->query( array( + 'post_type' => 'um_form', + 'meta_query' => array( + 'relation' => 'AND', + array( + 'key' => '_um_mode', + 'value' => 'login' + ), + array( + 'relation' => 'OR', + array( + 'key' => '_um_login_use_globals', + 'compare' => 'NOT EXISTS' + ), + array( + 'key' => '_um_login_use_globals', + 'value' => true, + 'compare' => '!=' + ) ), - 'fields' => 'ids' - ) ); + ), + 'posts_per_page' => -1, + 'fields' => 'ids' +) ); + +$forms_query = new WP_Query; $profile_forms = $forms_query->query( array( 'post_type' => 'um_form', 'meta_query' => array( @@ -77,6 +79,7 @@ $profile_forms = $forms_query->query( array( ) ), ), + 'posts_per_page' => -1, 'fields' => 'ids' ) ); diff --git a/includes/admin/core/packages/2.0-beta1/um_cpt.php b/includes/admin/core/packages/2.0-beta1/um_cpt.php index fa7e9e1d..8ff13119 100644 --- a/includes/admin/core/packages/2.0-beta1/um_cpt.php +++ b/includes/admin/core/packages/2.0-beta1/um_cpt.php @@ -5,10 +5,11 @@ $roles_associations = get_option( 'um_roles_associations' ); //"use_global" meta change to "_use_custom_settings" //also update for forms metadata where "member" or "admin" -$forms = get_posts( array( - 'post_type' => 'um_form', - 'numberposts' => -1, - 'fields' => 'ids' +$forms_query = new WP_Query; +$forms = $forms_query->query( array( + 'post_type' => 'um_form', + 'posts_per_page' => -1, + 'fields' => 'ids' ) ); foreach ( $forms as $form_id ) { @@ -30,10 +31,11 @@ foreach ( $forms as $form_id ) { //for metadata for all UM Member Directories //also update for forms metadata where "member" or "admin" -$member_directories = get_posts( array( - 'post_type' => 'um_directory', - 'numberposts' => -1, - 'fields' => 'ids' +$forms_query = new WP_Query; +$member_directories = $forms_query->query( array( + 'post_type' => 'um_directory', + 'posts_per_page' => -1, + 'fields' => 'ids' ) ); foreach ( $member_directories as $directory_id ) { diff --git a/includes/core/class-roles-capabilities.php b/includes/core/class-roles-capabilities.php index e25743a8..8f65270d 100644 --- a/includes/core/class-roles-capabilities.php +++ b/includes/core/class-roles-capabilities.php @@ -280,6 +280,24 @@ if ( ! class_exists( 'um\core\Roles_Capabilities' ) ) { } + /** + * Remove user role + * + * @param $user_id + * @param $role + */ + function set_role_wp( $user_id, $role ) { + // Validate user id + $user = get_userdata( $user_id ); + + // User exists + if ( ! empty( $user ) ) { + // Remove role + $user->add_role( $role ); + } + } + + /** * Set roles to user (remove all previous roles) * make user only with $roles roles diff --git a/includes/core/um-actions-account.php b/includes/core/um-actions-account.php index af9c93b4..b936891b 100644 --- a/includes/core/um-actions-account.php +++ b/includes/core/um-actions-account.php @@ -162,39 +162,37 @@ function um_submit_account_details( $args ) { if ( 'delete' == $current_tab && isset( $_POST['single_user_password'] ) && wp_check_password( $_POST['single_user_password'], $user->data->user_pass, $user->data->ID ) ) { if ( current_user_can( 'delete_users' ) || um_user( 'can_delete_profile' ) ) { - if ( ! um_user( 'super_admin' ) ) { - UM()->user()->delete(); + UM()->user()->delete(); - if ( um_user( 'after_delete' ) && um_user( 'after_delete' ) == 'redirect_home' ) { - um_redirect_home(); - } elseif ( um_user( 'delete_redirect_url' ) ) { - /** - * UM hook - * - * @type filter - * @title um_delete_account_redirect_url - * @description Change redirect URL after delete account - * @input_vars - * [{"var":"$url","type":"string","desc":"Redirect URL"}, - * {"var":"$id","type":"int","desc":"User ID"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * - */ - $redirect_url = apply_filters( 'um_delete_account_redirect_url', um_user( 'delete_redirect_url' ), um_user( 'ID' ) ); - exit( wp_redirect( $redirect_url ) ); - } else { - um_redirect_home(); - } + if ( um_user( 'after_delete' ) && um_user( 'after_delete' ) == 'redirect_home' ) { + um_redirect_home(); + } elseif ( um_user( 'delete_redirect_url' ) ) { + /** + * UM hook + * + * @type filter + * @title um_delete_account_redirect_url + * @description Change redirect URL after delete account + * @input_vars + * [{"var":"$url","type":"string","desc":"Redirect URL"}, + * {"var":"$id","type":"int","desc":"User ID"}] + * @change_log + * ["Since: 2.0"] + * @usage + * + * @example + * + */ + $redirect_url = apply_filters( 'um_delete_account_redirect_url', um_user( 'delete_redirect_url' ), um_user( 'ID' ) ); + exit( wp_redirect( $redirect_url ) ); + } else { + um_redirect_home(); } } } From 19c8a0232305d3a029a634e4010280f7ddadd38c Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Mon, 9 Apr 2018 09:08:44 +0300 Subject: [PATCH 26/29] - extension's dependencies; --- includes/class-dependencies.php | 2 +- ultimate-member.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/class-dependencies.php b/includes/class-dependencies.php index 7958e4a3..d25f1f9a 100644 --- a/includes/class-dependencies.php +++ b/includes/class-dependencies.php @@ -54,7 +54,7 @@ if ( ! class_exists( 'um\Dependencies' ) ) { 'user-location' => '2.0', 'user-tags' => '2.0', 'verified-users' => '2.0.1', - 'woocommerce' => '2.0', + 'woocommerce' => '2.0.1', 'restrict-content' => '2.0', 'beaver-builder' => '2.0', ); diff --git a/ultimate-member.php b/ultimate-member.php index 552e3409..b6b6dcb0 100644 --- a/ultimate-member.php +++ b/ultimate-member.php @@ -3,7 +3,7 @@ Plugin Name: Ultimate Member Plugin URI: http://ultimatemember.com/ Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress -Version: 2.0.3 +Version: 2.0.4 Author: Ultimate Member Author URI: http://ultimatemember.com/ Text Domain: ultimate-member From 054d0be9ba492ab7a8691cfda7ab29eddef9c5bf Mon Sep 17 00:00:00 2001 From: Champ Camba Date: Mon, 9 Apr 2018 17:05:28 +0800 Subject: [PATCH 27/29] Update minified scripts --- assets/js/um-modal.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/um-modal.min.js b/assets/js/um-modal.min.js index 4c5b4eee..7de4a3e2 100644 --- a/assets/js/um-modal.min.js +++ b/assets/js/um-modal.min.js @@ -1 +1 @@ -jQuery(document).ready(function(){jQuery(document).on("click",".um-popup-overlay",function(){remove_Modal()}),jQuery(document).on("click",'.um-modal-overlay, a[data-action="um_remove_modal"]',function(){um_remove_modal()}),jQuery(document).on("click",'a[data-modal^="um_"], span[data-modal^="um_"], .um-modal a',function(e){return e.preventDefault(),!1}),jQuery(document).on("click",".um-modal .um-single-file-preview a.cancel",function(e){e.preventDefault();var a=jQuery(this).parents(".um-modal-body"),t=jQuery(this).parents(".um-modal-body").find(".um-single-fileinfo a").attr("href");return a.find(".um-single-file-preview").hide(),a.find(".ajax-upload-dragdrop").show(),a.find(".um-modal-btn.um-finish-upload").addClass("disabled"),um_modal_responsive(),jQuery.ajax({url:um_scripts.remove_file,type:"post",data:{src:t}}),!1}),jQuery(document).on("click",".um-modal .um-single-image-preview a.cancel",function(e){e.preventDefault();var a=jQuery(this).parents(".um-modal-body"),t=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview img").attr("src");return jQuery("img.cropper-hidden").cropper("destroy"),a.find(".um-single-image-preview img").attr("src",""),a.find(".um-single-image-preview").hide(),a.find(".ajax-upload-dragdrop").show(),a.find(".um-modal-btn.um-finish-upload").addClass("disabled"),um_modal_responsive(),jQuery.ajax({url:um_scripts.remove_file,type:"post",data:{src:t}}),!1}),jQuery(document).on("click",".um-finish-upload.file",function(){var e=jQuery(this).attr("data-key"),a=jQuery(this).parents(".um-modal-body").find(".um-single-file-preview").html();um_remove_modal(),jQuery(".um-single-file-preview[data-key="+e+"]").fadeIn().html(a),jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find(".um-btn-auto-width").html(jQuery(this).attr("data-change")),jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find("input[type=hidden]").val(jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find(".um-single-fileinfo a").attr("href"))}),jQuery(document).on("click",".um-finish-upload.image",function(){var e=jQuery(this),a=jQuery(this).attr("data-key"),t=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview"),r=t.find("img").attr("src"),i=t.attr("data-coord");if(jQuery(this).parents("#um_upload_single").attr("data-user_id"))var u=jQuery(this).parents("#um_upload_single").attr("data-user_id");else var u=0;i?(jQuery(this).html(jQuery(this).attr("data-processing")).addClass("disabled"),jQuery.ajax({url:um_scripts.resize_image,type:"POST",data:{src:r,coord:i,user_id:u,key:a},success:function(t){d=new Date,"profile_photo"==a&&jQuery(".um-profile-photo-img img").attr("src",t+"?"+d.getTime()),"cover_photo"==a&&(jQuery(".um-cover-e").empty().html(''),jQuery(".um").hasClass("um-editing")&&jQuery(".um-cover-overlay").show()),jQuery(".um-single-image-preview[data-key="+a+"]").fadeIn().find("img").attr("src",t+"?"+d.getTime()),um_remove_modal(),jQuery(".um-single-image-preview[data-key="+a+"]").parents(".um-field").find(".um-btn-auto-width").html(e.attr("data-change")),jQuery(".um-single-image-preview[data-key="+a+"]").parents(".um-field").find("input[type=hidden]").val(t)}})):(d=new Date,jQuery(".um-single-image-preview[data-key="+a+"]").fadeIn().find("img").attr("src",r+"?"+d.getTime()),um_remove_modal(),jQuery(".um-single-image-preview[data-key="+a+"]").parents(".um-field").find(".um-btn-auto-width").html(e.attr("data-change")),jQuery(".um-single-image-preview[data-key="+a+"]").parents(".um-field").find("input[type=hidden]").val(r))}),jQuery(document).on("click",'a[data-modal^="um_"], span[data-modal^="um_"]',function(e){var a=jQuery(this).attr("data-modal");if(jQuery(this).data("modal-size"))var t=jQuery(this).data("modal-size");else var t="normal";jQuery(this).data("modal-copy")?(jQuery("#"+a).html(jQuery(this).parents(".um-field").find(".um-modal-hidden-content").html()),jQuery(this).parents(".um-profile-photo").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-profile-photo").attr("data-user_id")),jQuery(this).parents(".um-cover").attr("data-ratio")&&jQuery("#"+a).attr("data-ratio",jQuery(this).parents(".um-cover").attr("data-ratio")),jQuery(this).parents(".um-cover").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-cover").attr("data-user_id")),um_new_modal(a,t)):um_new_modal(a,t)})}); \ No newline at end of file +jQuery(document).ready(function(){jQuery(document).on("click",".um-popup-overlay",function(){remove_Modal()}),jQuery(document).on("click",'.um-modal-overlay, a[data-action="um_remove_modal"]',function(){um_remove_modal()}),jQuery(document).on("click",'a[data-modal^="um_"], span[data-modal^="um_"], .um-modal a',function(e){return e.preventDefault(),!1}),jQuery(document).on("click",".um-modal .um-single-file-preview a.cancel",function(e){e.preventDefault();var a=jQuery(this).parents(".um-modal-body"),t=jQuery(this).parents(".um-modal-body").find(".um-single-fileinfo a").attr("href");return a.find(".um-single-file-preview").hide(),a.find(".ajax-upload-dragdrop").show(),a.find(".um-modal-btn.um-finish-upload").addClass("disabled"),um_modal_responsive(),jQuery.ajax({url:um_scripts.remove_file,type:"post",data:{src:t}}),!1}),jQuery(document).on("click",".um-modal .um-single-image-preview a.cancel",function(e){e.preventDefault();var a=jQuery(this).parents(".um-modal-body"),t=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview img").attr("src");return jQuery("img.cropper-hidden").cropper("destroy"),a.find(".um-single-image-preview img").attr("src",""),a.find(".um-single-image-preview").hide(),a.find(".ajax-upload-dragdrop").show(),a.find(".um-modal-btn.um-finish-upload").addClass("disabled"),um_modal_responsive(),jQuery.ajax({url:um_scripts.remove_file,type:"post",data:{src:t}}),!1}),jQuery(document).on("click",".um-finish-upload.file:not(.disabled)",function(){var e=jQuery(this).attr("data-key"),a=jQuery(this).parents(".um-modal-body").find(".um-single-file-preview").html();um_remove_modal(),jQuery(".um-single-file-preview[data-key="+e+"]").fadeIn().html(a),jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find(".um-btn-auto-width").html(jQuery(this).attr("data-change")),jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find("input[type=hidden]").val(jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find(".um-single-fileinfo a").attr("href"))}),jQuery(document).on("click",".um-finish-upload.image:not(.disabled)",function(){var e=jQuery(this),a=jQuery(this).attr("data-key"),t=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview"),r=t.find("img").attr("src"),i=t.attr("data-coord");if(jQuery(this).parents("#um_upload_single").attr("data-user_id"))var u=jQuery(this).parents("#um_upload_single").attr("data-user_id");else var u=0;i?(jQuery(this).html(jQuery(this).attr("data-processing")).addClass("disabled"),jQuery.ajax({url:um_scripts.resize_image,type:"POST",data:{src:r,coord:i,user_id:u,key:a},success:function(t){d=new Date,"profile_photo"==a&&jQuery(".um-profile-photo-img img").attr("src",t+"?"+d.getTime()),"cover_photo"==a&&(jQuery(".um-cover-e").empty().html(''),jQuery(".um").hasClass("um-editing")&&jQuery(".um-cover-overlay").show()),jQuery(".um-single-image-preview[data-key="+a+"]").fadeIn().find("img").attr("src",t+"?"+d.getTime()),um_remove_modal(),jQuery(".um-single-image-preview[data-key="+a+"]").parents(".um-field").find(".um-btn-auto-width").html(e.attr("data-change")),jQuery(".um-single-image-preview[data-key="+a+"]").parents(".um-field").find("input[type=hidden]").val(t)}})):(d=new Date,jQuery(".um-single-image-preview[data-key="+a+"]").fadeIn().find("img").attr("src",r+"?"+d.getTime()),um_remove_modal(),jQuery(".um-single-image-preview[data-key="+a+"]").parents(".um-field").find(".um-btn-auto-width").html(e.attr("data-change")),jQuery(".um-single-image-preview[data-key="+a+"]").parents(".um-field").find("input[type=hidden]").val(r))}),jQuery(document).on("click",'a[data-modal^="um_"], span[data-modal^="um_"]',function(e){var a=jQuery(this).attr("data-modal");if(jQuery(this).data("modal-size"))var t=jQuery(this).data("modal-size");else var t="normal";jQuery(this).data("modal-copy")?(jQuery("#"+a).html(jQuery(this).parents(".um-field").find(".um-modal-hidden-content").html()),jQuery(this).parents(".um-profile-photo").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-profile-photo").attr("data-user_id")),jQuery(this).parents(".um-cover").attr("data-ratio")&&jQuery("#"+a).attr("data-ratio",jQuery(this).parents(".um-cover").attr("data-ratio")),jQuery(this).parents(".um-cover").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-cover").attr("data-user_id")),um_new_modal(a,t)):um_new_modal(a,t)})}); \ No newline at end of file From ed389d84878d0e0ed9edbf85a8a0959cfcd2a34f Mon Sep 17 00:00:00 2001 From: Champ Camba Date: Mon, 9 Apr 2018 17:17:06 +0800 Subject: [PATCH 28/29] Update english translation file --- languages/ultimate-member-en.po | 5294 ++++++++++++++++--------------- 1 file changed, 2768 insertions(+), 2526 deletions(-) diff --git a/languages/ultimate-member-en.po b/languages/ultimate-member-en.po index 74be6ba4..fa175721 100644 --- a/languages/ultimate-member-en.po +++ b/languages/ultimate-member-en.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Ultimate Member\n" -"POT-Creation-Date: 2018-01-31 22:30+0800\n" -"PO-Revision-Date: 2018-01-31 22:30+0800\n" +"POT-Creation-Date: 2018-04-09 17:15+0800\n" +"PO-Revision-Date: 2018-04-09 17:15+0800\n" "Last-Translator: \n" "Language-Team: \n" "Language: en\n" @@ -21,827 +21,829 @@ msgstr "" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: *.js\n" -#: includes/admin/class-admin.php:38 +#: includes/admin/class-admin.php:99 #, php-format -msgid "" -"You have installed %s with wrong folder name. Correct " -"folder name is \"ultimate-member\"." +msgid "Duplicate of %s" msgstr "" -#: includes/admin/core/class-admin-builder.php:105 -#: includes/admin/core/class-admin-builder.php:175 -#: includes/admin/core/class-admin-dragdrop.php:146 -msgid "Add Row" +#: includes/admin/class-admin.php:248 +msgid "Docs" msgstr "" -#: includes/admin/core/class-admin-builder.php:106 -#: includes/admin/core/class-admin-builder.php:176 -#: includes/admin/core/class-admin-dragdrop.php:147 -msgid "Edit Row" +#: includes/admin/class-admin.php:249 +#: includes/admin/core/class-admin-settings.php:1124 +msgid "Settings" msgstr "" -#: includes/admin/core/class-admin-builder.php:179 -#: includes/admin/core/class-admin-dragdrop.php:149 -#: includes/admin/core/class-admin-dragdrop.php:163 -#: includes/admin/core/class-admin-dragdrop.php:188 -msgid "Delete Row" -msgstr "" - -#: includes/admin/core/class-admin-builder.php:310 -#: includes/admin/core/class-admin-builder.php:377 -#: includes/core/class-fields.php:3006 -msgid "Please login as administrator" -msgstr "" - -#: includes/admin/core/class-admin-builder.php:402 -msgid "Search Icons..." -msgstr "" - -#: includes/admin/core/class-admin-builder.php:425 -msgid "Setup New Field" -msgstr "" - -#: includes/admin/core/class-admin-builder.php:441 -msgid "Predefined Fields" -msgstr "" - -#: includes/admin/core/class-admin-builder.php:452 -#: includes/core/class-builtin.php:1149 -msgid "None" -msgstr "" - -#: includes/admin/core/class-admin-builder.php:456 -msgid "Custom Fields" -msgstr "" - -#: includes/admin/core/class-admin-builder.php:467 -msgid "You did not create any custom fields" -msgstr "" - -#: includes/admin/core/class-admin-builder.php:501 -#: includes/admin/core/class-admin-builder.php:569 -msgid "This field type is not setup correcty." -msgstr "" - -#: includes/admin/core/class-admin-builder.php:661 -#: includes/core/class-form.php:79 includes/core/class-form.php:192 -#: includes/core/um-actions-password.php:180 -msgid "This is not possible for security reasons." -msgstr "" - -#: includes/admin/core/class-admin-columns.php:32 -msgid "Duplicate" -msgstr "" - -#: includes/admin/core/class-admin-columns.php:52 -#: includes/admin/core/class-admin-columns.php:69 -#: includes/admin/templates/role/role-edit.php:120 -msgid "Title" -msgstr "" - -#: includes/admin/core/class-admin-columns.php:53 -#: includes/admin/core/class-admin-columns.php:70 -msgid "ID" -msgstr "" - -#: includes/admin/core/class-admin-columns.php:54 -msgid "Type" -msgstr "" - -#: includes/admin/core/class-admin-columns.php:55 -#: includes/admin/core/class-admin-columns.php:71 -#: includes/admin/core/class-admin-metabox.php:574 -#: includes/admin/core/class-admin-metabox.php:709 -msgid "Shortcode" -msgstr "" - -#: includes/admin/core/class-admin-columns.php:56 -#: includes/admin/core/class-admin-columns.php:72 -msgid "Date" -msgstr "" - -#: includes/admin/core/class-admin-enqueue.php:136 -#: includes/admin/core/class-admin-enqueue.php:175 -#: includes/admin/core/class-admin-forms.php:702 -#: includes/admin/core/class-admin-forms.php:716 -#: includes/admin/core/class-admin-forms.php:811 -#: includes/admin/core/class-admin-forms.php:820 -#: includes/admin/core/class-admin-notices.php:170 -#: includes/core/um-actions-profile.php:226 -msgid "Remove" -msgstr "" - -#: includes/admin/core/class-admin-enqueue.php:137 -#: includes/admin/core/class-admin-enqueue.php:176 -#: includes/admin/core/class-admin-forms.php:883 -msgid "Select" -msgstr "" - -#: includes/admin/core/class-admin-enqueue.php:173 -msgid "Are sure, maybe some settings not saved" -msgstr "" - -#: includes/admin/core/class-admin-forms.php:381 -msgid "Choose Icon" -msgstr "" - -#: includes/admin/core/class-admin-forms.php:387 -msgid "No Icon" -msgstr "" - -#: includes/admin/core/class-admin-forms.php:860 -msgid "Select media" -msgstr "" - -#: includes/admin/core/class-admin-forms.php:884 -msgid "Clear" -msgstr "" - -#: includes/admin/core/class-admin-functions.php:33 -#: includes/admin/core/class-admin-functions.php:36 +#: includes/admin/class-admin.php:320 includes/admin/class-admin.php:323 msgid "Form updated." msgstr "" -#: includes/admin/core/class-admin-functions.php:34 -#: includes/admin/core/class-admin-functions.php:52 +#: includes/admin/class-admin.php:321 msgid "Custom field updated." msgstr "" -#: includes/admin/core/class-admin-functions.php:35 -#: includes/admin/core/class-admin-functions.php:53 +#: includes/admin/class-admin.php:322 msgid "Custom field deleted." msgstr "" -#: includes/admin/core/class-admin-functions.php:37 +#: includes/admin/class-admin.php:324 msgid "Form restored to revision." msgstr "" -#: includes/admin/core/class-admin-functions.php:38 +#: includes/admin/class-admin.php:325 msgid "Form created." msgstr "" -#: includes/admin/core/class-admin-functions.php:39 +#: includes/admin/class-admin.php:326 msgid "Form saved." msgstr "" -#: includes/admin/core/class-admin-functions.php:40 +#: includes/admin/class-admin.php:327 msgid "Form submitted." msgstr "" -#: includes/admin/core/class-admin-functions.php:41 +#: includes/admin/class-admin.php:328 msgid "Form scheduled." msgstr "" -#: includes/admin/core/class-admin-functions.php:42 +#: includes/admin/class-admin.php:329 msgid "Form draft updated." msgstr "" -#: includes/admin/core/class-admin-functions.php:51 -#: includes/admin/core/class-admin-functions.php:54 -msgid "Role updated." +#: includes/admin/core/class-admin-builder.php:227 +msgid "Manage conditional fields support" msgstr "" -#: includes/admin/core/class-admin-functions.php:55 -msgid "Role restored to revision." -msgstr "" - -#: includes/admin/core/class-admin-functions.php:56 -msgid "Role created." -msgstr "" - -#: includes/admin/core/class-admin-functions.php:57 -msgid "Role saved." -msgstr "" - -#: includes/admin/core/class-admin-functions.php:58 -msgid "Role submitted." -msgstr "" - -#: includes/admin/core/class-admin-functions.php:59 -msgid "Role scheduled." -msgstr "" - -#: includes/admin/core/class-admin-functions.php:60 -msgid "Role draft updated." -msgstr "" - -#: includes/admin/core/class-admin-menu.php:42 -#, php-format +#: includes/admin/core/class-admin-builder.php:227 +#: includes/admin/core/class-admin-builder.php:229 msgid "" -"If you like Ultimate Member please consider leaving a %s★★★" -"★★%s review. It will help us to grow the plugin and make it more " -"popular. Thank you." +"Here you can setup conditional logic to show/hide this field based on " +"specific fields value or conditions" msgstr "" -#: includes/admin/core/class-admin-menu.php:42 +#: includes/admin/core/class-admin-builder.php:229 +msgid "Add conditional fields support" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:234 +msgid "Reset all rules" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:397 +#: includes/admin/core/class-admin-builder.php:467 +#: includes/admin/core/class-admin-dragdrop.php:161 +msgid "Add Row" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:398 +#: includes/admin/core/class-admin-builder.php:468 +#: includes/admin/core/class-admin-dragdrop.php:162 +msgid "Edit Row" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:471 +#: includes/admin/core/class-admin-dragdrop.php:164 +#: includes/admin/core/class-admin-dragdrop.php:178 +#: includes/admin/core/class-admin-dragdrop.php:203 +msgid "Delete Row" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:605 +#: includes/admin/core/class-admin-builder.php:758 +#: includes/core/class-fields.php:3941 +msgid "Please login as administrator" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:824 +msgid "Search Icons..." +msgstr "" + +#: includes/admin/core/class-admin-builder.php:845 +msgid "Setup New Field" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:861 +msgid "Predefined Fields" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:872 +#: includes/core/class-builtin.php:1315 +msgid "None" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:876 +msgid "Custom Fields" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:887 +msgid "You did not create any custom fields" +msgstr "" + +#: includes/admin/core/class-admin-builder.php:919 +#: includes/admin/core/class-admin-builder.php:993 +msgid "This field type is not setup correcty." +msgstr "" + +#: includes/admin/core/class-admin-builder.php:1140 +#: includes/core/class-form.php:144 includes/core/class-form.php:316 +#: includes/core/um-actions-password.php:221 +msgid "This is not possible for security reasons." +msgstr "" + +#: includes/admin/core/class-admin-columns.php:64 +msgid "Duplicate" +msgstr "" + +#: includes/admin/core/class-admin-columns.php:93 +#: includes/admin/core/class-admin-columns.php:112 +#: includes/admin/templates/role/role-edit.php:171 +msgid "Title" +msgstr "" + +#: includes/admin/core/class-admin-columns.php:94 +#: includes/admin/core/class-admin-columns.php:113 +msgid "ID" +msgstr "" + +#: includes/admin/core/class-admin-columns.php:95 +msgid "Type" +msgstr "" + +#: includes/admin/core/class-admin-columns.php:96 +#: includes/admin/core/class-admin-columns.php:114 +#: includes/admin/core/class-admin-metabox.php:818 +#: includes/admin/core/class-admin-metabox.php:979 +msgid "Shortcode" +msgstr "" + +#: includes/admin/core/class-admin-columns.php:97 +#: includes/admin/core/class-admin-columns.php:115 +msgid "Date" +msgstr "" + +#: includes/admin/core/class-admin-enqueue.php:127 +#: includes/admin/core/class-admin-enqueue.php:162 +#: includes/admin/core/class-admin-forms.php:809 +#: includes/admin/core/class-admin-forms.php:823 +#: includes/admin/core/class-admin-forms.php:928 +#: includes/admin/core/class-admin-forms.php:937 +#: includes/admin/core/class-admin-notices.php:384 +#: includes/core/um-actions-profile.php:592 +msgid "Remove" +msgstr "" + +#: includes/admin/core/class-admin-enqueue.php:128 +#: includes/admin/core/class-admin-enqueue.php:163 +#: includes/admin/core/class-admin-forms.php:1005 +msgid "Select" +msgstr "" + +#: includes/admin/core/class-admin-enqueue.php:160 +msgid "Are sure, maybe some settings not saved" +msgstr "" + +#: includes/admin/core/class-admin-forms.php:453 +msgid "Choose Icon" +msgstr "" + +#: includes/admin/core/class-admin-forms.php:459 +msgid "No Icon" +msgstr "" + +#: includes/admin/core/class-admin-forms.php:982 +msgid "Select media" +msgstr "" + +#: includes/admin/core/class-admin-forms.php:1006 +msgid "Clear" +msgstr "" + +#: includes/admin/core/class-admin-menu.php:64 msgid "Thanks :)" msgstr "" -#: includes/admin/core/class-admin-menu.php:77 +#: includes/admin/core/class-admin-menu.php:71 +#, php-format +msgid "" +"If you like Ultimate Member please consider leaving a %s review. It will " +"help us to grow the plugin and make it more popular. Thank you." +msgstr "" + +#: includes/admin/core/class-admin-menu.php:112 msgctxt "Admin menu name" msgid "Users" msgstr "" -#: includes/admin/core/class-admin-menu.php:85 +#: includes/admin/core/class-admin-menu.php:120 msgctxt "Admin menu name" msgid "All Users" msgstr "" #. Plugin Name of the plugin/theme #. Author of the plugin/theme -#: includes/admin/core/class-admin-menu.php:97 includes/core/class-user.php:343 +#: includes/admin/core/class-admin-menu.php:132 +#: includes/core/class-user.php:477 msgid "Ultimate Member" msgstr "" -#: includes/admin/core/class-admin-menu.php:100 +#: includes/admin/core/class-admin-menu.php:136 msgid "Dashboard" msgstr "" -#: includes/admin/core/class-admin-menu.php:109 -#: includes/core/class-common.php:27 +#: includes/admin/core/class-admin-menu.php:144 +#: includes/core/class-common.php:56 msgid "Forms" msgstr "" -#: includes/admin/core/class-admin-menu.php:111 -#: includes/admin/core/list-tables/roles-list-table.php:357 -#: includes/admin/core/packages/2.0-beta1.php:921 +#: includes/admin/core/class-admin-menu.php:146 +#: includes/admin/core/list-tables/roles-list-table.php:477 +#: includes/admin/core/packages/2.0-beta1/user_roles.php:12 msgid "User Roles" msgstr "" -#: includes/admin/core/class-admin-menu.php:114 -#: includes/core/class-common.php:56 +#: includes/admin/core/class-admin-menu.php:149 +#: includes/core/class-common.php:85 msgid "Member Directories" msgstr "" -#: includes/admin/core/class-admin-menu.php:140 -#: includes/admin/core/class-admin-settings.php:962 +#: includes/admin/core/class-admin-menu.php:191 +#: includes/admin/core/class-admin-settings.php:1007 msgid "Extensions" msgstr "" -#: includes/admin/core/class-admin-menu.php:154 +#: includes/admin/core/class-admin-menu.php:204 msgid "Users Overview" msgstr "" -#: includes/admin/core/class-admin-menu.php:156 +#: includes/admin/core/class-admin-menu.php:206 msgid "Latest from our blog" msgstr "" -#: includes/admin/core/class-admin-menu.php:158 +#: includes/admin/core/class-admin-menu.php:208 msgid "Purge Temp Files" msgstr "" -#: includes/admin/core/class-admin-menu.php:159 +#: includes/admin/core/class-admin-menu.php:209 msgid "User Cache" msgstr "" -#: includes/admin/core/class-admin-menu.php:162 -#: includes/admin/core/class-admin-menu.php:164 -#: includes/admin/core/class-admin-menu.php:166 +#: includes/admin/core/class-admin-menu.php:212 +#: includes/admin/core/class-admin-menu.php:214 +#: includes/admin/core/class-admin-menu.php:216 msgid "Language" msgstr "" -#: includes/admin/core/class-admin-metabox.php:134 +#: includes/admin/core/class-admin-metabox.php:72 +msgid "This is a translation of UM profile page?" +msgstr "" + +#: includes/admin/core/class-admin-metabox.php:79 +msgid "This is a translation of UM account page?" +msgstr "" + +#: includes/admin/core/class-admin-metabox.php:259 msgid "UM Content Restriction" msgstr "" -#: includes/admin/core/class-admin-metabox.php:219 -#: includes/admin/core/class-admin-metabox.php:338 -#: includes/admin/templates/access/restrict_content.php:25 +#: includes/admin/core/class-admin-metabox.php:415 +#: includes/admin/core/class-admin-metabox.php:565 +#: includes/admin/templates/access/restrict_content.php:47 msgid "Restrict access to this content?" msgstr "" -#: includes/admin/core/class-admin-metabox.php:220 -#: includes/admin/core/class-admin-metabox.php:227 -#: includes/admin/core/class-admin-metabox.php:240 -#: includes/admin/core/class-admin-metabox.php:339 -#: includes/admin/core/class-admin-metabox.php:347 -#: includes/admin/core/class-admin-metabox.php:361 -#: includes/admin/templates/access/restrict_content.php:26 -#: includes/admin/templates/access/restrict_content.php:33 -#: includes/admin/templates/access/restrict_content.php:46 +#: includes/admin/core/class-admin-metabox.php:416 +#: includes/admin/core/class-admin-metabox.php:423 +#: includes/admin/core/class-admin-metabox.php:436 +#: includes/admin/core/class-admin-metabox.php:566 +#: includes/admin/core/class-admin-metabox.php:574 +#: includes/admin/core/class-admin-metabox.php:588 +#: includes/admin/templates/access/restrict_content.php:48 +#: includes/admin/templates/access/restrict_content.php:55 +#: includes/admin/templates/access/restrict_content.php:68 msgid "Activate content restriction for this post" msgstr "" -#: includes/admin/core/class-admin-metabox.php:226 -#: includes/admin/core/class-admin-metabox.php:346 -#: includes/admin/templates/access/restrict_content.php:32 +#: includes/admin/core/class-admin-metabox.php:422 +#: includes/admin/core/class-admin-metabox.php:573 +#: includes/admin/templates/access/restrict_content.php:54 msgid "Who can access this content?" msgstr "" -#: includes/admin/core/class-admin-metabox.php:230 -#: includes/admin/core/class-admin-metabox.php:350 -#: includes/admin/templates/access/restrict_content.php:36 -#: includes/core/class-builtin.php:559 includes/core/class-builtin.php:1004 -#: includes/core/um-navmenu-walker-edit.php:96 +#: includes/admin/core/class-admin-metabox.php:426 +#: includes/admin/core/class-admin-metabox.php:577 +#: includes/admin/templates/access/restrict_content.php:58 +#: includes/core/class-builtin.php:662 includes/core/class-builtin.php:1120 +#: includes/core/um-navmenu.php:141 msgid "Everyone" msgstr "" -#: includes/admin/core/class-admin-metabox.php:231 -#: includes/admin/core/class-admin-metabox.php:351 -#: includes/admin/templates/access/restrict_content.php:37 +#: includes/admin/core/class-admin-metabox.php:427 +#: includes/admin/core/class-admin-metabox.php:578 +#: includes/admin/templates/access/restrict_content.php:59 msgid "Logged out users" msgstr "" -#: includes/admin/core/class-admin-metabox.php:232 -#: includes/admin/core/class-admin-metabox.php:352 -#: includes/admin/templates/access/restrict_content.php:38 +#: includes/admin/core/class-admin-metabox.php:428 +#: includes/admin/core/class-admin-metabox.php:579 +#: includes/admin/templates/access/restrict_content.php:60 msgid "Logged in users" msgstr "" -#: includes/admin/core/class-admin-metabox.php:239 -#: includes/admin/core/class-admin-metabox.php:360 -#: includes/admin/templates/access/restrict_content.php:45 +#: includes/admin/core/class-admin-metabox.php:435 +#: includes/admin/core/class-admin-metabox.php:587 +#: includes/admin/templates/access/restrict_content.php:67 msgid "Select which roles can access this content" msgstr "" -#: includes/admin/core/class-admin-metabox.php:248 -#: includes/admin/core/class-admin-metabox.php:371 -#: includes/admin/templates/access/restrict_content.php:55 +#: includes/admin/core/class-admin-metabox.php:444 +#: includes/admin/core/class-admin-metabox.php:598 +#: includes/admin/templates/access/restrict_content.php:77 msgid "What happens when users without access tries to view the content?" msgstr "" -#: includes/admin/core/class-admin-metabox.php:249 -#: includes/admin/core/class-admin-metabox.php:261 -#: includes/admin/core/class-admin-metabox.php:372 -#: includes/admin/core/class-admin-metabox.php:385 -#: includes/admin/templates/access/restrict_content.php:56 -#: includes/admin/templates/access/restrict_content.php:68 +#: includes/admin/core/class-admin-metabox.php:445 +#: includes/admin/core/class-admin-metabox.php:457 +#: includes/admin/core/class-admin-metabox.php:599 +#: includes/admin/core/class-admin-metabox.php:612 +#: includes/admin/templates/access/restrict_content.php:78 +#: includes/admin/templates/access/restrict_content.php:90 msgid "Action when users without access tries to view the content" msgstr "" -#: includes/admin/core/class-admin-metabox.php:252 -#: includes/admin/core/class-admin-metabox.php:375 -#: includes/admin/templates/access/restrict_content.php:59 +#: includes/admin/core/class-admin-metabox.php:448 +#: includes/admin/core/class-admin-metabox.php:602 +#: includes/admin/templates/access/restrict_content.php:81 msgid "Show access restricted message" msgstr "" -#: includes/admin/core/class-admin-metabox.php:253 -#: includes/admin/core/class-admin-metabox.php:376 -#: includes/admin/templates/access/restrict_content.php:60 +#: includes/admin/core/class-admin-metabox.php:449 +#: includes/admin/core/class-admin-metabox.php:603 +#: includes/admin/templates/access/restrict_content.php:82 msgid "Redirect user" msgstr "" -#: includes/admin/core/class-admin-metabox.php:260 -#: includes/admin/core/class-admin-metabox.php:384 -#: includes/admin/templates/access/restrict_content.php:67 +#: includes/admin/core/class-admin-metabox.php:456 +#: includes/admin/core/class-admin-metabox.php:611 +#: includes/admin/templates/access/restrict_content.php:89 msgid "" "Would you like to use the global default message or apply a custom message " "to this content?" msgstr "" -#: includes/admin/core/class-admin-metabox.php:264 -#: includes/admin/core/class-admin-metabox.php:388 -#: includes/admin/templates/access/restrict_content.php:71 +#: includes/admin/core/class-admin-metabox.php:460 +#: includes/admin/core/class-admin-metabox.php:615 +#: includes/admin/templates/access/restrict_content.php:93 msgid "Global default message (default)" msgstr "" -#: includes/admin/core/class-admin-metabox.php:265 -#: includes/admin/core/class-admin-metabox.php:389 -#: includes/admin/templates/access/restrict_content.php:72 +#: includes/admin/core/class-admin-metabox.php:461 +#: includes/admin/core/class-admin-metabox.php:616 +#: includes/admin/templates/access/restrict_content.php:94 msgid "Custom message" msgstr "" -#: includes/admin/core/class-admin-metabox.php:272 -#: includes/admin/core/class-admin-metabox.php:397 -#: includes/admin/templates/access/restrict_content.php:79 +#: includes/admin/core/class-admin-metabox.php:468 +#: includes/admin/core/class-admin-metabox.php:624 +#: includes/admin/templates/access/restrict_content.php:101 msgid "Custom Restrict Content message" msgstr "" -#: includes/admin/core/class-admin-metabox.php:273 -#: includes/admin/core/class-admin-metabox.php:293 -#: includes/admin/core/class-admin-metabox.php:398 -#: includes/admin/core/class-admin-metabox.php:420 -#: includes/admin/templates/access/restrict_content.php:80 -#: includes/admin/templates/access/restrict_content.php:100 +#: includes/admin/core/class-admin-metabox.php:469 +#: includes/admin/core/class-admin-metabox.php:489 +#: includes/admin/core/class-admin-metabox.php:625 +#: includes/admin/core/class-admin-metabox.php:647 +#: includes/admin/templates/access/restrict_content.php:102 +#: includes/admin/templates/access/restrict_content.php:122 msgid "Changed global restrict message" msgstr "" -#: includes/admin/core/class-admin-metabox.php:280 -#: includes/admin/core/class-admin-metabox.php:406 -#: includes/admin/templates/access/restrict_content.php:87 +#: includes/admin/core/class-admin-metabox.php:476 +#: includes/admin/core/class-admin-metabox.php:633 +#: includes/admin/templates/access/restrict_content.php:109 msgid "Where should users be redirected to?" msgstr "" -#: includes/admin/core/class-admin-metabox.php:281 -#: includes/admin/core/class-admin-metabox.php:407 -#: includes/admin/templates/access/restrict_content.php:88 +#: includes/admin/core/class-admin-metabox.php:477 +#: includes/admin/core/class-admin-metabox.php:634 +#: includes/admin/templates/access/restrict_content.php:110 msgid "Select redirect to page when user hasn't access to content" msgstr "" -#: includes/admin/core/class-admin-metabox.php:285 -#: includes/admin/core/class-admin-metabox.php:411 -#: includes/admin/templates/access/restrict_content.php:92 +#: includes/admin/core/class-admin-metabox.php:481 +#: includes/admin/core/class-admin-metabox.php:638 +#: includes/admin/templates/access/restrict_content.php:114 msgid "Login page" msgstr "" -#: includes/admin/core/class-admin-metabox.php:286 -#: includes/admin/core/class-admin-metabox.php:412 -#: includes/admin/templates/access/restrict_content.php:93 +#: includes/admin/core/class-admin-metabox.php:482 +#: includes/admin/core/class-admin-metabox.php:639 +#: includes/admin/templates/access/restrict_content.php:115 msgid "Custom URL" msgstr "" -#: includes/admin/core/class-admin-metabox.php:292 -#: includes/admin/core/class-admin-metabox.php:419 -#: includes/admin/templates/access/restrict_content.php:99 +#: includes/admin/core/class-admin-metabox.php:488 +#: includes/admin/core/class-admin-metabox.php:646 +#: includes/admin/templates/access/restrict_content.php:121 msgid "Redirect URL" msgstr "" -#: includes/admin/core/class-admin-metabox.php:300 -#: includes/admin/core/class-admin-metabox.php:428 -#: includes/admin/templates/access/restrict_content.php:107 +#: includes/admin/core/class-admin-metabox.php:496 +#: includes/admin/core/class-admin-metabox.php:655 +#: includes/admin/templates/access/restrict_content.php:129 msgid "Hide from queries" msgstr "" -#: includes/admin/core/class-admin-metabox.php:301 -#: includes/admin/core/class-admin-metabox.php:429 -#: includes/admin/templates/access/restrict_content.php:108 +#: includes/admin/core/class-admin-metabox.php:497 +#: includes/admin/core/class-admin-metabox.php:656 +#: includes/admin/templates/access/restrict_content.php:130 msgid "" "Hide this content from archives, RSS feeds etc for users who do not have " "permission to view this content" msgstr "" -#: includes/admin/core/class-admin-metabox.php:569 +#: includes/admin/core/class-admin-metabox.php:814 msgid "General Options" msgstr "" -#: includes/admin/core/class-admin-metabox.php:570 +#: includes/admin/core/class-admin-metabox.php:815 msgid "Profile Card" msgstr "" -#: includes/admin/core/class-admin-metabox.php:571 +#: includes/admin/core/class-admin-metabox.php:816 msgid "Search Options" msgstr "" -#: includes/admin/core/class-admin-metabox.php:572 +#: includes/admin/core/class-admin-metabox.php:817 msgid "Results & Pagination" msgstr "" -#: includes/admin/core/class-admin-metabox.php:576 +#: includes/admin/core/class-admin-metabox.php:819 msgid "Styling: General" msgstr "" -#: includes/admin/core/class-admin-metabox.php:591 +#: includes/admin/core/class-admin-metabox.php:832 msgid "Administrative Permissions" msgstr "" -#: includes/admin/core/class-admin-metabox.php:599 +#: includes/admin/core/class-admin-metabox.php:840 msgid "General Permissions" msgstr "" -#: includes/admin/core/class-admin-metabox.php:607 +#: includes/admin/core/class-admin-metabox.php:848 msgid "Profile Access" msgstr "" -#: includes/admin/core/class-admin-metabox.php:618 +#: includes/admin/core/class-admin-metabox.php:859 msgid "Homepage Options" msgstr "" -#: includes/admin/core/class-admin-metabox.php:629 +#: includes/admin/core/class-admin-metabox.php:870 msgid "Registration Options" msgstr "" -#: includes/admin/core/class-admin-metabox.php:637 +#: includes/admin/core/class-admin-metabox.php:878 msgid "Login Options" msgstr "" -#: includes/admin/core/class-admin-metabox.php:645 +#: includes/admin/core/class-admin-metabox.php:886 msgid "Logout Options" msgstr "" -#: includes/admin/core/class-admin-metabox.php:653 +#: includes/admin/core/class-admin-metabox.php:894 msgid "Delete Options" msgstr "" -#: includes/admin/core/class-admin-metabox.php:661 +#: includes/admin/core/class-admin-metabox.php:902 msgid "Publish" msgstr "" -#: includes/admin/core/class-admin-metabox.php:680 +#: includes/admin/core/class-admin-metabox.php:950 msgid "WP Capabilities" msgstr "" -#: includes/admin/core/class-admin-metabox.php:707 +#: includes/admin/core/class-admin-metabox.php:977 msgid "Select Form Type" msgstr "" -#: includes/admin/core/class-admin-metabox.php:708 +#: includes/admin/core/class-admin-metabox.php:978 msgid "Form Builder" msgstr "" -#: includes/admin/core/class-admin-metabox.php:711 -#: includes/admin/core/class-admin-metabox.php:715 -#: includes/admin/core/class-admin-metabox.php:720 +#: includes/admin/core/class-admin-metabox.php:981 +#: includes/admin/core/class-admin-metabox.php:1002 +#: includes/admin/core/class-admin-metabox.php:1024 msgid "Customize this form" msgstr "" -#: includes/admin/core/class-admin-metabox.php:716 +#: includes/admin/core/class-admin-metabox.php:1003 msgid "User Meta" msgstr "" -#: includes/admin/core/class-admin-metabox.php:721 +#: includes/admin/core/class-admin-metabox.php:1025 msgid "Options" msgstr "" -#: includes/admin/core/class-admin-metabox.php:892 +#: includes/admin/core/class-admin-metabox.php:1205 msgid "" "Select where this field should appear. This option should only be changed on " "the profile form and allows you to show a field in one mode only (edit or " "view) or in both modes." msgstr "" -#: includes/admin/core/class-admin-metabox.php:926 +#: includes/admin/core/class-admin-metabox.php:1239 msgid "If" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1003 +#: includes/admin/core/class-admin-metabox.php:1316 msgid "Value" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1012 +#: includes/admin/core/class-admin-metabox.php:1325 msgid "Does this field require a special validation" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1034 +#: includes/admin/core/class-admin-metabox.php:1370 msgid "" "If you want to apply your custom validation, you can use action hooks to add " "custom validation. Please refer to documentation for further details." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1048 -#: includes/admin/core/class-admin-metabox.php:1076 +#: includes/admin/core/class-admin-metabox.php:1384 +#: includes/admin/core/class-admin-metabox.php:1412 msgid "" "Select an icon to appear in the field. Leave blank if you do not want an " "icon to show in the field." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1103 +#: includes/admin/core/class-admin-metabox.php:1439 msgid "Specify a custom CSS class to be applied to this element" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1113 +#: includes/admin/core/class-admin-metabox.php:1449 msgid "This is the width in pixels, e.g. 4 or 2, etc" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1123 +#: includes/admin/core/class-admin-metabox.php:1459 msgid "Optional text to include with the divider" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1133 +#: includes/admin/core/class-admin-metabox.php:1469 msgid "Set padding for this section" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1143 +#: includes/admin/core/class-admin-metabox.php:1479 msgid "Set margin for this section" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1153 +#: includes/admin/core/class-admin-metabox.php:1489 msgid "Set border for this section" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1163 +#: includes/admin/core/class-admin-metabox.php:1499 msgid "Choose the border style" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1178 +#: includes/admin/core/class-admin-metabox.php:1514 msgid "Rounded corners can be applied by setting a pixels value here. e.g. 5px" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1188 +#: includes/admin/core/class-admin-metabox.php:1524 msgid "Give a color to this border" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1198 +#: includes/admin/core/class-admin-metabox.php:1534 msgid "Enable Row Heading" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1198 +#: includes/admin/core/class-admin-metabox.php:1534 msgid "Whether to enable a heading for this row" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1208 +#: includes/admin/core/class-admin-metabox.php:1544 msgid "Enter the row heading text here" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1218 +#: includes/admin/core/class-admin-metabox.php:1554 msgid "This will be the background of entire section" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1228 +#: includes/admin/core/class-admin-metabox.php:1564 msgid "This will be the background of the heading section" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1238 +#: includes/admin/core/class-admin-metabox.php:1574 msgid "This will be the text color of heading part only" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1248 +#: includes/admin/core/class-admin-metabox.php:1584 msgid "This will be the text color of entire section" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1258 +#: includes/admin/core/class-admin-metabox.php:1594 msgid "" "This will be the color of selected icon. By default It will be the same " "color as heading text color" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1268 +#: includes/admin/core/class-admin-metabox.php:1604 msgid "Select a color for this divider" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1278 +#: includes/admin/core/class-admin-metabox.php:1614 msgid "Entering custom text here will replace the url with a text link" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1288 +#: includes/admin/core/class-admin-metabox.php:1624 msgid "Choose whether to open this link in same window or in a new window" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1301 +#: includes/admin/core/class-admin-metabox.php:1637 msgid "Whether to follow or nofollow this link by search engines" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1314 +#: includes/admin/core/class-admin-metabox.php:1650 msgid "" "Turn on to force users to create a strong password (A combination of one " "lowercase letter, one uppercase letter, and one number). If turned on this " "option is only applied to register forms and not to login forms." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1324 +#: includes/admin/core/class-admin-metabox.php:1660 msgid "" "Turn on to add a confirm password field. If turned on the confirm password " "field will only show on register forms and not on login forms." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1334 +#: includes/admin/core/class-admin-metabox.php:1670 msgid "This is the line-style of divider" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1350 +#: includes/admin/core/class-admin-metabox.php:1686 msgid "Choose the minutes interval between each time in the time picker." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1363 +#: includes/admin/core/class-admin-metabox.php:1699 msgid "The display format of the date which is visible to user." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1374 +#: includes/admin/core/class-admin-metabox.php:1710 msgid "Choose the displayed time-format for this field" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1389 +#: includes/admin/core/class-admin-metabox.php:1725 msgid "" "Whether you wish to show the date in full or only show the years e.g. 25 " "Years" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1408 +#: includes/admin/core/class-admin-metabox.php:1744 msgid "" "Disable specific week days from being available for selection in this date " "picker" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1426 +#: includes/admin/core/class-admin-metabox.php:1762 msgid "" "Number of years available for the date selection. Default to last 50 years" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1436 +#: includes/admin/core/class-admin-metabox.php:1772 msgid "This decides which years should be shown relative to today date" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1450 +#: includes/admin/core/class-admin-metabox.php:1786 msgid "Set the minimum date/day in range in the format YYYY/MM/DD" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1460 +#: includes/admin/core/class-admin-metabox.php:1796 msgid "Set the maximum date/day in range in the format YYYY/MM/DD" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1470 +#: includes/admin/core/class-admin-metabox.php:1806 msgid "" "Whether to show a specific number of years or specify a date range to be " "available for the date picker." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1486 +#: includes/admin/core/class-admin-metabox.php:1822 msgid "" "Enter the shortcode in the following textarea and it will be displayed on " "the fields" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1496 +#: includes/admin/core/class-admin-metabox.php:1832 msgid "Edit the content of this field here" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1509 +#: includes/admin/core/class-admin-metabox.php:1845 msgid "Enable/disable crop feature for this image upload and define ratio" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1531 -#: includes/admin/core/class-admin-metabox.php:1551 +#: includes/admin/core/class-admin-metabox.php:1867 +#: includes/admin/core/class-admin-metabox.php:1887 msgid "" "Select the image types that you want to allow to be uploaded via this field." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1572 +#: includes/admin/core/class-admin-metabox.php:1908 msgid "This is the headline that appears in the upload box for this field" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1582 +#: includes/admin/core/class-admin-metabox.php:1918 msgid "" "If you need to add information or secondary line below the headline of " "upload box, enter it here" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1592 +#: includes/admin/core/class-admin-metabox.php:1928 msgid "The text that appears on the button. e.g. Upload" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1602 +#: includes/admin/core/class-admin-metabox.php:1938 msgid "" "The maximum size for image that can be uploaded through this field. Leave " "empty for unlimited size." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1612 +#: includes/admin/core/class-admin-metabox.php:1948 msgid "The height of textarea in pixels. Default is 100 pixels" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1622 +#: includes/admin/core/class-admin-metabox.php:1958 msgid "This is the required spacing in pixels. e.g. 20px" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1632 +#: includes/admin/core/class-admin-metabox.php:1968 msgid "Enable/disable multiple selections for this field" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1642 +#: includes/admin/core/class-admin-metabox.php:1978 msgid "" "Enter a number here to force a maximum number of selections by user for this " "field" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1652 +#: includes/admin/core/class-admin-metabox.php:1988 msgid "" "Enter a number here to force a minimum number of selections by user for this " "field" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1662 +#: includes/admin/core/class-admin-metabox.php:1998 msgid "This is the max number of entries the user can add via field group." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1672 +#: includes/admin/core/class-admin-metabox.php:2008 msgid "" "If you want to enable a maximum number of words to be input in this " "textarea. Leave empty to disable this setting" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1682 +#: includes/admin/core/class-admin-metabox.php:2018 msgid "Minimum number that can be entered in this field" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1692 +#: includes/admin/core/class-admin-metabox.php:2028 msgid "Maximum number that can be entered in this field" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1702 +#: includes/admin/core/class-admin-metabox.php:2038 msgid "" "If you want to enable a minimum number of characters to be input in this " "field. Leave empty to disable this setting" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1712 +#: includes/admin/core/class-admin-metabox.php:2048 msgid "" "If you want to enable a maximum number of characters to be input in this " "field. Leave empty to disable this setting" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1722 +#: includes/admin/core/class-admin-metabox.php:2058 msgid "Turn on/off HTML tags for this textarea" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1741 +#: includes/admin/core/class-admin-metabox.php:2077 msgid "" "Enter one choice per line. This will represent the available choices or " "selections available for user." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1751 +#: includes/admin/core/class-admin-metabox.php:2087 msgid "" "This is the title of the field for your reference in the backend. The title " "will not appear on the front-end of your website." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1776 +#: includes/admin/core/class-admin-metabox.php:2112 msgid "" "The meta key cannot be changed for duplicated fields or when editing an " "existing field. If you require a different meta key please create a new " "field." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1782 +#: includes/admin/core/class-admin-metabox.php:2118 msgid "" "A meta key is required to store the entered info in this field in the " "database. The meta key should be unique to this field and be written in " @@ -849,7 +851,7 @@ msgid "" "job_title" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1795 +#: includes/admin/core/class-admin-metabox.php:2131 msgid "" "This is the text that appears in a tooltip when a user hovers over the info " "icon. Help text is useful for providing users with more information about " @@ -857,77 +859,85 @@ msgid "" "for field." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1807 +#: includes/admin/core/class-admin-metabox.php:2143 msgid "Text to display by default in this field" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1813 +#: includes/admin/core/class-admin-metabox.php:2149 msgid "" "If you wish the rating field to be prefilled with a number of stars, enter " "it here." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1819 +#: includes/admin/core/class-admin-metabox.php:2155 msgid "" "This option allows you to pre-fill the field with a default value prior to " "the user entering a value in the field. Leave blank to have no default value" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1831 +#: includes/admin/core/class-admin-metabox.php:2167 msgid "" "The field label is the text that appears above the field on your front-end " "form. Leave blank to not show a label above field." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1841 +#: includes/admin/core/class-admin-metabox.php:2177 msgid "" "This is the text that appears within the field e.g please enter your email " "address. Leave blank to not show any placeholder text." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1851 +#: includes/admin/core/class-admin-metabox.php:2187 msgid "" "Field privacy allows you to select who can view this field on the front-end. " "The site admin can view all fields regardless of the option set here." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1874 +#: includes/admin/core/class-admin-metabox.php:2210 msgid "Select the member roles that can view this field on the front-end." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1900 +#: includes/admin/core/class-admin-metabox.php:2236 msgid "" "This option allows you to set whether the field must be filled in before the " "form can be processed." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1914 +#: includes/admin/core/class-admin-metabox.php:2250 msgid "" "This option allows you to set whether or not the user can edit the " "information in this field." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1927 +#: includes/admin/core/class-admin-metabox.php:2263 msgid "Choose whether you want a 5-stars or 10-stars ratings based here." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1940 +#: includes/admin/core/class-admin-metabox.php:2276 msgid "Add a callback source to retrieve choices." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1951 +#: includes/admin/core/class-admin-metabox.php:2287 msgid "Parent Option" msgstr "" -#: includes/admin/core/class-admin-metabox.php:1951 +#: includes/admin/core/class-admin-metabox.php:2287 msgid "Dynamically populates the option based from selected parent option." msgstr "" -#: includes/admin/core/class-admin-metabox.php:1953 +#: includes/admin/core/class-admin-metabox.php:2289 msgid "No Selected" msgstr "" -#: includes/admin/core/class-admin-notices.php:54 +#: includes/admin/core/class-admin-notices.php:249 +#, php-format +msgid "" +"%s %s requires 2.0 extensions. You have pre 2.0 extensions " +"installed on your site.
Please update %s extensions to latest " +"versions. For more info see this doc." +msgstr "" + +#: includes/admin/core/class-admin-notices.php:264 #, php-format msgid "" "Exif is not enabled on your server. Mobile photo uploads will not be rotated " @@ -935,22 +945,22 @@ msgid "" "notice" msgstr "" -#: includes/admin/core/class-admin-notices.php:77 +#: includes/admin/core/class-admin-notices.php:287 msgid "" "One or more of your Ultimate Member pages are not correctly setup. Please " "visit Ultimate Member > Settings to re-assign your missing " "pages." msgstr "" -#: includes/admin/core/class-admin-notices.php:83 +#: includes/admin/core/class-admin-notices.php:296 msgid "Ultimate Member Setup Error: User page can not be a child page." msgstr "" -#: includes/admin/core/class-admin-notices.php:90 +#: includes/admin/core/class-admin-notices.php:306 msgid "Ultimate Member Setup Error: Account page can not be a child page." msgstr "" -#: includes/admin/core/class-admin-notices.php:119 +#: includes/admin/core/class-admin-notices.php:339 #, php-format msgid "" "Your site language is %1$s. Good news! Ultimate Member is " @@ -959,1090 +969,89 @@ msgid "" "language now. Hide this notice" msgstr "" -#: includes/admin/core/class-admin-notices.php:132 +#: includes/admin/core/class-admin-notices.php:346 #, php-format msgid "" -"Ultimate Member has not yet been translated to your langeuage: %1$s%1$s. If you have translated the plugin you need put these files " "ultimatemember-%1$s.po and ultimatemember-%1$s.mo in /" "wp-content/languages/plugins/ for the plugin to be translated in " "your language. Hide this notice" msgstr "" -#: includes/admin/core/class-admin-notices.php:169 +#: includes/admin/core/class-admin-notices.php:383 #, php-format msgid "" "Are you sure you want to delete the selected user(s)? The following users " "will be deleted:

%s

This cannot be undone!" msgstr "" -#: includes/admin/core/class-admin-notices.php:170 +#: includes/admin/core/class-admin-notices.php:384 msgid "Undo" msgstr "" -#: includes/admin/core/class-admin-notices.php:175 +#: includes/admin/core/class-admin-notices.php:389 msgid "Your translation files have been updated successfully." msgstr "" -#: includes/admin/core/class-admin-notices.php:179 +#: includes/admin/core/class-admin-notices.php:393 msgid "Your temp uploads directory is now clean." msgstr "" -#: includes/admin/core/class-admin-notices.php:183 +#: includes/admin/core/class-admin-notices.php:397 msgid "Your user cache is now removed." msgstr "" -#: includes/admin/core/class-admin-notices.php:187 +#: includes/admin/core/class-admin-notices.php:401 msgid "The form has been duplicated successfully." msgstr "" -#: includes/admin/core/class-admin-notices.php:191 +#: includes/admin/core/class-admin-notices.php:405 msgid "User has been updated." msgstr "" -#: includes/admin/core/class-admin-notices.php:195 +#: includes/admin/core/class-admin-notices.php:409 msgid "Users have been updated." msgstr "" -#: includes/admin/core/class-admin-notices.php:199 +#: includes/admin/core/class-admin-notices.php:413 msgid "Changed roles." msgstr "" -#: includes/admin/core/class-admin-notices.php:203 +#: includes/admin/core/class-admin-notices.php:417 msgid "Super administrators cannot be modified." msgstr "" -#: includes/admin/core/class-admin-notices.php:204 +#: includes/admin/core/class-admin-notices.php:418 msgid "Other users have been updated." msgstr "" -#: includes/admin/core/class-admin-settings.php:82 -#: includes/admin/core/class-admin-settings.php:91 +#: includes/admin/core/class-admin-notices.php:455 #, php-format -msgid "%s page" +msgid "" +"You have installed %s with wrong folder name. Correct " +"folder name is \"ultimate-member\"." msgstr "" -#: includes/admin/core/class-admin-settings.php:83 -msgid "Add page ID" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:93 -msgid "Choose a page..." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:106 -msgid "Enable profile menu" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:118 +#: includes/admin/core/class-admin-notices.php:480 #, php-format -msgid "%s Tab" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:124 -#, php-format -msgid "Who can see %s Tab?" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:125 -msgid "Select which users can view this tab." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:134 -msgid "Allowed roles" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:135 -msgid "Select the the user roles allowed to view this tab." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:137 -msgid "Choose user roles..." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:148 -msgid "Profile menu default tab" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:149 -msgid "This will be the default tab on user profile page" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:157 -msgid "Enable menu icons in desktop view" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:191 -msgid "General" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:194 -msgid "Pages" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:198 -#: includes/admin/templates/dashboard/users.php:7 -msgid "Users" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:204 -msgid "Profile Permalink Base" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:205 msgid "" -"Here you can control the permalink structure of the user profile URL " -"globally e.g. " +"Thanks for installing %s! The core plugin is free but we " +"also sell extensions which allow us to continue developing and supporting " +"the plugin full time. If you subscribe to our mailing list (no spam) we will " +"email you a 20%% discount code which you can use to purchase the extensions bundle." msgstr "" -#: includes/admin/core/class-admin-settings.php:207 -#: includes/admin/core/class-admin-settings.php:224 -#: includes/core/class-builtin.php:564 includes/core/class-builtin.php:567 -msgid "Username" +#: includes/admin/core/class-admin-notices.php:484 +msgid "Subscribe to mailing list" msgstr "" -#: includes/admin/core/class-admin-settings.php:208 -msgid "First and Last Name with '.'" +#: includes/admin/core/class-admin-notices.php:486 +msgid "No thanks" msgstr "" -#: includes/admin/core/class-admin-settings.php:209 -msgid "First and Last Name with '-'" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:210 -msgid "First and Last Name with '+'" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:211 -msgid "User ID" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:213 -#: includes/admin/core/class-admin-settings.php:232 -msgid "Select..." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:219 -msgid "User Display Name" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:220 -msgid "" -"This is the name that will be displayed for users on the front end of your " -"site. Default setting uses first/last name as display name if it exists" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:222 -msgid "Default WP Display Name" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:223 -#: includes/core/class-builtin.php:622 includes/core/class-builtin.php:625 -msgid "Nickname" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:225 -msgid "First name & last name" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:226 -msgid "Last name & first name" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:227 -msgid "First name & first initial of last name" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:228 -msgid "First initial of first name & last name" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:229 -msgid "First name only" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:230 -msgid "Custom field(s)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:237 -msgid "Display Name Custom Field(s)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:238 -msgid "" -"Specify the custom field meta key or custom fields seperated by comma that " -"you want to use to display users name on the frontend of your site" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:244 -msgid "Automatically redirect author page to their profile?" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:245 -msgid "" -"If enabled, author pages will automatically redirect to the user's profile " -"page" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:250 -msgid "Enable Members Directory" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:251 -msgid "Control whether to enable or disable member directories on this site" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:256 -msgid "Use Gravatars?" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:257 -msgid "" -"Do you want to use gravatars instead of the default plugin profile photo (If " -"the user did not upload a custom profile photo / avatar)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:262 -msgid "Use Gravatar builtin image" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:263 -msgid "" -"Gravatar has a number of built in options which you can also use as defaults" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:265 -#: includes/admin/templates/form/login_settings.php:14 -#: includes/admin/templates/form/register_customize.php:4 -#: includes/admin/templates/form/register_customize.php:30 -msgid "Default" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:266 -msgid "404 ( File Not Found response )" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:267 -msgid "Mystery Man" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:268 -msgid "Identicon" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:269 -msgid "Monsterid" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:270 -msgid "Wavatar" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:271 -msgid "Retro" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:272 -msgid "Blank ( a transparent PNG image )" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:280 -msgid "Use Default plugin avatar as Gravatar's Default avatar" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:281 -msgid "" -"Do you want to use the plugin default avatar instead of the gravatar default " -"photo (If the user did not upload a custom profile photo / avatar)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:287 -msgid "Require a strong password? (when user resets password only)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:288 -msgid "" -"Enable or disable a strong password rules on password reset and change " -"procedure" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:293 -#: includes/class-config.php:40 includes/core/class-account.php:38 -msgid "Account" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:298 -msgid "Password Account Tab" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:304 -msgid "Privacy Account Tab" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:305 -msgid "Enable/disable the Privacy account tab in account page" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:310 -msgid "Notifications Account Tab" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:311 -msgid "Enable/disable the Notifications account tab in account page" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:316 -msgid "Delete Account Tab" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:317 -msgid "Enable/disable the Delete account tab in account page" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:322 -msgid "Account Deletion Custom Text" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:323 -msgid "" -"This is custom text that will be displayed to users before they delete their " -"accounts from your site" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:331 -msgid "Add a First & Last Name fields" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:332 -msgid "" -"Whether to enable these fields on the user account page by default or hide " -"them." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:337 -msgid "Disable First & Last Name fields" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:338 -msgid "" -"Whether to allow users changing their first and last name in account page." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:344 -msgid "Require First & Last Name" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:345 -msgid "Require first and last name?" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:351 -msgid "Allow users to change e-mail" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:352 -msgid "Whether to allow users changing their email in account page." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:357 -msgid "Allow users to hide their profiles from directory" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:358 -msgid "" -"Whether to allow users changing their profile visibility from member " -"directory in account page." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:363 -msgid "Require a strong password?" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:364 -msgid "" -"Enable or disable a strong password rules on account page / change password " -"tab" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:369 -msgid "Uploads" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:375 -msgid "Profile Photo Maximum File Size (bytes)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:376 -msgid "Sets a maximum size for the uploaded photo" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:383 -msgid "Cover Photo Maximum File Size (bytes)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:384 -msgid "Sets a maximum size for the uploaded cover" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:390 -msgid "Profile Photo Thumbnail Sizes (px)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:391 -msgid "" -"Here you can define which thumbnail sizes will be created for each profile " -"photo upload." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:393 -#: includes/admin/core/class-admin-settings.php:403 -msgid "Add New Size" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:400 -msgid "Cover Photo Thumbnail Sizes (px)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:401 -msgid "" -"Here you can define which thumbnail sizes will be created for each cover " -"photo upload." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:411 -msgid "Image Quality" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:412 -msgid "" -"Quality is used to determine quality of image uploads, and ranges from 0 " -"(worst quality, smaller file) to 100 (best quality, biggest file). The " -"default range is 60." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:419 -msgid "Image Upload Maximum Width (px)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:420 -msgid "" -"Any image upload above this width will be resized to this limit " -"automatically." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:427 -msgid "Cover Photo Minimum Width (px)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:428 -msgid "This will be the minimum width for cover photo uploads" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:435 -msgid "Access" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:438 -msgid "Restriction Content" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:443 -msgid "Global Site Access" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:444 -msgid "" -"Globally control the access of your site, you can have seperate restrict " -"options per post/page by editing the desired item." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:454 -msgid "Custom Redirect URL" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:455 -msgid "" -"A logged out user will be redirected to this url If he is not permitted to " -"access the site" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:461 -msgid "Exclude the following URLs" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:462 -msgid "" -"Here you can exclude URLs beside the redirect URI to be accessible to " -"everyone" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:463 -msgid "Add New URL" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:470 -msgid "Allow Homepage to be accessible" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:476 -msgid "Allow Category pages to be accessible" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:482 -msgid "Restricted Access Message" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:483 -msgid "" -"This is the message shown to users that do not have permission to view the " -"content" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:498 -msgid "Restricted Access to Posts" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:499 -msgid "Restriction content of the current Posts" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:508 -msgid "Restricted Access to Taxonomies" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:509 -msgid "Restriction content of the current Taxonomies" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:518 -msgid "Other" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:523 -msgid "Enable the Reset Password Limit?" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:528 -msgid "Reset Password Limit" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:529 -msgid "" -"Set the maximum reset password limit. If reached the maximum limit, user " -"will be locked from using this." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:537 -msgid "Blocked Email Addresses" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:538 -msgid "" -"This will block the specified e-mail addresses from being able to sign up or " -"sign in to your site. To block an entire domain, use something like *@domain." -"com" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:543 -msgid "Blacklist Words" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:544 -msgid "" -"This option lets you specify blacklist of words to prevent anyone from " -"signing up with such a word as their username" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:551 -#: includes/admin/core/list-tables/emails-list-table.php:176 -msgid "Email" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:556 -msgid "Admin E-mail Address" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:557 -#: includes/admin/core/class-admin-settings.php:569 -msgid "e.g. admin@companyname.com" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:562 -msgid "Mail appears from" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:563 -msgid "e.g. Site Name" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:568 -msgid "Mail appears from address" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:574 -msgid "Use HTML for E-mails?" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:575 -msgid "" -"If you enable HTML for e-mails, you can customize the HTML e-mail templates " -"found in templates/email folder." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:580 -msgid "Appearance" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:583 -msgid "Profile" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:588 -msgid "Profile Default Template" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:589 -msgid "This will be the default template to output profile" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:597 -msgid "Profile Maximum Width" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:606 -msgid "Profile Area Maximum Width" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:608 -#: includes/admin/templates/form/profile_customize.php:54 -msgid "" -"The maximum width of the profile area inside profile (below profile header)" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:614 -msgid "Profile Field Icons" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:615 -msgid "This is applicable for edit mode only" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:618 -#: includes/admin/core/class-admin-settings.php:814 -#: includes/admin/core/class-admin-settings.php:904 -#: includes/admin/templates/form/login_customize.php:40 -#: includes/admin/templates/form/profile_customize.php:65 -#: includes/admin/templates/form/register_customize.php:56 -msgid "Show inside text field" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:619 -#: includes/admin/core/class-admin-settings.php:815 -#: includes/admin/core/class-admin-settings.php:905 -#: includes/admin/templates/form/login_customize.php:41 -#: includes/admin/templates/form/profile_customize.php:66 -#: includes/admin/templates/form/register_customize.php:57 -msgid "Show with label" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:620 -#: includes/admin/core/class-admin-settings.php:816 -#: includes/admin/core/class-admin-settings.php:906 -#: includes/admin/templates/form/login_customize.php:42 -#: includes/admin/templates/form/profile_customize.php:67 -#: includes/admin/templates/form/register_customize.php:58 -msgid "Turn off" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:627 -msgid "Profile Primary Button Text" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:629 -msgid "The text that is used for updating profile button" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:635 -msgid "Profile Secondary Button" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:637 -#: includes/admin/core/class-admin-settings.php:833 -#: includes/admin/core/class-admin-settings.php:923 -msgid "Switch on/off the secondary button display in the form" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:642 -msgid "Profile Secondary Button Text" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:644 -msgid "The text that is used for cancelling update profile button" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:651 -msgid "Default Profile Photo" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:652 -msgid "" -"You can change the default profile picture globally here. Please make sure " -"that the photo is 300x300px." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:653 -msgid "Select Default Profile Photo" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:663 -msgid "Default Cover Photo" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:664 -msgid "" -"You can change the default cover photo globally here. Please make sure that " -"the default cover is large enough and respects the ratio you are using for " -"cover photos." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:665 -msgid "Select Default Cover Photo" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:670 -#: includes/admin/templates/form/profile_customize.php:125 -msgid "Profile Photo Size" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:672 -msgid "" -"The global default of profile photo size. This can be overridden by " -"individual form settings" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:678 -msgid "Profile Cover Photos" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:680 -msgid "Switch on/off the profile cover photos" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:685 -msgid "Profile Cover Ratio" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:686 -msgid "Choose global ratio for cover photos of profiles" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:700 -msgid "Profile Header Meta Text Icon" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:702 -msgid "Display field icons for related user meta fields in header or not" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:707 -msgid "Show display name in profile header" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:709 -msgid "Switch on/off the user name on profile header" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:714 -msgid "Show social links in profile header" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:716 -msgid "Switch on/off the social links on profile header" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:721 -msgid "Show user description in header" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:723 -msgid "Switch on/off the user description on profile header" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:728 -msgid "Enable html support for user description" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:730 -msgid "" -"Switch on/off to enable/disable support for html tags on user description." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:735 -msgid "User description maximum chars" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:737 -msgid "" -"Maximum number of characters to allow in user description field in header." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:744 -msgid "Profile Header Menu Position" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:746 -msgid "" -"For incompatible themes, please make the menu open from left instead of " -"bottom by default." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:756 -msgid "Show a custom message if profile is empty" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:758 -msgid "Switch on/off the custom message that appears when the profile is empty" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:763 -msgid "Show the emoticon" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:765 -msgid "Switch on/off the emoticon (sad face) that appears above the message" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:771 -msgid "Profile Menu" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:775 -#: includes/admin/templates/form/mode.php:9 -msgid "Registration Form" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:780 -msgid "Registration Default Template" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:781 -msgid "This will be the default template to output registration" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:789 -msgid "Registration Maximum Width" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:791 -#: includes/admin/core/class-admin-settings.php:881 -msgid "The maximum width this shortcode can take from the page width" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:797 -msgid "Registration Shortcode Alignment" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:798 -#: includes/admin/core/class-admin-settings.php:888 -#: includes/admin/templates/form/profile_customize.php:113 -msgid "The shortcode is centered by default unless you specify otherwise here" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:801 -#: includes/admin/core/class-admin-settings.php:891 -msgid "Centered" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:802 -#: includes/admin/core/class-admin-settings.php:892 -msgid "Left aligned" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:803 -#: includes/admin/core/class-admin-settings.php:893 -msgid "Right aligned" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:810 -msgid "Registration Field Icons" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:811 -msgid "This controls the display of field icons in the registration form" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:823 -msgid "Registration Primary Button Text" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:825 -#: includes/admin/core/class-admin-settings.php:915 -msgid "The text that is used for primary button text" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:831 -msgid "Registration Secondary Button" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:838 -msgid "Registration Secondary Button Text" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:840 -#: includes/admin/core/class-admin-settings.php:930 -msgid "The text that is used for the secondary button text" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:847 -msgid "Registration Secondary Button URL" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:849 -#: includes/admin/core/class-admin-settings.php:939 -msgid "You can replace default link for this button by entering custom URL" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:856 -msgid "Registration Default Role" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:857 -msgid "" -"This will be the default role assigned to users registering thru " -"registration form" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:865 -#: includes/admin/templates/form/mode.php:13 -msgid "Login Form" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:870 -msgid "Login Default Template" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:871 -msgid "This will be the default template to output login" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:879 -msgid "Login Maximum Width" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:887 -msgid "Login Shortcode Alignment" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:900 -msgid "Login Field Icons" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:901 -msgid "This controls the display of field icons in the login form" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:913 -msgid "Login Primary Button Text" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:921 -msgid "Login Secondary Button" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:928 -msgid "Login Secondary Button Text" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:937 -msgid "Login Secondary Button URL" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:946 -msgid "Login Forgot Password Link" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:948 -msgid "Switch on/off the forgot password link in login form" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:953 -msgid "Show \"Remember Me\"" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:955 -msgid "" -"Allow users to choose If they want to stay signed in even after closing the " -"browser. If you do not show this option, the default will be to not remember " -"login session." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:965 -msgid "Licenses" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:968 -msgid "Misc" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:973 -msgid "Show an asterisk for required fields" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:978 -msgid "User Profile Title" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:979 -msgid "This is the title that is displayed on a specific user profile" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:985 -msgid "User Profile Dynamic Meta Description" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:986 -msgid "" -"This will be used in the meta description that is available for search-" -"engines." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:994 -msgid "WP Menu Item Custom Fields Workaround" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:995 -msgid "Turn on this option if you don't see WP Menu Item Restriction options" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:1000 -msgid "Allow Tracking" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:1005 -msgid "Remove Data on Uninstall?" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:1006 -msgid "" -"Check this box if you would like Ultimate Member to completely remove all of " -"its data when the plugin/extensions are deleted." -msgstr "" - -#: includes/admin/core/class-admin-settings.php:1011 -msgid "Install Info" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:1074 -#: includes/admin/core/um-admin-actions.php:223 -msgid "Settings" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:1134 -msgid "Save Changes" -msgstr "" - -#: includes/admin/core/class-admin-settings.php:1418 +#: includes/admin/core/class-admin-notices.php:522 #, php-format msgid "" "There are %d inactive %s license keys for this site. This site is not " @@ -2050,270 +1059,1358 @@ msgid "" "\">www.UltimateMember.com." msgstr "" -#: includes/admin/core/class-admin-settings.php:1428 +#: includes/admin/core/class-admin-notices.php:529 #, php-format msgid "" "You have %d invalid or expired license keys for %s. Please go to the Licenses page to correct this issue." msgstr "" -#: includes/admin/core/class-admin-settings.php:1469 +#: includes/admin/core/class-admin-notices.php:543 +#, php-format +msgid "" +"%s version %s needs to be updated for correct working.
It is necessary to update the structure of the database and options that " +"are associated with %s %s.
Please visit " +"\"Upgrade\" page and run the upgrade process." +msgstr "" + +#: includes/admin/core/class-admin-notices.php:547 +msgid "Upgrade Now" +msgstr "" + +#: includes/admin/core/class-admin-notices.php:561 +#, php-format +msgid "%s %s Successfully Upgraded" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:107 +#: includes/admin/core/class-admin-settings.php:116 +#, php-format +msgid "%s page" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:108 +msgid "Add page ID" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:118 +msgid "Choose a page..." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:131 +msgid "Enable profile menu" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:143 +#, php-format +msgid "%s Tab" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:149 +#, php-format +msgid "Who can see %s Tab?" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:150 +msgid "Select which users can view this tab." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:159 +msgid "Allowed roles" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:160 +msgid "Select the the user roles allowed to view this tab." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:162 +msgid "Choose user roles..." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:173 +msgid "Profile menu default tab" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:174 +msgid "This will be the default tab on user profile page" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:182 +msgid "Enable menu icons in desktop view" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:236 +msgid "General" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:239 +msgid "Pages" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:243 +#: includes/admin/templates/dashboard/users.php:6 +msgid "Users" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:249 +msgid "Profile Permalink Base" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:250 +msgid "" +"Here you can control the permalink structure of the user profile URL " +"globally e.g. " +msgstr "" + +#: includes/admin/core/class-admin-settings.php:252 +#: includes/admin/core/class-admin-settings.php:269 +#: includes/core/class-builtin.php:669 includes/core/class-builtin.php:672 +msgid "Username" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:253 +msgid "First and Last Name with '.'" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:254 +msgid "First and Last Name with '-'" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:255 +msgid "First and Last Name with '+'" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:256 +msgid "User ID" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:258 +#: includes/admin/core/class-admin-settings.php:277 +msgid "Select..." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:264 +msgid "User Display Name" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:265 +msgid "" +"This is the name that will be displayed for users on the front end of your " +"site. Default setting uses first/last name as display name if it exists" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:267 +msgid "Default WP Display Name" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:268 +#: includes/core/class-builtin.php:727 includes/core/class-builtin.php:730 +msgid "Nickname" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:270 +msgid "First name & last name" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:271 +msgid "Last name & first name" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:272 +msgid "First name & first initial of last name" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:273 +msgid "First initial of first name & last name" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:274 +msgid "First name only" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:275 +msgid "Custom field(s)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:282 +msgid "Display Name Custom Field(s)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:283 +msgid "" +"Specify the custom field meta key or custom fields seperated by comma that " +"you want to use to display users name on the frontend of your site" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:289 +msgid "Automatically redirect author page to their profile?" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:290 +msgid "" +"If enabled, author pages will automatically redirect to the user's profile " +"page" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:295 +msgid "Enable Members Directory" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:296 +msgid "Control whether to enable or disable member directories on this site" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:301 +msgid "Use Gravatars?" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:302 +msgid "" +"Do you want to use gravatars instead of the default plugin profile photo (If " +"the user did not upload a custom profile photo / avatar)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:307 +msgid "Use Gravatar builtin image" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:308 +msgid "" +"Gravatar has a number of built in options which you can also use as defaults" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:310 +#: includes/admin/templates/form/login_settings.php:13 +#: includes/admin/templates/form/register_customize.php:3 +#: includes/admin/templates/form/register_customize.php:29 +msgid "Default" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:311 +msgid "404 ( File Not Found response )" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:312 +msgid "Mystery Man" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:313 +msgid "Identicon" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:314 +msgid "Monsterid" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:315 +msgid "Wavatar" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:316 +msgid "Retro" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:317 +msgid "Blank ( a transparent PNG image )" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:325 +msgid "Use Default plugin avatar as Gravatar's Default avatar" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:326 +msgid "" +"Do you want to use the plugin default avatar instead of the gravatar default " +"photo (If the user did not upload a custom profile photo / avatar)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:332 +msgid "Require a strong password? (when user resets password only)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:333 +msgid "" +"Enable or disable a strong password rules on password reset and change " +"procedure" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:338 +#: includes/class-config.php:134 includes/class-config.php:739 +#: includes/core/class-account.php:90 +msgid "Account" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:343 +msgid "Password Account Tab" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:349 +msgid "Privacy Account Tab" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:350 +msgid "Enable/disable the Privacy account tab in account page" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:355 +msgid "Notifications Account Tab" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:356 +msgid "Enable/disable the Notifications account tab in account page" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:361 +msgid "Delete Account Tab" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:362 +msgid "Enable/disable the Delete account tab in account page" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:367 +msgid "Account Deletion Custom Text" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:368 +msgid "" +"This is custom text that will be displayed to users before they delete their " +"accounts from your site" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:376 +msgid "Add a First & Last Name fields" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:377 +msgid "" +"Whether to enable these fields on the user account page by default or hide " +"them." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:382 +msgid "Disable First & Last Name fields" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:383 +msgid "" +"Whether to allow users changing their first and last name in account page." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:389 +msgid "Require First & Last Name" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:390 +msgid "Require first and last name?" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:396 +msgid "Allow users to change e-mail" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:397 +msgid "Whether to allow users changing their email in account page." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:402 +msgid "Allow users to hide their profiles from directory" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:403 +msgid "" +"Whether to allow users changing their profile visibility from member " +"directory in account page." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:408 +msgid "Require a strong password?" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:409 +msgid "" +"Enable or disable a strong password rules on account page / change password " +"tab" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:414 +msgid "Uploads" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:420 +msgid "Profile Photo Maximum File Size (bytes)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:421 +msgid "Sets a maximum size for the uploaded photo" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:428 +msgid "Cover Photo Maximum File Size (bytes)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:429 +msgid "Sets a maximum size for the uploaded cover" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:435 +msgid "Profile Photo Thumbnail Sizes (px)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:436 +msgid "" +"Here you can define which thumbnail sizes will be created for each profile " +"photo upload." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:438 +#: includes/admin/core/class-admin-settings.php:448 +msgid "Add New Size" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:445 +msgid "Cover Photo Thumbnail Sizes (px)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:446 +msgid "" +"Here you can define which thumbnail sizes will be created for each cover " +"photo upload." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:456 +msgid "Image Quality" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:457 +msgid "" +"Quality is used to determine quality of image uploads, and ranges from 0 " +"(worst quality, smaller file) to 100 (best quality, biggest file). The " +"default range is 60." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:464 +msgid "Image Upload Maximum Width (px)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:465 +msgid "" +"Any image upload above this width will be resized to this limit " +"automatically." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:472 +msgid "Cover Photo Minimum Width (px)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:473 +msgid "This will be the minimum width for cover photo uploads" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:480 +msgid "Access" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:483 +msgid "Restriction Content" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:488 +msgid "Global Site Access" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:489 +msgid "" +"Globally control the access of your site, you can have seperate restrict " +"options per post/page by editing the desired item." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:499 +msgid "Custom Redirect URL" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:500 +msgid "" +"A logged out user will be redirected to this url If he is not permitted to " +"access the site" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:506 +msgid "Exclude the following URLs" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:507 +msgid "" +"Here you can exclude URLs beside the redirect URI to be accessible to " +"everyone" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:508 +msgid "Add New URL" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:515 +msgid "Allow Homepage to be accessible" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:521 +msgid "Allow Category pages to be accessible" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:527 +msgid "Restricted Access Message" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:528 +msgid "" +"This is the message shown to users that do not have permission to view the " +"content" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:543 +msgid "Restricted Access to Posts" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:544 +msgid "Restriction content of the current Posts" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:553 +msgid "Restricted Access to Taxonomies" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:554 +msgid "Restriction content of the current Taxonomies" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:563 +msgid "Other" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:568 +msgid "Enable the Reset Password Limit?" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:573 +msgid "Reset Password Limit" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:574 +msgid "" +"Set the maximum reset password limit. If reached the maximum limit, user " +"will be locked from using this." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:582 +msgid "Blocked Email Addresses" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:583 +msgid "" +"This will block the specified e-mail addresses from being able to sign up or " +"sign in to your site. To block an entire domain, use something like *@domain." +"com" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:588 +msgid "Blacklist Words" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:589 +msgid "" +"This option lets you specify blacklist of words to prevent anyone from " +"signing up with such a word as their username" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:596 +#: includes/admin/core/list-tables/emails-list-table.php:300 +msgid "Email" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:601 +msgid "Admin E-mail Address" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:602 +#: includes/admin/core/class-admin-settings.php:614 +msgid "e.g. admin@companyname.com" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:607 +msgid "Mail appears from" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:608 +msgid "e.g. Site Name" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:613 +msgid "Mail appears from address" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:619 +msgid "Use HTML for E-mails?" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:620 +msgid "" +"If you enable HTML for e-mails, you can customize the HTML e-mail templates " +"found in templates/email folder." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:625 +msgid "Appearance" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:628 +msgid "Profile" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:633 +msgid "Profile Default Template" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:634 +msgid "This will be the default template to output profile" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:642 +msgid "Profile Maximum Width" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:651 +msgid "Profile Area Maximum Width" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:653 +#: includes/admin/templates/form/profile_customize.php:54 +msgid "" +"The maximum width of the profile area inside profile (below profile header)" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:659 +msgid "Profile Field Icons" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:660 +msgid "This is applicable for edit mode only" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:663 +#: includes/admin/core/class-admin-settings.php:859 +#: includes/admin/core/class-admin-settings.php:949 +#: includes/admin/templates/form/login_customize.php:40 +#: includes/admin/templates/form/profile_customize.php:65 +#: includes/admin/templates/form/register_customize.php:55 +msgid "Show inside text field" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:664 +#: includes/admin/core/class-admin-settings.php:860 +#: includes/admin/core/class-admin-settings.php:950 +#: includes/admin/templates/form/login_customize.php:41 +#: includes/admin/templates/form/profile_customize.php:66 +#: includes/admin/templates/form/register_customize.php:56 +msgid "Show with label" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:665 +#: includes/admin/core/class-admin-settings.php:861 +#: includes/admin/core/class-admin-settings.php:951 +#: includes/admin/templates/form/login_customize.php:42 +#: includes/admin/templates/form/profile_customize.php:67 +#: includes/admin/templates/form/register_customize.php:57 +msgid "Turn off" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:672 +msgid "Profile Primary Button Text" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:674 +msgid "The text that is used for updating profile button" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:680 +msgid "Profile Secondary Button" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:682 +#: includes/admin/core/class-admin-settings.php:878 +#: includes/admin/core/class-admin-settings.php:968 +msgid "Switch on/off the secondary button display in the form" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:687 +msgid "Profile Secondary Button Text" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:689 +msgid "The text that is used for cancelling update profile button" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:696 +msgid "Default Profile Photo" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:697 +msgid "" +"You can change the default profile picture globally here. Please make sure " +"that the photo is 300x300px." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:698 +msgid "Select Default Profile Photo" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:708 +msgid "Default Cover Photo" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:709 +msgid "" +"You can change the default cover photo globally here. Please make sure that " +"the default cover is large enough and respects the ratio you are using for " +"cover photos." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:710 +msgid "Select Default Cover Photo" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:715 +#: includes/admin/templates/form/profile_customize.php:125 +msgid "Profile Photo Size" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:717 +msgid "" +"The global default of profile photo size. This can be overridden by " +"individual form settings" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:723 +msgid "Profile Cover Photos" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:725 +msgid "Switch on/off the profile cover photos" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:730 +msgid "Profile Cover Ratio" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:731 +msgid "Choose global ratio for cover photos of profiles" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:745 +msgid "Profile Header Meta Text Icon" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:747 +msgid "Display field icons for related user meta fields in header or not" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:752 +msgid "Show display name in profile header" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:754 +msgid "Switch on/off the user name on profile header" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:759 +msgid "Show social links in profile header" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:761 +msgid "Switch on/off the social links on profile header" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:766 +msgid "Show user description in header" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:768 +msgid "Switch on/off the user description on profile header" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:773 +msgid "Enable html support for user description" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:775 +msgid "" +"Switch on/off to enable/disable support for html tags on user description." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:780 +msgid "User description maximum chars" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:782 +msgid "" +"Maximum number of characters to allow in user description field in header." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:789 +msgid "Profile Header Menu Position" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:791 +msgid "" +"For incompatible themes, please make the menu open from left instead of " +"bottom by default." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:801 +msgid "Show a custom message if profile is empty" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:803 +msgid "Switch on/off the custom message that appears when the profile is empty" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:808 +msgid "Show the emoticon" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:810 +msgid "Switch on/off the emoticon (sad face) that appears above the message" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:816 +msgid "Profile Menu" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:820 +#: includes/admin/templates/form/mode.php:9 +msgid "Registration Form" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:825 +msgid "Registration Default Template" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:826 +msgid "This will be the default template to output registration" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:834 +msgid "Registration Maximum Width" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:836 +#: includes/admin/core/class-admin-settings.php:926 +msgid "The maximum width this shortcode can take from the page width" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:842 +msgid "Registration Shortcode Alignment" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:843 +#: includes/admin/core/class-admin-settings.php:933 +#: includes/admin/templates/form/profile_customize.php:113 +msgid "The shortcode is centered by default unless you specify otherwise here" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:846 +#: includes/admin/core/class-admin-settings.php:936 +msgid "Centered" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:847 +#: includes/admin/core/class-admin-settings.php:937 +msgid "Left aligned" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:848 +#: includes/admin/core/class-admin-settings.php:938 +msgid "Right aligned" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:855 +msgid "Registration Field Icons" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:856 +msgid "This controls the display of field icons in the registration form" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:868 +msgid "Registration Primary Button Text" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:870 +#: includes/admin/core/class-admin-settings.php:960 +msgid "The text that is used for primary button text" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:876 +msgid "Registration Secondary Button" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:883 +msgid "Registration Secondary Button Text" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:885 +#: includes/admin/core/class-admin-settings.php:975 +msgid "The text that is used for the secondary button text" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:892 +msgid "Registration Secondary Button URL" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:894 +#: includes/admin/core/class-admin-settings.php:984 +msgid "You can replace default link for this button by entering custom URL" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:901 +msgid "Registration Default Role" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:902 +msgid "" +"This will be the default role assigned to users registering thru " +"registration form" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:910 +#: includes/admin/templates/form/mode.php:13 +msgid "Login Form" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:915 +msgid "Login Default Template" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:916 +msgid "This will be the default template to output login" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:924 +msgid "Login Maximum Width" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:932 +msgid "Login Shortcode Alignment" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:945 +msgid "Login Field Icons" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:946 +msgid "This controls the display of field icons in the login form" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:958 +msgid "Login Primary Button Text" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:966 +msgid "Login Secondary Button" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:973 +msgid "Login Secondary Button Text" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:982 +msgid "Login Secondary Button URL" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:991 +msgid "Login Forgot Password Link" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:993 +msgid "Switch on/off the forgot password link in login form" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:998 +msgid "Show \"Remember Me\"" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1000 +msgid "" +"Allow users to choose If they want to stay signed in even after closing the " +"browser. If you do not show this option, the default will be to not remember " +"login session." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1010 +msgid "Licenses" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1013 +msgid "Misc" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1018 +msgid "Show an asterisk for required fields" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1023 +msgid "User Profile Title" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1024 +msgid "This is the title that is displayed on a specific user profile" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1030 +msgid "User Profile Dynamic Meta Description" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1031 +msgid "" +"This will be used in the meta description that is available for search-" +"engines." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1039 +msgid "Allow Tracking" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1044 +msgid "Remove Data on Uninstall?" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1045 +msgid "" +"Check this box if you would like Ultimate Member to completely remove all of " +"its data when the plugin/extensions are deleted." +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1050 +msgid "Install Info" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1155 +msgid "Ultimate Member - Settings" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1290 +msgid "Save Changes" +msgstr "" + +#: includes/admin/core/class-admin-settings.php:1721 msgid "Subject Line" msgstr "" -#: includes/admin/core/class-admin-settings.php:1471 +#: includes/admin/core/class-admin-settings.php:1723 msgid "This is the subject line of the e-mail" msgstr "" -#: includes/admin/core/class-admin-settings.php:1476 +#: includes/admin/core/class-admin-settings.php:1728 msgid "Message Body" msgstr "" -#: includes/admin/core/class-admin-settings.php:1478 +#: includes/admin/core/class-admin-settings.php:1730 msgid "This is the content of the e-mail" msgstr "" -#: includes/admin/core/class-admin-settings.php:1517 -#: includes/admin/core/class-admin-settings.php:1615 +#: includes/admin/core/class-admin-settings.php:1778 +#: includes/admin/core/class-admin-settings.php:1876 #, php-format msgid "" "Your license key expired on %s. Please renew your license key." msgstr "" -#: includes/admin/core/class-admin-settings.php:1530 -#: includes/admin/core/class-admin-settings.php:1628 +#: includes/admin/core/class-admin-settings.php:1791 +#: includes/admin/core/class-admin-settings.php:1889 #, php-format msgid "" "Your license key has been disabled. Please contact support for more information." msgstr "" -#: includes/admin/core/class-admin-settings.php:1542 -#: includes/admin/core/class-admin-settings.php:1640 +#: includes/admin/core/class-admin-settings.php:1803 +#: includes/admin/core/class-admin-settings.php:1901 #, php-format msgid "" "Invalid license. Please visit your account " "page and verify it." msgstr "" -#: includes/admin/core/class-admin-settings.php:1555 -#: includes/admin/core/class-admin-settings.php:1653 +#: includes/admin/core/class-admin-settings.php:1816 +#: includes/admin/core/class-admin-settings.php:1914 #, php-format msgid "" "Your %s is not active for this URL. Please visit your account page to manage your license key URLs." msgstr "" -#: includes/admin/core/class-admin-settings.php:1567 -#: includes/admin/core/class-admin-settings.php:1665 +#: includes/admin/core/class-admin-settings.php:1828 +#: includes/admin/core/class-admin-settings.php:1926 #, php-format msgid "This appears to be an invalid license key for %s." msgstr "" -#: includes/admin/core/class-admin-settings.php:1576 -#: includes/admin/core/class-admin-settings.php:1674 +#: includes/admin/core/class-admin-settings.php:1837 +#: includes/admin/core/class-admin-settings.php:1935 #, php-format msgid "" "Your license key has reached its activation limit. View " "possible upgrades now." msgstr "" -#: includes/admin/core/class-admin-settings.php:1585 -#: includes/admin/core/class-admin-settings.php:1683 +#: includes/admin/core/class-admin-settings.php:1846 +#: includes/admin/core/class-admin-settings.php:1944 msgid "" "The key you entered belongs to a bundle, please use the product specific " "license key." msgstr "" -#: includes/admin/core/class-admin-settings.php:1593 -#: includes/admin/core/class-admin-settings.php:1601 +#: includes/admin/core/class-admin-settings.php:1854 +#: includes/admin/core/class-admin-settings.php:1862 msgid "unknown_error" msgstr "" -#: includes/admin/core/class-admin-settings.php:1594 -#: includes/admin/core/class-admin-settings.php:1602 +#: includes/admin/core/class-admin-settings.php:1855 +#: includes/admin/core/class-admin-settings.php:1863 #, php-format msgid "" "There was an error with this license key: %s. Please contact " "our support team." msgstr "" -#: includes/admin/core/class-admin-settings.php:1698 +#: includes/admin/core/class-admin-settings.php:1959 msgid "License key never expires." msgstr "" -#: includes/admin/core/class-admin-settings.php:1705 +#: includes/admin/core/class-admin-settings.php:1966 #, php-format msgid "" "Your license key expires soon! It expires on %s. Renew your license key." msgstr "" -#: includes/admin/core/class-admin-settings.php:1715 +#: includes/admin/core/class-admin-settings.php:1976 #, php-format msgid "Your license key expires on %s." msgstr "" -#: includes/admin/core/class-admin-settings.php:1733 +#: includes/admin/core/class-admin-settings.php:1994 #, php-format msgid "To receive updates, please enter your valid %s license key." msgstr "" -#: includes/admin/core/class-admin-settings.php:1755 +#: includes/admin/core/class-admin-settings.php:2016 msgid "Clear License" msgstr "" -#: includes/admin/core/class-admin-settings.php:1757 +#: includes/admin/core/class-admin-settings.php:2018 msgid "Activate" msgstr "" -#: includes/admin/core/class-admin-settings.php:1759 +#: includes/admin/core/class-admin-settings.php:2020 msgid "Re-Activate" msgstr "" -#: includes/admin/core/class-admin-settings.php:1807 +#: includes/admin/core/class-admin-settings.php:2072 msgid "" "To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C " "(Mac)." msgstr "" -#: includes/admin/core/class-admin-users.php:35 -#: includes/admin/core/class-admin-users.php:38 +#: includes/admin/core/class-admin-upgrade.php:135 +msgid "Upgrade" +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:143 +msgid "empty" +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:146 +#, php-format +msgid "%s - Upgrade Process" +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:147 +#, php-format +msgid "" +"You have installed %s version. Your latest DB version is %s. Before the " +"click to \"Run\" button make sure that did the following:" +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:149 +msgid "Create full site's backup." +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:150 +msgid "Set maintenance mode (if you need)" +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:151 +msgid "You have nice Internet connection" +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:153 +msgid "" +"After the click to \"Run\" button, the update process will be started. All " +"information will be displayed in \"Upgrade Log\" field." +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:154 +msgid "" +"If the update was successful, you will see a corresponding message. " +"Otherwise, contact technical support if the update failed." +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:155 +msgid "Upgrade Log" +msgstr "" + +#: includes/admin/core/class-admin-upgrade.php:158 +msgid "Run" +msgstr "" + +#: includes/admin/core/class-admin-users.php:109 +#: includes/admin/core/class-admin-users.php:112 msgid "UM Action" msgstr "" -#: includes/admin/core/class-admin-users.php:42 -#: includes/core/class-fields.php:1722 +#: includes/admin/core/class-admin-users.php:116 +#: includes/core/class-fields.php:2205 msgid "Apply" msgstr "" -#: includes/admin/core/class-admin-users.php:61 -#: includes/core/um-filters-user.php:19 includes/core/um-filters-user.php:24 +#: includes/admin/core/class-admin-users.php:158 +#: includes/core/um-filters-user.php:20 includes/core/um-filters-user.php:25 msgid "Approve Membership" msgstr "" -#: includes/admin/core/class-admin-users.php:64 -#: includes/core/um-filters-user.php:20 +#: includes/admin/core/class-admin-users.php:161 +#: includes/core/um-filters-user.php:21 msgid "Reject Membership" msgstr "" -#: includes/admin/core/class-admin-users.php:67 -#: includes/core/um-filters-user.php:28 +#: includes/admin/core/class-admin-users.php:164 +#: includes/core/um-filters-user.php:29 msgid "Put as Pending Review" msgstr "" -#: includes/admin/core/class-admin-users.php:70 -#: includes/core/um-filters-user.php:32 +#: includes/admin/core/class-admin-users.php:167 +#: includes/core/um-filters-user.php:33 msgid "Resend Activation E-mail" msgstr "" -#: includes/admin/core/class-admin-users.php:73 +#: includes/admin/core/class-admin-users.php:170 msgid "Deactivate" msgstr "" -#: includes/admin/core/class-admin-users.php:76 +#: includes/admin/core/class-admin-users.php:173 msgid "Reactivate" msgstr "" -#: includes/admin/core/class-admin-users.php:98 templates/account.php:18 -#: templates/account.php:42 +#: includes/admin/core/class-admin-users.php:196 templates/account.php:38 +#: templates/account.php:62 msgid "View profile" msgstr "" -#: includes/admin/core/class-admin-users.php:102 +#: includes/admin/core/class-admin-users.php:200 msgid "Info" msgstr "" -#: includes/admin/core/class-admin-users.php:186 -#: includes/admin/templates/dashboard/users.php:12 -#: includes/core/class-user.php:562 +#: includes/admin/core/class-admin-users.php:305 +#: includes/admin/templates/dashboard/users.php:11 +#: includes/core/class-user.php:741 msgid "Approved" msgstr "" -#: includes/admin/core/class-admin-users.php:187 +#: includes/admin/core/class-admin-users.php:306 msgid "Pending review" msgstr "" -#: includes/admin/core/class-admin-users.php:188 +#: includes/admin/core/class-admin-users.php:307 msgid "Waiting e-mail confirmation" msgstr "" -#: includes/admin/core/class-admin-users.php:189 -#: includes/admin/templates/dashboard/users.php:40 +#: includes/admin/core/class-admin-users.php:308 +#: includes/admin/templates/dashboard/users.php:37 msgid "Inactive" msgstr "" -#: includes/admin/core/class-admin-users.php:190 -#: includes/admin/templates/dashboard/users.php:17 +#: includes/admin/core/class-admin-users.php:309 +#: includes/admin/templates/dashboard/users.php:16 msgid "Rejected" msgstr "" -#: includes/admin/core/class-admin-users.php:232 -#: includes/core/um-actions-core.php:21 +#: includes/admin/core/class-admin-users.php:371 +#: includes/core/um-actions-core.php:29 msgid "You do not have enough permissions to do that." msgstr "" -#: includes/admin/core/list-tables/emails-list-table.php:51 -#: includes/admin/core/list-tables/roles-list-table.php:134 +#: includes/admin/core/list-tables/emails-list-table.php:69 +#: includes/admin/core/list-tables/roles-list-table.php:172 msgid "item" msgstr "" -#: includes/admin/core/list-tables/emails-list-table.php:52 -#: includes/admin/core/list-tables/roles-list-table.php:135 +#: includes/admin/core/list-tables/emails-list-table.php:70 +#: includes/admin/core/list-tables/roles-list-table.php:173 msgid "items" msgstr "" -#: includes/admin/core/list-tables/emails-list-table.php:56 -#: includes/admin/core/list-tables/roles-list-table.php:139 +#: includes/admin/core/list-tables/emails-list-table.php:74 +#: includes/admin/core/list-tables/roles-list-table.php:177 msgid "not found." msgstr "" -#: includes/admin/core/list-tables/emails-list-table.php:147 +#: includes/admin/core/list-tables/emails-list-table.php:236 msgid "Member" msgstr "" -#: includes/admin/core/list-tables/emails-list-table.php:167 +#: includes/admin/core/list-tables/emails-list-table.php:270 msgid "Email Notification" msgstr "" -#: includes/admin/core/list-tables/emails-list-table.php:168 +#: includes/admin/core/list-tables/emails-list-table.php:271 msgid "Email Notifications" msgstr "" -#: includes/admin/core/list-tables/emails-list-table.php:177 +#: includes/admin/core/list-tables/emails-list-table.php:301 msgid "Recipient(s)" msgstr "" #: includes/admin/core/list-tables/roles-list-table.php:23 #: includes/admin/core/list-tables/roles-list-table.php:88 -#: includes/admin/core/list-tables/roles-list-table.php:272 +#: includes/admin/core/list-tables/roles-list-table.php:398 msgid "Roles" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:227 +#: includes/admin/core/list-tables/roles-list-table.php:335 msgid "Edit" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:230 +#: includes/admin/core/list-tables/roles-list-table.php:338 msgid "Are you sure you want to delete this role?" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:230 -#: includes/admin/core/list-tables/roles-list-table.php:280 +#: includes/admin/core/list-tables/roles-list-table.php:338 +#: includes/admin/core/list-tables/roles-list-table.php:406 msgid "Delete" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:235 +#: includes/admin/core/list-tables/roles-list-table.php:343 msgid "Are you sure you want to reset UM role meta?" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:235 +#: includes/admin/core/list-tables/roles-list-table.php:343 msgid "Reset UM Role meta" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:250 -#: includes/admin/core/list-tables/roles-list-table.php:255 +#: includes/admin/core/list-tables/roles-list-table.php:367 +#: includes/admin/core/list-tables/roles-list-table.php:375 #: includes/admin/templates/form/login_customize.php:14 #: includes/admin/templates/form/login_customize.php:62 #: includes/admin/templates/form/login_customize.php:81 @@ -2325,14 +2422,15 @@ msgstr "" #: includes/admin/templates/form/profile_customize.php:150 #: includes/admin/templates/form/profile_customize.php:161 #: includes/admin/templates/form/profile_customize.php:172 -#: includes/admin/templates/form/register_customize.php:22 -#: includes/admin/templates/form/register_customize.php:78 -#: includes/core/class-builtin.php:1021 includes/core/class-builtin.php:1036 +#: includes/admin/templates/form/register_customize.php:21 +#: includes/admin/templates/form/register_customize.php:77 +#: includes/core/class-builtin.php:1137 includes/core/class-builtin.php:1152 +#: includes/core/um-filters-members.php:68 msgid "Yes" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:250 -#: includes/admin/core/list-tables/roles-list-table.php:255 +#: includes/admin/core/list-tables/roles-list-table.php:367 +#: includes/admin/core/list-tables/roles-list-table.php:375 #: includes/admin/templates/form/login_customize.php:13 #: includes/admin/templates/form/login_customize.php:61 #: includes/admin/templates/form/login_customize.php:80 @@ -2344,399 +2442,543 @@ msgstr "" #: includes/admin/templates/form/profile_customize.php:149 #: includes/admin/templates/form/profile_customize.php:160 #: includes/admin/templates/form/profile_customize.php:171 -#: includes/admin/templates/form/register_customize.php:21 -#: includes/admin/templates/form/register_customize.php:77 -#: includes/core/class-builtin.php:1020 includes/core/class-builtin.php:1021 -#: includes/core/class-builtin.php:1035 includes/core/class-builtin.php:1036 -#: includes/core/um-actions-account.php:182 +#: includes/admin/templates/form/register_customize.php:20 +#: includes/admin/templates/form/register_customize.php:76 +#: includes/core/class-builtin.php:1137 includes/core/class-builtin.php:1151 +#: includes/core/class-builtin.php:1152 +#: includes/core/um-actions-account.php:245 msgid "No" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:271 +#: includes/admin/core/list-tables/roles-list-table.php:397 msgid "Role" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:284 +#: includes/admin/core/list-tables/roles-list-table.php:410 msgid "Role Title" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:285 +#: includes/admin/core/list-tables/roles-list-table.php:411 msgid "Role ID" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:286 +#: includes/admin/core/list-tables/roles-list-table.php:412 msgid "No.of Members" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:287 +#: includes/admin/core/list-tables/roles-list-table.php:413 msgid "UM Custom Role" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:288 +#: includes/admin/core/list-tables/roles-list-table.php:414 msgid "WP-Admin Access" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:289 +#: includes/admin/core/list-tables/roles-list-table.php:415 msgid "Priority" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:358 -#: includes/admin/core/packages/2.0-beta1.php:923 -#: includes/admin/templates/role/role-edit.php:85 -#: includes/core/class-common.php:29 includes/core/class-common.php:58 +#: includes/admin/core/list-tables/roles-list-table.php:479 +#: includes/admin/core/packages/2.0-beta1/user_roles.php:14 +#: includes/admin/templates/role/role-edit.php:136 +#: includes/core/class-common.php:58 includes/core/class-common.php:87 msgid "Add New" msgstr "" -#: includes/admin/core/list-tables/roles-list-table.php:364 +#: includes/admin/core/list-tables/roles-list-table.php:486 msgid "User Role Deleted Successfully." msgstr "" -#: includes/admin/core/packages/2.0-beta1.php:922 +#: includes/admin/core/packages/2.0-beta1/functions.php:6 +msgid "Styles was upgraded successfully" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:17 +msgid "User Roles was upgraded successfully" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:80 +#, php-format +msgid "Users from %s to %s was upgraded successfully..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:100 +msgid "Settings was upgraded successfully" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:108 +msgid "Menus settings was upgraded successfully" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:116 +msgid "Mailchimp Lists was upgraded successfully" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:124 +msgid "Social login forms was upgraded successfully" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:132 +msgid "UM Custom Posts was upgraded successfully" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:145 +msgid "Forums are ready for upgrade" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:198 +#, php-format +msgid "Forums from %s to %s was upgraded successfully..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:214 +msgid "Woocommerce Products are ready for upgrade" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:288 +#, php-format +msgid "Woocommerce Products from %s to %s was upgraded successfully..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/functions.php:304 +msgid "Email Templates was upgraded successfully" +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:13 +msgid "Upgrade Styles..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:37 +msgid "Upgrade Roles..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:50 +msgid "Upgrade Users..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:71 +msgid "Getting " +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:71 +#: includes/admin/core/packages/2.0-beta1/init.php:82 +msgid " users..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:82 +msgid "There are " +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:83 +msgid "Start users upgrading..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:135 +msgid "Upgrade Content Restriction Settings..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:160 +msgid "Upgrade Settings..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:185 +msgid "Upgrade Menu Items..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:210 +msgid "Upgrade Mailchimp Lists..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:235 +msgid "Upgrade Social Login Forms..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:260 +msgid "Upgrade UM Custom Post Types..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:285 +msgid "Upgrade bbPress Forums..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:286 +msgid "Get bbPress Forums count..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:343 +msgid "Upgrade Woocommerce Products..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:344 +msgid "Get all Products..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/init.php:403 +msgid "Upgrade Email Templates..." +msgstr "" + +#: includes/admin/core/packages/2.0-beta1/user_roles.php:13 msgid "User Role" msgstr "" -#: includes/admin/core/packages/2.0-beta1.php:924 +#: includes/admin/core/packages/2.0-beta1/user_roles.php:15 msgid "Add New User Role" msgstr "" -#: includes/admin/core/packages/2.0-beta1.php:925 +#: includes/admin/core/packages/2.0-beta1/user_roles.php:16 msgid "Edit User Role" msgstr "" -#: includes/admin/core/packages/2.0-beta1.php:926 +#: includes/admin/core/packages/2.0-beta1/user_roles.php:17 msgid "You did not create any user roles yet" msgstr "" -#: includes/admin/core/packages/2.0-beta1.php:927 -#: includes/core/class-common.php:33 includes/core/class-common.php:62 +#: includes/admin/core/packages/2.0-beta1/user_roles.php:18 +#: includes/core/class-common.php:62 includes/core/class-common.php:91 msgid "Nothing found in Trash" msgstr "" -#: includes/admin/core/packages/2.0-beta1.php:928 +#: includes/admin/core/packages/2.0-beta1/user_roles.php:19 msgid "Search User Roles" msgstr "" -#: includes/admin/core/um-admin-actions-modal.php:27 -msgid "Manage conditional fields support" +#: includes/admin/templates/dashboard/cache.php:10 +msgid "Run this task from time to time to keep your DB clean." msgstr "" -#: includes/admin/core/um-admin-actions-modal.php:27 -#: includes/admin/core/um-admin-actions-modal.php:29 -msgid "" -"Here you can setup conditional logic to show/hide this field based on " -"specific fields value or conditions" -msgstr "" - -#: includes/admin/core/um-admin-actions-modal.php:29 -msgid "Add conditional fields support" -msgstr "" - -#: includes/admin/core/um-admin-actions-modal.php:34 -msgid "Reset all rules" -msgstr "" - -#: includes/admin/core/um-admin-actions.php:28 -msgid "This is a translation of UM profile page?" -msgstr "" - -#: includes/admin/core/um-admin-actions.php:35 -msgid "This is a translation of UM account page?" -msgstr "" - -#: includes/admin/core/um-admin-actions.php:86 +#: includes/admin/templates/dashboard/cache.php:13 #, php-format -msgid "Duplicate of %s" +msgid "Clear cache of %s users" msgstr "" -#: includes/admin/core/um-admin-actions.php:221 -msgid "Docs" +#: includes/admin/templates/dashboard/feed.php:4 +msgid "Latest From Ultimate Member" msgstr "" -#: includes/admin/templates/dashboard/language-contrib.php:1 +#: includes/admin/templates/dashboard/language-contrib.php:2 #, php-format msgid "" "Ultimate Member is not yet available in your language: %1$s." msgstr "" -#: includes/admin/templates/dashboard/language-contrib.php:3 +#: includes/admin/templates/dashboard/language-contrib.php:6 msgid "" "If you want to contribute this translation to the plugin, please add it on " "our community forum." msgstr "" -#: includes/admin/templates/dashboard/language-download.php:1 +#: includes/admin/templates/dashboard/language-download.php:2 #, php-format msgid "" "Ultimate Member is available in your language: %1$s (%2$s)." msgstr "" -#: includes/admin/templates/dashboard/language-download.php:3 +#: includes/admin/templates/dashboard/language-download.php:7 msgid "Download Translation" msgstr "" -#: includes/admin/templates/dashboard/language-update.php:1 +#: includes/admin/templates/dashboard/language-update.php:2 #, php-format msgid "" "You are currently using Ultimate Member in your language: %1$s " "(%2$s)." msgstr "" -#: includes/admin/templates/dashboard/language-update.php:3 +#: includes/admin/templates/dashboard/language-update.php:7 msgid "Force Update Translation" msgstr "" -#: includes/admin/templates/dashboard/users.php:30 -#: includes/core/class-user.php:570 +#: includes/admin/templates/dashboard/purge.php:4 +#, php-format +msgid "" +"You can free up %s MB by purging your temp upload " +"directory." +msgstr "" + +#: includes/admin/templates/dashboard/purge.php:9 +msgid "Purge Temp" +msgstr "" + +#: includes/admin/templates/dashboard/purge.php:16 +msgid "" +"Your temp uploads directory is clean. There is " +"nothing to purge." +msgstr "" + +#: includes/admin/templates/dashboard/users.php:27 +#: includes/core/class-user.php:749 msgid "Pending Review" msgstr "" -#: includes/admin/templates/dashboard/users.php:35 -#: includes/core/class-user.php:566 +#: includes/admin/templates/dashboard/users.php:32 +#: includes/core/class-user.php:745 msgid "Awaiting E-mail Confirmation" msgstr "" -#: includes/admin/templates/directory/appearance.php:10 +#: includes/admin/templates/directory/appearance.php:9 #: includes/admin/templates/form/login_customize.php:20 #: includes/admin/templates/form/profile_customize.php:37 -#: includes/admin/templates/form/register_customize.php:36 +#: includes/admin/templates/form/register_customize.php:35 msgid "Template" msgstr "" -#: includes/admin/templates/directory/general.php:33 +#: includes/admin/templates/directory/general.php:46 +msgid "New users first" +msgstr "" + +#: includes/admin/templates/directory/general.php:47 +msgid "Old users first" +msgstr "" + +#: includes/admin/templates/directory/general.php:48 +msgid "Last login" +msgstr "" + +#: includes/admin/templates/directory/general.php:49 +msgid "Display Name" +msgstr "" + +#: includes/admin/templates/directory/general.php:50 +#: includes/core/class-builtin.php:707 includes/core/class-builtin.php:710 +msgid "First Name" +msgstr "" + +#: includes/admin/templates/directory/general.php:51 +#: includes/core/class-builtin.php:717 includes/core/class-builtin.php:720 +msgid "Last Name" +msgstr "" + +#: includes/admin/templates/directory/general.php:52 +msgid "Random" +msgstr "" + +#: includes/admin/templates/directory/general.php:53 +msgid "Other (custom field)" +msgstr "" + +#: includes/admin/templates/directory/general.php:65 msgid "User Roles to Display" msgstr "" -#: includes/admin/templates/directory/general.php:34 +#: includes/admin/templates/directory/general.php:66 msgid "" "If you do not want to show all members, select only user roles to appear in " "this directory" msgstr "" -#: includes/admin/templates/directory/general.php:42 +#: includes/admin/templates/directory/general.php:74 msgid "Only show members who have uploaded a profile photo" msgstr "" -#: includes/admin/templates/directory/general.php:43 +#: includes/admin/templates/directory/general.php:75 msgid "If 'Use Gravatars' as profile photo is enabled, this option is ignored" msgstr "" -#: includes/admin/templates/directory/general.php:49 +#: includes/admin/templates/directory/general.php:81 msgid "Only show members who have uploaded a cover photo" msgstr "" -#: includes/admin/templates/directory/general.php:55 +#: includes/admin/templates/directory/general.php:87 msgid "Sort users by" msgstr "" -#: includes/admin/templates/directory/general.php:56 +#: includes/admin/templates/directory/general.php:88 msgid "Sort users by a specific parameter in the directory" msgstr "" -#: includes/admin/templates/directory/general.php:58 -msgid "New users first" -msgstr "" - -#: includes/admin/templates/directory/general.php:59 -msgid "Old users first" -msgstr "" - -#: includes/admin/templates/directory/general.php:60 -msgid "Last login" -msgstr "" - -#: includes/admin/templates/directory/general.php:61 -msgid "Display Name" -msgstr "" - -#: includes/admin/templates/directory/general.php:62 -#: includes/core/class-builtin.php:602 includes/core/class-builtin.php:605 -msgid "First Name" -msgstr "" - -#: includes/admin/templates/directory/general.php:63 -#: includes/core/class-builtin.php:612 includes/core/class-builtin.php:615 -msgid "Last Name" -msgstr "" - -#: includes/admin/templates/directory/general.php:64 -msgid "Random" -msgstr "" - -#: includes/admin/templates/directory/general.php:65 -msgid "Other (custom field)" -msgstr "" - -#: includes/admin/templates/directory/general.php:72 +#: includes/admin/templates/directory/general.php:95 msgid "Meta key" msgstr "" -#: includes/admin/templates/directory/general.php:73 +#: includes/admin/templates/directory/general.php:96 msgid "To sort by a custom field, enter the meta key of field here" msgstr "" -#: includes/admin/templates/directory/general.php:80 +#: includes/admin/templates/directory/general.php:103 msgid "Only show specific users (Enter one username per line)" msgstr "" -#: includes/admin/templates/directory/pagination.php:10 +#: includes/admin/templates/directory/pagination.php:9 msgid "Number of profiles per page" msgstr "" -#: includes/admin/templates/directory/pagination.php:11 +#: includes/admin/templates/directory/pagination.php:10 msgid "Number of profiles to appear on page for standard users" msgstr "" -#: includes/admin/templates/directory/pagination.php:18 +#: includes/admin/templates/directory/pagination.php:17 msgid "Number of profiles per page (for Mobiles & Tablets)" msgstr "" -#: includes/admin/templates/directory/pagination.php:19 +#: includes/admin/templates/directory/pagination.php:18 msgid "Number of profiles to appear on page for mobile users" msgstr "" -#: includes/admin/templates/directory/pagination.php:26 +#: includes/admin/templates/directory/pagination.php:25 msgid "Maximum number of profiles" msgstr "" -#: includes/admin/templates/directory/pagination.php:27 +#: includes/admin/templates/directory/pagination.php:26 msgid "" "Use this setting to control the maximum number of profiles to appear in this " "directory. Leave blank to disable this limit" msgstr "" -#: includes/admin/templates/directory/profile.php:20 +#: includes/admin/templates/directory/profile.php:19 msgid "Enable Profile Photo" msgstr "" -#: includes/admin/templates/directory/profile.php:26 +#: includes/admin/templates/directory/profile.php:25 msgid "Enable Cover Photo" msgstr "" -#: includes/admin/templates/directory/profile.php:27 +#: includes/admin/templates/directory/profile.php:26 msgid "If turned on, the users cover photo will appear in the directory" msgstr "" -#: includes/admin/templates/directory/profile.php:33 +#: includes/admin/templates/directory/profile.php:32 msgid "Show display name" msgstr "" -#: includes/admin/templates/directory/profile.php:39 +#: includes/admin/templates/directory/profile.php:38 msgid "Show tagline below profile name" msgstr "" -#: includes/admin/templates/directory/profile.php:45 +#: includes/admin/templates/directory/profile.php:44 msgid "Choose field(s) to display in tagline" msgstr "" -#: includes/admin/templates/directory/profile.php:48 -#: includes/admin/templates/directory/profile.php:70 -#: includes/admin/templates/directory/search.php:57 +#: includes/admin/templates/directory/profile.php:47 +#: includes/admin/templates/directory/profile.php:69 +#: includes/admin/templates/directory/search.php:78 msgid "Add New Custom Field" msgstr "" -#: includes/admin/templates/directory/profile.php:55 +#: includes/admin/templates/directory/profile.php:54 msgid "Show extra user information below tagline?" msgstr "" -#: includes/admin/templates/directory/profile.php:61 +#: includes/admin/templates/directory/profile.php:60 msgid "Enable reveal section transition by default" msgstr "" -#: includes/admin/templates/directory/profile.php:68 +#: includes/admin/templates/directory/profile.php:67 msgid "Choose field(s) to display in reveal section" msgstr "" -#: includes/admin/templates/directory/profile.php:78 +#: includes/admin/templates/directory/profile.php:77 msgid "Show social connect icons" msgstr "" -#: includes/admin/templates/directory/search.php:28 +#: includes/admin/templates/directory/search.php:49 msgid "Enable Search feature" msgstr "" -#: includes/admin/templates/directory/search.php:29 +#: includes/admin/templates/directory/search.php:50 msgid "If turned on, users will be able to search members in this directory" msgstr "" -#: includes/admin/templates/directory/search.php:35 +#: includes/admin/templates/directory/search.php:56 msgid "Show results only after search" msgstr "" -#: includes/admin/templates/directory/search.php:36 +#: includes/admin/templates/directory/search.php:57 msgid "If turned on, member results will only appear after search is performed" msgstr "" -#: includes/admin/templates/directory/search.php:44 +#: includes/admin/templates/directory/search.php:65 msgid "User Roles that can use search" msgstr "" -#: includes/admin/templates/directory/search.php:45 +#: includes/admin/templates/directory/search.php:66 msgid "If you want to allow specific user roles to be able to search only" msgstr "" -#: includes/admin/templates/directory/search.php:53 +#: includes/admin/templates/directory/search.php:74 msgid "Choose field(s) to enable in search" msgstr "" -#: includes/admin/templates/directory/search.php:63 +#: includes/admin/templates/directory/search.php:84 msgid "Results Text" msgstr "" -#: includes/admin/templates/directory/search.php:64 +#: includes/admin/templates/directory/search.php:85 msgid "" "Customize the search result text . e.g. Found 3,000 Members. Leave this " "blank to not show result text" msgstr "" -#: includes/admin/templates/directory/search.php:65 -#: includes/class-config.php:58 includes/class-config.php:130 +#: includes/admin/templates/directory/search.php:86 +#: includes/class-config.php:152 includes/class-config.php:247 msgid "{total_users} Members" msgstr "" -#: includes/admin/templates/directory/search.php:71 +#: includes/admin/templates/directory/search.php:92 msgid "Single Result Text" msgstr "" -#: includes/admin/templates/directory/search.php:72 +#: includes/admin/templates/directory/search.php:93 msgid "Same as above but in case of 1 user found only" msgstr "" -#: includes/admin/templates/directory/search.php:73 -#: includes/class-config.php:59 includes/class-config.php:131 +#: includes/admin/templates/directory/search.php:94 +#: includes/class-config.php:153 includes/class-config.php:248 msgid "{total_users} Member" msgstr "" -#: includes/admin/templates/directory/search.php:79 +#: includes/admin/templates/directory/search.php:100 msgid "Custom text if no users were found" msgstr "" -#: includes/admin/templates/directory/search.php:80 +#: includes/admin/templates/directory/search.php:101 msgid "" "This is the text that is displayed if no users are found during a search" msgstr "" -#: includes/admin/templates/directory/search.php:81 -#: includes/class-config.php:60 +#: includes/admin/templates/directory/search.php:102 +#: includes/class-config.php:154 msgid "We are sorry. We cannot find any users who match your search criteria." msgstr "" -#: includes/admin/templates/form/builder.php:12 +#: includes/admin/templates/extensions.php:155 +msgid "View our Extensions Bundle" +msgstr "" + +#: includes/admin/templates/extensions.php:164 +msgid "Premium" +msgstr "" + +#: includes/admin/templates/extensions.php:169 +msgid "Free" +msgstr "" + +#: includes/admin/templates/extensions.php:195 +#: includes/admin/templates/extensions.php:229 +msgid "Get this Add on" +msgstr "" + +#: includes/admin/templates/extensions.php:200 +#: includes/admin/templates/extensions.php:234 +msgid "More Details" +msgstr "" + +#: includes/admin/templates/form/builder.php:9 msgid "Live Preview" msgstr "" -#: includes/admin/templates/form/builder.php:26 +#: includes/admin/templates/form/builder.php:23 msgid "Add Master Row" msgstr "" #: includes/admin/templates/form/login_customize.php:9 #: includes/admin/templates/form/profile_customize.php:17 -#: includes/admin/templates/form/register_customize.php:17 +#: includes/admin/templates/form/register_customize.php:16 msgid "Apply custom settings to this form" msgstr "" #: includes/admin/templates/form/login_customize.php:10 #: includes/admin/templates/form/profile_customize.php:18 -#: includes/admin/templates/form/register_customize.php:18 +#: includes/admin/templates/form/register_customize.php:17 msgid "" "Switch to yes if you want to customize this form settings, styling & " "appearance" @@ -2744,25 +2986,25 @@ msgstr "" #: includes/admin/templates/form/login_customize.php:28 #: includes/admin/templates/form/profile_customize.php:45 -#: includes/admin/templates/form/register_customize.php:44 +#: includes/admin/templates/form/register_customize.php:43 msgid "Max. Width (px)" msgstr "" #: includes/admin/templates/form/login_customize.php:29 #: includes/admin/templates/form/profile_customize.php:46 -#: includes/admin/templates/form/register_customize.php:45 +#: includes/admin/templates/form/register_customize.php:44 msgid "The maximum width of shortcode in pixels e.g. 600px" msgstr "" #: includes/admin/templates/form/login_customize.php:36 #: includes/admin/templates/form/profile_customize.php:61 -#: includes/admin/templates/form/register_customize.php:52 +#: includes/admin/templates/form/register_customize.php:51 msgid "Field Icons" msgstr "" #: includes/admin/templates/form/login_customize.php:37 #: includes/admin/templates/form/profile_customize.php:62 -#: includes/admin/templates/form/register_customize.php:53 +#: includes/admin/templates/form/register_customize.php:52 msgid "" "Whether to show field icons and where to show them relative to the field" msgstr "" @@ -2771,8 +3013,8 @@ msgstr "" #: includes/admin/templates/form/login_customize.php:68 #: includes/admin/templates/form/profile_customize.php:74 #: includes/admin/templates/form/profile_customize.php:93 -#: includes/admin/templates/form/register_customize.php:65 -#: includes/admin/templates/form/register_customize.php:84 +#: includes/admin/templates/form/register_customize.php:64 +#: includes/admin/templates/form/register_customize.php:83 msgid "Primary Button Text" msgstr "" @@ -2780,14 +3022,14 @@ msgstr "" #: includes/admin/templates/form/login_customize.php:69 #: includes/admin/templates/form/profile_customize.php:75 #: includes/admin/templates/form/profile_customize.php:94 -#: includes/admin/templates/form/register_customize.php:66 -#: includes/admin/templates/form/register_customize.php:85 +#: includes/admin/templates/form/register_customize.php:65 +#: includes/admin/templates/form/register_customize.php:84 msgid "Customize the button text" msgstr "" #: includes/admin/templates/form/login_customize.php:57 #: includes/admin/templates/form/profile_customize.php:82 -#: includes/admin/templates/form/register_customize.php:73 +#: includes/admin/templates/form/register_customize.php:72 msgid "Show Secondary Button" msgstr "" @@ -2799,23 +3041,23 @@ msgstr "" msgid "Show \"Remember Me\"?" msgstr "" -#: includes/admin/templates/form/login_settings.php:10 +#: includes/admin/templates/form/login_settings.php:9 msgid "Redirection after Login" msgstr "" -#: includes/admin/templates/form/login_settings.php:11 +#: includes/admin/templates/form/login_settings.php:10 msgid "" "Change this If you want to override role redirection settings after login " "only." msgstr "" -#: includes/admin/templates/form/login_settings.php:15 +#: includes/admin/templates/form/login_settings.php:14 #: includes/admin/templates/role/login.php:16 #: includes/admin/templates/role/register.php:27 msgid "Redirect to profile" msgstr "" -#: includes/admin/templates/form/login_settings.php:16 +#: includes/admin/templates/form/login_settings.php:15 #: includes/admin/templates/role/login.php:17 #: includes/admin/templates/role/register.php:28 #: includes/admin/templates/role/register.php:55 @@ -2823,17 +3065,17 @@ msgstr "" msgid "Redirect to URL" msgstr "" -#: includes/admin/templates/form/login_settings.php:17 +#: includes/admin/templates/form/login_settings.php:16 #: includes/admin/templates/role/login.php:18 msgid "Refresh active page" msgstr "" -#: includes/admin/templates/form/login_settings.php:18 +#: includes/admin/templates/form/login_settings.php:17 #: includes/admin/templates/role/login.php:19 msgid "Redirect to WordPress Admin" msgstr "" -#: includes/admin/templates/form/login_settings.php:24 +#: includes/admin/templates/form/login_settings.php:23 #: includes/admin/templates/role/delete.php:23 #: includes/admin/templates/role/login.php:25 #: includes/admin/templates/role/logout.php:23 @@ -2917,7 +3159,7 @@ msgstr "" msgid "Add New Field" msgstr "" -#: includes/admin/templates/form/register_customize.php:28 +#: includes/admin/templates/form/register_customize.php:27 msgid "Assign role to form" msgstr "" @@ -2925,22 +3167,23 @@ msgstr "" msgid "Edit Field" msgstr "" -#: includes/admin/templates/modal/dynamic_edit_field.php:14 -#: includes/admin/templates/modal/dynamic_edit_row.php:14 +#: includes/admin/templates/modal/dynamic_edit_field.php:12 +#: includes/admin/templates/modal/dynamic_edit_row.php:12 msgid "Update" msgstr "" -#: includes/admin/templates/modal/dynamic_edit_field.php:15 -#: includes/admin/templates/modal/dynamic_edit_row.php:15 -#: includes/admin/templates/modal/dynamic_new_divider.php:15 -#: includes/admin/templates/modal/dynamic_new_field.php:15 -#: includes/admin/templates/modal/dynamic_new_group.php:15 +#: includes/admin/templates/modal/dynamic_edit_field.php:13 +#: includes/admin/templates/modal/dynamic_edit_row.php:13 +#: includes/admin/templates/modal/dynamic_new_divider.php:13 +#: includes/admin/templates/modal/dynamic_new_field.php:13 +#: includes/admin/templates/modal/dynamic_new_group.php:13 +#: includes/admin/templates/modal/fonticons.php:11 #: includes/admin/templates/role/publish.php:24 -#: includes/core/class-fields.php:1723 includes/core/class-fields.php:1811 -#: includes/core/um-actions-profile.php:227 -#: includes/core/um-actions-profile.php:342 -#: includes/core/um-actions-profile.php:354 -#: includes/core/um-actions-profile.php:525 +#: includes/core/class-fields.php:2206 includes/core/class-fields.php:2294 +#: includes/core/um-actions-profile.php:593 +#: includes/core/um-actions-profile.php:733 +#: includes/core/um-actions-profile.php:766 +#: includes/core/um-actions-profile.php:1068 msgid "Cancel" msgstr "" @@ -2952,7 +3195,7 @@ msgstr "" msgid "Live Form Preview" msgstr "" -#: includes/admin/templates/modal/dynamic_form_preview.php:12 +#: includes/admin/templates/modal/dynamic_form_preview.php:10 msgid "Continue editing" msgstr "" @@ -2960,9 +3203,9 @@ msgstr "" msgid "Add a New Divider" msgstr "" -#: includes/admin/templates/modal/dynamic_new_divider.php:14 -#: includes/admin/templates/modal/dynamic_new_field.php:14 -#: includes/admin/templates/modal/dynamic_new_group.php:14 +#: includes/admin/templates/modal/dynamic_new_divider.php:12 +#: includes/admin/templates/modal/dynamic_new_field.php:12 +#: includes/admin/templates/modal/dynamic_new_group.php:12 msgid "Add" msgstr "" @@ -2987,48 +3230,52 @@ msgstr "" msgid "Choose from %s available icons" msgstr "" -#: includes/admin/templates/role/admin.php:11 +#: includes/admin/templates/modal/fonticons.php:10 +msgid "Finish" +msgstr "" + +#: includes/admin/templates/role/admin-permissions.php:11 msgid "Can access wp-admin?" msgstr "" -#: includes/admin/templates/role/admin.php:12 +#: includes/admin/templates/role/admin-permissions.php:12 msgid "" "The core admin role must always have access to wp-admin / WordPress backend" msgstr "" -#: includes/admin/templates/role/admin.php:18 +#: includes/admin/templates/role/admin-permissions.php:18 msgid "Force hiding adminbar in frontend?" msgstr "" -#: includes/admin/templates/role/admin.php:19 +#: includes/admin/templates/role/admin-permissions.php:19 msgid "Show/hide the adminbar on frontend" msgstr "" -#: includes/admin/templates/role/admin.php:25 +#: includes/admin/templates/role/admin-permissions.php:25 msgid "Can edit other member accounts?" msgstr "" -#: includes/admin/templates/role/admin.php:26 -#: includes/admin/templates/role/admin.php:43 +#: includes/admin/templates/role/admin-permissions.php:26 +#: includes/admin/templates/role/admin-permissions.php:43 msgid "Allow this role to edit accounts of other members" msgstr "" -#: includes/admin/templates/role/admin.php:32 +#: includes/admin/templates/role/admin-permissions.php:32 msgid "Can edit these user roles only" msgstr "" -#: includes/admin/templates/role/admin.php:33 -#: includes/admin/templates/role/admin.php:50 +#: includes/admin/templates/role/admin-permissions.php:33 +#: includes/admin/templates/role/admin-permissions.php:50 msgid "" "Which roles that role can edit, choose none to allow role to edit all member " "roles" msgstr "" -#: includes/admin/templates/role/admin.php:42 +#: includes/admin/templates/role/admin-permissions.php:42 msgid "Can delete other member accounts?" msgstr "" -#: includes/admin/templates/role/admin.php:49 +#: includes/admin/templates/role/admin-permissions.php:49 msgid "Can delete these user roles only" msgstr "" @@ -3243,31 +3490,31 @@ msgid "" "been successful or not." msgstr "" -#: includes/admin/templates/role/role-edit.php:34 +#: includes/admin/templates/role/role-edit.php:70 msgid "Title is empty!" msgstr "" -#: includes/admin/templates/role/role-edit.php:51 +#: includes/admin/templates/role/role-edit.php:95 msgid "Role already exists!" msgstr "" -#: includes/admin/templates/role/role-edit.php:83 +#: includes/admin/templates/role/role-edit.php:134 msgid "Add New Role" msgstr "" -#: includes/admin/templates/role/role-edit.php:83 +#: includes/admin/templates/role/role-edit.php:134 msgid "Edit Role" msgstr "" -#: includes/admin/templates/role/role-edit.php:92 +#: includes/admin/templates/role/role-edit.php:143 msgid "User Role Added Successfully." msgstr "" -#: includes/admin/templates/role/role-edit.php:95 +#: includes/admin/templates/role/role-edit.php:146 msgid "User Role Updated Successfully." msgstr "" -#: includes/admin/templates/role/role-edit.php:121 +#: includes/admin/templates/role/role-edit.php:172 msgid "Enter Title Here" msgstr "" @@ -3280,2528 +3527,2535 @@ msgstr "" msgid "Check All" msgstr "" -#: includes/class-config.php:35 +#: includes/class-config.php:129 includes/class-config.php:734 msgid "User" msgstr "" -#: includes/class-config.php:36 includes/class-config.php:117 -#: includes/class-config.php:123 +#: includes/class-config.php:130 includes/class-config.php:234 +#: includes/class-config.php:240 includes/class-config.php:735 msgid "Login" msgstr "" -#: includes/class-config.php:37 includes/class-config.php:115 -#: includes/class-config.php:127 +#: includes/class-config.php:131 includes/class-config.php:232 +#: includes/class-config.php:244 includes/class-config.php:736 msgid "Register" msgstr "" -#: includes/class-config.php:38 +#: includes/class-config.php:132 includes/class-config.php:737 msgid "Members" msgstr "" -#: includes/class-config.php:39 includes/core/um-actions-profile.php:524 -#: includes/core/um-actions-user.php:80 +#: includes/class-config.php:133 includes/class-config.php:738 +#: includes/core/um-actions-profile.php:1067 +#: includes/core/um-actions-user.php:51 msgid "Logout" msgstr "" -#: includes/class-config.php:41 includes/core/class-builtin.php:976 +#: includes/class-config.php:135 includes/class-config.php:740 +#: includes/core/class-builtin.php:1092 msgid "Password Reset" msgstr "" -#: includes/class-config.php:158 +#: includes/class-config.php:307 msgid "Account Welcome Email" msgstr "" -#: includes/class-config.php:169 +#: includes/class-config.php:318 msgid "" "Whether to send the user an email when his account is automatically approved" msgstr "" -#: includes/class-config.php:175 +#: includes/class-config.php:324 msgid "Account Activation Email" msgstr "" -#: includes/class-config.php:183 +#: includes/class-config.php:332 msgid "" "Whether to send the user an email when his account needs e-mail activation" msgstr "" -#: includes/class-config.php:188 +#: includes/class-config.php:337 msgid "Your account is pending review" msgstr "" -#: includes/class-config.php:196 +#: includes/class-config.php:345 msgid "Whether to send the user an email when his account needs admin review" msgstr "" -#: includes/class-config.php:201 +#: includes/class-config.php:350 msgid "Account Approved Email" msgstr "" -#: includes/class-config.php:213 +#: includes/class-config.php:362 msgid "Whether to send the user an email when his account is approved" msgstr "" -#: includes/class-config.php:218 +#: includes/class-config.php:367 msgid "Account Rejected Email" msgstr "" -#: includes/class-config.php:225 +#: includes/class-config.php:374 msgid "Whether to send the user an email when his account is rejected" msgstr "" -#: includes/class-config.php:230 +#: includes/class-config.php:379 msgid "Account Deactivated Email" msgstr "" -#: includes/class-config.php:237 +#: includes/class-config.php:386 msgid "Whether to send the user an email when his account is deactivated" msgstr "" -#: includes/class-config.php:243 +#: includes/class-config.php:392 msgid "Account Deleted Email" msgstr "" -#: includes/class-config.php:250 +#: includes/class-config.php:399 msgid "Whether to send the user an email when his account is deleted" msgstr "" -#: includes/class-config.php:256 +#: includes/class-config.php:405 msgid "Password Reset Email" msgstr "" -#: includes/class-config.php:264 +#: includes/class-config.php:413 msgid "" "Whether to send an email when users changed their password (Recommended, " "please keep on)" msgstr "" -#: includes/class-config.php:270 +#: includes/class-config.php:419 msgid "Password Changed Email" msgstr "" -#: includes/class-config.php:277 +#: includes/class-config.php:426 msgid "" "Whether to send the user an email when he request to reset password " "(Recommended, please keep on)" msgstr "" -#: includes/class-config.php:283 +#: includes/class-config.php:432 +msgid "Account Updated Email" +msgstr "" + +#: includes/class-config.php:439 +msgid "Whether to send the user an email when he updated their account" +msgstr "" + +#: includes/class-config.php:445 msgid "New User Notification" msgstr "" -#: includes/class-config.php:289 +#: includes/class-config.php:451 msgid "Whether to receive notification when a new user account is approved" msgstr "" -#: includes/class-config.php:295 +#: includes/class-config.php:457 msgid "Account Needs Review Notification" msgstr "" -#: includes/class-config.php:302 +#: includes/class-config.php:464 msgid "Whether to receive notification when an account needs admin review" msgstr "" -#: includes/class-config.php:307 +#: includes/class-config.php:469 msgid "Account Deletion Notification" msgstr "" -#: includes/class-config.php:310 +#: includes/class-config.php:472 msgid "Whether to receive notification when an account is deleted" msgstr "" -#: includes/class-config.php:333 +#: includes/class-config.php:495 msgid "" "Are you sure you want to delete your account? This will erase all of your " "account data from the site. To delete your account enter your password below" msgstr "" -#: includes/class-dependencies.php:133 +#: includes/class-dependencies.php:158 #, php-format msgid "" -"Sorry, but for this version of extension \"%s\" is required " -"version of the %s core not lower than %s." +"This version of \"%s\" requires the core %s plugin to be %s or higher." msgstr "" -#: includes/class-dependencies.php:135 +#: includes/class-dependencies.php:160 #, php-format -msgid "" -"Please update %s core to latest version or install previous versions of this " -"extension." +msgid "Please update %s to the latest version." msgstr "" -#: includes/class-dependencies.php:137 +#: includes/class-dependencies.php:162 #, php-format msgid "" "Sorry, but this version of %s does not work with extension " "\"%s\" %s version." msgstr "" -#: includes/class-dependencies.php:139 +#: includes/class-dependencies.php:164 #, php-format msgid "" "Please update extension \"%s\" to the latest version, or " "install previous versions of %s." msgstr "" -#: includes/class-dependencies.php:148 +#: includes/class-dependencies.php:173 #, php-format msgid "Please check \"%s\" %s extension's folder name." msgstr "" -#: includes/class-dependencies.php:150 +#: includes/class-dependencies.php:175 #, php-format msgid "Correct folder name is \"%s\"" msgstr "" -#: includes/class-init.php:122 includes/class-init.php:131 +#: includes/class-init.php:145 includes/class-init.php:154 msgid "Cheatin’ huh?" msgstr "" -#: includes/class-init.php:234 -#, php-format -msgid "" -"ATTENTION! You have pre-2.0 version activated %s extensions. Please install the latest versions." -msgstr "" - -#: includes/core/class-account.php:39 +#: includes/core/class-account.php:91 msgid "Update Account" msgstr "" -#: includes/core/class-account.php:44 +#: includes/core/class-account.php:96 msgid "Change Password" msgstr "" -#: includes/core/class-account.php:45 +#: includes/core/class-account.php:97 msgid "Update Password" msgstr "" -#: includes/core/class-account.php:50 +#: includes/core/class-account.php:102 msgid "Privacy" msgstr "" -#: includes/core/class-account.php:51 +#: includes/core/class-account.php:103 msgid "Update Privacy" msgstr "" -#: includes/core/class-account.php:56 +#: includes/core/class-account.php:108 msgid "Notifications" msgstr "" -#: includes/core/class-account.php:57 +#: includes/core/class-account.php:109 msgid "Update Notifications" msgstr "" -#: includes/core/class-account.php:65 includes/core/class-account.php:66 -#: includes/core/class-builtin.php:1027 includes/core/class-builtin.php:1030 +#: includes/core/class-account.php:117 includes/core/class-account.php:118 +#: includes/core/class-builtin.php:1143 includes/core/class-builtin.php:1146 msgid "Delete Account" msgstr "" -#: includes/core/class-builtin.php:88 +#: includes/core/class-builtin.php:132 +msgid "Please provide a meta key" +msgstr "" + +#: includes/core/class-builtin.php:133 msgid "Your meta key is a reserved core field and cannot be used" msgstr "" -#: includes/core/class-builtin.php:89 +#: includes/core/class-builtin.php:134 msgid "Your meta key is a predefined reserved key and cannot be used" msgstr "" -#: includes/core/class-builtin.php:90 +#: includes/core/class-builtin.php:135 msgid "Your meta key already exists in your fields list" msgstr "" -#: includes/core/class-builtin.php:91 +#: includes/core/class-builtin.php:136 msgid "Your meta key contains illegal characters. Please correct it." msgstr "" -#: includes/core/class-builtin.php:99 +#: includes/core/class-builtin.php:149 msgid "Please provide a date range beginning" msgstr "" -#: includes/core/class-builtin.php:100 +#: includes/core/class-builtin.php:150 msgid "Please enter a valid start date in the date range" msgstr "" -#: includes/core/class-builtin.php:108 +#: includes/core/class-builtin.php:164 msgid "Please provide a date range end" msgstr "" -#: includes/core/class-builtin.php:109 +#: includes/core/class-builtin.php:165 msgid "Please enter a valid end date in the date range" msgstr "" -#: includes/core/class-builtin.php:110 +#: includes/core/class-builtin.php:166 msgid "The end of date range must be greater than the start of date range" msgstr "" -#: includes/core/class-builtin.php:146 includes/core/class-builtin.php:162 -#: includes/core/class-builtin.php:178 includes/core/class-builtin.php:194 -#: includes/core/class-builtin.php:214 includes/core/class-builtin.php:234 -#: includes/core/class-builtin.php:254 includes/core/class-builtin.php:274 -#: includes/core/class-builtin.php:290 includes/core/class-builtin.php:306 -#: includes/core/class-builtin.php:326 includes/core/class-builtin.php:346 -#: includes/core/class-builtin.php:372 includes/core/class-builtin.php:388 -#: includes/core/class-builtin.php:405 includes/core/class-builtin.php:418 -#: includes/core/class-builtin.php:435 includes/core/class-builtin.php:448 -#: includes/core/class-builtin.php:461 includes/core/class-builtin.php:477 -#: includes/core/class-builtin.php:493 includes/core/class-builtin.php:509 +#: includes/core/class-builtin.php:208 includes/core/class-builtin.php:224 +#: includes/core/class-builtin.php:240 includes/core/class-builtin.php:256 +#: includes/core/class-builtin.php:276 includes/core/class-builtin.php:296 +#: includes/core/class-builtin.php:316 includes/core/class-builtin.php:336 +#: includes/core/class-builtin.php:352 includes/core/class-builtin.php:368 +#: includes/core/class-builtin.php:388 includes/core/class-builtin.php:408 +#: includes/core/class-builtin.php:434 includes/core/class-builtin.php:450 +#: includes/core/class-builtin.php:467 includes/core/class-builtin.php:480 +#: includes/core/class-builtin.php:497 includes/core/class-builtin.php:510 +#: includes/core/class-builtin.php:523 includes/core/class-builtin.php:539 +#: includes/core/class-builtin.php:555 includes/core/class-builtin.php:571 msgid "You must provide a title" msgstr "" -#: includes/core/class-builtin.php:155 +#: includes/core/class-builtin.php:217 msgid "Number" msgstr "" -#: includes/core/class-builtin.php:201 includes/core/class-builtin.php:221 -#: includes/core/class-builtin.php:241 includes/core/class-builtin.php:261 +#: includes/core/class-builtin.php:263 includes/core/class-builtin.php:283 +#: includes/core/class-builtin.php:303 includes/core/class-builtin.php:323 msgid "You have not added any choices yet." msgstr "" -#: includes/core/class-builtin.php:313 includes/core/class-builtin.php:333 +#: includes/core/class-builtin.php:375 includes/core/class-builtin.php:395 msgid "Please enter a valid size" msgstr "" -#: includes/core/class-builtin.php:353 +#: includes/core/class-builtin.php:415 msgid "Number of years is not valid" msgstr "" -#: includes/core/class-builtin.php:422 +#: includes/core/class-builtin.php:484 msgid "You must add a shortcode to the content area" msgstr "" -#: includes/core/class-builtin.php:559 includes/core/class-user.php:1062 +#: includes/core/class-builtin.php:663 includes/core/class-user.php:1487 msgid "Only me" msgstr "" -#: includes/core/class-builtin.php:577 includes/core/class-builtin.php:580 -#: includes/core/class-builtin.php:983 +#: includes/core/class-builtin.php:682 includes/core/class-builtin.php:685 +#: includes/core/class-builtin.php:1099 msgid "Username or E-mail" msgstr "" -#: includes/core/class-builtin.php:588 includes/core/class-builtin.php:591 -#: includes/core/class-builtin.php:1041 includes/core/class-builtin.php:1044 +#: includes/core/class-builtin.php:693 includes/core/class-builtin.php:696 +#: includes/core/class-builtin.php:1157 includes/core/class-builtin.php:1160 msgid "Password" msgstr "" -#: includes/core/class-builtin.php:632 includes/core/class-builtin.php:635 +#: includes/core/class-builtin.php:737 includes/core/class-builtin.php:740 +#: includes/core/class-builtin.php:1334 +msgid "Website URL" +msgstr "" + +#: includes/core/class-builtin.php:748 includes/core/class-builtin.php:751 msgid "Registration Date" msgstr "" -#: includes/core/class-builtin.php:643 includes/core/class-builtin.php:646 +#: includes/core/class-builtin.php:759 includes/core/class-builtin.php:762 msgid "Last Login" msgstr "" -#: includes/core/class-builtin.php:654 includes/core/class-builtin.php:657 +#: includes/core/class-builtin.php:770 includes/core/class-builtin.php:773 msgid "E-mail Address" msgstr "" -#: includes/core/class-builtin.php:665 includes/core/class-builtin.php:668 +#: includes/core/class-builtin.php:781 includes/core/class-builtin.php:784 msgid "Secondary E-mail Address" msgstr "" -#: includes/core/class-builtin.php:677 includes/core/class-builtin.php:680 +#: includes/core/class-builtin.php:793 includes/core/class-builtin.php:796 msgid "Biography" msgstr "" -#: includes/core/class-builtin.php:686 +#: includes/core/class-builtin.php:802 msgid "Enter a bit about yourself..." msgstr "" -#: includes/core/class-builtin.php:690 includes/core/class-builtin.php:693 +#: includes/core/class-builtin.php:806 includes/core/class-builtin.php:809 msgid "Birth Date" msgstr "" -#: includes/core/class-builtin.php:704 includes/core/class-builtin.php:707 +#: includes/core/class-builtin.php:820 includes/core/class-builtin.php:823 msgid "Gender" msgstr "" -#: includes/core/class-builtin.php:711 +#: includes/core/class-builtin.php:827 msgid "Male" msgstr "" -#: includes/core/class-builtin.php:711 +#: includes/core/class-builtin.php:827 msgid "Female" msgstr "" -#: includes/core/class-builtin.php:715 includes/core/class-builtin.php:718 +#: includes/core/class-builtin.php:831 includes/core/class-builtin.php:834 msgid "Country" msgstr "" -#: includes/core/class-builtin.php:719 +#: includes/core/class-builtin.php:835 msgid "Choose a Country" msgstr "" -#: includes/core/class-builtin.php:727 includes/core/class-builtin.php:730 +#: includes/core/class-builtin.php:843 includes/core/class-builtin.php:846 msgid "Facebook" msgstr "" -#: includes/core/class-builtin.php:745 includes/core/class-builtin.php:748 +#: includes/core/class-builtin.php:861 includes/core/class-builtin.php:864 msgid "Twitter" msgstr "" -#: includes/core/class-builtin.php:763 includes/core/class-builtin.php:766 +#: includes/core/class-builtin.php:879 includes/core/class-builtin.php:882 msgid "LinkedIn" msgstr "" -#: includes/core/class-builtin.php:781 includes/core/class-builtin.php:784 +#: includes/core/class-builtin.php:897 includes/core/class-builtin.php:900 msgid "Google+" msgstr "" -#: includes/core/class-builtin.php:799 includes/core/class-builtin.php:802 +#: includes/core/class-builtin.php:915 includes/core/class-builtin.php:918 msgid "Instagram" msgstr "" -#: includes/core/class-builtin.php:817 includes/core/class-builtin.php:820 -#: includes/core/class-builtin.php:1161 +#: includes/core/class-builtin.php:933 includes/core/class-builtin.php:936 +#: includes/core/class-builtin.php:1327 msgid "Skype ID" msgstr "" -#: includes/core/class-builtin.php:832 includes/core/class-builtin.php:835 +#: includes/core/class-builtin.php:948 includes/core/class-builtin.php:951 msgid "YouTube" msgstr "" -#: includes/core/class-builtin.php:850 includes/core/class-builtin.php:853 +#: includes/core/class-builtin.php:966 includes/core/class-builtin.php:969 msgid "SoundCloud" msgstr "" -#: includes/core/class-builtin.php:868 includes/core/class-builtin.php:871 +#: includes/core/class-builtin.php:984 includes/core/class-builtin.php:987 msgid "VKontakte" msgstr "" -#: includes/core/class-builtin.php:886 +#: includes/core/class-builtin.php:1002 msgid "Roles (Dropdown)" msgstr "" -#: includes/core/class-builtin.php:889 includes/core/class-builtin.php:901 +#: includes/core/class-builtin.php:1005 includes/core/class-builtin.php:1017 msgid "Account Type" msgstr "" -#: includes/core/class-builtin.php:898 +#: includes/core/class-builtin.php:1014 msgid "Roles (Radio)" msgstr "" -#: includes/core/class-builtin.php:909 +#: includes/core/class-builtin.php:1025 msgid "Languages" msgstr "" -#: includes/core/class-builtin.php:912 +#: includes/core/class-builtin.php:1028 msgid "Languages Spoken" msgstr "" -#: includes/core/class-builtin.php:913 +#: includes/core/class-builtin.php:1029 msgid "Select languages" msgstr "" -#: includes/core/class-builtin.php:921 includes/core/class-builtin.php:924 -#: includes/core/class-builtin.php:1160 +#: includes/core/class-builtin.php:1037 includes/core/class-builtin.php:1040 +#: includes/core/class-builtin.php:1326 msgid "Phone Number" msgstr "" -#: includes/core/class-builtin.php:933 includes/core/class-builtin.php:936 +#: includes/core/class-builtin.php:1049 includes/core/class-builtin.php:1052 msgid "Mobile Number" msgstr "" -#: includes/core/class-builtin.php:947 +#: includes/core/class-builtin.php:1063 msgid "Profile Photo" msgstr "" -#: includes/core/class-builtin.php:950 +#: includes/core/class-builtin.php:1066 msgid "Change your profile photo" msgstr "" -#: includes/core/class-builtin.php:951 +#: includes/core/class-builtin.php:1067 msgid "Upload your photo here" msgstr "" -#: includes/core/class-builtin.php:961 +#: includes/core/class-builtin.php:1077 msgid "Cover Photo" msgstr "" -#: includes/core/class-builtin.php:964 includes/core/um-actions-profile.php:208 +#: includes/core/class-builtin.php:1080 +#: includes/core/um-actions-profile.php:557 msgid "Change your cover photo" msgstr "" -#: includes/core/class-builtin.php:965 +#: includes/core/class-builtin.php:1081 msgid "Upload profile cover here" msgstr "" -#: includes/core/class-builtin.php:978 +#: includes/core/class-builtin.php:1094 msgid "" "To reset your password, please enter your email address or username below" msgstr "" -#: includes/core/class-builtin.php:986 +#: includes/core/class-builtin.php:1102 msgid "Enter your username or email" msgstr "" -#: includes/core/class-builtin.php:996 includes/core/class-builtin.php:999 +#: includes/core/class-builtin.php:1112 includes/core/class-builtin.php:1115 msgid "Profile Privacy" msgstr "" -#: includes/core/class-builtin.php:1000 +#: includes/core/class-builtin.php:1116 msgid "Who can see your public profile?" msgstr "" -#: includes/core/class-builtin.php:1012 includes/core/class-builtin.php:1015 +#: includes/core/class-builtin.php:1128 includes/core/class-builtin.php:1131 msgid "Hide my profile from directory" msgstr "" -#: includes/core/class-builtin.php:1016 +#: includes/core/class-builtin.php:1132 msgid "Here you can hide yourself from appearing in public directory" msgstr "" -#: includes/core/class-builtin.php:1031 +#: includes/core/class-builtin.php:1147 msgid "" "If you confirm, everything related to your profile will be deleted " "permanently from the site" msgstr "" -#: includes/core/class-builtin.php:1150 +#: includes/core/class-builtin.php:1316 msgid "Alphabetic value only" msgstr "" -#: includes/core/class-builtin.php:1151 +#: includes/core/class-builtin.php:1317 msgid "Alpha-numeric value" msgstr "" -#: includes/core/class-builtin.php:1152 +#: includes/core/class-builtin.php:1318 msgid "English letters only" msgstr "" -#: includes/core/class-builtin.php:1153 +#: includes/core/class-builtin.php:1319 msgid "Facebook URL" msgstr "" -#: includes/core/class-builtin.php:1154 +#: includes/core/class-builtin.php:1320 msgid "Google+ URL" msgstr "" -#: includes/core/class-builtin.php:1155 +#: includes/core/class-builtin.php:1321 msgid "Instagram URL" msgstr "" -#: includes/core/class-builtin.php:1156 +#: includes/core/class-builtin.php:1322 msgid "LinkedIn URL" msgstr "" -#: includes/core/class-builtin.php:1157 +#: includes/core/class-builtin.php:1323 msgid "VKontakte URL" msgstr "" -#: includes/core/class-builtin.php:1158 +#: includes/core/class-builtin.php:1324 msgid "Lowercase only" msgstr "" -#: includes/core/class-builtin.php:1159 +#: includes/core/class-builtin.php:1325 msgid "Numeric value only" msgstr "" -#: includes/core/class-builtin.php:1162 +#: includes/core/class-builtin.php:1328 msgid "SoundCloud Profile" msgstr "" -#: includes/core/class-builtin.php:1163 +#: includes/core/class-builtin.php:1329 msgid "Twitter URL" msgstr "" -#: includes/core/class-builtin.php:1164 +#: includes/core/class-builtin.php:1330 msgid "Unique E-mail" msgstr "" -#: includes/core/class-builtin.php:1165 +#: includes/core/class-builtin.php:1331 msgid "Unique Metakey value" msgstr "" -#: includes/core/class-builtin.php:1166 +#: includes/core/class-builtin.php:1332 msgid "Unique Username" msgstr "" -#: includes/core/class-builtin.php:1167 +#: includes/core/class-builtin.php:1333 msgid "Unique Username/E-mail" msgstr "" -#: includes/core/class-builtin.php:1168 -msgid "Website URL" -msgstr "" - -#: includes/core/class-builtin.php:1169 +#: includes/core/class-builtin.php:1335 msgid "YouTube Profile" msgstr "" -#: includes/core/class-builtin.php:1170 +#: includes/core/class-builtin.php:1336 msgid "Custom Validation" msgstr "" -#: includes/core/class-builtin.php:1184 +#: includes/core/class-builtin.php:1375 msgid "Afar" msgstr "" -#: includes/core/class-builtin.php:1185 +#: includes/core/class-builtin.php:1376 msgid "Abkhazian" msgstr "" -#: includes/core/class-builtin.php:1186 +#: includes/core/class-builtin.php:1377 msgid "Avestan" msgstr "" -#: includes/core/class-builtin.php:1187 +#: includes/core/class-builtin.php:1378 msgid "Afrikaans" msgstr "" -#: includes/core/class-builtin.php:1188 +#: includes/core/class-builtin.php:1379 msgid "Akan" msgstr "" -#: includes/core/class-builtin.php:1189 +#: includes/core/class-builtin.php:1380 msgid "Amharic" msgstr "" -#: includes/core/class-builtin.php:1190 +#: includes/core/class-builtin.php:1381 msgid "Aragonese" msgstr "" -#: includes/core/class-builtin.php:1191 +#: includes/core/class-builtin.php:1382 msgid "Arabic" msgstr "" -#: includes/core/class-builtin.php:1192 +#: includes/core/class-builtin.php:1383 msgid "Assamese" msgstr "" -#: includes/core/class-builtin.php:1193 +#: includes/core/class-builtin.php:1384 msgid "Avaric" msgstr "" -#: includes/core/class-builtin.php:1194 +#: includes/core/class-builtin.php:1385 msgid "Aymara" msgstr "" -#: includes/core/class-builtin.php:1195 +#: includes/core/class-builtin.php:1386 msgid "Azerbaijani" msgstr "" -#: includes/core/class-builtin.php:1196 +#: includes/core/class-builtin.php:1387 msgid "Bashkir" msgstr "" -#: includes/core/class-builtin.php:1197 +#: includes/core/class-builtin.php:1388 msgid "Belarusian" msgstr "" -#: includes/core/class-builtin.php:1198 +#: includes/core/class-builtin.php:1389 msgid "Bulgarian" msgstr "" -#: includes/core/class-builtin.php:1199 +#: includes/core/class-builtin.php:1390 msgid "Bihari" msgstr "" -#: includes/core/class-builtin.php:1200 +#: includes/core/class-builtin.php:1391 msgid "Bislama" msgstr "" -#: includes/core/class-builtin.php:1201 +#: includes/core/class-builtin.php:1392 msgid "Bambara" msgstr "" -#: includes/core/class-builtin.php:1202 +#: includes/core/class-builtin.php:1393 msgid "Bengali" msgstr "" -#: includes/core/class-builtin.php:1203 +#: includes/core/class-builtin.php:1394 msgid "Tibetan" msgstr "" -#: includes/core/class-builtin.php:1204 +#: includes/core/class-builtin.php:1395 msgid "Breton" msgstr "" -#: includes/core/class-builtin.php:1205 +#: includes/core/class-builtin.php:1396 msgid "Bosnian" msgstr "" -#: includes/core/class-builtin.php:1206 +#: includes/core/class-builtin.php:1397 msgid "Catalan" msgstr "" -#: includes/core/class-builtin.php:1207 +#: includes/core/class-builtin.php:1398 msgid "Chechen" msgstr "" -#: includes/core/class-builtin.php:1208 +#: includes/core/class-builtin.php:1399 msgid "Chamorro" msgstr "" -#: includes/core/class-builtin.php:1209 +#: includes/core/class-builtin.php:1400 msgid "Corsican" msgstr "" -#: includes/core/class-builtin.php:1210 +#: includes/core/class-builtin.php:1401 msgid "Cree" msgstr "" -#: includes/core/class-builtin.php:1211 +#: includes/core/class-builtin.php:1402 msgid "Czech" msgstr "" -#: includes/core/class-builtin.php:1212 +#: includes/core/class-builtin.php:1403 msgid "Church Slavic" msgstr "" -#: includes/core/class-builtin.php:1213 +#: includes/core/class-builtin.php:1404 msgid "Chuvash" msgstr "" -#: includes/core/class-builtin.php:1214 +#: includes/core/class-builtin.php:1405 msgid "Welsh" msgstr "" -#: includes/core/class-builtin.php:1215 +#: includes/core/class-builtin.php:1406 msgid "Danish" msgstr "" -#: includes/core/class-builtin.php:1216 +#: includes/core/class-builtin.php:1407 msgid "German" msgstr "" -#: includes/core/class-builtin.php:1217 +#: includes/core/class-builtin.php:1408 msgid "Divehi" msgstr "" -#: includes/core/class-builtin.php:1218 +#: includes/core/class-builtin.php:1409 msgid "Dzongkha" msgstr "" -#: includes/core/class-builtin.php:1219 +#: includes/core/class-builtin.php:1410 msgid "Ewe" msgstr "" -#: includes/core/class-builtin.php:1220 +#: includes/core/class-builtin.php:1411 msgid "Greek" msgstr "" -#: includes/core/class-builtin.php:1221 +#: includes/core/class-builtin.php:1412 msgid "English" msgstr "" -#: includes/core/class-builtin.php:1222 +#: includes/core/class-builtin.php:1413 msgid "Esperanto" msgstr "" -#: includes/core/class-builtin.php:1223 +#: includes/core/class-builtin.php:1414 msgid "Spanish" msgstr "" -#: includes/core/class-builtin.php:1224 +#: includes/core/class-builtin.php:1415 msgid "Estonian" msgstr "" -#: includes/core/class-builtin.php:1225 +#: includes/core/class-builtin.php:1416 msgid "Basque" msgstr "" -#: includes/core/class-builtin.php:1226 +#: includes/core/class-builtin.php:1417 msgid "Persian" msgstr "" -#: includes/core/class-builtin.php:1227 +#: includes/core/class-builtin.php:1418 msgid "Fulah" msgstr "" -#: includes/core/class-builtin.php:1228 +#: includes/core/class-builtin.php:1419 msgid "Finnish" msgstr "" -#: includes/core/class-builtin.php:1229 +#: includes/core/class-builtin.php:1420 msgid "Fijian" msgstr "" -#: includes/core/class-builtin.php:1230 +#: includes/core/class-builtin.php:1421 msgid "Faroese" msgstr "" -#: includes/core/class-builtin.php:1231 +#: includes/core/class-builtin.php:1422 msgid "French" msgstr "" -#: includes/core/class-builtin.php:1232 +#: includes/core/class-builtin.php:1423 msgid "Western Frisian" msgstr "" -#: includes/core/class-builtin.php:1233 +#: includes/core/class-builtin.php:1424 msgid "Irish" msgstr "" -#: includes/core/class-builtin.php:1234 +#: includes/core/class-builtin.php:1425 msgid "Scottish Gaelic" msgstr "" -#: includes/core/class-builtin.php:1235 +#: includes/core/class-builtin.php:1426 msgid "Galician" msgstr "" -#: includes/core/class-builtin.php:1236 +#: includes/core/class-builtin.php:1427 msgid "Guarani" msgstr "" -#: includes/core/class-builtin.php:1237 +#: includes/core/class-builtin.php:1428 msgid "Gujarati" msgstr "" -#: includes/core/class-builtin.php:1238 +#: includes/core/class-builtin.php:1429 msgid "Manx" msgstr "" -#: includes/core/class-builtin.php:1239 +#: includes/core/class-builtin.php:1430 msgid "Hausa" msgstr "" -#: includes/core/class-builtin.php:1240 +#: includes/core/class-builtin.php:1431 msgid "Hebrew" msgstr "" -#: includes/core/class-builtin.php:1241 +#: includes/core/class-builtin.php:1432 msgid "Hindi" msgstr "" -#: includes/core/class-builtin.php:1242 +#: includes/core/class-builtin.php:1433 msgid "Hiri Motu" msgstr "" -#: includes/core/class-builtin.php:1243 +#: includes/core/class-builtin.php:1434 msgid "Croatian" msgstr "" -#: includes/core/class-builtin.php:1244 +#: includes/core/class-builtin.php:1435 msgid "Haitian" msgstr "" -#: includes/core/class-builtin.php:1245 +#: includes/core/class-builtin.php:1436 msgid "Hungarian" msgstr "" -#: includes/core/class-builtin.php:1246 +#: includes/core/class-builtin.php:1437 msgid "Armenian" msgstr "" -#: includes/core/class-builtin.php:1247 +#: includes/core/class-builtin.php:1438 msgid "Herero" msgstr "" -#: includes/core/class-builtin.php:1248 +#: includes/core/class-builtin.php:1439 msgid "Interlingua (International Auxiliary Language Association)" msgstr "" -#: includes/core/class-builtin.php:1249 +#: includes/core/class-builtin.php:1440 msgid "Indonesian" msgstr "" -#: includes/core/class-builtin.php:1250 +#: includes/core/class-builtin.php:1441 msgid "Interlingue" msgstr "" -#: includes/core/class-builtin.php:1251 +#: includes/core/class-builtin.php:1442 msgid "Igbo" msgstr "" -#: includes/core/class-builtin.php:1252 +#: includes/core/class-builtin.php:1443 msgid "Sichuan Yi" msgstr "" -#: includes/core/class-builtin.php:1253 +#: includes/core/class-builtin.php:1444 msgid "Inupiaq" msgstr "" -#: includes/core/class-builtin.php:1254 +#: includes/core/class-builtin.php:1445 msgid "Ido" msgstr "" -#: includes/core/class-builtin.php:1255 +#: includes/core/class-builtin.php:1446 msgid "Icelandic" msgstr "" -#: includes/core/class-builtin.php:1256 +#: includes/core/class-builtin.php:1447 msgid "Italian" msgstr "" -#: includes/core/class-builtin.php:1257 +#: includes/core/class-builtin.php:1448 msgid "Inuktitut" msgstr "" -#: includes/core/class-builtin.php:1258 +#: includes/core/class-builtin.php:1449 msgid "Japanese" msgstr "" -#: includes/core/class-builtin.php:1259 +#: includes/core/class-builtin.php:1450 msgid "Javanese" msgstr "" -#: includes/core/class-builtin.php:1260 +#: includes/core/class-builtin.php:1451 msgid "Georgian" msgstr "" -#: includes/core/class-builtin.php:1261 +#: includes/core/class-builtin.php:1452 msgid "Kongo" msgstr "" -#: includes/core/class-builtin.php:1262 +#: includes/core/class-builtin.php:1453 msgid "Kikuyu" msgstr "" -#: includes/core/class-builtin.php:1263 +#: includes/core/class-builtin.php:1454 msgid "Kwanyama" msgstr "" -#: includes/core/class-builtin.php:1264 +#: includes/core/class-builtin.php:1455 msgid "Kazakh" msgstr "" -#: includes/core/class-builtin.php:1265 +#: includes/core/class-builtin.php:1456 msgid "Kalaallisut" msgstr "" -#: includes/core/class-builtin.php:1266 +#: includes/core/class-builtin.php:1457 msgid "Khmer" msgstr "" -#: includes/core/class-builtin.php:1267 +#: includes/core/class-builtin.php:1458 msgid "Kannada" msgstr "" -#: includes/core/class-builtin.php:1268 +#: includes/core/class-builtin.php:1459 msgid "Korean" msgstr "" -#: includes/core/class-builtin.php:1269 +#: includes/core/class-builtin.php:1460 msgid "Kanuri" msgstr "" -#: includes/core/class-builtin.php:1270 +#: includes/core/class-builtin.php:1461 msgid "Kashmiri" msgstr "" -#: includes/core/class-builtin.php:1271 +#: includes/core/class-builtin.php:1462 msgid "Kurdish" msgstr "" -#: includes/core/class-builtin.php:1272 +#: includes/core/class-builtin.php:1463 msgid "Komi" msgstr "" -#: includes/core/class-builtin.php:1273 +#: includes/core/class-builtin.php:1464 msgid "Cornish" msgstr "" -#: includes/core/class-builtin.php:1274 +#: includes/core/class-builtin.php:1465 msgid "Kirghiz" msgstr "" -#: includes/core/class-builtin.php:1275 +#: includes/core/class-builtin.php:1466 msgid "Latin" msgstr "" -#: includes/core/class-builtin.php:1276 +#: includes/core/class-builtin.php:1467 msgid "Luxembourgish" msgstr "" -#: includes/core/class-builtin.php:1277 +#: includes/core/class-builtin.php:1468 msgid "Ganda" msgstr "" -#: includes/core/class-builtin.php:1278 +#: includes/core/class-builtin.php:1469 msgid "Limburgish" msgstr "" -#: includes/core/class-builtin.php:1279 +#: includes/core/class-builtin.php:1470 msgid "Lingala" msgstr "" -#: includes/core/class-builtin.php:1280 +#: includes/core/class-builtin.php:1471 msgid "Lao" msgstr "" -#: includes/core/class-builtin.php:1281 +#: includes/core/class-builtin.php:1472 msgid "Lithuanian" msgstr "" -#: includes/core/class-builtin.php:1282 +#: includes/core/class-builtin.php:1473 msgid "Luba-Katanga" msgstr "" -#: includes/core/class-builtin.php:1283 +#: includes/core/class-builtin.php:1474 msgid "Latvian" msgstr "" -#: includes/core/class-builtin.php:1284 +#: includes/core/class-builtin.php:1475 msgid "Malagasy" msgstr "" -#: includes/core/class-builtin.php:1285 +#: includes/core/class-builtin.php:1476 msgid "Marshallese" msgstr "" -#: includes/core/class-builtin.php:1286 +#: includes/core/class-builtin.php:1477 msgid "Maori" msgstr "" -#: includes/core/class-builtin.php:1287 +#: includes/core/class-builtin.php:1478 msgid "Macedonian" msgstr "" -#: includes/core/class-builtin.php:1288 +#: includes/core/class-builtin.php:1479 msgid "Malayalam" msgstr "" -#: includes/core/class-builtin.php:1289 +#: includes/core/class-builtin.php:1480 msgid "Mongolian" msgstr "" -#: includes/core/class-builtin.php:1290 +#: includes/core/class-builtin.php:1481 msgid "Marathi" msgstr "" -#: includes/core/class-builtin.php:1291 +#: includes/core/class-builtin.php:1482 msgid "Malay" msgstr "" -#: includes/core/class-builtin.php:1292 +#: includes/core/class-builtin.php:1483 msgid "Maltese" msgstr "" -#: includes/core/class-builtin.php:1293 +#: includes/core/class-builtin.php:1484 msgid "Burmese" msgstr "" -#: includes/core/class-builtin.php:1294 includes/core/class-builtin.php:1525 +#: includes/core/class-builtin.php:1485 includes/core/class-builtin.php:1716 msgid "Nauru" msgstr "" -#: includes/core/class-builtin.php:1295 +#: includes/core/class-builtin.php:1486 msgid "Norwegian Bokmal" msgstr "" -#: includes/core/class-builtin.php:1296 +#: includes/core/class-builtin.php:1487 msgid "North Ndebele" msgstr "" -#: includes/core/class-builtin.php:1297 +#: includes/core/class-builtin.php:1488 msgid "Nepali" msgstr "" -#: includes/core/class-builtin.php:1298 +#: includes/core/class-builtin.php:1489 msgid "Ndonga" msgstr "" -#: includes/core/class-builtin.php:1299 +#: includes/core/class-builtin.php:1490 msgid "Dutch" msgstr "" -#: includes/core/class-builtin.php:1300 +#: includes/core/class-builtin.php:1491 msgid "Norwegian Nynorsk" msgstr "" -#: includes/core/class-builtin.php:1301 +#: includes/core/class-builtin.php:1492 msgid "Norwegian" msgstr "" -#: includes/core/class-builtin.php:1302 +#: includes/core/class-builtin.php:1493 msgid "South Ndebele" msgstr "" -#: includes/core/class-builtin.php:1303 +#: includes/core/class-builtin.php:1494 msgid "Navajo" msgstr "" -#: includes/core/class-builtin.php:1304 +#: includes/core/class-builtin.php:1495 msgid "Chichewa" msgstr "" -#: includes/core/class-builtin.php:1305 +#: includes/core/class-builtin.php:1496 msgid "Occitan" msgstr "" -#: includes/core/class-builtin.php:1306 +#: includes/core/class-builtin.php:1497 msgid "Ojibwa" msgstr "" -#: includes/core/class-builtin.php:1307 +#: includes/core/class-builtin.php:1498 msgid "Oromo" msgstr "" -#: includes/core/class-builtin.php:1308 +#: includes/core/class-builtin.php:1499 msgid "Oriya" msgstr "" -#: includes/core/class-builtin.php:1309 +#: includes/core/class-builtin.php:1500 msgid "Ossetian" msgstr "" -#: includes/core/class-builtin.php:1310 +#: includes/core/class-builtin.php:1501 msgid "Panjabi" msgstr "" -#: includes/core/class-builtin.php:1311 +#: includes/core/class-builtin.php:1502 msgid "Pali" msgstr "" -#: includes/core/class-builtin.php:1312 +#: includes/core/class-builtin.php:1503 msgid "Polish" msgstr "" -#: includes/core/class-builtin.php:1313 +#: includes/core/class-builtin.php:1504 msgid "Pashto" msgstr "" -#: includes/core/class-builtin.php:1314 +#: includes/core/class-builtin.php:1505 msgid "Portuguese" msgstr "" -#: includes/core/class-builtin.php:1315 +#: includes/core/class-builtin.php:1506 msgid "Quechua" msgstr "" -#: includes/core/class-builtin.php:1316 +#: includes/core/class-builtin.php:1507 msgid "Raeto-Romance" msgstr "" -#: includes/core/class-builtin.php:1317 +#: includes/core/class-builtin.php:1508 msgid "Kirundi" msgstr "" -#: includes/core/class-builtin.php:1318 +#: includes/core/class-builtin.php:1509 msgid "Romanian" msgstr "" -#: includes/core/class-builtin.php:1319 +#: includes/core/class-builtin.php:1510 msgid "Russian" msgstr "" -#: includes/core/class-builtin.php:1320 +#: includes/core/class-builtin.php:1511 msgid "Kinyarwanda" msgstr "" -#: includes/core/class-builtin.php:1321 +#: includes/core/class-builtin.php:1512 msgid "Sanskrit" msgstr "" -#: includes/core/class-builtin.php:1322 +#: includes/core/class-builtin.php:1513 msgid "Sardinian" msgstr "" -#: includes/core/class-builtin.php:1323 +#: includes/core/class-builtin.php:1514 msgid "Sindhi" msgstr "" -#: includes/core/class-builtin.php:1324 +#: includes/core/class-builtin.php:1515 msgid "Northern Sami" msgstr "" -#: includes/core/class-builtin.php:1325 +#: includes/core/class-builtin.php:1516 msgid "Sango" msgstr "" -#: includes/core/class-builtin.php:1326 +#: includes/core/class-builtin.php:1517 msgid "Sinhala" msgstr "" -#: includes/core/class-builtin.php:1327 +#: includes/core/class-builtin.php:1518 msgid "Slovak" msgstr "" -#: includes/core/class-builtin.php:1328 +#: includes/core/class-builtin.php:1519 msgid "Slovenian" msgstr "" -#: includes/core/class-builtin.php:1329 +#: includes/core/class-builtin.php:1520 msgid "Samoan" msgstr "" -#: includes/core/class-builtin.php:1330 +#: includes/core/class-builtin.php:1521 msgid "Shona" msgstr "" -#: includes/core/class-builtin.php:1331 +#: includes/core/class-builtin.php:1522 msgid "Somali" msgstr "" -#: includes/core/class-builtin.php:1332 +#: includes/core/class-builtin.php:1523 msgid "Albanian" msgstr "" -#: includes/core/class-builtin.php:1333 +#: includes/core/class-builtin.php:1524 msgid "Serbian" msgstr "" -#: includes/core/class-builtin.php:1334 +#: includes/core/class-builtin.php:1525 msgid "Swati" msgstr "" -#: includes/core/class-builtin.php:1335 +#: includes/core/class-builtin.php:1526 msgid "Southern Sotho" msgstr "" -#: includes/core/class-builtin.php:1336 +#: includes/core/class-builtin.php:1527 msgid "Sundanese" msgstr "" -#: includes/core/class-builtin.php:1337 +#: includes/core/class-builtin.php:1528 msgid "Swedish" msgstr "" -#: includes/core/class-builtin.php:1338 +#: includes/core/class-builtin.php:1529 msgid "Swahili" msgstr "" -#: includes/core/class-builtin.php:1339 +#: includes/core/class-builtin.php:1530 msgid "Tamil" msgstr "" -#: includes/core/class-builtin.php:1340 +#: includes/core/class-builtin.php:1531 msgid "Telugu" msgstr "" -#: includes/core/class-builtin.php:1341 +#: includes/core/class-builtin.php:1532 msgid "Tajik" msgstr "" -#: includes/core/class-builtin.php:1342 +#: includes/core/class-builtin.php:1533 msgid "Thai" msgstr "" -#: includes/core/class-builtin.php:1343 +#: includes/core/class-builtin.php:1534 msgid "Tigrinya" msgstr "" -#: includes/core/class-builtin.php:1344 +#: includes/core/class-builtin.php:1535 msgid "Turkmen" msgstr "" -#: includes/core/class-builtin.php:1345 +#: includes/core/class-builtin.php:1536 msgid "Tagalog" msgstr "" -#: includes/core/class-builtin.php:1346 +#: includes/core/class-builtin.php:1537 msgid "Tswana" msgstr "" -#: includes/core/class-builtin.php:1347 includes/core/class-builtin.php:1595 +#: includes/core/class-builtin.php:1538 includes/core/class-builtin.php:1786 msgid "Tonga" msgstr "" -#: includes/core/class-builtin.php:1348 +#: includes/core/class-builtin.php:1539 msgid "Turkish" msgstr "" -#: includes/core/class-builtin.php:1349 +#: includes/core/class-builtin.php:1540 msgid "Tsonga" msgstr "" -#: includes/core/class-builtin.php:1350 +#: includes/core/class-builtin.php:1541 msgid "Tatar" msgstr "" -#: includes/core/class-builtin.php:1351 +#: includes/core/class-builtin.php:1542 msgid "Twi" msgstr "" -#: includes/core/class-builtin.php:1352 +#: includes/core/class-builtin.php:1543 msgid "Tahitian" msgstr "" -#: includes/core/class-builtin.php:1353 +#: includes/core/class-builtin.php:1544 msgid "Uighur" msgstr "" -#: includes/core/class-builtin.php:1354 +#: includes/core/class-builtin.php:1545 msgid "Ukrainian" msgstr "" -#: includes/core/class-builtin.php:1355 +#: includes/core/class-builtin.php:1546 msgid "Urdu" msgstr "" -#: includes/core/class-builtin.php:1356 +#: includes/core/class-builtin.php:1547 msgid "Uzbek" msgstr "" -#: includes/core/class-builtin.php:1357 +#: includes/core/class-builtin.php:1548 msgid "Venda" msgstr "" -#: includes/core/class-builtin.php:1358 +#: includes/core/class-builtin.php:1549 msgid "Vietnamese" msgstr "" -#: includes/core/class-builtin.php:1359 +#: includes/core/class-builtin.php:1550 msgid "Volapuk" msgstr "" -#: includes/core/class-builtin.php:1360 +#: includes/core/class-builtin.php:1551 msgid "Walloon" msgstr "" -#: includes/core/class-builtin.php:1361 +#: includes/core/class-builtin.php:1552 msgid "Wolof" msgstr "" -#: includes/core/class-builtin.php:1362 +#: includes/core/class-builtin.php:1553 msgid "Xhosa" msgstr "" -#: includes/core/class-builtin.php:1363 +#: includes/core/class-builtin.php:1554 msgid "Yiddish" msgstr "" -#: includes/core/class-builtin.php:1364 +#: includes/core/class-builtin.php:1555 msgid "Yoruba" msgstr "" -#: includes/core/class-builtin.php:1365 +#: includes/core/class-builtin.php:1556 msgid "Zhuang" msgstr "" -#: includes/core/class-builtin.php:1366 +#: includes/core/class-builtin.php:1557 msgid "Chinese" msgstr "" -#: includes/core/class-builtin.php:1367 +#: includes/core/class-builtin.php:1558 msgid "Zulu" msgstr "" -#: includes/core/class-builtin.php:1373 +#: includes/core/class-builtin.php:1564 msgid "Afghanistan" msgstr "" -#: includes/core/class-builtin.php:1374 +#: includes/core/class-builtin.php:1565 msgid "Åland Islands" msgstr "" -#: includes/core/class-builtin.php:1375 +#: includes/core/class-builtin.php:1566 msgid "Albania" msgstr "" -#: includes/core/class-builtin.php:1376 +#: includes/core/class-builtin.php:1567 msgid "Algeria" msgstr "" -#: includes/core/class-builtin.php:1377 +#: includes/core/class-builtin.php:1568 msgid "American Samoa" msgstr "" -#: includes/core/class-builtin.php:1378 +#: includes/core/class-builtin.php:1569 msgid "Andorra" msgstr "" -#: includes/core/class-builtin.php:1379 +#: includes/core/class-builtin.php:1570 msgid "Angola" msgstr "" -#: includes/core/class-builtin.php:1380 +#: includes/core/class-builtin.php:1571 msgid "Anguilla" msgstr "" -#: includes/core/class-builtin.php:1381 +#: includes/core/class-builtin.php:1572 msgid "Antarctica" msgstr "" -#: includes/core/class-builtin.php:1382 +#: includes/core/class-builtin.php:1573 msgid "Antigua and Barbuda" msgstr "" -#: includes/core/class-builtin.php:1383 +#: includes/core/class-builtin.php:1574 msgid "Argentina" msgstr "" -#: includes/core/class-builtin.php:1384 +#: includes/core/class-builtin.php:1575 msgid "Armenia" msgstr "" -#: includes/core/class-builtin.php:1385 +#: includes/core/class-builtin.php:1576 msgid "Aruba" msgstr "" -#: includes/core/class-builtin.php:1386 +#: includes/core/class-builtin.php:1577 msgid "Australia" msgstr "" -#: includes/core/class-builtin.php:1387 +#: includes/core/class-builtin.php:1578 msgid "Austria" msgstr "" -#: includes/core/class-builtin.php:1388 +#: includes/core/class-builtin.php:1579 msgid "Azerbaijan" msgstr "" -#: includes/core/class-builtin.php:1389 +#: includes/core/class-builtin.php:1580 msgid "Bahamas" msgstr "" -#: includes/core/class-builtin.php:1390 +#: includes/core/class-builtin.php:1581 msgid "Bahrain" msgstr "" -#: includes/core/class-builtin.php:1391 +#: includes/core/class-builtin.php:1582 msgid "Bangladesh" msgstr "" -#: includes/core/class-builtin.php:1392 +#: includes/core/class-builtin.php:1583 msgid "Barbados" msgstr "" -#: includes/core/class-builtin.php:1393 +#: includes/core/class-builtin.php:1584 msgid "Belarus" msgstr "" -#: includes/core/class-builtin.php:1394 +#: includes/core/class-builtin.php:1585 msgid "Belgium" msgstr "" -#: includes/core/class-builtin.php:1395 +#: includes/core/class-builtin.php:1586 msgid "Belize" msgstr "" -#: includes/core/class-builtin.php:1396 +#: includes/core/class-builtin.php:1587 msgid "Benin" msgstr "" -#: includes/core/class-builtin.php:1397 +#: includes/core/class-builtin.php:1588 msgid "Bermuda" msgstr "" -#: includes/core/class-builtin.php:1398 +#: includes/core/class-builtin.php:1589 msgid "Bhutan" msgstr "" -#: includes/core/class-builtin.php:1399 +#: includes/core/class-builtin.php:1590 msgid "Bolivia, Plurinational State of" msgstr "" -#: includes/core/class-builtin.php:1400 +#: includes/core/class-builtin.php:1591 msgid "Bosnia and Herzegovina" msgstr "" -#: includes/core/class-builtin.php:1401 +#: includes/core/class-builtin.php:1592 msgid "Botswana" msgstr "" -#: includes/core/class-builtin.php:1402 +#: includes/core/class-builtin.php:1593 msgid "Bouvet Island" msgstr "" -#: includes/core/class-builtin.php:1403 +#: includes/core/class-builtin.php:1594 msgid "Brazil" msgstr "" -#: includes/core/class-builtin.php:1404 +#: includes/core/class-builtin.php:1595 msgid "British Indian Ocean Territory" msgstr "" -#: includes/core/class-builtin.php:1405 +#: includes/core/class-builtin.php:1596 msgid "Brunei Darussalam" msgstr "" -#: includes/core/class-builtin.php:1406 +#: includes/core/class-builtin.php:1597 msgid "Bulgaria" msgstr "" -#: includes/core/class-builtin.php:1407 +#: includes/core/class-builtin.php:1598 msgid "Burkina Faso" msgstr "" -#: includes/core/class-builtin.php:1408 +#: includes/core/class-builtin.php:1599 msgid "Burundi" msgstr "" -#: includes/core/class-builtin.php:1409 +#: includes/core/class-builtin.php:1600 msgid "Cambodia" msgstr "" -#: includes/core/class-builtin.php:1410 +#: includes/core/class-builtin.php:1601 msgid "Cameroon" msgstr "" -#: includes/core/class-builtin.php:1411 +#: includes/core/class-builtin.php:1602 msgid "Canada" msgstr "" -#: includes/core/class-builtin.php:1412 +#: includes/core/class-builtin.php:1603 msgid "Cape Verde" msgstr "" -#: includes/core/class-builtin.php:1413 +#: includes/core/class-builtin.php:1604 msgid "Cayman Islands" msgstr "" -#: includes/core/class-builtin.php:1414 +#: includes/core/class-builtin.php:1605 msgid "Central African Republic" msgstr "" -#: includes/core/class-builtin.php:1415 +#: includes/core/class-builtin.php:1606 msgid "Chad" msgstr "" -#: includes/core/class-builtin.php:1416 +#: includes/core/class-builtin.php:1607 msgid "Chile" msgstr "" -#: includes/core/class-builtin.php:1417 +#: includes/core/class-builtin.php:1608 msgid "China" msgstr "" -#: includes/core/class-builtin.php:1418 +#: includes/core/class-builtin.php:1609 msgid "Christmas Island" msgstr "" -#: includes/core/class-builtin.php:1419 +#: includes/core/class-builtin.php:1610 msgid "Cocos (Keeling) Islands" msgstr "" -#: includes/core/class-builtin.php:1420 +#: includes/core/class-builtin.php:1611 msgid "Colombia" msgstr "" -#: includes/core/class-builtin.php:1421 +#: includes/core/class-builtin.php:1612 msgid "Comoros" msgstr "" -#: includes/core/class-builtin.php:1422 +#: includes/core/class-builtin.php:1613 msgid "Congo" msgstr "" -#: includes/core/class-builtin.php:1423 +#: includes/core/class-builtin.php:1614 msgid "Congo, the Democratic Republic of the" msgstr "" -#: includes/core/class-builtin.php:1424 +#: includes/core/class-builtin.php:1615 msgid "Cook Islands" msgstr "" -#: includes/core/class-builtin.php:1425 +#: includes/core/class-builtin.php:1616 msgid "Costa Rica" msgstr "" -#: includes/core/class-builtin.php:1426 +#: includes/core/class-builtin.php:1617 msgid "Côte d'Ivoire" msgstr "" -#: includes/core/class-builtin.php:1427 +#: includes/core/class-builtin.php:1618 msgid "Croatia" msgstr "" -#: includes/core/class-builtin.php:1428 +#: includes/core/class-builtin.php:1619 msgid "Cuba" msgstr "" -#: includes/core/class-builtin.php:1429 +#: includes/core/class-builtin.php:1620 msgid "Cyprus" msgstr "" -#: includes/core/class-builtin.php:1430 +#: includes/core/class-builtin.php:1621 msgid "Czech Republic" msgstr "" -#: includes/core/class-builtin.php:1431 +#: includes/core/class-builtin.php:1622 msgid "Denmark" msgstr "" -#: includes/core/class-builtin.php:1432 +#: includes/core/class-builtin.php:1623 msgid "Djibouti" msgstr "" -#: includes/core/class-builtin.php:1433 +#: includes/core/class-builtin.php:1624 msgid "Dominica" msgstr "" -#: includes/core/class-builtin.php:1434 +#: includes/core/class-builtin.php:1625 msgid "Dominican Republic" msgstr "" -#: includes/core/class-builtin.php:1435 +#: includes/core/class-builtin.php:1626 msgid "Ecuador" msgstr "" -#: includes/core/class-builtin.php:1436 +#: includes/core/class-builtin.php:1627 msgid "Egypt" msgstr "" -#: includes/core/class-builtin.php:1437 +#: includes/core/class-builtin.php:1628 msgid "El Salvador" msgstr "" -#: includes/core/class-builtin.php:1438 +#: includes/core/class-builtin.php:1629 msgid "Equatorial Guinea" msgstr "" -#: includes/core/class-builtin.php:1439 +#: includes/core/class-builtin.php:1630 msgid "Eritrea" msgstr "" -#: includes/core/class-builtin.php:1440 +#: includes/core/class-builtin.php:1631 msgid "Estonia" msgstr "" -#: includes/core/class-builtin.php:1441 +#: includes/core/class-builtin.php:1632 msgid "Ethiopia" msgstr "" -#: includes/core/class-builtin.php:1442 +#: includes/core/class-builtin.php:1633 msgid "Falkland Islands (Malvinas)" msgstr "" -#: includes/core/class-builtin.php:1443 +#: includes/core/class-builtin.php:1634 msgid "Faroe Islands" msgstr "" -#: includes/core/class-builtin.php:1444 +#: includes/core/class-builtin.php:1635 msgid "Fiji" msgstr "" -#: includes/core/class-builtin.php:1445 +#: includes/core/class-builtin.php:1636 msgid "Finland" msgstr "" -#: includes/core/class-builtin.php:1446 +#: includes/core/class-builtin.php:1637 msgid "France" msgstr "" -#: includes/core/class-builtin.php:1447 +#: includes/core/class-builtin.php:1638 msgid "French Guiana" msgstr "" -#: includes/core/class-builtin.php:1448 +#: includes/core/class-builtin.php:1639 msgid "French Polynesia" msgstr "" -#: includes/core/class-builtin.php:1449 +#: includes/core/class-builtin.php:1640 msgid "French Southern Territories" msgstr "" -#: includes/core/class-builtin.php:1450 +#: includes/core/class-builtin.php:1641 msgid "Gabon" msgstr "" -#: includes/core/class-builtin.php:1451 +#: includes/core/class-builtin.php:1642 msgid "Gambia" msgstr "" -#: includes/core/class-builtin.php:1452 +#: includes/core/class-builtin.php:1643 msgid "Georgia" msgstr "" -#: includes/core/class-builtin.php:1453 +#: includes/core/class-builtin.php:1644 msgid "Germany" msgstr "" -#: includes/core/class-builtin.php:1454 +#: includes/core/class-builtin.php:1645 msgid "Ghana" msgstr "" -#: includes/core/class-builtin.php:1455 +#: includes/core/class-builtin.php:1646 msgid "Gibraltar" msgstr "" -#: includes/core/class-builtin.php:1456 +#: includes/core/class-builtin.php:1647 msgid "Greece" msgstr "" -#: includes/core/class-builtin.php:1457 +#: includes/core/class-builtin.php:1648 msgid "Greenland" msgstr "" -#: includes/core/class-builtin.php:1458 +#: includes/core/class-builtin.php:1649 msgid "Grenada" msgstr "" -#: includes/core/class-builtin.php:1459 +#: includes/core/class-builtin.php:1650 msgid "Guadeloupe" msgstr "" -#: includes/core/class-builtin.php:1460 +#: includes/core/class-builtin.php:1651 msgid "Guam" msgstr "" -#: includes/core/class-builtin.php:1461 +#: includes/core/class-builtin.php:1652 msgid "Guatemala" msgstr "" -#: includes/core/class-builtin.php:1462 +#: includes/core/class-builtin.php:1653 msgid "Guernsey" msgstr "" -#: includes/core/class-builtin.php:1463 +#: includes/core/class-builtin.php:1654 msgid "Guinea" msgstr "" -#: includes/core/class-builtin.php:1464 +#: includes/core/class-builtin.php:1655 msgid "Guinea-Bissau" msgstr "" -#: includes/core/class-builtin.php:1465 +#: includes/core/class-builtin.php:1656 msgid "Guyana" msgstr "" -#: includes/core/class-builtin.php:1466 +#: includes/core/class-builtin.php:1657 msgid "Haiti" msgstr "" -#: includes/core/class-builtin.php:1467 +#: includes/core/class-builtin.php:1658 msgid "Heard Island and McDonald Islands" msgstr "" -#: includes/core/class-builtin.php:1468 +#: includes/core/class-builtin.php:1659 msgid "Holy See (Vatican City State)" msgstr "" -#: includes/core/class-builtin.php:1469 +#: includes/core/class-builtin.php:1660 msgid "Honduras" msgstr "" -#: includes/core/class-builtin.php:1470 +#: includes/core/class-builtin.php:1661 msgid "Hong Kong" msgstr "" -#: includes/core/class-builtin.php:1471 +#: includes/core/class-builtin.php:1662 msgid "Hungary" msgstr "" -#: includes/core/class-builtin.php:1472 +#: includes/core/class-builtin.php:1663 msgid "Iceland" msgstr "" -#: includes/core/class-builtin.php:1473 +#: includes/core/class-builtin.php:1664 msgid "India" msgstr "" -#: includes/core/class-builtin.php:1474 +#: includes/core/class-builtin.php:1665 msgid "Indonesia" msgstr "" -#: includes/core/class-builtin.php:1475 +#: includes/core/class-builtin.php:1666 msgid "Iran, Islamic Republic of" msgstr "" -#: includes/core/class-builtin.php:1476 +#: includes/core/class-builtin.php:1667 msgid "Iraq" msgstr "" -#: includes/core/class-builtin.php:1477 +#: includes/core/class-builtin.php:1668 msgid "Ireland" msgstr "" -#: includes/core/class-builtin.php:1478 +#: includes/core/class-builtin.php:1669 msgid "Isle of Man" msgstr "" -#: includes/core/class-builtin.php:1479 +#: includes/core/class-builtin.php:1670 msgid "Israel" msgstr "" -#: includes/core/class-builtin.php:1480 +#: includes/core/class-builtin.php:1671 msgid "Italy" msgstr "" -#: includes/core/class-builtin.php:1481 +#: includes/core/class-builtin.php:1672 msgid "Jamaica" msgstr "" -#: includes/core/class-builtin.php:1482 +#: includes/core/class-builtin.php:1673 msgid "Japan" msgstr "" -#: includes/core/class-builtin.php:1483 +#: includes/core/class-builtin.php:1674 msgid "Jersey" msgstr "" -#: includes/core/class-builtin.php:1484 +#: includes/core/class-builtin.php:1675 msgid "Jordan" msgstr "" -#: includes/core/class-builtin.php:1485 +#: includes/core/class-builtin.php:1676 msgid "Kazakhstan" msgstr "" -#: includes/core/class-builtin.php:1486 +#: includes/core/class-builtin.php:1677 msgid "Kenya" msgstr "" -#: includes/core/class-builtin.php:1487 +#: includes/core/class-builtin.php:1678 msgid "Kiribati" msgstr "" -#: includes/core/class-builtin.php:1488 +#: includes/core/class-builtin.php:1679 msgid "Korea, Democratic People's Republic of" msgstr "" -#: includes/core/class-builtin.php:1489 +#: includes/core/class-builtin.php:1680 msgid "Korea, Republic of" msgstr "" -#: includes/core/class-builtin.php:1490 +#: includes/core/class-builtin.php:1681 msgid "Kuwait" msgstr "" -#: includes/core/class-builtin.php:1491 +#: includes/core/class-builtin.php:1682 msgid "Kyrgyzstan" msgstr "" -#: includes/core/class-builtin.php:1492 +#: includes/core/class-builtin.php:1683 msgid "Lao People's Democratic Republic" msgstr "" -#: includes/core/class-builtin.php:1493 +#: includes/core/class-builtin.php:1684 msgid "Latvia" msgstr "" -#: includes/core/class-builtin.php:1494 +#: includes/core/class-builtin.php:1685 msgid "Lebanon" msgstr "" -#: includes/core/class-builtin.php:1495 +#: includes/core/class-builtin.php:1686 msgid "Lesotho" msgstr "" -#: includes/core/class-builtin.php:1496 +#: includes/core/class-builtin.php:1687 msgid "Liberia" msgstr "" -#: includes/core/class-builtin.php:1497 +#: includes/core/class-builtin.php:1688 msgid "Libyan Arab Jamahiriya" msgstr "" -#: includes/core/class-builtin.php:1498 +#: includes/core/class-builtin.php:1689 msgid "Liechtenstein" msgstr "" -#: includes/core/class-builtin.php:1499 +#: includes/core/class-builtin.php:1690 msgid "Lithuania" msgstr "" -#: includes/core/class-builtin.php:1500 +#: includes/core/class-builtin.php:1691 msgid "Luxembourg" msgstr "" -#: includes/core/class-builtin.php:1501 +#: includes/core/class-builtin.php:1692 msgid "Macao" msgstr "" -#: includes/core/class-builtin.php:1502 +#: includes/core/class-builtin.php:1693 msgid "Macedonia, the former Yugoslav Republic of" msgstr "" -#: includes/core/class-builtin.php:1503 +#: includes/core/class-builtin.php:1694 msgid "Madagascar" msgstr "" -#: includes/core/class-builtin.php:1504 +#: includes/core/class-builtin.php:1695 msgid "Malawi" msgstr "" -#: includes/core/class-builtin.php:1505 +#: includes/core/class-builtin.php:1696 msgid "Malaysia" msgstr "" -#: includes/core/class-builtin.php:1506 +#: includes/core/class-builtin.php:1697 msgid "Maldives" msgstr "" -#: includes/core/class-builtin.php:1507 +#: includes/core/class-builtin.php:1698 msgid "Mali" msgstr "" -#: includes/core/class-builtin.php:1508 +#: includes/core/class-builtin.php:1699 msgid "Malta" msgstr "" -#: includes/core/class-builtin.php:1509 +#: includes/core/class-builtin.php:1700 msgid "Marshall Islands" msgstr "" -#: includes/core/class-builtin.php:1510 +#: includes/core/class-builtin.php:1701 msgid "Martinique" msgstr "" -#: includes/core/class-builtin.php:1511 +#: includes/core/class-builtin.php:1702 msgid "Mauritania" msgstr "" -#: includes/core/class-builtin.php:1512 +#: includes/core/class-builtin.php:1703 msgid "Mauritius" msgstr "" -#: includes/core/class-builtin.php:1513 +#: includes/core/class-builtin.php:1704 msgid "Mayotte" msgstr "" -#: includes/core/class-builtin.php:1514 +#: includes/core/class-builtin.php:1705 msgid "Mexico" msgstr "" -#: includes/core/class-builtin.php:1515 +#: includes/core/class-builtin.php:1706 msgid "Micronesia, Federated States of" msgstr "" -#: includes/core/class-builtin.php:1516 +#: includes/core/class-builtin.php:1707 msgid "Moldova, Republic of" msgstr "" -#: includes/core/class-builtin.php:1517 +#: includes/core/class-builtin.php:1708 msgid "Monaco" msgstr "" -#: includes/core/class-builtin.php:1518 +#: includes/core/class-builtin.php:1709 msgid "Mongolia" msgstr "" -#: includes/core/class-builtin.php:1519 +#: includes/core/class-builtin.php:1710 msgid "Montenegro" msgstr "" -#: includes/core/class-builtin.php:1520 +#: includes/core/class-builtin.php:1711 msgid "Montserrat" msgstr "" -#: includes/core/class-builtin.php:1521 +#: includes/core/class-builtin.php:1712 msgid "Morocco" msgstr "" -#: includes/core/class-builtin.php:1522 +#: includes/core/class-builtin.php:1713 msgid "Mozambique" msgstr "" -#: includes/core/class-builtin.php:1523 +#: includes/core/class-builtin.php:1714 msgid "Myanmar" msgstr "" -#: includes/core/class-builtin.php:1524 +#: includes/core/class-builtin.php:1715 msgid "Namibia" msgstr "" -#: includes/core/class-builtin.php:1526 +#: includes/core/class-builtin.php:1717 msgid "Nepal" msgstr "" -#: includes/core/class-builtin.php:1527 +#: includes/core/class-builtin.php:1718 msgid "Netherlands" msgstr "" -#: includes/core/class-builtin.php:1528 +#: includes/core/class-builtin.php:1719 msgid "Netherlands Antilles" msgstr "" -#: includes/core/class-builtin.php:1529 +#: includes/core/class-builtin.php:1720 msgid "New Caledonia" msgstr "" -#: includes/core/class-builtin.php:1530 +#: includes/core/class-builtin.php:1721 msgid "New Zealand" msgstr "" -#: includes/core/class-builtin.php:1531 +#: includes/core/class-builtin.php:1722 msgid "Nicaragua" msgstr "" -#: includes/core/class-builtin.php:1532 +#: includes/core/class-builtin.php:1723 msgid "Niger" msgstr "" -#: includes/core/class-builtin.php:1533 +#: includes/core/class-builtin.php:1724 msgid "Nigeria" msgstr "" -#: includes/core/class-builtin.php:1534 +#: includes/core/class-builtin.php:1725 msgid "Niue" msgstr "" -#: includes/core/class-builtin.php:1535 +#: includes/core/class-builtin.php:1726 msgid "Norfolk Island" msgstr "" -#: includes/core/class-builtin.php:1536 +#: includes/core/class-builtin.php:1727 msgid "Northern Mariana Islands" msgstr "" -#: includes/core/class-builtin.php:1537 +#: includes/core/class-builtin.php:1728 msgid "Norway" msgstr "" -#: includes/core/class-builtin.php:1538 +#: includes/core/class-builtin.php:1729 msgid "Oman" msgstr "" -#: includes/core/class-builtin.php:1539 +#: includes/core/class-builtin.php:1730 msgid "Pakistan" msgstr "" -#: includes/core/class-builtin.php:1540 +#: includes/core/class-builtin.php:1731 msgid "Palau" msgstr "" -#: includes/core/class-builtin.php:1541 +#: includes/core/class-builtin.php:1732 msgid "Palestine" msgstr "" -#: includes/core/class-builtin.php:1542 +#: includes/core/class-builtin.php:1733 msgid "Panama" msgstr "" -#: includes/core/class-builtin.php:1543 +#: includes/core/class-builtin.php:1734 msgid "Papua New Guinea" msgstr "" -#: includes/core/class-builtin.php:1544 +#: includes/core/class-builtin.php:1735 msgid "Paraguay" msgstr "" -#: includes/core/class-builtin.php:1545 +#: includes/core/class-builtin.php:1736 msgid "Peru" msgstr "" -#: includes/core/class-builtin.php:1546 +#: includes/core/class-builtin.php:1737 msgid "Philippines" msgstr "" -#: includes/core/class-builtin.php:1547 +#: includes/core/class-builtin.php:1738 msgid "Pitcairn" msgstr "" -#: includes/core/class-builtin.php:1548 +#: includes/core/class-builtin.php:1739 msgid "Poland" msgstr "" -#: includes/core/class-builtin.php:1549 +#: includes/core/class-builtin.php:1740 msgid "Portugal" msgstr "" -#: includes/core/class-builtin.php:1550 +#: includes/core/class-builtin.php:1741 msgid "Puerto Rico" msgstr "" -#: includes/core/class-builtin.php:1551 +#: includes/core/class-builtin.php:1742 msgid "Qatar" msgstr "" -#: includes/core/class-builtin.php:1552 +#: includes/core/class-builtin.php:1743 msgid "Réunion" msgstr "" -#: includes/core/class-builtin.php:1553 +#: includes/core/class-builtin.php:1744 msgid "Romania" msgstr "" -#: includes/core/class-builtin.php:1554 +#: includes/core/class-builtin.php:1745 msgid "Russian Federation" msgstr "" -#: includes/core/class-builtin.php:1555 +#: includes/core/class-builtin.php:1746 msgid "Rwanda" msgstr "" -#: includes/core/class-builtin.php:1556 +#: includes/core/class-builtin.php:1747 msgid "Saint Barthélemy" msgstr "" -#: includes/core/class-builtin.php:1557 +#: includes/core/class-builtin.php:1748 msgid "Saint Helena" msgstr "" -#: includes/core/class-builtin.php:1558 +#: includes/core/class-builtin.php:1749 msgid "Saint Kitts and Nevis" msgstr "" -#: includes/core/class-builtin.php:1559 +#: includes/core/class-builtin.php:1750 msgid "Saint Lucia" msgstr "" -#: includes/core/class-builtin.php:1560 +#: includes/core/class-builtin.php:1751 msgid "Saint Martin (French part)" msgstr "" -#: includes/core/class-builtin.php:1561 +#: includes/core/class-builtin.php:1752 msgid "Saint Pierre and Miquelon" msgstr "" -#: includes/core/class-builtin.php:1562 +#: includes/core/class-builtin.php:1753 msgid "Saint Vincent and the Grenadines" msgstr "" -#: includes/core/class-builtin.php:1563 +#: includes/core/class-builtin.php:1754 msgid "Samoa" msgstr "" -#: includes/core/class-builtin.php:1564 +#: includes/core/class-builtin.php:1755 msgid "San Marino" msgstr "" -#: includes/core/class-builtin.php:1565 +#: includes/core/class-builtin.php:1756 msgid "Sao Tome and Principe" msgstr "" -#: includes/core/class-builtin.php:1566 +#: includes/core/class-builtin.php:1757 msgid "Saudi Arabia" msgstr "" -#: includes/core/class-builtin.php:1567 +#: includes/core/class-builtin.php:1758 msgid "Senegal" msgstr "" -#: includes/core/class-builtin.php:1568 +#: includes/core/class-builtin.php:1759 msgid "Serbia" msgstr "" -#: includes/core/class-builtin.php:1569 +#: includes/core/class-builtin.php:1760 msgid "Seychelles" msgstr "" -#: includes/core/class-builtin.php:1570 +#: includes/core/class-builtin.php:1761 msgid "Sierra Leone" msgstr "" -#: includes/core/class-builtin.php:1571 +#: includes/core/class-builtin.php:1762 msgid "Singapore" msgstr "" -#: includes/core/class-builtin.php:1572 +#: includes/core/class-builtin.php:1763 msgid "Slovakia" msgstr "" -#: includes/core/class-builtin.php:1573 +#: includes/core/class-builtin.php:1764 msgid "Slovenia" msgstr "" -#: includes/core/class-builtin.php:1574 +#: includes/core/class-builtin.php:1765 msgid "Solomon Islands" msgstr "" -#: includes/core/class-builtin.php:1575 +#: includes/core/class-builtin.php:1766 msgid "Somalia" msgstr "" -#: includes/core/class-builtin.php:1576 +#: includes/core/class-builtin.php:1767 msgid "South Africa" msgstr "" -#: includes/core/class-builtin.php:1577 +#: includes/core/class-builtin.php:1768 msgid "South Georgia and the South Sandwich Islands" msgstr "" -#: includes/core/class-builtin.php:1578 +#: includes/core/class-builtin.php:1769 msgid "South Sudan" msgstr "" -#: includes/core/class-builtin.php:1579 +#: includes/core/class-builtin.php:1770 msgid "Spain" msgstr "" -#: includes/core/class-builtin.php:1580 +#: includes/core/class-builtin.php:1771 msgid "Sri Lanka" msgstr "" -#: includes/core/class-builtin.php:1581 +#: includes/core/class-builtin.php:1772 msgid "Sudan" msgstr "" -#: includes/core/class-builtin.php:1582 +#: includes/core/class-builtin.php:1773 msgid "Suriname" msgstr "" -#: includes/core/class-builtin.php:1583 +#: includes/core/class-builtin.php:1774 msgid "Svalbard and Jan Mayen" msgstr "" -#: includes/core/class-builtin.php:1584 +#: includes/core/class-builtin.php:1775 msgid "Swaziland" msgstr "" -#: includes/core/class-builtin.php:1585 +#: includes/core/class-builtin.php:1776 msgid "Sweden" msgstr "" -#: includes/core/class-builtin.php:1586 +#: includes/core/class-builtin.php:1777 msgid "Switzerland" msgstr "" -#: includes/core/class-builtin.php:1587 +#: includes/core/class-builtin.php:1778 msgid "Syrian Arab Republic" msgstr "" -#: includes/core/class-builtin.php:1588 +#: includes/core/class-builtin.php:1779 msgid "Taiwan, Province of China" msgstr "" -#: includes/core/class-builtin.php:1589 +#: includes/core/class-builtin.php:1780 msgid "Tajikistan" msgstr "" -#: includes/core/class-builtin.php:1590 +#: includes/core/class-builtin.php:1781 msgid "Tanzania, United Republic of" msgstr "" -#: includes/core/class-builtin.php:1591 +#: includes/core/class-builtin.php:1782 msgid "Thailand" msgstr "" -#: includes/core/class-builtin.php:1592 +#: includes/core/class-builtin.php:1783 msgid "Timor-Leste" msgstr "" -#: includes/core/class-builtin.php:1593 +#: includes/core/class-builtin.php:1784 msgid "Togo" msgstr "" -#: includes/core/class-builtin.php:1594 +#: includes/core/class-builtin.php:1785 msgid "Tokelau" msgstr "" -#: includes/core/class-builtin.php:1596 +#: includes/core/class-builtin.php:1787 msgid "Trinidad and Tobago" msgstr "" -#: includes/core/class-builtin.php:1597 +#: includes/core/class-builtin.php:1788 msgid "Tunisia" msgstr "" -#: includes/core/class-builtin.php:1598 +#: includes/core/class-builtin.php:1789 msgid "Turkey" msgstr "" -#: includes/core/class-builtin.php:1599 +#: includes/core/class-builtin.php:1790 msgid "Turkmenistan" msgstr "" -#: includes/core/class-builtin.php:1600 +#: includes/core/class-builtin.php:1791 msgid "Turks and Caicos Islands" msgstr "" -#: includes/core/class-builtin.php:1601 +#: includes/core/class-builtin.php:1792 msgid "Tuvalu" msgstr "" -#: includes/core/class-builtin.php:1602 +#: includes/core/class-builtin.php:1793 msgid "Uganda" msgstr "" -#: includes/core/class-builtin.php:1603 +#: includes/core/class-builtin.php:1794 msgid "Ukraine" msgstr "" -#: includes/core/class-builtin.php:1604 +#: includes/core/class-builtin.php:1795 msgid "United Arab Emirates" msgstr "" -#: includes/core/class-builtin.php:1605 +#: includes/core/class-builtin.php:1796 msgid "United Kingdom" msgstr "" -#: includes/core/class-builtin.php:1606 +#: includes/core/class-builtin.php:1797 msgid "United States" msgstr "" -#: includes/core/class-builtin.php:1607 +#: includes/core/class-builtin.php:1798 msgid "United States Minor Outlying Islands" msgstr "" -#: includes/core/class-builtin.php:1608 +#: includes/core/class-builtin.php:1799 msgid "Uruguay" msgstr "" -#: includes/core/class-builtin.php:1609 +#: includes/core/class-builtin.php:1800 msgid "Uzbekistan" msgstr "" -#: includes/core/class-builtin.php:1610 +#: includes/core/class-builtin.php:1801 msgid "Vanuatu" msgstr "" -#: includes/core/class-builtin.php:1611 +#: includes/core/class-builtin.php:1802 msgid "Venezuela, Bolivarian Republic of" msgstr "" -#: includes/core/class-builtin.php:1612 +#: includes/core/class-builtin.php:1803 msgid "Viet Nam" msgstr "" -#: includes/core/class-builtin.php:1613 +#: includes/core/class-builtin.php:1804 msgid "Virgin Islands, British" msgstr "" -#: includes/core/class-builtin.php:1614 +#: includes/core/class-builtin.php:1805 msgid "Virgin Islands, U.S." msgstr "" -#: includes/core/class-builtin.php:1615 +#: includes/core/class-builtin.php:1806 msgid "Wallis and Futuna" msgstr "" -#: includes/core/class-builtin.php:1616 +#: includes/core/class-builtin.php:1807 msgid "Western Sahara" msgstr "" -#: includes/core/class-builtin.php:1617 +#: includes/core/class-builtin.php:1808 msgid "Yemen" msgstr "" -#: includes/core/class-builtin.php:1618 +#: includes/core/class-builtin.php:1809 msgid "Zambia" msgstr "" -#: includes/core/class-builtin.php:1619 +#: includes/core/class-builtin.php:1810 msgid "Zimbabwe" msgstr "" -#: includes/core/class-common.php:28 +#: includes/core/class-common.php:57 msgid "Form" msgstr "" -#: includes/core/class-common.php:30 +#: includes/core/class-common.php:59 msgid "Add New Form" msgstr "" -#: includes/core/class-common.php:31 +#: includes/core/class-common.php:60 msgid "Edit Form" msgstr "" -#: includes/core/class-common.php:32 +#: includes/core/class-common.php:61 msgid "You did not create any forms yet" msgstr "" -#: includes/core/class-common.php:34 +#: includes/core/class-common.php:63 msgid "Search Forms" msgstr "" -#: includes/core/class-common.php:57 +#: includes/core/class-common.php:86 msgid "Member Directory" msgstr "" -#: includes/core/class-common.php:59 +#: includes/core/class-common.php:88 msgid "Add New Member Directory" msgstr "" -#: includes/core/class-common.php:60 +#: includes/core/class-common.php:89 msgid "Edit Member Directory" msgstr "" -#: includes/core/class-common.php:61 +#: includes/core/class-common.php:90 msgid "You did not create any member directories yet" msgstr "" -#: includes/core/class-common.php:63 +#: includes/core/class-common.php:92 msgid "Search Member Directories" msgstr "" -#: includes/core/class-cron.php:20 +#: includes/core/class-cron.php:62 msgid "Once Weekly" msgstr "" -#: includes/core/class-date-time.php:31 +#: includes/core/class-date-time.php:54 msgid "just now" msgstr "" -#: includes/core/class-date-time.php:39 +#: includes/core/class-date-time.php:62 #, php-format msgid "%s min" msgstr "" -#: includes/core/class-date-time.php:41 +#: includes/core/class-date-time.php:64 #, php-format msgid "%s mins" msgstr "" -#: includes/core/class-date-time.php:50 +#: includes/core/class-date-time.php:73 #, php-format msgid "%s hr" msgstr "" -#: includes/core/class-date-time.php:52 +#: includes/core/class-date-time.php:75 #, php-format msgid "%s hrs" msgstr "" -#: includes/core/class-date-time.php:61 +#: includes/core/class-date-time.php:84 #, php-format msgid "Yesterday at %s" msgstr "" -#: includes/core/class-date-time.php:63 includes/core/class-date-time.php:68 -#: includes/core/class-date-time.php:72 includes/core/class-date-time.php:76 +#: includes/core/class-date-time.php:86 includes/core/class-date-time.php:91 +#: includes/core/class-date-time.php:95 includes/core/class-date-time.php:99 #, php-format msgid "%s at %s" msgstr "" -#: includes/core/class-date-time.php:93 +#: includes/core/class-date-time.php:148 #, php-format msgid "%s year old" msgstr "" -#: includes/core/class-date-time.php:95 +#: includes/core/class-date-time.php:151 #, php-format msgid "%s years old" msgstr "" -#: includes/core/class-date-time.php:97 +#: includes/core/class-date-time.php:154 msgid "Less than 1 year old" msgstr "" -#: includes/core/class-external-integrations.php:280 +#: includes/core/class-external-integrations.php:367 #, php-format msgid "Edit the %s translation" msgstr "" -#: includes/core/class-external-integrations.php:287 +#: includes/core/class-external-integrations.php:374 #, php-format msgid "Add translation to %s" msgstr "" -#: includes/core/class-fields.php:790 +#: includes/core/class-fields.php:1116 msgid "Custom Field" msgstr "" -#: includes/core/class-fields.php:1068 +#: includes/core/class-fields.php:1413 msgid "Please upload a valid image!" msgstr "" -#: includes/core/class-fields.php:1075 includes/core/class-fields.php:1096 +#: includes/core/class-fields.php:1420 includes/core/class-fields.php:1441 msgid "Upload" msgstr "" -#: includes/core/class-fields.php:1076 +#: includes/core/class-fields.php:1421 msgid "Sorry this is not a valid image." msgstr "" -#: includes/core/class-fields.php:1077 +#: includes/core/class-fields.php:1422 msgid "This image is too large!" msgstr "" -#: includes/core/class-fields.php:1078 +#: includes/core/class-fields.php:1423 msgid "This image is too small!" msgstr "" -#: includes/core/class-fields.php:1079 +#: includes/core/class-fields.php:1424 msgid "You can only upload one image" msgstr "" -#: includes/core/class-fields.php:1386 +#: includes/core/class-fields.php:1849 msgid "Current Password" msgstr "" -#: includes/core/class-fields.php:1415 +#: includes/core/class-fields.php:1878 msgid "New Password" msgstr "" -#: includes/core/class-fields.php:1447 +#: includes/core/class-fields.php:1910 #, php-format msgid "Confirm %s" msgstr "" -#: includes/core/class-fields.php:1668 includes/core/class-fields.php:1752 +#: includes/core/class-fields.php:2151 includes/core/class-fields.php:2235 msgid "Upload Photo" msgstr "" -#: includes/core/class-fields.php:1687 includes/core/class-fields.php:1722 -#: includes/core/um-actions-profile.php:352 +#: includes/core/class-fields.php:2170 includes/core/class-fields.php:2205 +#: includes/core/um-actions-profile.php:764 msgid "Change photo" msgstr "" -#: includes/core/class-fields.php:1722 includes/core/class-fields.php:1810 +#: includes/core/class-fields.php:2205 includes/core/class-fields.php:2293 msgid "Processing..." msgstr "" -#: includes/core/class-fields.php:1768 includes/core/class-fields.php:1810 +#: includes/core/class-fields.php:2251 includes/core/class-fields.php:2293 msgid "Change file" msgstr "" -#: includes/core/class-fields.php:1810 +#: includes/core/class-fields.php:2293 msgid "Save" msgstr "" -#: includes/core/class-fields.php:2761 +#: includes/core/class-fields.php:3699 #, php-format msgid "" "Your profile is looking a little empty. Why not add some " "information!" msgstr "" -#: includes/core/class-fields.php:2763 +#: includes/core/class-fields.php:3701 msgid "This user has not added any information to their profile yet." msgstr "" -#: includes/core/class-files.php:56 +#: includes/core/class-files.php:89 msgid "Invalid parameters" msgstr "" -#: includes/core/class-files.php:59 +#: includes/core/class-files.php:92 msgid "Invalid coordinates" msgstr "" -#: includes/core/class-files.php:62 +#: includes/core/class-files.php:95 msgid "Invalid Image file" msgstr "" -#: includes/core/class-files.php:422 +#: includes/core/class-files.php:621 msgid "This media type is not recognized." msgstr "" -#: includes/core/class-files.php:430 +#: includes/core/class-files.php:669 msgid "Your image is invalid or too large!" msgstr "" -#: includes/core/class-files.php:436 includes/core/class-files.php:438 +#: includes/core/class-files.php:675 includes/core/class-files.php:677 #, php-format msgid "Your photo is too small. It must be at least %spx wide." msgstr "" -#: includes/core/class-files.php:489 +#: includes/core/class-files.php:744 msgid "Ultimate Member: Not a valid temp file" msgstr "" -#: includes/core/class-files.php:579 +#: includes/core/class-files.php:871 msgid "Invalid user ID: " msgstr "" -#: includes/core/class-files.php:588 includes/core/class-files.php:594 +#: includes/core/class-files.php:880 includes/core/class-files.php:908 msgid "Unauthorized to do this attempt." msgstr "" -#: includes/core/class-files.php:790 includes/core/class-files.php:845 -#: includes/lib/upload/um-file-upload.php:76 -#: includes/lib/upload/um-image-upload.php:69 +#: includes/core/class-files.php:1215 includes/core/class-files.php:1318 +#: includes/lib/upload/um-file-upload.php:121 +#: includes/lib/upload/um-image-upload.php:90 msgid "A theme or plugin compatibility issue" msgstr "" -#: includes/core/class-form.php:34 includes/core/class-profile.php:27 -#: includes/core/class-profile.php:37 +#: includes/core/class-form.php:56 includes/core/class-profile.php:54 +#: includes/core/class-profile.php:70 msgid "You can not edit this user" msgstr "" -#: includes/core/class-form.php:215 includes/core/um-actions-password.php:102 -#: includes/core/um-actions-password.php:163 +#: includes/core/class-form.php:340 includes/core/um-actions-password.php:140 +#: includes/core/um-actions-password.php:204 msgid "Hello, spam bot!" msgstr "" -#: includes/core/class-form.php:218 includes/core/um-actions-password.php:105 -#: includes/core/um-actions-password.php:166 +#: includes/core/class-form.php:343 includes/core/um-actions-password.php:143 +#: includes/core/um-actions-password.php:207 msgid "" "Whoa, slow down! You're seeing this message because you tried to submit a " "form too fast and we think you might be a spam bot. If you are a real human " "being please wait a few seconds before submitting the form. Thanks!" msgstr "" -#: includes/core/class-mail.php:273 +#: includes/core/class-mail.php:547 msgid "Template does not exists in theme" msgstr "" -#: includes/core/class-mail.php:281 +#: includes/core/class-mail.php:555 msgid "Can not remove template from theme" msgstr "" -#: includes/core/class-password.php:38 +#: includes/core/class-password.php:53 msgid "This is not a valid hash, or it has expired." msgstr "" -#: includes/core/class-permalinks.php:179 +#: includes/core/class-permalinks.php:230 msgid "This activation link is expired or have already been used." msgstr "" #. translators: %s: support forums URL -#: includes/core/class-plugin-updater.php:196 +#: includes/core/class-plugin-updater.php:212 #, php-format msgid "" "An unexpected error occurred. Something may be wrong with https://" @@ -5809,146 +6063,130 @@ msgid "" "have problems, please try the support forums." msgstr "" -#: includes/core/class-plugin-updater.php:197 +#: includes/core/class-plugin-updater.php:213 msgid "https://wordpress.org/support/" msgstr "" -#: includes/core/class-profile.php:50 +#: includes/core/class-profile.php:106 msgid "About" msgstr "" -#: includes/core/class-profile.php:54 +#: includes/core/class-profile.php:110 msgid "Posts" msgstr "" -#: includes/core/class-profile.php:58 +#: includes/core/class-profile.php:114 msgid "Comments" msgstr "" -#: includes/core/class-rest-api.php:136 +#: includes/core/class-rest-api.php:217 msgid "You must specify both a token and API key!" msgstr "" -#: includes/core/class-rest-api.php:147 +#: includes/core/class-rest-api.php:229 msgid "Your request could not be authenticated" msgstr "" -#: includes/core/class-rest-api.php:158 +#: includes/core/class-rest-api.php:241 msgid "Invalid API key" msgstr "" -#: includes/core/class-rest-api.php:263 includes/core/class-rest-api.php:370 -#: includes/core/class-rest-api.php:398 +#: includes/core/class-rest-api.php:420 includes/core/class-rest-api.php:579 +#: includes/core/class-rest-api.php:612 msgid "You must provide a user ID" msgstr "" -#: includes/core/class-rest-api.php:268 +#: includes/core/class-rest-api.php:425 msgid "You need to provide data to update" msgstr "" -#: includes/core/class-rest-api.php:277 +#: includes/core/class-rest-api.php:434 msgid "User status has been changed." msgstr "" -#: includes/core/class-rest-api.php:286 +#: includes/core/class-rest-api.php:463 msgid "User role has been changed." msgstr "" -#: includes/core/class-rest-api.php:290 +#: includes/core/class-rest-api.php:467 msgid "User meta has been changed." msgstr "" -#: includes/core/class-rest-api.php:376 includes/core/class-rest-api.php:404 +#: includes/core/class-rest-api.php:585 includes/core/class-rest-api.php:618 msgid "Invalid user specified" msgstr "" -#: includes/core/class-rest-api.php:383 +#: includes/core/class-rest-api.php:592 msgid "User has been successfully deleted." msgstr "" -#: includes/core/class-rest-api.php:510 +#: includes/core/class-rest-api.php:798 msgid "Invalid query!" msgstr "" -#: includes/core/class-rest-api.php:628 +#: includes/core/class-rest-api.php:1005 msgid "Ultimate Member REST API" msgstr "" -#: includes/core/class-rest-api.php:633 +#: includes/core/class-rest-api.php:1010 msgid "Generate API Key" msgstr "" -#: includes/core/class-rest-api.php:636 +#: includes/core/class-rest-api.php:1013 msgid "Public key:" msgstr "" -#: includes/core/class-rest-api.php:637 +#: includes/core/class-rest-api.php:1014 msgid "Secret key:" msgstr "" -#: includes/core/class-rest-api.php:638 +#: includes/core/class-rest-api.php:1015 msgid "Token:" msgstr "" -#: includes/core/class-rest-api.php:641 +#: includes/core/class-rest-api.php:1018 msgid "Revoke API Keys" msgstr "" -#: includes/core/class-router.php:17 includes/core/class-router.php:81 +#: includes/core/class-router.php:24 includes/core/class-router.php:93 msgid "Wrong action" msgstr "" -#: includes/core/class-router.php:20 includes/core/class-router.php:84 +#: includes/core/class-router.php:27 includes/core/class-router.php:96 msgid "Wrong resource" msgstr "" -#: includes/core/class-router.php:28 includes/core/class-router.php:98 +#: includes/core/class-router.php:35 includes/core/class-router.php:110 msgid "Wrong nonce" msgstr "" -#: includes/core/class-shortcodes.php:270 +#: includes/core/class-shortcodes.php:356 msgid "" "This content has been restricted to logged in users only. Please login to view this content." msgstr "" -#: includes/core/class-shortcodes.php:376 +#: includes/core/class-shortcodes.php:514 msgid "You are already registered" msgstr "" -#: includes/core/class-shortcodes.php:498 +#: includes/core/class-shortcodes.php:741 msgid "Default Template" msgstr "" -#: includes/core/class-tracking.php:148 -#, php-format -msgid "" -"Allow Ultimate Member to track plugin usage? Opt-in to tracking and our " -"newsletter and we will immediately e-mail you a 20% discount which you can " -"use to purchase our core extensions bundle. No sensitive data is tracked." -msgstr "" - -#: includes/core/class-tracking.php:152 -msgid "Allow tracking" -msgstr "" - -#: includes/core/class-tracking.php:153 -msgid "Do not allow tracking" -msgstr "" - -#: includes/core/class-user.php:401 +#: includes/core/class-user.php:535 msgid "Ultimate Member Role" msgstr "" -#: includes/core/class-user.php:404 +#: includes/core/class-user.php:538 msgid "— No role for Ultimate Member —" msgstr "" -#: includes/core/class-user.php:574 +#: includes/core/class-user.php:753 msgid "Membership Rejected" msgstr "" -#: includes/core/class-user.php:578 +#: includes/core/class-user.php:757 msgid "Membership Inactive" msgstr "" @@ -5966,18 +6204,18 @@ msgid "Your new password does not match" msgstr "" #: includes/core/um-actions-account.php:54 -#: includes/core/um-actions-password.php:190 +#: includes/core/um-actions-password.php:231 msgid "Your password must contain at least 8 characters" msgstr "" #: includes/core/um-actions-account.php:58 -#: includes/core/um-actions-password.php:194 +#: includes/core/um-actions-password.php:235 msgid "Your password must contain less than 30 characters" msgstr "" #: includes/core/um-actions-account.php:62 -#: includes/core/um-actions-form.php:284 -#: includes/core/um-actions-password.php:198 +#: includes/core/um-actions-form.php:469 +#: includes/core/um-actions-password.php:239 msgid "" "Your password must contain at least one lowercase letter, one capital letter " "and one number" @@ -6007,153 +6245,157 @@ msgstr "" msgid "Email already linked to another account" msgstr "" -#: includes/core/um-actions-account.php:249 +#: includes/core/um-actions-account.php:390 msgid "Email me when" msgstr "" -#: includes/core/um-actions-core.php:17 +#: includes/core/um-actions-core.php:24 msgid "Super administrators can not be modified." msgstr "" -#: includes/core/um-actions-core.php:81 +#: includes/core/um-actions-core.php:111 msgid "You do not have permission to delete this user." msgstr "" -#: includes/core/um-actions-form.php:82 +#: includes/core/um-actions-form.php:86 msgid "You are not allowed to use this word as your username." msgstr "" -#: includes/core/um-actions-form.php:137 includes/core/um-actions-form.php:226 -#: includes/core/um-actions-form.php:230 includes/core/um-actions-form.php:234 +#: includes/core/um-actions-form.php:276 includes/core/um-actions-form.php:387 +#: includes/core/um-actions-form.php:391 includes/core/um-actions-form.php:395 #, php-format msgid "%s is required." msgstr "" -#: includes/core/um-actions-form.php:239 +#: includes/core/um-actions-form.php:400 msgid "Please specify account type." msgstr "" -#: includes/core/um-actions-form.php:250 +#: includes/core/um-actions-form.php:432 +msgid "This field is required" +msgstr "" + +#: includes/core/um-actions-form.php:434 #, php-format msgid "%s is required" msgstr "" -#: includes/core/um-actions-form.php:256 +#: includes/core/um-actions-form.php:441 #, php-format msgid "You are only allowed to enter a maximum of %s words" msgstr "" -#: includes/core/um-actions-form.php:262 +#: includes/core/um-actions-form.php:447 #, php-format msgid "Your %s must contain at least %s characters" msgstr "" -#: includes/core/um-actions-form.php:268 +#: includes/core/um-actions-form.php:453 #, php-format msgid "Your %s must contain less than %s characters" msgstr "" -#: includes/core/um-actions-form.php:277 +#: includes/core/um-actions-form.php:462 msgid "You can not use HTML tags here" msgstr "" -#: includes/core/um-actions-form.php:290 +#: includes/core/um-actions-form.php:475 msgid "Please confirm your password" msgstr "" -#: includes/core/um-actions-form.php:293 -#: includes/core/um-actions-password.php:208 +#: includes/core/um-actions-form.php:478 +#: includes/core/um-actions-password.php:249 msgid "Your passwords do not match" msgstr "" -#: includes/core/um-actions-form.php:299 +#: includes/core/um-actions-form.php:484 #, php-format msgid "Please select at least %s choices" msgstr "" -#: includes/core/um-actions-form.php:305 +#: includes/core/um-actions-form.php:490 #, php-format msgid "You can only select up to %s choices" msgstr "" -#: includes/core/um-actions-form.php:311 +#: includes/core/um-actions-form.php:496 #, php-format msgid "Minimum number limit is %s" msgstr "" -#: includes/core/um-actions-form.php:317 +#: includes/core/um-actions-form.php:502 #, php-format msgid "Maximum number limit is %s" msgstr "" -#: includes/core/um-actions-form.php:332 +#: includes/core/um-actions-form.php:538 msgid "Please enter numbers only in this field" msgstr "" -#: includes/core/um-actions-form.php:338 +#: includes/core/um-actions-form.php:544 msgid "Please enter a valid phone number" msgstr "" -#: includes/core/um-actions-form.php:344 includes/core/um-actions-form.php:350 -#: includes/core/um-actions-form.php:356 includes/core/um-actions-form.php:362 -#: includes/core/um-actions-form.php:368 includes/core/um-actions-form.php:374 -#: includes/core/um-actions-form.php:380 includes/core/um-actions-form.php:386 -#: includes/core/um-actions-form.php:398 +#: includes/core/um-actions-form.php:550 includes/core/um-actions-form.php:556 +#: includes/core/um-actions-form.php:562 includes/core/um-actions-form.php:568 +#: includes/core/um-actions-form.php:574 includes/core/um-actions-form.php:580 +#: includes/core/um-actions-form.php:586 includes/core/um-actions-form.php:592 +#: includes/core/um-actions-form.php:604 #, php-format msgid "Please enter a valid %s username or profile URL" msgstr "" -#: includes/core/um-actions-form.php:392 +#: includes/core/um-actions-form.php:598 msgid "Please enter a valid URL" msgstr "" -#: includes/core/um-actions-form.php:405 includes/core/um-actions-form.php:419 +#: includes/core/um-actions-form.php:611 includes/core/um-actions-form.php:625 msgid "You must provide a username" msgstr "" -#: includes/core/um-actions-form.php:407 includes/core/um-actions-form.php:421 +#: includes/core/um-actions-form.php:613 includes/core/um-actions-form.php:627 msgid "Your username is already taken" msgstr "" -#: includes/core/um-actions-form.php:409 +#: includes/core/um-actions-form.php:615 msgid "Username cannot be an email" msgstr "" -#: includes/core/um-actions-form.php:411 includes/core/um-actions-form.php:425 +#: includes/core/um-actions-form.php:617 includes/core/um-actions-form.php:631 msgid "Your username contains invalid characters" msgstr "" -#: includes/core/um-actions-form.php:423 includes/core/um-actions-form.php:445 -#: includes/core/um-actions-form.php:447 includes/core/um-actions-form.php:459 -#: includes/core/um-actions-form.php:466 +#: includes/core/um-actions-form.php:629 includes/core/um-actions-form.php:651 +#: includes/core/um-actions-form.php:653 includes/core/um-actions-form.php:665 +#: includes/core/um-actions-form.php:672 msgid "This email is already linked to an existing account" msgstr "" -#: includes/core/um-actions-form.php:443 +#: includes/core/um-actions-form.php:649 msgid "You must provide your email" msgstr "" -#: includes/core/um-actions-form.php:449 includes/core/um-actions-form.php:457 +#: includes/core/um-actions-form.php:655 includes/core/um-actions-form.php:663 msgid "This is not a valid email" msgstr "" -#: includes/core/um-actions-form.php:451 +#: includes/core/um-actions-form.php:657 msgid "Your email contains invalid characters" msgstr "" -#: includes/core/um-actions-form.php:491 +#: includes/core/um-actions-form.php:697 msgid "You must provide a unique value" msgstr "" -#: includes/core/um-actions-form.php:501 +#: includes/core/um-actions-form.php:707 msgid "You must provide alphabetic letters" msgstr "" -#: includes/core/um-actions-form.php:511 +#: includes/core/um-actions-form.php:717 msgid "You must provide lowercase letters." msgstr "" -#: includes/core/um-actions-form.php:530 +#: includes/core/um-actions-form.php:736 #, php-format msgid "Your user description must contain less than %s characters" msgstr "" @@ -6162,302 +6404,302 @@ msgstr "" msgid "Only fill in if you are not human" msgstr "" -#: includes/core/um-actions-login.php:19 +#: includes/core/um-actions-login.php:20 msgid "Please enter your username or email" msgstr "" -#: includes/core/um-actions-login.php:23 +#: includes/core/um-actions-login.php:24 msgid "Please enter your username" msgstr "" -#: includes/core/um-actions-login.php:27 +#: includes/core/um-actions-login.php:28 msgid "Please enter your email" msgstr "" -#: includes/core/um-actions-login.php:51 +#: includes/core/um-actions-login.php:52 msgid " Sorry, we can't find an account with that email address" msgstr "" -#: includes/core/um-actions-login.php:53 +#: includes/core/um-actions-login.php:54 msgid " Sorry, we can't find an account with that username" msgstr "" -#: includes/core/um-actions-login.php:57 +#: includes/core/um-actions-login.php:58 msgid "Please enter your password" msgstr "" -#: includes/core/um-actions-login.php:65 +#: includes/core/um-actions-login.php:66 msgid "Password is incorrect. Please try again." msgstr "" -#: includes/core/um-actions-login.php:179 +#: includes/core/um-actions-login.php:194 msgid "This action has been prevented for security measures." msgstr "" -#: includes/core/um-actions-login.php:254 +#: includes/core/um-actions-login.php:418 msgid "Keep me signed in" msgstr "" -#: includes/core/um-actions-login.php:286 +#: includes/core/um-actions-login.php:453 msgid "Forgot your password?" msgstr "" -#: includes/core/um-actions-members.php:65 +#: includes/core/um-actions-members.php:84 msgid "Search" msgstr "" -#: includes/core/um-actions-members.php:65 +#: includes/core/um-actions-members.php:84 msgid "Reset" msgstr "" -#: includes/core/um-actions-members.php:133 +#: includes/core/um-actions-members.php:158 msgid "Jump to page:" msgstr "" -#: includes/core/um-actions-members.php:138 +#: includes/core/um-actions-members.php:163 #, php-format msgid "%s of %d" msgstr "" -#: includes/core/um-actions-members.php:148 +#: includes/core/um-actions-members.php:173 msgid "First Page" msgstr "" -#: includes/core/um-actions-members.php:154 +#: includes/core/um-actions-members.php:179 msgid "Previous" msgstr "" -#: includes/core/um-actions-members.php:174 +#: includes/core/um-actions-members.php:199 msgid "Next" msgstr "" -#: includes/core/um-actions-members.php:180 +#: includes/core/um-actions-members.php:205 msgid "Last Page" msgstr "" -#: includes/core/um-actions-misc.php:71 +#: includes/core/um-actions-misc.php:115 msgid "Your account was updated successfully." msgstr "" -#: includes/core/um-actions-misc.php:75 +#: includes/core/um-actions-misc.php:119 msgid "You have successfully changed your password." msgstr "" -#: includes/core/um-actions-misc.php:79 +#: includes/core/um-actions-misc.php:123 msgid "Your account is now active! You can login." msgstr "" -#: includes/core/um-actions-misc.php:91 +#: includes/core/um-actions-misc.php:157 msgid "An error has been encountered" msgstr "" -#: includes/core/um-actions-misc.php:95 +#: includes/core/um-actions-misc.php:161 msgid "Registration is currently disabled" msgstr "" -#: includes/core/um-actions-misc.php:99 includes/core/um-filters-login.php:36 +#: includes/core/um-actions-misc.php:165 includes/core/um-filters-login.php:40 msgid "This email address has been blocked." msgstr "" -#: includes/core/um-actions-misc.php:103 +#: includes/core/um-actions-misc.php:169 msgid "We do not accept registrations from that domain." msgstr "" -#: includes/core/um-actions-misc.php:107 includes/core/um-filters-login.php:39 +#: includes/core/um-actions-misc.php:173 includes/core/um-filters-login.php:43 msgid "Your IP address has been blocked." msgstr "" -#: includes/core/um-actions-misc.php:111 includes/core/um-filters-login.php:81 +#: includes/core/um-actions-misc.php:177 includes/core/um-filters-login.php:136 msgid "Your account has been disabled." msgstr "" -#: includes/core/um-actions-misc.php:115 includes/core/um-filters-login.php:84 +#: includes/core/um-actions-misc.php:181 includes/core/um-filters-login.php:139 msgid "Your account has not been approved yet." msgstr "" -#: includes/core/um-actions-misc.php:119 includes/core/um-filters-login.php:87 +#: includes/core/um-actions-misc.php:185 includes/core/um-filters-login.php:142 msgid "Your account is awaiting e-mail verification." msgstr "" -#: includes/core/um-actions-misc.php:123 includes/core/um-filters-login.php:90 +#: includes/core/um-actions-misc.php:189 includes/core/um-filters-login.php:145 msgid "Your membership request has been rejected." msgstr "" -#: includes/core/um-actions-password.php:116 +#: includes/core/um-actions-password.php:154 msgid "Please provide your username or email" msgstr "" -#: includes/core/um-actions-password.php:120 +#: includes/core/um-actions-password.php:158 msgid "We can't find an account registered with that address or username" msgstr "" -#: includes/core/um-actions-password.php:139 +#: includes/core/um-actions-password.php:177 msgid "" "You have reached the limit for requesting password change for this user " "already. Contact support if you cannot open the email" msgstr "" -#: includes/core/um-actions-password.php:184 +#: includes/core/um-actions-password.php:225 msgid "You must enter a new password" msgstr "" -#: includes/core/um-actions-password.php:204 +#: includes/core/um-actions-password.php:245 msgid "You must confirm your new password" msgstr "" -#: includes/core/um-actions-password.php:260 +#: includes/core/um-actions-password.php:326 msgid "Reset my password" msgstr "" -#: includes/core/um-actions-password.php:285 +#: includes/core/um-actions-password.php:352 msgid "Change my password" msgstr "" -#: includes/core/um-actions-profile.php:57 +#: includes/core/um-actions-profile.php:186 msgid "You are not allowed to edit this user." msgstr "" -#: includes/core/um-actions-profile.php:225 +#: includes/core/um-actions-profile.php:591 msgid "Change cover photo" msgstr "" -#: includes/core/um-actions-profile.php:270 +#: includes/core/um-actions-profile.php:635 msgid "Upload a cover photo" msgstr "" -#: includes/core/um-actions-profile.php:341 +#: includes/core/um-actions-profile.php:732 msgid "Upload photo" msgstr "" -#: includes/core/um-actions-profile.php:353 +#: includes/core/um-actions-profile.php:765 msgid "Remove photo" msgstr "" -#: includes/core/um-actions-profile.php:417 +#: includes/core/um-actions-profile.php:907 msgid "Tell us a bit about yourself..." msgstr "" -#: includes/core/um-actions-profile.php:435 +#: includes/core/um-actions-profile.php:925 #, php-format msgid "This user account status is %s" msgstr "" -#: includes/core/um-actions-profile.php:522 +#: includes/core/um-actions-profile.php:1065 msgid "Edit Profile" msgstr "" -#: includes/core/um-actions-profile.php:523 +#: includes/core/um-actions-profile.php:1066 msgid "My Account" msgstr "" -#: includes/core/um-actions-user.php:79 +#: includes/core/um-actions-user.php:50 msgid "Your account" msgstr "" -#: includes/core/um-filters-fields.php:14 +#: includes/core/um-filters-fields.php:16 msgid "Required" msgstr "" -#: includes/core/um-filters-fields.php:26 +#: includes/core/um-filters-fields.php:34 msgid "Invalid soundcloud track ID" msgstr "" -#: includes/core/um-filters-fields.php:85 +#: includes/core/um-filters-fields.php:118 #, php-format msgid "Joined %s" msgstr "" -#: includes/core/um-filters-fields.php:96 +#: includes/core/um-filters-fields.php:133 #, php-format msgid "Last login: %s" msgstr "" -#: includes/core/um-filters-fields.php:170 +#: includes/core/um-filters-fields.php:229 msgid "This file has been removed." msgstr "" -#: includes/core/um-filters-fields.php:191 +#: includes/core/um-filters-fields.php:256 msgid "Untitled photo" msgstr "" -#: includes/core/um-filters-profile.php:69 -#: includes/core/um-filters-profile.php:86 +#: includes/core/um-filters-profile.php:82 +#: includes/core/um-filters-profile.php:101 msgid "max" msgstr "" -#: includes/core/um-filters-user.php:36 +#: includes/core/um-filters-user.php:37 msgid "Deactivate this account" msgstr "" -#: includes/core/um-filters-user.php:40 +#: includes/core/um-filters-user.php:41 msgid "Reactivate this account" msgstr "" -#: includes/core/um-filters-user.php:44 +#: includes/core/um-filters-user.php:45 msgid "Delete this user" msgstr "" -#: includes/core/um-filters-user.php:50 +#: includes/core/um-filters-user.php:51 msgid "Login as this user" msgstr "" -#: includes/core/um-navmenu-walker-edit.php:21 +#: includes/core/um-navmenu.php:25 msgid "Display Mode" msgstr "" -#: includes/core/um-navmenu-walker-edit.php:22 +#: includes/core/um-navmenu.php:26 msgid "By Role" msgstr "" -#: includes/core/um-navmenu-walker-edit.php:79 +#: includes/core/um-navmenu.php:133 msgid "Ultimate Member Menu Settings" msgstr "" -#: includes/core/um-navmenu-walker-edit.php:93 +#: includes/core/um-navmenu.php:137 msgid "Who can see this menu link?" msgstr "" -#: includes/core/um-navmenu-walker-edit.php:99 +#: includes/core/um-navmenu.php:144 msgid "Logged Out Users" msgstr "" -#: includes/core/um-navmenu-walker-edit.php:102 +#: includes/core/um-navmenu.php:147 msgid "Logged In Users" msgstr "" -#: includes/core/um-navmenu-walker-edit.php:113 +#: includes/core/um-navmenu.php:153 msgid "Select the member roles that can see this link" msgstr "" -#: includes/um-short-functions.php:445 +#: includes/um-short-functions.php:552 msgid "date submitted" msgstr "" -#: includes/um-short-functions.php:450 +#: includes/um-short-functions.php:557 msgid "(empty)" msgstr "" -#: includes/widgets/class-um-search-widget.php:17 +#: includes/widgets/class-um-search-widget.php:26 msgid "Ultimate Member - Search" msgstr "" -#: includes/widgets/class-um-search-widget.php:20 +#: includes/widgets/class-um-search-widget.php:29 msgid "Shows users they follow in a widget." msgstr "" -#: includes/widgets/class-um-search-widget.php:46 +#: includes/widgets/class-um-search-widget.php:67 msgid "Search Users" msgstr "" -#: includes/widgets/class-um-search-widget.php:59 +#: includes/widgets/class-um-search-widget.php:80 msgid "Title:" msgstr "" -#: templates/members-grid.php:44 +#: templates/members-grid.php:65 msgid "Edit profile" msgstr "" -#: templates/password-reset.php:21 +#: templates/password-reset.php:77 msgid "" "We have sent you a password reset link to your e-mail. Please check your " "inbox." @@ -6502,15 +6744,15 @@ msgstr "" msgid "% comments" msgstr "" -#: templates/profile/posts-single.php:27 templates/profile/posts.php:16 +#: templates/profile/posts-single.php:27 templates/profile/posts.php:35 msgid "load more posts" msgstr "" -#: templates/profile/posts.php:25 +#: templates/profile/posts.php:43 msgid "You have not created any posts." msgstr "" -#: templates/profile/posts.php:25 +#: templates/profile/posts.php:43 msgid "This user has not created any posts." msgstr "" From a7ad035d3c14044ccf958c953e2b34591387d276 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Mon, 9 Apr 2018 16:41:15 +0300 Subject: [PATCH 29/29] - email notifications upgrade fix; --- .../packages/2.0-beta1/email_templates.php | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/includes/admin/core/packages/2.0-beta1/email_templates.php b/includes/admin/core/packages/2.0-beta1/email_templates.php index 3d97823e..264c32dd 100644 --- a/includes/admin/core/packages/2.0-beta1/email_templates.php +++ b/includes/admin/core/packages/2.0-beta1/email_templates.php @@ -10,13 +10,25 @@ foreach ( $emails as $email_key => $value ) { $theme_template_path = UM()->mail()->get_template_file( 'theme', $email_key ); if ( ! $in_theme ) { - $setting_value = UM()->options()->get( $email_key ); + $html_email = UM()->options()->get( 'email_html' ); - UM()->mail()->copy_email_template( $email_key ); + if ( $html_email ) { + if ( ! UM()->mail()->copy_email_template( $email_key ) ) { + $setting_value = UM()->options()->get( $email_key ); - $fp = fopen( $theme_template_path, "w" ); - $result = fputs( $fp, $setting_value ); - fclose( $fp ); + $fp = fopen( $theme_template_path, "w" ); + $result = fputs( $fp, $setting_value ); + fclose( $fp ); + } else { + $templates_in_theme++; + } + } else { + $setting_value = UM()->options()->get( $email_key ); + + $fp = fopen( $theme_template_path, "w" ); + $result = fputs( $fp, $setting_value ); + fclose( $fp ); + } } else { $theme_template_path_html = UM()->mail()->get_template_file( 'theme', $email_key, true );